node iOS ports - hewigovens/hewigovens.github.com GitHub Wiki

##Draft

由于iOS的安全特性,只允许分配PROT_READ | PROT_EXEC or PROT_READ | PROT_WRITE的内存区域,所以v8的JIT基本上就废了(除非越狱),这也是Chrome在iOS上使用的是JavaScriptCore的原因;目前唯一的例外是MobileSafari,JIT是可以work的(所谓的dynamic signing),可以看到Apple在速度和安全性上的权衡。

##References

0. patch
../deps/v8/src/arm/constants-arm.h:33:2: error: #error ARM EABI support is required.
1.xcode_emulation.py remove all -arch i386, minversion 10.5
2.modify node.gyp v8.gyp add /usr/include/c++/4.2.1
3.v8/platform-macosx.cc change asm("bkpt") to asm("trap")
http://stackoverflow.com/questions/4970841/equivalent-of-int-3-on-arm-ios-processors
http://stackoverflow.com/questions/3644465/can-i-create-a-breakpoint-in-code-in-ios-like-asmint-3-on-vc-and-conti
https://code.google.com/p/v8/issues/detail?id=1312
4.ldid -S mksnapshot
⚠️ **GitHub.com Fallback** ⚠️