This depends on how you define "native" -- asm.js code is run-time compiled to assembler (I'm assuming that's where the name comes from) so is running "natively", as if you shipped your C++ application with the source code and a compiler, and compiled and ran it when the user opened the app.
The Unity engine has 98% of its hardware-intensive functionality compiled natively on the device, with only a small percentage of the remainder being interpreted code. Once again, it's hard not to call such an app "native" since there's no interpreter layer between the instructions and the bare metal of the device.
I worry that by suggesting these examples are "non-native" you're placing them on the same bar as HTML5 / JavaScript which is largely interpreted. I think a distinction needs to be made between languages/engines whose code is largely native and / or compiled at runtime, and languages / engines whose code is largely interpreted while running. There's huge performance implications between these two categories.