Hi,

We may need to switch from the (bicephal) fixed properties model to a "trap all with invariants enforcement" model.

With the current simple membrane example:
-----
var o = {};
var s = makeSimpleMembrane(o);
var wrapper = s.wrapper,
    gate = s.gate;

// ... later, in untrusted code (variable name kept for readability)
Object.defineProperty(wrapper, 'a', {value:1, configurable:false});


// ... later, back in trusted code:
gate.disable()


// ... later in the same untrusted code which had a reference to the wrapper object.
wrapper.a; // 1 in the fixed properties model
// throw if the 'get' traps was actually called.
// Such a difference is certainly noticeable in all traps.
-----

The problem with the fixed property model is that properties exist on the proxy object itself with no way to control (and prevent in our case) access to them.

David
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to