Mark S. Miller (2015-02-23T20:31:54.000Z)
On Mon, Feb 23, 2015 at 11:59 AM, Isiah Meadows <isiahmeadows at gmail.com>
wrote:
>
> On Feb 23, 2015 6:06 AM, "Andrea Giammarchi" <andrea.giammarchi at gmail.com>
> wrote:
>
> > On Sun, Feb 22, 2015 at 11:18 PM, Jordan Harband <ljharb at gmail.com>
> wrote:
>
[...]

> >>  - We'd definitely want `Map.empty` and `Set.empty` assuming
> `Object.freeze` actually froze them
>
> Object.freeze does not freeze them, as far as I know. It might require
> method overrides.
>
Object.freeze does not freeze their state. A proposal for a way to either
freeze the state of collections, and/or to create frozen snapshots of
collections, for future ES would be welcome and appreciated. I encourage
any such effort to pay attention to Clojure and React.



>  >>  - We'd probably want
> `Object.freeze(Object.seal(Object.preventExtensions(empty)))`, to be extra
> restrictive.
>
> Doesn't Object.freeze imply the other two? I thought it did.
>

It does. Given that all these methods of Object have their original value
and that x is not a proxy

    Object.freeze(Object.seal(Object.preventExtensions(x)))

must be equivalent to

    Object.freeze(x)


-- 
    Cheers,
    --MarkM
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20150223/db999bf4/attachment.html>
d at domenic.me (2015-03-06T00:40:40.458Z)
On Mon, Feb 23, 2015 at 11:59 AM, Isiah Meadows <isiahmeadows at gmail.com> wrote:

> Object.freeze does not freeze them, as far as I know. It might require
> method overrides.

Object.freeze does not freeze their state. A proposal for a way to either
freeze the state of collections, and/or to create frozen snapshots of
collections, for future ES would be welcome and appreciated. I encourage
any such effort to pay attention to Clojure and React.

> Doesn't Object.freeze imply the other two? I thought it did.

It does. Given that all these methods of Object have their original value
and that x is not a proxy

    Object.freeze(Object.seal(Object.preventExtensions(x)))

must be equivalent to

    Object.freeze(x)