David Bruant (2013-05-02T12:55:47.000Z)
github at esdiscuss.org (2013-07-12T02:27:20.752Z)
Le 02/05/2013 08:51, Tom Van Cutsem a ?crit : > Why would old harmony:proxies require twice the memory to check ES5 > invariants? Old harmony:proxies couldn't represent non-configurable > properties or non-extensible objects. There were no invariants to > check, so also no invariant checking overhead. True, they couldn't represent non-configurable properties and non-extensible objects. IIRC, trying to change the design of harmony:proxies to be able to represent these (probably started at [1], also motivated by arrays length property) led to listing invariants (eternal/momentary) and then led to the idea of a per-proxy storage to remember which invariants should be enforced. But for the degenerate case of a forwarding proxy (frozen object), this would have resulted in pretty much duplicating the needed memory. One fold for the object itself, the other for the invariant storage. Direct proxies emerged out of the idea of merging the target from the forwarding proxy use case and the "invariant storage". In any case, harmony:proxies have limitations apparently inherent to their design, hence moving away from them. [1]: https://mail.mozilla.org/pipermail/es-discuss/2011-May/013954.html