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");
  }
});
js> var obj = Object.create(NoSuchProperty)
js> obj.foo = 42
42
js> obj.foo
42
js> obj.bar
/tmp/p.js:7:4 TypeError: bar is not a defined property

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

Reply via email to