Le 20/01/2013 06:36, Kevin Smith a écrit :

    It is not. At the exit of the get trap, the JS engine checks
    whether invariants should be enforced for the given property on
    the target. In your case, the runtime sees that the target has a
    non-configurable non-writable property called 'foo' with 1 as
    value. When you try to return 0, it will throw a TypeError because
    of invariant violation. You can read about invariants at
    
http://wiki.ecmascript.org/doku.php?id=harmony:direct_proxies#invariant_enforcement


Excellent - thanks for the link! One more: What is the reason for not providing an API for unwrapping a proxy (e.g. your proxyToFinalTarget)?
If anyone can unwrap proxies, then the security benefits they provide are virtually non-existent akin to the Reflect API in Java. It's possible to implement such a function yourself and expose it for some of your proxies, but it should be an opt-in, not something available by default to everyone in the language.

David
_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to