News for hackers. Stuff that matters.
Re:Introducing smap.js, a forward polyfill for ES6 Maps by just2n on Friday November 09, 2012 @01:57PM (#4764207)
I have quite a few questions about this implementation, but here are two bigger ones:

1. Why are constructed Maps here having delete, get, has, set, size, keys, values, and iterate added outside of the prototype? I guess I don't see why you wouldn't just put these on the prototype. That said, .call seems to be unnecessary in a lot of this code.

2. Why isn't there any attempt to make lookups for primitives faster. It's all O(n).

Re:Introducing smap.js, a forward polyfill for ES6 Maps by watmough on Friday November 09, 2012 @02:08PM (#4764260)
For anyone confused, like me, about what a forward polyfill is, here's an explanation:

http://www.jonathantneal.com/blog/polyfills-and-prototypes/

Re:Introducing smap.js, a forward polyfill for ES6 Maps by FuzzyDunlop on Friday November 09, 2012 @12:51PM (#4763877)

    var NULL = null, TRUE = true, FALSE = false
I'm not sure I understand this. Why assign these to variables?
Re:Introducing smap.js, a forward polyfill for ES6 Maps by esrauch on Friday November 09, 2012 @01:26PM (#4764052)
I think the reason for these is for js minification. With these assignments a simple minifier will replace those three variables with a line like this:

    var a=null,b=true,c=false;
Then your minified js will be smaller because all other instances of true, false and null will be one character. Whether or not this is a reasonable optimization is debatable but in terms of pure code size it would be a win.
Re:Introducing smap.js, a forward polyfill for ES6 Maps by ajanuary on Friday November 09, 2012 @01:35PM (#4764096)
Couldn't you build it into the minifier rather than polluting the original source?
Re:Introducing smap.js, a forward polyfill for ES6 Maps by jackmoore on Friday November 09, 2012 @02:49PM (#4764442)
Yes, stuff like this shouldn't be in the source. UglifyJS and Closure compiler make this optimization, but I've used other js minifiers that did not.
Re:Introducing smap.js, a forward polyfill for ES6 Maps by wendelinsky on Friday November 09, 2012 @12:57PM (#4763910)
That is part of the es6-collections polyfill included as part of smap.js. If I understand correctly, it is for safety (for example you cannot override the value of "true").
Re:Introducing smap.js, a forward polyfill for ES6 Maps by Twisol on Friday November 09, 2012 @01:22PM (#4764031)
null, true, and false are all keywords. Isn't undefined the only one that can be redefined? (And then it's just equal to void 0.)
Re:Introducing smap.js, a forward polyfill for ES6 Maps by emwendelin on Friday November 09, 2012 @01:32PM (#4764080)
Yep, you're right. I forgot about that.