> hash[key] --> null //What? There are scores of WTFs in javascript. I'm sure you've seen the website. It's not the job of node to fix javascript. It's a waste of time talking about it.
On Fri, Sep 20, 2013 at 1:03 PM, Adam Crabtree <atcrabt...@gmail.com> wrote: > Removing __proto__ is both naive and misinformed for several reasons. > > Further, there is nothing in Domenic's dict project that suggests the > presence of __proto__ is itself a problem. At best, it implies its use will > somehow "ruin your day" with a link to a google docs bug[1] that merely > illustrates the need for Object.create(null), which has *nothing* to do > with Google Docs *using* __proto__. It also doesn't address any of the > functionality __proto__ provides, which is of course expected b/c that's > not the point of the dict module. > > To be fair to Domenic, we're almost certainly recontextualizing his > points, so they especially don't apply here at all. > > At any rate, here's a list of reasons removing __proto__ is a bad idea: > > 1. Node.js === V8, and since V8 has __proto__ there's plenty of code (both > libraries and application code) that use __proto__. Do you have a good > reason why having it will cause more damage than breaking all existing code > that does? > > 2. I really hope it's not removed from strict mode until the language > provides equivalent functionality. Think Object.create is sufficient? What > about Function.create, Error.create or even Array.create? I've had handful > of cases both in library code and application code where the best solution > was to use __proto__ and several times where it was the only solution[2,3]. > > 3. Even if Function.create and Error.create existed, what about > reassigning after creation in cases where your application code did not > create it? > > Let's not fork to create a handcuffed version of the language. > > Cheers, > Adam Crabtree > > > > [1] > http://productforums.google.com/forum/#!msg/docs/0hQWeOvCcHU/13arVnFhU4YJ > [2] https://github.com/CrabDude/trycatch/issues/23 > [3] https://github.com/CrabDude/proxis/blob/master/proxis.js#L121 > > > On Fri, Sep 20, 2013 at 11:35 AM, Jorge Chamorro > <jo...@jorgechamorro.com>wrote: > >> On 20/09/2013, at 15:40, mks wrote: >> >> > {} is not an hash table. Object.create(null) is more likely >> >> That, *and* kill the __proto__, if not: >> >> hash= Object.create(null); >> key= '__proto__'; >> >> hash[key]= 27; >> hash[key] >> null //What? >> >> Or worse: >> >> hash[key]= this; >> 'require' in hash >> true //What? >> 'console' in hash >> true //What? >> 'Array' in hash >> true //What? >> >> etc. >> -- >> ( Jorge )(); >> >> -- >> -- >> Job Board: http://jobs.nodejs.org/ >> Posting guidelines: >> https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines >> You received this message because you are subscribed to the Google >> Groups "nodejs" group. >> To post to this group, send email to nodejs@googlegroups.com >> To unsubscribe from this group, send email to >> nodejs+unsubscr...@googlegroups.com >> For more options, visit this group at >> http://groups.google.com/group/nodejs?hl=en?hl=en >> >> --- >> You received this message because you are subscribed to the Google Groups >> "nodejs" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to nodejs+unsubscr...@googlegroups.com. >> For more options, visit https://groups.google.com/groups/opt_out. >> > > > > -- > Better a little with righteousness > than much gain with injustice. > Proverbs 16:8 > > -- > -- > Job Board: http://jobs.nodejs.org/ > Posting guidelines: > https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines > You received this message because you are subscribed to the Google > Groups "nodejs" group. > To post to this group, send email to nodejs@googlegroups.com > To unsubscribe from this group, send email to > nodejs+unsubscr...@googlegroups.com > For more options, visit this group at > http://groups.google.com/group/nodejs?hl=en?hl=en > > --- > You received this message because you are subscribed to the Google Groups > "nodejs" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to nodejs+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/groups/opt_out. > -- -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups "nodejs" group. To post to this group, send email to nodejs@googlegroups.com To unsubscribe from this group, send email to nodejs+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en --- You received this message because you are subscribed to the Google Groups "nodejs" group. To unsubscribe from this group and stop receiving emails from it, send an email to nodejs+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.