archives

« 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.
-------