Jeff Walden (2014-12-04T01:16:19.000Z)
On 11/30/2014 10:35 AM, MichaƂ Wadas wrote:
> Should it be possible to have property named "__proto__" which is inaccessible in modern implementations?

It's perfectly accessible.

  var obj = { ["__proto__"]: 42, __proto__: null };
  assert(obj.__proto__ === 42);
  assert("__proto__" in obj);
  assert(Reflect.get(obj, "__proto__") === 42); // ...if I remember R.get's name/semantics
  assert(Object.getOwnPropertyDescriptor(obj, "__proto__").value === 42);
  assert(Object.getPrototypeOf(obj) === null);

And so on.

On the original topic, SpiderMonkey's implemented this since Firefox 35, which I think means the current Firefox beta implements the __proto__ non-duplication requirements.

Jeff
d at domenic.me (2014-12-08T21:46:41.167Z)
It's perfectly accessible.

```js
var obj = { ["__proto__"]: 42, __proto__: null };
assert(obj.__proto__ === 42);
assert("__proto__" in obj);
assert(Reflect.get(obj, "__proto__") === 42); // ...if I remember R.get's name/semantics
assert(Object.getOwnPropertyDescriptor(obj, "__proto__").value === 42);
assert(Object.getPrototypeOf(obj) === null);
```

And so on.