On Thursday, 4 June 2015 22:36:28 UTC+5:30, Jason Orendorff  wrote:
> One way is to change the class and make it global. This is just a matter of
> setting some flags in the JSClass. But each global object lives in an
> isolated compartment, and values must be "wrapped" when they are
> transferred between compartments. This can be tricky to accomplish if you
> have a lot of existing code.
> 
> Without knowing more about your current code, it's hard to make other
> suggestions. For example, is the code that's being run this way trusted or
> untrusted? Could these objects share a single copy of the builtins, or
> would that be bad? Would it work to use prototypal inheritance to make the
> non-globals *appear* to have all the builtins, rather than actually having
> them?
> 
> -j
> 
> 
> On Thu, Jun 4, 2015 at 11:38 AM, <Subhasish Saha> wrote:
> 
> > In SpiderMonkey 1.8.0 we used call JS_InitStandardClasses(cx,
> > non_global_obj) to get a copy of standard built-in objects in the
> > non_global_object.
> > Later we used to pass this non_global_object inside JS_EvaluateUCScript so
> > that it gets treated as the "this" object and it used to have a copy of
> > built-in objects.
> >
> > Now we are trying to port to SpiderMonkey 24. But here
> > JS_InitStandardClasses seems not to work with non global objects.
> >
> > Our whole workflow is broken. Any solution?
> > _______________________________________________
> > dev-tech-js-engine-internals mailing list
> > [email protected]
> > https://lists.mozilla.org/listinfo/dev-tech-js-engine-internals
> >

We cannot make the class global due the isolated compartment complications. 

We used to mark the global copies of the builtins as read-only so that 
untrusted code is not able to modify them. But having single read-only copy 
prevents Object.prototype.toString kind of overrides.

Your suggestion "to use prototypal inheritance to make the 
non-globals *appear* to have all the builtins" sounds like some possible 
solution. Let me try that.

Thanks!
_______________________________________________
dev-tech-js-engine-internals mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-tech-js-engine-internals

Reply via email to