JavaScriptCore的经典文章
JSManagedValue:
The primary use case for JSManagedValue is for safely referencing JSValues from the Objective-C heap. It is incorrect to store a JSValue into an Objective-C heap object, as this can very easily create a reference cycle, keeping the entire JSContext alive.
(将 JSValue 转为 JSManagedValue 类型后,可以添加到 JSVirtualMachine 对象中,这样能够保证你在使用过程中 JSValue 对象不会被释放掉,当你不再需要该 JSValue 对象后,从 JSVirtualMachine 中移除该 JSManagedValue 对象,JSValue 对象就会被释放并置空。)
JSVirtualMachine:
All instances of JSContext are associated with a single JSVirtualMachine. The virtual machine provides an "object space" or set of execution resources.
(JSVirtualMachine就是一个用于保存弱引用对象的数组,加入该数组的弱引用对象因为会被该数组 retain,所以保证了使用时不会被释放,当数组里的对象不再需要时,就从数组中移除,没有了引用的对象就会被系统释放。)
http://liuduo.me/2015/10/24/JavaScriptCore%E5%88%9D%E6%8E%A2/
JavaScriptCore 初探
http://lingyuncxb.com/2018/07/19/JavaScriptCore%E5%BC%95%E6%93%8E%E6%B7%B1%E5%BA%A6%E8%A7%A3%E6%9E%90-1-%E5%BC%80%E7%AF%87/
JavaScriptCore引擎深度解析1—开篇
01-01
JavaScriptCore引擎深度解析5-字节码生成篇(下)
09-15
JavaScriptCore引擎深度解析5-字节码生成篇(中)
08-15
JavaScriptCore引擎深度解析5-字节码生成篇(上)
08-10
08-02
07-30
07-25