Andreas Rossberg wrote:
On 14 February 2013 19:26, Herby Vojčík<he...@mailbox.sk>  wrote:
I meant "de facto". People wanting to remove property bar from foo do not
write `delete foo.bar` anymore; they (at least some significant subset) have
learned to write `foo.bar = null;` or `foo.bar = undefined;`. The reason is
perf - `delete` deoptimized hidden classes.

And with ES6, those people will hopefully realise that for those
cases, using a Map is a cleaner alternative anyway.

No, it is another scenario. If an object is used as a Map, it should degrade to HashMap, it's ok.

The problem is proliferation of `foo.bar = null` in "normal" code, where sometimes you want to remove some property (maybe it was an expando, or it is realy not needed any more in the actual phases of the lifecycle). In such cases, doing `delete` would degrade your optimized instance into a Hash. Thus, people do `foo.bar = null` even if what they want to do is `delete foo.bar`.

/Andreas

Herby
_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to