On Jun 5, 2014, at 5:52 PM, Brendan Eich <bren...@mozilla.org> wrote:

> Rick Waldron wrote:
>> 
>> * `Object.preventUndeclaredGet()` - change an object's behavior to throw an 
>> error if you try to read from a property that doesn't exist (instead of 
>> returning `undefine`).
>> 
>> This can be achieved with Proxy right, or is that too cumbersome? 
> 
> js> var NoSuchProperty = Proxy({}, {
>   has: function(target, name) { return true; },
>   get: function(target, name, receiver) {
>     if (name in Object.prototype) {
>       return Object.prototype[name];
>     }
>     throw new TypeError(name + " is not a defined property");
>   }

need to make sure accessor methods use the right this value:

    get: function (target, name, receiver) {
           if (name in Object.prototype) return Reflect.get(Object.prototype, 
name, receiver);
           throw new TypeError(name + “ is not a defined property”);
     }
> });

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

Reply via email to