Brendan Eich (2014-09-23T21:34:43.000Z)
domenic at domenicdenicola.com (2014-09-30T16:48:54.969Z)
sorry for the tardy reply. I did propose NoSuchProperty to Ecma TC39 today. To recap: ```js // Library code starts here. const NoSuchProperty = Proxy(Object.prototype, { // uncomment for nasty Firefox bug workaround: // has: function(target, name) { return true; }, 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"); } }); function NoSuchPropertyClass() {} NoSuchPropertyClass.prototype = NoSuchProperty; // End library code. // Your client code starts here. class MySaferClass extends NoSuchPropertyClass { ... } ``` The library code is self-hosted based on ES6 Proxies and Reflect. The committee reaction was to let this be put in popular libraries, in forms to be polished based on actual developer experience, and then we can standardize once there is a clear winner and strong adoption. Hope this is survivable. I argued we should shortcut to reduce the burden on the ecosystem but (as I've argued many times) TC39 believes we are least capable compared to the wider ecosystem (github, etc.) in designing, user-testing, polishing, and finalizing APIs. We can do final polish and formal specification, for sure. Y'all should do the hard part, not because we are lazy but because you are many, closer to your problem domains and use-cases, and collectively wiser about the details.