My ECMAScript 7 wishlist

Nicholas C. Zakas standards at
Fri Jun 6 09:08:03 PDT 2014

On 6/5/2014 4:08 PM, Rick Waldron wrote:
>     * `Object.deepPreventExtensions()`, `Object.deepSeal()`,
>     `Object.deepFreeze()` - deep versions of
>     `Object.preventExtensions()`, et al.
> Does "deep" mean that a Map instance's [[MapData]] is frozen if 
> deepFreeze is called on a ? eg. what happens here:
> var m = Object.deepFreeze(new Map());
> m.set(1, 1);
> In your blog it mentions the silent failure in non-strict mode, I 
> suspect that would still have to apply to these additions for semantic 
> consistency.

I wouldn't expect this to apply to [[MapData]] since those are not 
enumerable own properties of the map instance.
>     * `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?

It can be done with Proxy, but that kind of sucks because I always need 
to go through the extra step of creating the Proxy for each object and 
passing around the Proxy instead. To me, this is similar to setting a 
property to be readonly in strict mode, except its writeonly (or rather, 

Nicholas C. Zakas

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the es-discuss mailing list