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