If you really want a safe map where any key is allowed and doesn't conflict with builtin javascript properties, just implement your own map. Here is a very simple one that allows storing *any* value as keys. This includes the string "__proto__" as well as non-strings.
If you want something faster and your pretty sure that "__proto__" will never be used as a key and all other keys are strings, then use native objects with Object.create(null). Mostly safe is good enough for a large number of cases. Including generating prime numbers for RSA private keys for your online bank. function map() { var keys = []; var values = []; return { get: get, set: set }; function get(key) { return values[keys.indexOf(key)]; } function set(key, value) { var index = keys.indexOf(key); if (index < 0) { index = keys.length; keys[index] = key; } return values[index] = value; } } On Sat, Sep 21, 2013 at 10:47 AM, Jorge Chamorro <jo...@jorgechamorro.com>wrote: > On 21/09/2013, at 03:28, Andrew Kelley wrote: > > > 3rd-eden: > > Wow! How did I not know about this before? Thank you for this. > > > > To be clear, no sarcasm here. I'm really happy to have learned about > this. > > I'm happy that you're happy, but even with Object.create(null) you aren't > safe, because what you get still has a working __proto__ > > -- > ( 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. > -- -- 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.