« Bugzilla Issues Index

#807 — Conflicting default values for "Enumerable" property in __proto__ defined in the draft spec

There is a conflict with the default value for “enumerable” in the following two sections seems to be an unintentional bug. The section B.3.1.2 should be corrected with setting Enumerable as false.

B.3.1.1 Object.prototype.__proto__
The initial value of the __proto__ property of the Object prototype object is a data property whose initial value is null. This property initially has the attributes { [[Writable]]: true, [[Enumerable]]: false, [[Configurable]]: true }.
B.3.1.2 Changes To Internal Methods

The definition of the [[DefineOwnProperty]] internal method given in 8.12.9 is replaced with the following:
1. If UnderscoreProtoEnabled is true and P is the string value "__proto__" and O is the standard built-in Object prototype object, then
a. If any attribute contained in Desc is not present or has a different value from the corresponding attribute in { [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: true }then,
i. Set UnderscoreProtoEnabled to false.