uh wait ... you meant ... uh ... wait, sorry, OK :D so {__proto__:Array.prototype} is an instanceof Array {"__proto__":Array.prototype} is an object with a "__proto__" property that points to Array.prototype
which means that "__proto__" is magically overwritten ... yak?! On Sun, Apr 21, 2013 at 3:33 PM, Andrea Giammarchi < andrea.giammar...@gmail.com> wrote: > that won't work? > > "__proto__" in {"__proto__":{}}; // true > "__proto__" in {__proto__:{}}; // still true, since "__proto__" in > Object.prototype, unless deleted > > am I wrong? > > > On Sun, Apr 21, 2013 at 3:27 PM, Mark S. Miller <erig...@google.com>wrote: > >> Warning: The following is a sickening idea. I would really hate to see us >> do it. But I feel obliged to post it as it may in fact be the right thing >> to do. >> >> >> >> Given: Web reality drives us towards recognizing {...., __proto__: ...., >> ....} as special syntax for initializing [[Prototype]]. >> >> Given: JSON demands that the "__proto__" in JSON.parse('{...., >> "__proto__": ...., ....}') not be treated as a special case, and causes >> just the normal [[DefineOwnProperty]]. >> >> Given: Web reality does not make demands on the meaning of {...., >> "__proto__": ...., ....} >> >> Given: The ES5 JSON spec demands that JSON.parse('{...., __proto__: ...., >> ....}') be rejected as an error. >> >> >> >> This suggests that, in JS as well, the "__proto__" in {...., "__proto__": >> ...., ....} not be treated as a special case. Quoting it turns off the >> special treatment. >> >> >> _______________________________________________ >> es-discuss mailing list >> es-discuss@mozilla.org >> https://mail.mozilla.org/listinfo/es-discuss >> >> >
_______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss