add feature tags

This commit is contained in:
Gus Caplan 2020-09-30 17:52:36 -05:00 committed by Rick Waldron
parent 1d31345a70
commit 6aa8338d23
73 changed files with 97 additions and 41 deletions

View File

@ -279,6 +279,9 @@ Uint32Array
Uint8ClampedArray
WeakMap
WeakSet
__proto__
__getter__
__setter__
## Test-Harness Features
#

View File

@ -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() {};

View File

@ -11,6 +11,7 @@ info: |
5. Perform ? DefinePropertyOrThrow(O, key, desc).
6. Return undefined.
includes: [propertyHelper.js]
features: [__getter__]
---*/
var subject = {};

View File

@ -11,6 +11,7 @@ info: |
5. Perform ? DefinePropertyOrThrow(O, key, desc).
6. Return undefined.
includes: [propertyHelper.js]
features: [__getter__]
---*/
var subject = {};

View File

@ -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() {};

View File

@ -6,6 +6,7 @@ description: Behavior when "this" value is not extensible
info: |
[...]
5. Perform ? DefinePropertyOrThrow(O, key, desc).
features: [__getter__]
---*/
var noop = function() {};

View File

@ -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 = {};

View File

@ -6,6 +6,7 @@ description: Behavior when property key cannot be derived
info: |
[...]
4. Let key be ? ToPropertyKey(P).
features: [__getter__]
---*/
var noop = function() {};

View File

@ -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", {

View File

@ -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", {

View File

@ -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__", {

View File

@ -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__;

View File

@ -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() {};

View File

@ -11,6 +11,7 @@ info: |
5. Perform ? DefinePropertyOrThrow(O, key, desc).
6. Return undefined.
includes: [propertyHelper.js]
features: [__setter__]
---*/
var subject = {};

View File

@ -11,6 +11,7 @@ info: |
5. Perform ? DefinePropertyOrThrow(O, key, desc).
6. Return undefined.
includes: [propertyHelper.js]
features: [__setter__]
---*/
var subject = {};

View File

@ -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() {};

View File

@ -6,6 +6,7 @@ description: Behavior when "this" value is not extensible
info: |
[...]
5. Perform ? DefinePropertyOrThrow(O, key, desc).
features: [__setter__]
---*/
var noop = function() {};

View File

@ -6,6 +6,7 @@ description: Behavior when property key cannot be derived
info: |
[...]
4. Let key be ? ToPropertyKey(P).
features: [__setter__]
---*/
var noop = function() {};

View File

@ -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", {

View File

@ -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", {

View File

@ -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__", {

View File

@ -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 = {};

View File

@ -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__;

View File

@ -6,6 +6,7 @@ description: Behavior when property key cannot be derived
info: |
[...]
2. Let key be ? ToPropertyKey(P).
features: [__getter__]
---*/
var subject = {};

View File

@ -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", {

View File

@ -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 = {};

View File

@ -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() {} });

View File

@ -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() {} });

View File

@ -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() {} });

View File

@ -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() {} });

View File

@ -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() {} });

View File

@ -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() {} });

View File

@ -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() {} });

View File

@ -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() {} });

View File

@ -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() {} });

View File

@ -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() {} });

View File

@ -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", {

View File

@ -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__", {

View File

@ -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__;

View File

@ -6,6 +6,7 @@ description: Behavior when property key cannot be derived
info: |
[...]
2. Let key be ? ToPropertyKey(P).
features: [__setter__]
---*/
var subject = {};

View File

@ -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", {

View File

@ -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 = {};

View File

@ -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() {} });

View File

@ -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() {} });

View File

@ -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() {} });

View File

@ -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() {} });

View File

@ -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() {} });

View File

@ -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() {} });

View File

@ -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() {} });

View File

@ -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() {} });

View File

@ -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() {} });

View File

@ -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() {} });

View File

@ -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", {

View File

@ -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__", {

View File

@ -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__;

View File

@ -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;

View File

@ -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__");

View File

@ -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;

View File

@ -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;

View File

@ -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__');

View File

@ -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() {

View File

@ -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 = {};

View File

@ -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 = {};

View File

@ -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__');

View File

@ -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;

View File

@ -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;

View File

@ -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 = {};

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -26,7 +26,7 @@ info: |
...
12. Return true.
includes: [proxyTrapsHelper.js]
features: [Proxy]
features: [Proxy, __proto__]
---*/
var _handler, _target, _prop, _value, _receiver;

View File

@ -14,7 +14,7 @@ info: |
[...]
4. Set obj.[[Prototype]] to proto.
features: [class]
features: [class, __proto__]
---*/
Object.defineProperty(Object.prototype, '__proto__', {

View File

@ -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 = {