Le 20/01/2013 16:49, Kevin Smith a écrit :
Got it.  And one more (thanks for bearing with me)
I forked the thread. Go crazy if you have other questions :-)

what affect does throwing an error have within a trap?
You can think of it as an internal error, very much like Object.defineProperty throws a TypeError when the first argument isn't an object.

    var target = {
      foo: function() { this.bar; console.log("after bar"); },
      bar: 0
    };

    var proxy = new Proxy(target, {
      get: function(obj, name) {
        if (name === "bar") throw new Error("boom");
        return obj[name];
      }
    });

    proxy.foo();

Does the stack unwind as with normal error handling? Does "after bar" get logged? (FF18 answers yes to the first and no to the second question.)
I agree with FF18 here.
This case is relatively easy and the get trap is supported by Firefox implementation, but always aware that for now, some traps aren't implemented, some invariant-related checks aren't performed, other are overly performed. You can see the known issues in the dependency tree of the direct proxy bug: https://bugzilla.mozilla.org/showdependencytree.cgi?id=703537&hide_resolved=1

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

Reply via email to