
NativeScript Replaces JavaScriptCore with V8 for iOS Apps - w3s7
https://www.infoq.com/news/2020/01/nativescripts-adopts-V8-ios/
======
Jaxkr
Will Apple allow this to be used in apps distributed through the App Store? As
far as I know, they explicitly disallow any web browsers from using
rendering/JS engines other than WebKit. I think this is for security reasons.

Are the JavaScript pseudo-native apps exempt? Can they use a custom JavaScript
engine?

~~~
tinus_hn
You can use interpreters as long as they run code that was bundled with the
app. You can’t build a jit compiler though, the operating system won’t let
you.

~~~
Jaxkr
I don’t understand. JS can’t be precompiled, so the interpreter would still be
doing JIT compilation (or be very slow?)

~~~
tinus_hn
In iOS a block of memory that is writeable cannot become executable. The only
blocks of memory that can be executable are those loaded from disk. So you
can’t compile Javascript code to machine code, write it to memory and then run
it.

An interpreter instead just runs the code step by step. If the next statement
is this command, run this function. If it’s a jump continue interpreting from
somewhere else. That’s slower but the processor never directly runs machine
code that wasn’t already in the package.

------
yalok
As they mention in the post, it’s not as efficient as JavaScriptCore (JSC),
because it can’t use higher JIT optimization levels which require write access
to executable memory. JSC can do it because it’s part of iOS.

