From 6aa8338d23e8af36ce81a7ee4617807ccea02387 Mon Sep 17 00:00:00 2001 From: Gus Caplan Date: Wed, 30 Sep 2020 17:52:36 -0500 Subject: [PATCH] add feature tags --- features.txt | 3 +++ .../Object/prototype/__defineGetter__/define-abrupt.js | 2 +- .../Object/prototype/__defineGetter__/define-existing.js | 1 + .../built-ins/Object/prototype/__defineGetter__/define-new.js | 1 + .../prototype/__defineGetter__/define-non-configurable.js | 1 + .../prototype/__defineGetter__/define-non-extensible.js | 1 + .../Object/prototype/__defineGetter__/getter-non-callable.js | 2 +- .../Object/prototype/__defineGetter__/key-invalid.js | 1 + test/built-ins/Object/prototype/__defineGetter__/length.js | 1 + test/built-ins/Object/prototype/__defineGetter__/name.js | 1 + test/built-ins/Object/prototype/__defineGetter__/prop-desc.js | 1 + .../Object/prototype/__defineGetter__/this-non-obj.js | 1 + .../Object/prototype/__defineSetter__/define-abrupt.js | 2 +- .../Object/prototype/__defineSetter__/define-existing.js | 1 + .../built-ins/Object/prototype/__defineSetter__/define-new.js | 1 + .../prototype/__defineSetter__/define-non-configurable.js | 1 + .../prototype/__defineSetter__/define-non-extensible.js | 1 + .../Object/prototype/__defineSetter__/key-invalid.js | 1 + test/built-ins/Object/prototype/__defineSetter__/length.js | 1 + test/built-ins/Object/prototype/__defineSetter__/name.js | 1 + test/built-ins/Object/prototype/__defineSetter__/prop-desc.js | 1 + .../Object/prototype/__defineSetter__/setter-non-callable.js | 2 +- .../Object/prototype/__defineSetter__/this-non-obj.js | 1 + .../Object/prototype/__lookupGetter__/key-invalid.js | 1 + test/built-ins/Object/prototype/__lookupGetter__/length.js | 1 + .../Object/prototype/__lookupGetter__/lookup-not-found.js | 3 ++- .../prototype/__lookupGetter__/lookup-own-acsr-w-getter.js | 3 ++- .../prototype/__lookupGetter__/lookup-own-acsr-wo-getter.js | 3 ++- .../Object/prototype/__lookupGetter__/lookup-own-data.js | 3 ++- .../Object/prototype/__lookupGetter__/lookup-own-get-err.js | 4 ++-- .../Object/prototype/__lookupGetter__/lookup-own-proto-err.js | 4 ++-- .../prototype/__lookupGetter__/lookup-proto-acsr-w-getter.js | 3 ++- .../prototype/__lookupGetter__/lookup-proto-acsr-wo-getter.js | 3 ++- .../Object/prototype/__lookupGetter__/lookup-proto-data.js | 3 ++- .../Object/prototype/__lookupGetter__/lookup-proto-get-err.js | 4 ++-- .../prototype/__lookupGetter__/lookup-proto-proto-err.js | 4 ++-- test/built-ins/Object/prototype/__lookupGetter__/name.js | 1 + test/built-ins/Object/prototype/__lookupGetter__/prop-desc.js | 1 + .../Object/prototype/__lookupGetter__/this-non-obj.js | 1 + .../Object/prototype/__lookupSetter__/key-invalid.js | 1 + test/built-ins/Object/prototype/__lookupSetter__/length.js | 1 + .../Object/prototype/__lookupSetter__/lookup-not-found.js | 3 ++- .../prototype/__lookupSetter__/lookup-own-acsr-w-setter.js | 3 ++- .../prototype/__lookupSetter__/lookup-own-acsr-wo-setter.js | 3 ++- .../Object/prototype/__lookupSetter__/lookup-own-data.js | 3 ++- .../Object/prototype/__lookupSetter__/lookup-own-get-err.js | 4 ++-- .../Object/prototype/__lookupSetter__/lookup-own-proto-err.js | 4 ++-- .../prototype/__lookupSetter__/lookup-proto-acsr-w-setter.js | 3 ++- .../prototype/__lookupSetter__/lookup-proto-acsr-wo-setter.js | 3 ++- .../Object/prototype/__lookupSetter__/lookup-proto-data.js | 3 ++- .../Object/prototype/__lookupSetter__/lookup-proto-get-err.js | 4 ++-- .../prototype/__lookupSetter__/lookup-proto-proto-err.js | 4 ++-- test/built-ins/Object/prototype/__lookupSetter__/name.js | 1 + test/built-ins/Object/prototype/__lookupSetter__/prop-desc.js | 1 + .../Object/prototype/__lookupSetter__/this-non-obj.js | 1 + test/built-ins/Object/prototype/__proto__/get-abrupt.js | 2 +- test/built-ins/Object/prototype/__proto__/get-fn-name.js | 1 + test/built-ins/Object/prototype/__proto__/get-ordinary-obj.js | 1 + .../built-ins/Object/prototype/__proto__/get-to-obj-abrupt.js | 1 + test/built-ins/Object/prototype/__proto__/prop-desc.js | 1 + test/built-ins/Object/prototype/__proto__/set-abrupt.js | 2 +- .../Object/prototype/__proto__/set-cycle-shadowed.js | 1 + test/built-ins/Object/prototype/__proto__/set-cycle.js | 1 + test/built-ins/Object/prototype/__proto__/set-fn-name.js | 1 + test/built-ins/Object/prototype/__proto__/set-immutable.js | 1 + .../built-ins/Object/prototype/__proto__/set-invalid-value.js | 2 +- .../Object/prototype/__proto__/set-non-extensible.js | 1 + .../Object/prototype/__proto__/set-non-obj-coercible.js | 1 + test/built-ins/Object/prototype/__proto__/set-non-object.js | 2 +- test/built-ins/Object/prototype/__proto__/set-ordinary-obj.js | 1 + .../Proxy/set/call-parameters-prototype-dunder-proto.js | 2 +- test/language/expressions/class/poisoned-underscore-proto.js | 2 +- test/language/expressions/object/__proto__-permitted-dup.js | 2 +- 73 files changed, 97 insertions(+), 41 deletions(-) diff --git a/features.txt b/features.txt index 88ce7ce4af..e54e2f4c2a 100644 --- a/features.txt +++ b/features.txt @@ -279,6 +279,9 @@ Uint32Array Uint8ClampedArray WeakMap WeakSet +__proto__ +__getter__ +__setter__ ## Test-Harness Features # diff --git a/test/built-ins/Object/prototype/__defineGetter__/define-abrupt.js b/test/built-ins/Object/prototype/__defineGetter__/define-abrupt.js index faf954554b..26f59e42ac 100644 --- a/test/built-ins/Object/prototype/__defineGetter__/define-abrupt.js +++ b/test/built-ins/Object/prototype/__defineGetter__/define-abrupt.js @@ -6,7 +6,7 @@ description: Behavior when [[DefineOwnProperty]] returns an abrupt completion info: | [...] 5. Perform ? DefinePropertyOrThrow(O, key, desc). -features: [Proxy] +features: [Proxy, __getter__] ---*/ var noop = function() {}; diff --git a/test/built-ins/Object/prototype/__defineGetter__/define-existing.js b/test/built-ins/Object/prototype/__defineGetter__/define-existing.js index e1b3c90c16..239e587bcb 100644 --- a/test/built-ins/Object/prototype/__defineGetter__/define-existing.js +++ b/test/built-ins/Object/prototype/__defineGetter__/define-existing.js @@ -11,6 +11,7 @@ info: | 5. Perform ? DefinePropertyOrThrow(O, key, desc). 6. Return undefined. includes: [propertyHelper.js] +features: [__getter__] ---*/ var subject = {}; diff --git a/test/built-ins/Object/prototype/__defineGetter__/define-new.js b/test/built-ins/Object/prototype/__defineGetter__/define-new.js index 42162247b0..3eaf949592 100644 --- a/test/built-ins/Object/prototype/__defineGetter__/define-new.js +++ b/test/built-ins/Object/prototype/__defineGetter__/define-new.js @@ -11,6 +11,7 @@ info: | 5. Perform ? DefinePropertyOrThrow(O, key, desc). 6. Return undefined. includes: [propertyHelper.js] +features: [__getter__] ---*/ var subject = {}; diff --git a/test/built-ins/Object/prototype/__defineGetter__/define-non-configurable.js b/test/built-ins/Object/prototype/__defineGetter__/define-non-configurable.js index a4dd5c9be6..d94f1fefa6 100644 --- a/test/built-ins/Object/prototype/__defineGetter__/define-non-configurable.js +++ b/test/built-ins/Object/prototype/__defineGetter__/define-non-configurable.js @@ -6,6 +6,7 @@ description: Behavior when property exists and is not configurable info: | [...] 5. Perform ? DefinePropertyOrThrow(O, key, desc). +features: [__getter__] ---*/ var noop = function() {}; diff --git a/test/built-ins/Object/prototype/__defineGetter__/define-non-extensible.js b/test/built-ins/Object/prototype/__defineGetter__/define-non-extensible.js index 281363b336..10217f5457 100644 --- a/test/built-ins/Object/prototype/__defineGetter__/define-non-extensible.js +++ b/test/built-ins/Object/prototype/__defineGetter__/define-non-extensible.js @@ -6,6 +6,7 @@ description: Behavior when "this" value is not extensible info: | [...] 5. Perform ? DefinePropertyOrThrow(O, key, desc). +features: [__getter__] ---*/ var noop = function() {}; diff --git a/test/built-ins/Object/prototype/__defineGetter__/getter-non-callable.js b/test/built-ins/Object/prototype/__defineGetter__/getter-non-callable.js index 590c5a3b72..6070b56c90 100644 --- a/test/built-ins/Object/prototype/__defineGetter__/getter-non-callable.js +++ b/test/built-ins/Object/prototype/__defineGetter__/getter-non-callable.js @@ -6,7 +6,7 @@ description: Behavior when getter is not callable info: | [...] 2. If IsCallable(getter) is false, throw a TypeError exception. -features: [Symbol] +features: [Symbol, __getter__] ---*/ var subject = {}; diff --git a/test/built-ins/Object/prototype/__defineGetter__/key-invalid.js b/test/built-ins/Object/prototype/__defineGetter__/key-invalid.js index f2feed1f6e..88054d51c9 100644 --- a/test/built-ins/Object/prototype/__defineGetter__/key-invalid.js +++ b/test/built-ins/Object/prototype/__defineGetter__/key-invalid.js @@ -6,6 +6,7 @@ description: Behavior when property key cannot be derived info: | [...] 4. Let key be ? ToPropertyKey(P). +features: [__getter__] ---*/ var noop = function() {}; diff --git a/test/built-ins/Object/prototype/__defineGetter__/length.js b/test/built-ins/Object/prototype/__defineGetter__/length.js index 5a189c1842..4586e4c4c4 100644 --- a/test/built-ins/Object/prototype/__defineGetter__/length.js +++ b/test/built-ins/Object/prototype/__defineGetter__/length.js @@ -16,6 +16,7 @@ info: | object has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: true }. includes: [propertyHelper.js] +features: [__getter__] ---*/ verifyProperty(Object.prototype.__defineGetter__, "length", { diff --git a/test/built-ins/Object/prototype/__defineGetter__/name.js b/test/built-ins/Object/prototype/__defineGetter__/name.js index d75e5158db..09265cbfc2 100644 --- a/test/built-ins/Object/prototype/__defineGetter__/name.js +++ b/test/built-ins/Object/prototype/__defineGetter__/name.js @@ -17,6 +17,7 @@ info: | object, if it exists, has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: true }. includes: [propertyHelper.js] +features: [__getter__] ---*/ verifyProperty(Object.prototype.__defineGetter__, "name", { diff --git a/test/built-ins/Object/prototype/__defineGetter__/prop-desc.js b/test/built-ins/Object/prototype/__defineGetter__/prop-desc.js index 36631f660a..c397a75df0 100644 --- a/test/built-ins/Object/prototype/__defineGetter__/prop-desc.js +++ b/test/built-ins/Object/prototype/__defineGetter__/prop-desc.js @@ -8,6 +8,7 @@ info: | B.2 has the attributes { [[Writable]]: true, [[Enumerable]]: false, [[Configurable]]: true } unless otherwise specified. includes: [propertyHelper.js] +features: [__getter__] ---*/ verifyProperty(Object.prototype, "__defineGetter__", { diff --git a/test/built-ins/Object/prototype/__defineGetter__/this-non-obj.js b/test/built-ins/Object/prototype/__defineGetter__/this-non-obj.js index 754a7c0aa3..b6b12a2572 100644 --- a/test/built-ins/Object/prototype/__defineGetter__/this-non-obj.js +++ b/test/built-ins/Object/prototype/__defineGetter__/this-non-obj.js @@ -5,6 +5,7 @@ esid: sec-additional-properties-of-the-object.prototype-object description: Behavior when "this" value is not Object-coercible info: | 1. Let O be ? ToObject(this value). +features: [__getter__] ---*/ var __defineGetter__ = Object.prototype.__defineGetter__; diff --git a/test/built-ins/Object/prototype/__defineSetter__/define-abrupt.js b/test/built-ins/Object/prototype/__defineSetter__/define-abrupt.js index f5c6fc2b24..a5eae5cf29 100644 --- a/test/built-ins/Object/prototype/__defineSetter__/define-abrupt.js +++ b/test/built-ins/Object/prototype/__defineSetter__/define-abrupt.js @@ -6,7 +6,7 @@ description: Behavior when [[DefineOwnProperty]] returns an abrupt completion info: | [...] 5. Perform ? DefinePropertyOrThrow(O, key, desc). -features: [Proxy] +features: [Proxy, __setter__] ---*/ var noop = function() {}; diff --git a/test/built-ins/Object/prototype/__defineSetter__/define-existing.js b/test/built-ins/Object/prototype/__defineSetter__/define-existing.js index 4a40cf4f1a..bde4ac1687 100644 --- a/test/built-ins/Object/prototype/__defineSetter__/define-existing.js +++ b/test/built-ins/Object/prototype/__defineSetter__/define-existing.js @@ -11,6 +11,7 @@ info: | 5. Perform ? DefinePropertyOrThrow(O, key, desc). 6. Return undefined. includes: [propertyHelper.js] +features: [__setter__] ---*/ var subject = {}; diff --git a/test/built-ins/Object/prototype/__defineSetter__/define-new.js b/test/built-ins/Object/prototype/__defineSetter__/define-new.js index a75b768366..b9fd3a64ea 100644 --- a/test/built-ins/Object/prototype/__defineSetter__/define-new.js +++ b/test/built-ins/Object/prototype/__defineSetter__/define-new.js @@ -11,6 +11,7 @@ info: | 5. Perform ? DefinePropertyOrThrow(O, key, desc). 6. Return undefined. includes: [propertyHelper.js] +features: [__setter__] ---*/ var subject = {}; diff --git a/test/built-ins/Object/prototype/__defineSetter__/define-non-configurable.js b/test/built-ins/Object/prototype/__defineSetter__/define-non-configurable.js index c8523379e3..b358480008 100644 --- a/test/built-ins/Object/prototype/__defineSetter__/define-non-configurable.js +++ b/test/built-ins/Object/prototype/__defineSetter__/define-non-configurable.js @@ -6,6 +6,7 @@ description: Behavior when property exists and is not configurable info: | [...] 5. Perform ? DefinePropertyOrThrow(O, key, desc). +features: [__setter__] ---*/ var noop = function() {}; diff --git a/test/built-ins/Object/prototype/__defineSetter__/define-non-extensible.js b/test/built-ins/Object/prototype/__defineSetter__/define-non-extensible.js index 20c034f650..c2194d8cc6 100644 --- a/test/built-ins/Object/prototype/__defineSetter__/define-non-extensible.js +++ b/test/built-ins/Object/prototype/__defineSetter__/define-non-extensible.js @@ -6,6 +6,7 @@ description: Behavior when "this" value is not extensible info: | [...] 5. Perform ? DefinePropertyOrThrow(O, key, desc). +features: [__setter__] ---*/ var noop = function() {}; diff --git a/test/built-ins/Object/prototype/__defineSetter__/key-invalid.js b/test/built-ins/Object/prototype/__defineSetter__/key-invalid.js index aba9e095c3..c6126c7a93 100644 --- a/test/built-ins/Object/prototype/__defineSetter__/key-invalid.js +++ b/test/built-ins/Object/prototype/__defineSetter__/key-invalid.js @@ -6,6 +6,7 @@ description: Behavior when property key cannot be derived info: | [...] 4. Let key be ? ToPropertyKey(P). +features: [__setter__] ---*/ var noop = function() {}; diff --git a/test/built-ins/Object/prototype/__defineSetter__/length.js b/test/built-ins/Object/prototype/__defineSetter__/length.js index 4fb4388d09..d56597c89e 100644 --- a/test/built-ins/Object/prototype/__defineSetter__/length.js +++ b/test/built-ins/Object/prototype/__defineSetter__/length.js @@ -16,6 +16,7 @@ info: | object has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: true }. includes: [propertyHelper.js] +features: [__setter__] ---*/ verifyProperty(Object.prototype.__defineSetter__, "length", { diff --git a/test/built-ins/Object/prototype/__defineSetter__/name.js b/test/built-ins/Object/prototype/__defineSetter__/name.js index dc1ed1bdf6..9d6e68b360 100644 --- a/test/built-ins/Object/prototype/__defineSetter__/name.js +++ b/test/built-ins/Object/prototype/__defineSetter__/name.js @@ -17,6 +17,7 @@ info: | object, if it exists, has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: true }. includes: [propertyHelper.js] +features: [__setter__] ---*/ verifyProperty(Object.prototype.__defineSetter__, "name", { diff --git a/test/built-ins/Object/prototype/__defineSetter__/prop-desc.js b/test/built-ins/Object/prototype/__defineSetter__/prop-desc.js index bf2bb799e8..2917449d61 100644 --- a/test/built-ins/Object/prototype/__defineSetter__/prop-desc.js +++ b/test/built-ins/Object/prototype/__defineSetter__/prop-desc.js @@ -8,6 +8,7 @@ info: | B.2 has the attributes { [[Writable]]: true, [[Enumerable]]: false, [[Configurable]]: true } unless otherwise specified. includes: [propertyHelper.js] +features: [__setter__] ---*/ verifyProperty(Object.prototype, "__defineSetter__", { diff --git a/test/built-ins/Object/prototype/__defineSetter__/setter-non-callable.js b/test/built-ins/Object/prototype/__defineSetter__/setter-non-callable.js index 0215048bc8..60d1a28717 100644 --- a/test/built-ins/Object/prototype/__defineSetter__/setter-non-callable.js +++ b/test/built-ins/Object/prototype/__defineSetter__/setter-non-callable.js @@ -6,7 +6,7 @@ description: Behavior when getter is not callable info: | [...] 2. If IsCallable(setter) is false, throw a TypeError exception. -features: [Symbol] +features: [Symbol, __setter__] ---*/ var subject = {}; diff --git a/test/built-ins/Object/prototype/__defineSetter__/this-non-obj.js b/test/built-ins/Object/prototype/__defineSetter__/this-non-obj.js index 4c06dfb0e1..b849c85829 100644 --- a/test/built-ins/Object/prototype/__defineSetter__/this-non-obj.js +++ b/test/built-ins/Object/prototype/__defineSetter__/this-non-obj.js @@ -5,6 +5,7 @@ esid: sec-additional-properties-of-the-object.prototype-object description: Behavior when "this" value is not Object-coercible info: | 1. Let O be ? ToObject(this value). +features: [__setter__] ---*/ var __defineSetter__ = Object.prototype.__defineSetter__; diff --git a/test/built-ins/Object/prototype/__lookupGetter__/key-invalid.js b/test/built-ins/Object/prototype/__lookupGetter__/key-invalid.js index 60941edf4d..2f4c9a7b8d 100644 --- a/test/built-ins/Object/prototype/__lookupGetter__/key-invalid.js +++ b/test/built-ins/Object/prototype/__lookupGetter__/key-invalid.js @@ -6,6 +6,7 @@ description: Behavior when property key cannot be derived info: | [...] 2. Let key be ? ToPropertyKey(P). +features: [__getter__] ---*/ var subject = {}; diff --git a/test/built-ins/Object/prototype/__lookupGetter__/length.js b/test/built-ins/Object/prototype/__lookupGetter__/length.js index a892178f99..80efdd6ac9 100644 --- a/test/built-ins/Object/prototype/__lookupGetter__/length.js +++ b/test/built-ins/Object/prototype/__lookupGetter__/length.js @@ -16,6 +16,7 @@ info: | object has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: true }. includes: [propertyHelper.js] +features: [__getter__] ---*/ verifyProperty(Object.prototype.__lookupGetter__, "length", { diff --git a/test/built-ins/Object/prototype/__lookupGetter__/lookup-not-found.js b/test/built-ins/Object/prototype/__lookupGetter__/lookup-not-found.js index b142e1e7ae..f5ce98d089 100644 --- a/test/built-ins/Object/prototype/__lookupGetter__/lookup-not-found.js +++ b/test/built-ins/Object/prototype/__lookupGetter__/lookup-not-found.js @@ -11,7 +11,8 @@ info: | i. If IsAccessorDescriptor(desc) is true, return desc.[[Get]]. ii. Return undefined. c. Let O be ? O.[[GetPrototypeOf]](). - d. If O is null, return undefined. + d. If O is null, return undefined. +features: [__getter__] ---*/ var root = {}; diff --git a/test/built-ins/Object/prototype/__lookupGetter__/lookup-own-acsr-w-getter.js b/test/built-ins/Object/prototype/__lookupGetter__/lookup-own-acsr-w-getter.js index d6acd7ee84..21ab55eb4f 100644 --- a/test/built-ins/Object/prototype/__lookupGetter__/lookup-own-acsr-w-getter.js +++ b/test/built-ins/Object/prototype/__lookupGetter__/lookup-own-acsr-w-getter.js @@ -13,7 +13,8 @@ info: | i. If IsAccessorDescriptor(desc) is true, return desc.[[Get]]. ii. Return undefined. c. Let O be ? O.[[GetPrototypeOf]](). - d. If O is null, return undefined. + d. If O is null, return undefined. +features: [__getter__] ---*/ var root = Object.defineProperty({}, 'target', { get: function() {} }); diff --git a/test/built-ins/Object/prototype/__lookupGetter__/lookup-own-acsr-wo-getter.js b/test/built-ins/Object/prototype/__lookupGetter__/lookup-own-acsr-wo-getter.js index afa265401c..0f83c67cc6 100644 --- a/test/built-ins/Object/prototype/__lookupGetter__/lookup-own-acsr-wo-getter.js +++ b/test/built-ins/Object/prototype/__lookupGetter__/lookup-own-acsr-wo-getter.js @@ -13,7 +13,8 @@ info: | i. If IsAccessorDescriptor(desc) is true, return desc.[[Get]]. ii. Return undefined. c. Let O be ? O.[[GetPrototypeOf]](). - d. If O is null, return undefined. + d. If O is null, return undefined. +features: [__getter__] ---*/ var root = Object.defineProperty({}, 'target', { get: function() {} }); diff --git a/test/built-ins/Object/prototype/__lookupGetter__/lookup-own-data.js b/test/built-ins/Object/prototype/__lookupGetter__/lookup-own-data.js index 3b2c5e7794..e3fcb81388 100644 --- a/test/built-ins/Object/prototype/__lookupGetter__/lookup-own-data.js +++ b/test/built-ins/Object/prototype/__lookupGetter__/lookup-own-data.js @@ -11,7 +11,8 @@ info: | i. If IsAccessorDescriptor(desc) is true, return desc.[[Get]]. ii. Return undefined. c. Let O be ? O.[[GetPrototypeOf]](). - d. If O is null, return undefined. + d. If O is null, return undefined. +features: [__getter__] ---*/ var root = Object.defineProperty({}, 'target', { get: function() {} }); diff --git a/test/built-ins/Object/prototype/__lookupGetter__/lookup-own-get-err.js b/test/built-ins/Object/prototype/__lookupGetter__/lookup-own-get-err.js index 53b0ab586a..ce5c25c168 100644 --- a/test/built-ins/Object/prototype/__lookupGetter__/lookup-own-get-err.js +++ b/test/built-ins/Object/prototype/__lookupGetter__/lookup-own-get-err.js @@ -13,8 +13,8 @@ info: | i. If IsAccessorDescriptor(desc) is true, return desc.[[Get]]. ii. Return undefined. c. Let O be ? O.[[GetPrototypeOf]](). - d. If O is null, return undefined. -features: [Proxy] + d. If O is null, return undefined. +features: [Proxy, __getter__] ---*/ var root = Object.defineProperty({}, 'target', { get: function() {} }); diff --git a/test/built-ins/Object/prototype/__lookupGetter__/lookup-own-proto-err.js b/test/built-ins/Object/prototype/__lookupGetter__/lookup-own-proto-err.js index 501c1538ba..c57c13640b 100644 --- a/test/built-ins/Object/prototype/__lookupGetter__/lookup-own-proto-err.js +++ b/test/built-ins/Object/prototype/__lookupGetter__/lookup-own-proto-err.js @@ -13,8 +13,8 @@ info: | i. If IsAccessorDescriptor(desc) is true, return desc.[[Get]]. ii. Return undefined. c. Let O be ? O.[[GetPrototypeOf]](). - d. If O is null, return undefined. -features: [Proxy] + d. If O is null, return undefined. +features: [Proxy, __getter__] ---*/ var root = Object.defineProperty({}, 'target', { get: function() {} }); diff --git a/test/built-ins/Object/prototype/__lookupGetter__/lookup-proto-acsr-w-getter.js b/test/built-ins/Object/prototype/__lookupGetter__/lookup-proto-acsr-w-getter.js index f62e29ff2f..a4819a703f 100644 --- a/test/built-ins/Object/prototype/__lookupGetter__/lookup-proto-acsr-w-getter.js +++ b/test/built-ins/Object/prototype/__lookupGetter__/lookup-proto-acsr-w-getter.js @@ -13,7 +13,8 @@ info: | i. If IsAccessorDescriptor(desc) is true, return desc.[[Get]]. ii. Return undefined. c. Let O be ? O.[[GetPrototypeOf]](). - d. If O is null, return undefined. + d. If O is null, return undefined. +features: [__getter__] ---*/ var root = Object.defineProperty({}, 'target', { get: function() {} }); diff --git a/test/built-ins/Object/prototype/__lookupGetter__/lookup-proto-acsr-wo-getter.js b/test/built-ins/Object/prototype/__lookupGetter__/lookup-proto-acsr-wo-getter.js index b228233e86..e5a91e56f6 100644 --- a/test/built-ins/Object/prototype/__lookupGetter__/lookup-proto-acsr-wo-getter.js +++ b/test/built-ins/Object/prototype/__lookupGetter__/lookup-proto-acsr-wo-getter.js @@ -13,7 +13,8 @@ info: | i. If IsAccessorDescriptor(desc) is true, return desc.[[Get]]. ii. Return undefined. c. Let O be ? O.[[GetPrototypeOf]](). - d. If O is null, return undefined. + d. If O is null, return undefined. +features: [__getter__] ---*/ var root = Object.defineProperty({}, 'target', { get: function() {} }); diff --git a/test/built-ins/Object/prototype/__lookupGetter__/lookup-proto-data.js b/test/built-ins/Object/prototype/__lookupGetter__/lookup-proto-data.js index 26fb5942ab..839a7fc244 100644 --- a/test/built-ins/Object/prototype/__lookupGetter__/lookup-proto-data.js +++ b/test/built-ins/Object/prototype/__lookupGetter__/lookup-proto-data.js @@ -11,7 +11,8 @@ info: | i. If IsAccessorDescriptor(desc) is true, return desc.[[Get]]. ii. Return undefined. c. Let O be ? O.[[GetPrototypeOf]](). - d. If O is null, return undefined. + d. If O is null, return undefined. +features: [__getter__] ---*/ var root = Object.defineProperty({}, 'target', { get: function() {} }); diff --git a/test/built-ins/Object/prototype/__lookupGetter__/lookup-proto-get-err.js b/test/built-ins/Object/prototype/__lookupGetter__/lookup-proto-get-err.js index 8fee1458b7..bdfe42f1b4 100644 --- a/test/built-ins/Object/prototype/__lookupGetter__/lookup-proto-get-err.js +++ b/test/built-ins/Object/prototype/__lookupGetter__/lookup-proto-get-err.js @@ -12,8 +12,8 @@ info: | i. If IsAccessorDescriptor(desc) is true, return desc.[[Get]]. ii. Return undefined. c. Let O be ? O.[[GetPrototypeOf]](). - d. If O is null, return undefined. -features: [Proxy] + d. If O is null, return undefined. +features: [Proxy, __getter__] ---*/ var root = Object.defineProperty({}, 'target', { get: function() {} }); diff --git a/test/built-ins/Object/prototype/__lookupGetter__/lookup-proto-proto-err.js b/test/built-ins/Object/prototype/__lookupGetter__/lookup-proto-proto-err.js index 5e26229a6c..6206055650 100644 --- a/test/built-ins/Object/prototype/__lookupGetter__/lookup-proto-proto-err.js +++ b/test/built-ins/Object/prototype/__lookupGetter__/lookup-proto-proto-err.js @@ -12,8 +12,8 @@ info: | i. If IsAccessorDescriptor(desc) is true, return desc.[[Get]]. ii. Return undefined. c. Let O be ? O.[[GetPrototypeOf]](). - d. If O is null, return undefined. -features: [Proxy] + d. If O is null, return undefined. +features: [Proxy, __getter__] ---*/ var root = Object.defineProperty({}, 'target', { get: function() {} }); diff --git a/test/built-ins/Object/prototype/__lookupGetter__/name.js b/test/built-ins/Object/prototype/__lookupGetter__/name.js index 04444f67b8..053ec0f2ac 100644 --- a/test/built-ins/Object/prototype/__lookupGetter__/name.js +++ b/test/built-ins/Object/prototype/__lookupGetter__/name.js @@ -17,6 +17,7 @@ info: | object, if it exists, has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: true }. includes: [propertyHelper.js] +features: [__getter__] ---*/ verifyProperty(Object.prototype.__lookupGetter__, "name", { diff --git a/test/built-ins/Object/prototype/__lookupGetter__/prop-desc.js b/test/built-ins/Object/prototype/__lookupGetter__/prop-desc.js index 957fae6928..fe925e868e 100644 --- a/test/built-ins/Object/prototype/__lookupGetter__/prop-desc.js +++ b/test/built-ins/Object/prototype/__lookupGetter__/prop-desc.js @@ -8,6 +8,7 @@ info: | B.2 has the attributes { [[Writable]]: true, [[Enumerable]]: false, [[Configurable]]: true } unless otherwise specified. includes: [propertyHelper.js] +features: [__getter__] ---*/ verifyProperty(Object.prototype, "__lookupGetter__", { diff --git a/test/built-ins/Object/prototype/__lookupGetter__/this-non-obj.js b/test/built-ins/Object/prototype/__lookupGetter__/this-non-obj.js index 8a8f556e25..fadd13a90d 100644 --- a/test/built-ins/Object/prototype/__lookupGetter__/this-non-obj.js +++ b/test/built-ins/Object/prototype/__lookupGetter__/this-non-obj.js @@ -5,6 +5,7 @@ esid: sec-additional-properties-of-the-object.prototype-object description: Behavior when "this" value is not Object-coercible info: | 1. Let O be ? ToObject(this value). +features: [__getter__] ---*/ var __lookupGetter__ = Object.prototype.__lookupGetter__; diff --git a/test/built-ins/Object/prototype/__lookupSetter__/key-invalid.js b/test/built-ins/Object/prototype/__lookupSetter__/key-invalid.js index c2d16914c9..1266fb7ab4 100644 --- a/test/built-ins/Object/prototype/__lookupSetter__/key-invalid.js +++ b/test/built-ins/Object/prototype/__lookupSetter__/key-invalid.js @@ -6,6 +6,7 @@ description: Behavior when property key cannot be derived info: | [...] 2. Let key be ? ToPropertyKey(P). +features: [__setter__] ---*/ var subject = {}; diff --git a/test/built-ins/Object/prototype/__lookupSetter__/length.js b/test/built-ins/Object/prototype/__lookupSetter__/length.js index 829fb7a7ab..02eaaa8cb8 100644 --- a/test/built-ins/Object/prototype/__lookupSetter__/length.js +++ b/test/built-ins/Object/prototype/__lookupSetter__/length.js @@ -16,6 +16,7 @@ info: | object has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: true }. includes: [propertyHelper.js] +features: [__setter__] ---*/ verifyProperty(Object.prototype.__lookupSetter__, "length", { diff --git a/test/built-ins/Object/prototype/__lookupSetter__/lookup-not-found.js b/test/built-ins/Object/prototype/__lookupSetter__/lookup-not-found.js index bef6a7c430..2567b42981 100644 --- a/test/built-ins/Object/prototype/__lookupSetter__/lookup-not-found.js +++ b/test/built-ins/Object/prototype/__lookupSetter__/lookup-not-found.js @@ -11,7 +11,8 @@ info: | i. If IsAccessorDescriptor(desc) is true, return desc.[[Get]]. ii. Return undefined. c. Let O be ? O.[[GetPrototypeOf]](). - d. If O is null, return undefined. + d. If O is null, return undefined. +features: [__setter__] ---*/ var root = {}; diff --git a/test/built-ins/Object/prototype/__lookupSetter__/lookup-own-acsr-w-setter.js b/test/built-ins/Object/prototype/__lookupSetter__/lookup-own-acsr-w-setter.js index d658bd7947..637eb8fd4d 100644 --- a/test/built-ins/Object/prototype/__lookupSetter__/lookup-own-acsr-w-setter.js +++ b/test/built-ins/Object/prototype/__lookupSetter__/lookup-own-acsr-w-setter.js @@ -13,7 +13,8 @@ info: | i. If IsAccessorDescriptor(desc) is true, return desc.[[Set]]. ii. Return undefined. c. Let O be ? O.[[GetPrototypeOf]](). - d. If O is null, return undefined. + d. If O is null, return undefined. +features: [__setter__] ---*/ var root = Object.defineProperty({}, 'target', { set: function() {} }); diff --git a/test/built-ins/Object/prototype/__lookupSetter__/lookup-own-acsr-wo-setter.js b/test/built-ins/Object/prototype/__lookupSetter__/lookup-own-acsr-wo-setter.js index 05b71e171c..2f27007e04 100644 --- a/test/built-ins/Object/prototype/__lookupSetter__/lookup-own-acsr-wo-setter.js +++ b/test/built-ins/Object/prototype/__lookupSetter__/lookup-own-acsr-wo-setter.js @@ -13,7 +13,8 @@ info: | i. If IsAccessorDescriptor(desc) is true, return desc.[[Set]]. ii. Return undefined. c. Let O be ? O.[[GetPrototypeOf]](). - d. If O is null, return undefined. + d. If O is null, return undefined. +features: [__setter__] ---*/ var root = Object.defineProperty({}, 'target', { set: function() {} }); diff --git a/test/built-ins/Object/prototype/__lookupSetter__/lookup-own-data.js b/test/built-ins/Object/prototype/__lookupSetter__/lookup-own-data.js index b334ecde69..0a0e11151e 100644 --- a/test/built-ins/Object/prototype/__lookupSetter__/lookup-own-data.js +++ b/test/built-ins/Object/prototype/__lookupSetter__/lookup-own-data.js @@ -11,7 +11,8 @@ info: | i. If IsAccessorDescriptor(desc) is true, return desc.[[Get]]. ii. Return undefined. c. Let O be ? O.[[GetPrototypeOf]](). - d. If O is null, return undefined. + d. If O is null, return undefined. +features: [__setter__] ---*/ var root = Object.defineProperty({}, 'target', { set: function() {} }); diff --git a/test/built-ins/Object/prototype/__lookupSetter__/lookup-own-get-err.js b/test/built-ins/Object/prototype/__lookupSetter__/lookup-own-get-err.js index f1df965ac9..ae286c78e5 100644 --- a/test/built-ins/Object/prototype/__lookupSetter__/lookup-own-get-err.js +++ b/test/built-ins/Object/prototype/__lookupSetter__/lookup-own-get-err.js @@ -13,8 +13,8 @@ info: | i. If IsAccessorDescriptor(desc) is true, return desc.[[Set]]. ii. Return undefined. c. Let O be ? O.[[GetPrototypeOf]](). - d. If O is null, return undefined. -features: [Proxy] + d. If O is null, return undefined. +features: [Proxy, __setter__] ---*/ var root = Object.defineProperty({}, 'target', { set: function() {} }); diff --git a/test/built-ins/Object/prototype/__lookupSetter__/lookup-own-proto-err.js b/test/built-ins/Object/prototype/__lookupSetter__/lookup-own-proto-err.js index d95a28968a..44493902a2 100644 --- a/test/built-ins/Object/prototype/__lookupSetter__/lookup-own-proto-err.js +++ b/test/built-ins/Object/prototype/__lookupSetter__/lookup-own-proto-err.js @@ -13,8 +13,8 @@ info: | i. If IsAccessorDescriptor(desc) is true, return desc.[[Get]]. ii. Return undefined. c. Let O be ? O.[[GetPrototypeOf]](). - d. If O is null, return undefined. -features: [Proxy] + d. If O is null, return undefined. +features: [Proxy, __setter__] ---*/ var root = Object.defineProperty({}, 'target', { set: function() {} }); diff --git a/test/built-ins/Object/prototype/__lookupSetter__/lookup-proto-acsr-w-setter.js b/test/built-ins/Object/prototype/__lookupSetter__/lookup-proto-acsr-w-setter.js index e2c936d52a..a72cce1d2f 100644 --- a/test/built-ins/Object/prototype/__lookupSetter__/lookup-proto-acsr-w-setter.js +++ b/test/built-ins/Object/prototype/__lookupSetter__/lookup-proto-acsr-w-setter.js @@ -13,7 +13,8 @@ info: | i. If IsAccessorDescriptor(desc) is true, return desc.[[Set]]. ii. Return undefined. c. Let O be ? O.[[GetPrototypeOf]](). - d. If O is null, return undefined. + d. If O is null, return undefined. +features: [__setter__] ---*/ var root = Object.defineProperty({}, 'target', { set: function() {} }); diff --git a/test/built-ins/Object/prototype/__lookupSetter__/lookup-proto-acsr-wo-setter.js b/test/built-ins/Object/prototype/__lookupSetter__/lookup-proto-acsr-wo-setter.js index 397c55266b..11ad80f59f 100644 --- a/test/built-ins/Object/prototype/__lookupSetter__/lookup-proto-acsr-wo-setter.js +++ b/test/built-ins/Object/prototype/__lookupSetter__/lookup-proto-acsr-wo-setter.js @@ -13,7 +13,8 @@ info: | i. If IsAccessorDescriptor(desc) is true, return desc.[[Set]]. ii. Return undefined. c. Let O be ? O.[[GetPrototypeOf]](). - d. If O is null, return undefined. + d. If O is null, return undefined. +features: [__setter__] ---*/ var root = Object.defineProperty({}, 'target', { set: function() {} }); diff --git a/test/built-ins/Object/prototype/__lookupSetter__/lookup-proto-data.js b/test/built-ins/Object/prototype/__lookupSetter__/lookup-proto-data.js index 3a9cc2cce2..6b156eebda 100644 --- a/test/built-ins/Object/prototype/__lookupSetter__/lookup-proto-data.js +++ b/test/built-ins/Object/prototype/__lookupSetter__/lookup-proto-data.js @@ -11,7 +11,8 @@ info: | i. If IsAccessorDescriptor(desc) is true, return desc.[[Get]]. ii. Return undefined. c. Let O be ? O.[[GetPrototypeOf]](). - d. If O is null, return undefined. + d. If O is null, return undefined. +features: [__setter__] ---*/ var root = Object.defineProperty({}, 'target', { set: function() {} }); diff --git a/test/built-ins/Object/prototype/__lookupSetter__/lookup-proto-get-err.js b/test/built-ins/Object/prototype/__lookupSetter__/lookup-proto-get-err.js index c662d83452..7151866d50 100644 --- a/test/built-ins/Object/prototype/__lookupSetter__/lookup-proto-get-err.js +++ b/test/built-ins/Object/prototype/__lookupSetter__/lookup-proto-get-err.js @@ -12,8 +12,8 @@ info: | i. If IsAccessorDescriptor(desc) is true, return desc.[[Set]]. ii. Return undefined. c. Let O be ? O.[[GetPrototypeOf]](). - d. If O is null, return undefined. -features: [Proxy] + d. If O is null, return undefined. +features: [Proxy, __setter__] ---*/ var root = Object.defineProperty({}, 'target', { set: function() {} }); diff --git a/test/built-ins/Object/prototype/__lookupSetter__/lookup-proto-proto-err.js b/test/built-ins/Object/prototype/__lookupSetter__/lookup-proto-proto-err.js index a7b8735c35..32d003264e 100644 --- a/test/built-ins/Object/prototype/__lookupSetter__/lookup-proto-proto-err.js +++ b/test/built-ins/Object/prototype/__lookupSetter__/lookup-proto-proto-err.js @@ -12,8 +12,8 @@ info: | i. If IsAccessorDescriptor(desc) is true, return desc.[[Set]]. ii. Return undefined. c. Let O be ? O.[[GetPrototypeOf]](). - d. If O is null, return undefined. -features: [Proxy] + d. If O is null, return undefined. +features: [Proxy, __setter__] ---*/ var root = Object.defineProperty({}, 'target', { set: function() {} }); diff --git a/test/built-ins/Object/prototype/__lookupSetter__/name.js b/test/built-ins/Object/prototype/__lookupSetter__/name.js index 5b769fed06..6a692ab567 100644 --- a/test/built-ins/Object/prototype/__lookupSetter__/name.js +++ b/test/built-ins/Object/prototype/__lookupSetter__/name.js @@ -17,6 +17,7 @@ info: | object, if it exists, has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: true }. includes: [propertyHelper.js] +features: [__setter__] ---*/ verifyProperty(Object.prototype.__lookupSetter__, "name", { diff --git a/test/built-ins/Object/prototype/__lookupSetter__/prop-desc.js b/test/built-ins/Object/prototype/__lookupSetter__/prop-desc.js index c1211022a5..a3c9d4a48d 100644 --- a/test/built-ins/Object/prototype/__lookupSetter__/prop-desc.js +++ b/test/built-ins/Object/prototype/__lookupSetter__/prop-desc.js @@ -8,6 +8,7 @@ info: | B.2 has the attributes { [[Writable]]: true, [[Enumerable]]: false, [[Configurable]]: true } unless otherwise specified. includes: [propertyHelper.js] +features: [__setter__] ---*/ verifyProperty(Object.prototype, "__lookupSetter__", { diff --git a/test/built-ins/Object/prototype/__lookupSetter__/this-non-obj.js b/test/built-ins/Object/prototype/__lookupSetter__/this-non-obj.js index 725d5bdcbe..cf509d144f 100644 --- a/test/built-ins/Object/prototype/__lookupSetter__/this-non-obj.js +++ b/test/built-ins/Object/prototype/__lookupSetter__/this-non-obj.js @@ -5,6 +5,7 @@ esid: sec-additional-properties-of-the-object.prototype-object description: Behavior when "this" value is not Object-coercible info: | 1. Let O be ? ToObject(this value). +features: [__setter__] ---*/ var __lookupSetter__ = Object.prototype.__lookupSetter__; diff --git a/test/built-ins/Object/prototype/__proto__/get-abrupt.js b/test/built-ins/Object/prototype/__proto__/get-abrupt.js index b835410f1e..269d4337d2 100644 --- a/test/built-ins/Object/prototype/__proto__/get-abrupt.js +++ b/test/built-ins/Object/prototype/__proto__/get-abrupt.js @@ -7,7 +7,7 @@ description: Abrupt completion from [[GetPrototypeOf]] info: | 1. Let O be ? ToObject(this value). 2. Return ? O.[[GetPrototypeOf]](). -features: [Proxy] +features: [Proxy, __proto__] ---*/ var get = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').get; diff --git a/test/built-ins/Object/prototype/__proto__/get-fn-name.js b/test/built-ins/Object/prototype/__proto__/get-fn-name.js index 862a96102b..293f06718e 100644 --- a/test/built-ins/Object/prototype/__proto__/get-fn-name.js +++ b/test/built-ins/Object/prototype/__proto__/get-fn-name.js @@ -11,6 +11,7 @@ description: > properties have "get " or "set " prepended to the property name string. includes: [propertyHelper.js] +features: [__proto__] ---*/ var descriptor = Object.getOwnPropertyDescriptor(Object.prototype, "__proto__"); diff --git a/test/built-ins/Object/prototype/__proto__/get-ordinary-obj.js b/test/built-ins/Object/prototype/__proto__/get-ordinary-obj.js index 8ed004455c..83f70d03db 100644 --- a/test/built-ins/Object/prototype/__proto__/get-ordinary-obj.js +++ b/test/built-ins/Object/prototype/__proto__/get-ordinary-obj.js @@ -7,6 +7,7 @@ description: Normal completion from ordinary object's [[GetPrototypeOf]] info: | 1. Let O be ? ToObject(this value). 2. Return ? O.[[GetPrototypeOf]](). +features: [__proto__] ---*/ var get = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').get; diff --git a/test/built-ins/Object/prototype/__proto__/get-to-obj-abrupt.js b/test/built-ins/Object/prototype/__proto__/get-to-obj-abrupt.js index e30b60f072..b8df75e0d7 100644 --- a/test/built-ins/Object/prototype/__proto__/get-to-obj-abrupt.js +++ b/test/built-ins/Object/prototype/__proto__/get-to-obj-abrupt.js @@ -6,6 +6,7 @@ es6id: B.2.2.1 description: Abrupt completion from ToObject info: | 1. Let O be ? ToObject(this value). +features: [__proto__] ---*/ var get = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').get; diff --git a/test/built-ins/Object/prototype/__proto__/prop-desc.js b/test/built-ins/Object/prototype/__proto__/prop-desc.js index 3e8d17336f..6f21ea7829 100644 --- a/test/built-ins/Object/prototype/__proto__/prop-desc.js +++ b/test/built-ins/Object/prototype/__proto__/prop-desc.js @@ -9,6 +9,7 @@ info: | [[Enumerable]]: false, [[Configurable]]: true }. The [[Get]] and [[Set]] attributes are defined as follows: includes: [propertyHelper.js] +features: [__proto__] ---*/ var desc = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__'); diff --git a/test/built-ins/Object/prototype/__proto__/set-abrupt.js b/test/built-ins/Object/prototype/__proto__/set-abrupt.js index 484674947d..0437ef55da 100644 --- a/test/built-ins/Object/prototype/__proto__/set-abrupt.js +++ b/test/built-ins/Object/prototype/__proto__/set-abrupt.js @@ -7,7 +7,7 @@ description: Abrupt completion from [[SetPrototypeOf]] info: | [...] 4. Let status be ? O.[[SetPrototypeOf]](proto). -features: [Proxy] +features: [Proxy, __proto__] ---*/ var thrower = function() { diff --git a/test/built-ins/Object/prototype/__proto__/set-cycle-shadowed.js b/test/built-ins/Object/prototype/__proto__/set-cycle-shadowed.js index 903a86ef86..47c4a57fef 100644 --- a/test/built-ins/Object/prototype/__proto__/set-cycle-shadowed.js +++ b/test/built-ins/Object/prototype/__proto__/set-cycle-shadowed.js @@ -23,6 +23,7 @@ info: | i. If the [[GetPrototypeOf]] internal method of p is not the ordinary object internal method defined in 9.1.1, let done be true. ii. Else, let p be the value of p's [[Prototype]] internal slot. +features: [__proto__] ---*/ var root = {}; diff --git a/test/built-ins/Object/prototype/__proto__/set-cycle.js b/test/built-ins/Object/prototype/__proto__/set-cycle.js index 3721bbd9c9..7e76fbdcee 100644 --- a/test/built-ins/Object/prototype/__proto__/set-cycle.js +++ b/test/built-ins/Object/prototype/__proto__/set-cycle.js @@ -21,6 +21,7 @@ info: | i. If the [[GetPrototypeOf]] internal method of p is not the ordinary object internal method defined in 9.1.1, let done be true. ii. Else, let p be the value of p's [[Prototype]] internal slot. +features: [__proto__] ---*/ var root = {}; diff --git a/test/built-ins/Object/prototype/__proto__/set-fn-name.js b/test/built-ins/Object/prototype/__proto__/set-fn-name.js index f4c2782ba0..3edc0d535b 100644 --- a/test/built-ins/Object/prototype/__proto__/set-fn-name.js +++ b/test/built-ins/Object/prototype/__proto__/set-fn-name.js @@ -11,6 +11,7 @@ description: > properties have "get " or "set " prepended to the property name string. includes: [propertyHelper.js] +features: [__proto__] ---*/ var descriptor = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__'); diff --git a/test/built-ins/Object/prototype/__proto__/set-immutable.js b/test/built-ins/Object/prototype/__proto__/set-immutable.js index bcec88a409..c3f93a7c79 100644 --- a/test/built-ins/Object/prototype/__proto__/set-immutable.js +++ b/test/built-ins/Object/prototype/__proto__/set-immutable.js @@ -7,6 +7,7 @@ info: | [...] 4. Let status be ? O.[[SetPrototypeOf]](proto). 5. If status is false, throw a TypeError exception. +features: [__proto__] ---*/ Object.prototype.__proto__ = null; diff --git a/test/built-ins/Object/prototype/__proto__/set-invalid-value.js b/test/built-ins/Object/prototype/__proto__/set-invalid-value.js index 73397a4fa2..345f2a5c20 100644 --- a/test/built-ins/Object/prototype/__proto__/set-invalid-value.js +++ b/test/built-ins/Object/prototype/__proto__/set-invalid-value.js @@ -7,7 +7,7 @@ description: Called with a value that is neither an Object nor Null info: | 1. Let O be ? RequireObjectCoercible(this value). 2. If Type(proto) is neither Object nor Null, return undefined. -features: [Symbol] +features: [Symbol, __proto__] ---*/ var set = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set; diff --git a/test/built-ins/Object/prototype/__proto__/set-non-extensible.js b/test/built-ins/Object/prototype/__proto__/set-non-extensible.js index 1418ac9247..c14e27d5c7 100644 --- a/test/built-ins/Object/prototype/__proto__/set-non-extensible.js +++ b/test/built-ins/Object/prototype/__proto__/set-non-extensible.js @@ -16,6 +16,7 @@ info: | 3. Let current be the value of the [[Prototype]] internal slot of O. 4. If SameValue(V, current) is true, return true. 5. If extensible is false, return false. +features: [__proto__] ---*/ var proto = {}; diff --git a/test/built-ins/Object/prototype/__proto__/set-non-obj-coercible.js b/test/built-ins/Object/prototype/__proto__/set-non-obj-coercible.js index 16cde48a2b..084ae2c301 100644 --- a/test/built-ins/Object/prototype/__proto__/set-non-obj-coercible.js +++ b/test/built-ins/Object/prototype/__proto__/set-non-obj-coercible.js @@ -6,6 +6,7 @@ es6id: B.2.2.1 description: Called on a value that is not object-coercible info: | 1. Let O be ? RequireObjectCoercible(this value). +features: [__proto__] ---*/ var set = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set; diff --git a/test/built-ins/Object/prototype/__proto__/set-non-object.js b/test/built-ins/Object/prototype/__proto__/set-non-object.js index 446c8be2c7..dd2d32a647 100644 --- a/test/built-ins/Object/prototype/__proto__/set-non-object.js +++ b/test/built-ins/Object/prototype/__proto__/set-non-object.js @@ -8,7 +8,7 @@ info: | 1. Let O be ? RequireObjectCoercible(this value). 2. If Type(proto) is neither Object nor Null, return undefined. 3. If Type(O) is not Object, return undefined. -features: [Symbol] +features: [Symbol, __proto__] ---*/ var set = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set; diff --git a/test/built-ins/Object/prototype/__proto__/set-ordinary-obj.js b/test/built-ins/Object/prototype/__proto__/set-ordinary-obj.js index c753c66a65..f7b1f6301b 100644 --- a/test/built-ins/Object/prototype/__proto__/set-ordinary-obj.js +++ b/test/built-ins/Object/prototype/__proto__/set-ordinary-obj.js @@ -9,6 +9,7 @@ info: | 4. Let status be ? O.[[SetPrototypeOf]](proto). 5. If status is false, throw a TypeError exception. 6. Return undefined. +features: [__proto__] ---*/ var set = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set; diff --git a/test/built-ins/Proxy/set/call-parameters-prototype-dunder-proto.js b/test/built-ins/Proxy/set/call-parameters-prototype-dunder-proto.js index 5f0fbbd69c..967c8b52bb 100644 --- a/test/built-ins/Proxy/set/call-parameters-prototype-dunder-proto.js +++ b/test/built-ins/Proxy/set/call-parameters-prototype-dunder-proto.js @@ -26,7 +26,7 @@ info: | ... 12. Return true. includes: [proxyTrapsHelper.js] -features: [Proxy] +features: [Proxy, __proto__] ---*/ var _handler, _target, _prop, _value, _receiver; diff --git a/test/language/expressions/class/poisoned-underscore-proto.js b/test/language/expressions/class/poisoned-underscore-proto.js index e9e333fade..85225628b7 100644 --- a/test/language/expressions/class/poisoned-underscore-proto.js +++ b/test/language/expressions/class/poisoned-underscore-proto.js @@ -14,7 +14,7 @@ info: | [...] 4. Set obj.[[Prototype]] to proto. -features: [class] +features: [class, __proto__] ---*/ Object.defineProperty(Object.prototype, '__proto__', { diff --git a/test/language/expressions/object/__proto__-permitted-dup.js b/test/language/expressions/object/__proto__-permitted-dup.js index 0454e577b6..6c3ea62eac 100644 --- a/test/language/expressions/object/__proto__-permitted-dup.js +++ b/test/language/expressions/object/__proto__-permitted-dup.js @@ -13,7 +13,7 @@ info: | any duplicate entries for "__proto__" and at least two of those entries were obtained from productions of the form PropertyDefinition : PropertyName : AssignmentExpression . -features: [generators, async-functions, async-iteration] +features: [generators, async-functions, async-iteration, __proto__] ---*/ var obj = {