« Bugzilla Issues Index

#1196 — __proto__ [[DefineOwnProperty]] treats missing descriptors as changes that disable __proto__, is this intentional?

Current spec says this:

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.
2. Continue by executing the steps of 8.12.9 starting with step 1.

Given that missing descriptors will not cause a change to the __proto__ property descriptor, is it intentional that these lead to disabling UnderscoreProtoEnabled?

This is all gone from the rewrite of __proto__ that was done in rev 15

fixed in rev16 draft. July 15, 2013