Mark S. Miller (2013-07-12T04:33:40.000Z)
domenic at domenicdenicola.com (2013-07-12T16:18:52.435Z)
Yes, that was intentional. Even though the `__proto__:` looks related to the `__proto__` property initially on `Object.prototype`, that's only cosmetic. It is now simply part of the object literal syntax, in just the same way that `<|` used to just be special syntax. This does seem to leave a hole in the functionality compared to `<|`, which is, how do you create a normal property named `__proto__`. The answer is the computed property syntax: `{["__proto__"]: ...}`. I don't remember what whether we decided that `{"__proto__": ...}` means the same thing as `{["__proto__"]: ...}` or `{__proto__: ...}`. I think we decided the second, which probably better follows the principle of least surprise. OTOH, the first would have kept JavaScript closes to JSON.