-
-
Notifications
You must be signed in to change notification settings - Fork 1.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Map and Set have internal state as enumerable keys #146
Comments
I don't see any serious difference between enumerable and non-enumerable keys. Before 1.0 they were non-enumerable, but |
I agree that it's not a spec compliance issue. However, since they're enumerable, it currently makes core-js + is-equal tests fail on node 0.10 due to some kind of infinite loop inside Couldn't you make the prototype properties non-enumerable once with |
It will not work - in this case, instance properties will be enumerable :( Currently, we have no fast way to add a non-enumerable property. I will explore possibilities to fix this issue - I already had one issue about it, but not sure it will be fixed. |
Does that apply to engines that aren't v8? Was this a performance concern that actually occurred and affected somebody, or was it an optimization made because of the ember issue? |
If #144 is fixed, I may not be blocked by this issue anymore - however, instance props should still be non-enumerable ideally :-/ |
Also, |
AFAIK for all popular engines.
It was performance optimisation based on tests. The problem here - it's applied not only to collections - to all polyfilled instances, for example, to promises, which should be polyfilled in most actual engines.
It gives
It will be fixed in |
Stop... You lost |
oops, that defineProperty should be on |
Put another way, this allows me to detect with |
aha, the default writable |
Changing status to |
Hidden in |
Object.keys(new Map())
andObject.keys(new Set())
should produce an empty array in an ES5 engine, but in node 0.10, they both produce[ '_i', '_f', '_l', '_s' ]
.The text was updated successfully, but these errors were encountered: