Yet Another Reason To Drop __proto__
I know it might sound boring but I really want to put everything down and laugh, or cry harder, the day TC39 will realize __proto__  was one of the most terrible mistakes.  A Simple Dictionary Attack ES6 says that Object.create(null)  should not be affected anyhow from Object.prototype . I've already mentioned this in the 5 Reasons You Should Avoid __proto__  post but I forgot to include an example. You can test all this code with Chrome Canary or Firefox/Nightly and the most basic thing you need to know is this: var n = Object.create(null); n.__proto__ = {}; for (var k in n) console.log(k); // __proto__ !!! Object.keys(n); // ["__proto__"] !!! Got it? So, __proto__  is enumerable in some browser, is not in some other but it will be in all future browsers. Let's go on with examples ... // store values grouped by same key function hanldeList(key, value) {   if (!(key in n)) {     n[key] = [];   }   n[key].push(value); } // the Dictionary as it is in ES6 var n = Object....