Claus Reinke wrote:
It's really none of your business when you try to freeze my object whether any of

(a) pre-existing private-symbol-named properties remain writable;
(b) weakmap-encoded private state remains writable;
(c) objects-as-closures environment variables remain writable.

Really. Not. Your (user). Business!

But it is Your (author) business, and turning everything into
a proxy to get control over how the authored objects behave
seems a little excessive.

What have proxies to do with any of a-c? I don't follow.

And the same thing applies to clone/
mixin.

Agree proxies should not be required to do standard O-O things.

It has been pointed out that the issue is one of implicitly called
iterators: standard methods for freezing or cloning call iterators that only handle public API.

I think you're missing the point. Object.freeze deals in certain observables. It does not free closure state, or weakmap-encoded state, or (per the ES6 proposal) private-symbol-named property state where such properties already exist. Those are not directly observable by the reflection API.

Your -- as in You the abstraction implementor -- may indeed make such state observable. That's a feature. Think of const methods with mutable this members in C++.

/be
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to