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 <[email protected]>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 [email protected]
> To unsubscribe from this group, send email to
> [email protected]
> 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 [email protected].
> 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 [email protected]
To unsubscribe from this group, send email to
[email protected]
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 [email protected].
For more options, visit https://groups.google.com/groups/opt_out.