638
edits
(Food for thought: platforms) |
(→Stage 4: more work for Jim, and make JSObjectOps seem less important) |
||
| Line 101: | Line 101: | ||
* Figure out how to support the "last-retrieved value" behavior of <code>[[mdc:JS_LookupProperty|JS_LookupProperty]]</code>. | * Figure out how to support the "last-retrieved value" behavior of <code>[[mdc:JS_LookupProperty|JS_LookupProperty]]</code>. | ||
* Figure out how to support native getters, setters, and <code>[[mdc:JSClass|JSClass]]</code> hooks. | * Figure out how to support native getters, setters, and <code>[[mdc:JSClass|JSClass]]</code> hooks. | ||
* Figure out how to support <code>[[mdc:JSObjectOps|JSObjectOps]]</code> callbacks. ''Or'' | * Figure out how to support <code>[[mdc:JSObjectOps|JSObjectOps]]</code> callbacks. ''Or'' reimplement all Mozilla's <code>JSObjectOps</code> on Tamarin's object model. There are not many <code>JSObjectOps</code> implementations in Mozilla: | ||
::Inside SpiderMonkey: | |||
::*js_ObjectOps | |||
::*js_WithObjectOps | |||
::*js_ArrayObjectOps - coming in {{bug|322899}} | |||
::*js_SlowArrayObjectOps - same | |||
::In xpconnect: | |||
::*XPC_WN_WithCall_JSOps | |||
::*XPC_WN_NoCall_JSOps | |||
::In liveconnect, which is not even built in Mozilla 2: | |||
::*JavaArray_ops | |||
::*JavaObject_ops | |||
::*JavaClass_ops | |||
* Implement an adapter class to support Tamarin objects that preserve the <code>JSClass</code> behavior (and <code>JSObjectOps</code> if necessary). | * Implement an adapter class to support Tamarin objects that preserve the <code>JSClass</code> behavior (and <code>JSObjectOps</code> if necessary). | ||
* Implement support for using <code>[[mdc:JSNative|JSNative]]</code> and <code>[[mdc:JSFastNative|JSFastNative]]</code> native functions in the Tamarin object model. | * Implement support for using <code>[[mdc:JSNative|JSNative]]</code> and <code>[[mdc:JSFastNative|JSFastNative]]</code> native functions in the Tamarin object model. | ||
| Line 109: | Line 123: | ||
* Make sure E4X works with the new object model. | * Make sure E4X works with the new object model. | ||
* Make sure the debugger still works with the new object model. | * Make sure the debugger still works with the new object model. | ||
* Make sure XPConnect works. | |||
* Make sure security works. | |||
* Merge the SpiderMonkey and Tamarin <code>Array</code> implementations. | * Merge the SpiderMonkey and Tamarin <code>Array</code> implementations. | ||
* Figure out how to do all the above and still support platforms that tamarin-tracing doesn't support: | * Figure out how to do all the above and still support platforms that tamarin-tracing doesn't support: | ||
edits