diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index a839f18332a..a3319864aba 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -380,6 +380,7 @@ includes: [asyncHelpers.js]
asyncTest(async function() {
await assert.throwsAsync(TypeError, () => Array.fromAsync([], "not a function"), "Array.fromAsync should reject asynchronously");
});
+```
## A Note on Python-based tools
diff --git a/features.txt b/features.txt
index 7742bd3fe84..a398ae2e15d 100644
--- a/features.txt
+++ b/features.txt
@@ -114,6 +114,7 @@ ArrayBuffer
Array.prototype.at
Array.prototype.flat
Array.prototype.flatMap
+Array.prototype.includes
Array.prototype.values
arrow-function
async-iteration
@@ -148,6 +149,7 @@ destructuring-assignment
destructuring-binding
dynamic-import
error-cause
+exponentiation
export-star-as-namespace-from-module # https://github.com/tc39/ecma262/pull/1174
FinalizationRegistry
for-in-order
diff --git a/src/assignment-target-type/updateexpression-star-star-exponentiationexpression-0.case b/src/assignment-target-type/updateexpression-star-star-exponentiationexpression-0.case
index 800f8afe823..675e2e68784 100644
--- a/src/assignment-target-type/updateexpression-star-star-exponentiationexpression-0.case
+++ b/src/assignment-target-type/updateexpression-star-star-exponentiationexpression-0.case
@@ -9,6 +9,7 @@ info: |
UpdateExpression ** ExponentiationExpression
Static Semantics AssignmentTargetType, Return invalid.
template: invalid
+features: [exponentiation]
negative:
phase: parse
type: SyntaxError
diff --git a/src/assignment-target-type/updateexpression-star-star-exponentiationexpression-1.case b/src/assignment-target-type/updateexpression-star-star-exponentiationexpression-1.case
index fdbb6f50adf..6bd8c1050e7 100644
--- a/src/assignment-target-type/updateexpression-star-star-exponentiationexpression-1.case
+++ b/src/assignment-target-type/updateexpression-star-star-exponentiationexpression-1.case
@@ -9,6 +9,7 @@ info: |
UpdateExpression ** ExponentiationExpression
Static Semantics AssignmentTargetType, Return invalid.
template: invalid
+features: [exponentiation]
negative:
phase: parse
type: SyntaxError
diff --git a/src/assignment-target-type/updateexpression-star-star-exponentiationexpression-2.case b/src/assignment-target-type/updateexpression-star-star-exponentiationexpression-2.case
index 92c51c0e5c5..65910c5e973 100644
--- a/src/assignment-target-type/updateexpression-star-star-exponentiationexpression-2.case
+++ b/src/assignment-target-type/updateexpression-star-star-exponentiationexpression-2.case
@@ -9,6 +9,7 @@ info: |
UpdateExpression ** ExponentiationExpression
Static Semantics AssignmentTargetType, Return invalid.
template: invalid
+features: [exponentiation]
negative:
phase: parse
type: SyntaxError
diff --git a/src/compound-assignment-private/exp.case b/src/compound-assignment-private/exp.case
index abe58ceaf6e..c7a41581cb2 100644
--- a/src/compound-assignment-private/exp.case
+++ b/src/compound-assignment-private/exp.case
@@ -4,6 +4,7 @@
/*---
template: default
desc: Compound exponentiation assignment with target being a private reference
+features: [exponentiation]
---*/
//- lhs
diff --git a/src/computed-property-names/computed-property-name-from-exponetiation-expression.case b/src/computed-property-names/computed-property-name-from-exponetiation-expression.case
index 897dd032c4b..544fce63a88 100644
--- a/src/computed-property-names/computed-property-name-from-exponetiation-expression.case
+++ b/src/computed-property-names/computed-property-name-from-exponetiation-expression.case
@@ -4,7 +4,7 @@
/*---
desc: Computed property name from exponentiation expression
template: evaluation
-features: [computed-property-names]
+features: [computed-property-names, exponentiation]
---*/
//- ComputedPropertyName
diff --git a/src/computed-property-names/computed-property-name-from-math.case b/src/computed-property-names/computed-property-name-from-math.case
index 8edd0cbf94c..b6b8c214b35 100644
--- a/src/computed-property-names/computed-property-name-from-math.case
+++ b/src/computed-property-names/computed-property-name-from-math.case
@@ -4,7 +4,7 @@
/*---
desc: Computed property name from math
template: evaluation
-features: [computed-property-names]
+features: [computed-property-names, exponentiation]
---*/
//- ComputedPropertyName
1 + 2 - 3 * 4 / 5 ** 6
diff --git a/test/built-ins/Array/prototype/includes/call-with-boolean.js b/test/built-ins/Array/prototype/includes/call-with-boolean.js
index 695c249baa5..30b214243e6 100644
--- a/test/built-ins/Array/prototype/includes/call-with-boolean.js
+++ b/test/built-ins/Array/prototype/includes/call-with-boolean.js
@@ -4,6 +4,7 @@
/*---
esid: sec-array.prototype.includes
description: Array.prototype.includes applied to boolean primitive
+features: [Array.prototype.includes]
---*/
assert.sameValue(Array.prototype.includes.call(true), false, 'Array.prototype.includes.call(true) must return false');
diff --git a/test/built-ins/Array/prototype/includes/fromIndex-equal-or-greater-length-returns-false.js b/test/built-ins/Array/prototype/includes/fromIndex-equal-or-greater-length-returns-false.js
index 84bb4526d8e..fbb10381b1b 100644
--- a/test/built-ins/Array/prototype/includes/fromIndex-equal-or-greater-length-returns-false.js
+++ b/test/built-ins/Array/prototype/includes/fromIndex-equal-or-greater-length-returns-false.js
@@ -16,6 +16,7 @@ info: |
7. Repeat, while k < len
...
8. Return false.
+features: [Array.prototype.includes]
---*/
var sample = [7, 7, 7, 7];
diff --git a/test/built-ins/Array/prototype/includes/fromIndex-infinity.js b/test/built-ins/Array/prototype/includes/fromIndex-infinity.js
index 0c5d3bb270b..86d0c76595e 100644
--- a/test/built-ins/Array/prototype/includes/fromIndex-infinity.js
+++ b/test/built-ins/Array/prototype/includes/fromIndex-infinity.js
@@ -18,6 +18,7 @@ info: |
7. Repeat, while k < len
...
8. Return false.
+features: [Array.prototype.includes]
---*/
var sample = [42, 43, 43, 41];
diff --git a/test/built-ins/Array/prototype/includes/fromIndex-minus-zero.js b/test/built-ins/Array/prototype/includes/fromIndex-minus-zero.js
index 7a6e0087a67..9751a40759f 100644
--- a/test/built-ins/Array/prototype/includes/fromIndex-minus-zero.js
+++ b/test/built-ins/Array/prototype/includes/fromIndex-minus-zero.js
@@ -13,6 +13,7 @@ info: |
...
7. Repeat, while k < len
...
+features: [Array.prototype.includes]
---*/
var sample = [42, 43];
diff --git a/test/built-ins/Array/prototype/includes/get-prop.js b/test/built-ins/Array/prototype/includes/get-prop.js
index bea3d5a9afe..1505b7719b2 100644
--- a/test/built-ins/Array/prototype/includes/get-prop.js
+++ b/test/built-ins/Array/prototype/includes/get-prop.js
@@ -12,7 +12,7 @@ info: |
a. Let elementK be the result of ? Get(O, ! ToString(k)).
...
includes: [compareArray.js]
-features: [Proxy]
+features: [Proxy, Array.prototype.includes]
---*/
var calls;
diff --git a/test/built-ins/Array/prototype/includes/length-boundaries.js b/test/built-ins/Array/prototype/includes/length-boundaries.js
index 84ac9579c47..bffb3996419 100644
--- a/test/built-ins/Array/prototype/includes/length-boundaries.js
+++ b/test/built-ins/Array/prototype/includes/length-boundaries.js
@@ -17,6 +17,7 @@ info: |
2. If len ≤ +0, return +0.
3. If len is +∞, return 2**53-1.
4. Return min(len, 2**53-1).
+features: [Array.prototype.includes]
---*/
var obj = {
diff --git a/test/built-ins/Array/prototype/includes/length-zero-returns-false.js b/test/built-ins/Array/prototype/includes/length-zero-returns-false.js
index 7e247c26c69..098fe454771 100644
--- a/test/built-ins/Array/prototype/includes/length-zero-returns-false.js
+++ b/test/built-ins/Array/prototype/includes/length-zero-returns-false.js
@@ -11,6 +11,7 @@ info: |
2. Let len be ? ToLength(? Get(O, "length")).
3. If len is 0, return false.
...
+features: [Array.prototype.includes]
---*/
var calls = 0;
diff --git a/test/built-ins/Array/prototype/includes/length.js b/test/built-ins/Array/prototype/includes/length.js
index 0abb6d35aef..259555a2ef5 100644
--- a/test/built-ins/Array/prototype/includes/length.js
+++ b/test/built-ins/Array/prototype/includes/length.js
@@ -20,6 +20,7 @@ info: |
object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
[[Configurable]]: true }.
includes: [propertyHelper.js]
+features: [Array.prototype.includes]
---*/
assert.sameValue(Array.prototype.includes.length, 1);
diff --git a/test/built-ins/Array/prototype/includes/name.js b/test/built-ins/Array/prototype/includes/name.js
index 4391eb02f57..daf17197181 100644
--- a/test/built-ins/Array/prototype/includes/name.js
+++ b/test/built-ins/Array/prototype/includes/name.js
@@ -17,6 +17,7 @@ info: |
object, if it exists, has the attributes { [[Writable]]: false,
[[Enumerable]]: false, [[Configurable]]: true }.
includes: [propertyHelper.js]
+features: [Array.prototype.includes]
---*/
assert.sameValue(Array.prototype.includes.name, "includes");
diff --git a/test/built-ins/Array/prototype/includes/no-arg.js b/test/built-ins/Array/prototype/includes/no-arg.js
index 8c975a642fb..0480fddddd1 100644
--- a/test/built-ins/Array/prototype/includes/no-arg.js
+++ b/test/built-ins/Array/prototype/includes/no-arg.js
@@ -13,6 +13,7 @@ info: |
b. If SameValueZero(searchElement, elementK) is true, return true.
c. Increase k by 1.
...
+features: [Array.prototype.includes]
---*/
assert.sameValue([0].includes(), false, "[0].includes()");
diff --git a/test/built-ins/Array/prototype/includes/not-a-constructor.js b/test/built-ins/Array/prototype/includes/not-a-constructor.js
index d5052d19fb4..81aca092d0b 100644
--- a/test/built-ins/Array/prototype/includes/not-a-constructor.js
+++ b/test/built-ins/Array/prototype/includes/not-a-constructor.js
@@ -18,7 +18,7 @@ info: |
7. If IsConstructor(constructor) is false, throw a TypeError exception.
...
includes: [isConstructor.js]
-features: [Reflect.construct, arrow-function]
+features: [Reflect.construct, arrow-function, Array.prototype.includes]
---*/
assert.sameValue(
diff --git a/test/built-ins/Array/prototype/includes/prop-desc.js b/test/built-ins/Array/prototype/includes/prop-desc.js
index b48a8955fe1..0d76e1cabad 100644
--- a/test/built-ins/Array/prototype/includes/prop-desc.js
+++ b/test/built-ins/Array/prototype/includes/prop-desc.js
@@ -9,6 +9,7 @@ info: |
and in Annex B.2 has the attributes { [[Writable]]: true,
[[Enumerable]]: false, [[Configurable]]: true } unless otherwise specified.
includes: [propertyHelper.js]
+features: [Array.prototype.includes]
---*/
verifyNotEnumerable(Array.prototype, "includes");
diff --git a/test/built-ins/Array/prototype/includes/return-abrupt-get-length.js b/test/built-ins/Array/prototype/includes/return-abrupt-get-length.js
index 19ea655e2c7..ef05100af9c 100644
--- a/test/built-ins/Array/prototype/includes/return-abrupt-get-length.js
+++ b/test/built-ins/Array/prototype/includes/return-abrupt-get-length.js
@@ -10,6 +10,7 @@ info: |
...
2. Let len be ? ToLength(? Get(O, "length")).
...
+features: [Array.prototype.includes]
---*/
var obj = {};
diff --git a/test/built-ins/Array/prototype/includes/return-abrupt-get-prop.js b/test/built-ins/Array/prototype/includes/return-abrupt-get-prop.js
index 7f8e2b99da7..87480f1c94c 100644
--- a/test/built-ins/Array/prototype/includes/return-abrupt-get-prop.js
+++ b/test/built-ins/Array/prototype/includes/return-abrupt-get-prop.js
@@ -11,6 +11,7 @@ info: |
7. Repeat, while k < len
a. Let elementK be the result of ? Get(O, ! ToString(k)).
...
+features: [Array.prototype.includes]
---*/
var stopped = 0;
diff --git a/test/built-ins/Array/prototype/includes/return-abrupt-tointeger-fromindex-symbol.js b/test/built-ins/Array/prototype/includes/return-abrupt-tointeger-fromindex-symbol.js
index 9321f8ade52..3e168d5391a 100644
--- a/test/built-ins/Array/prototype/includes/return-abrupt-tointeger-fromindex-symbol.js
+++ b/test/built-ins/Array/prototype/includes/return-abrupt-tointeger-fromindex-symbol.js
@@ -11,7 +11,7 @@ info: |
4. Let n be ? ToInteger(fromIndex). (If fromIndex is undefined, this step
produces the value 0.)
...
-features: [Symbol]
+features: [Symbol, Array.prototype.includes]
---*/
var fromIndex = Symbol("1");
diff --git a/test/built-ins/Array/prototype/includes/return-abrupt-tointeger-fromindex.js b/test/built-ins/Array/prototype/includes/return-abrupt-tointeger-fromindex.js
index 4ef4af35971..e79355f35e4 100644
--- a/test/built-ins/Array/prototype/includes/return-abrupt-tointeger-fromindex.js
+++ b/test/built-ins/Array/prototype/includes/return-abrupt-tointeger-fromindex.js
@@ -11,6 +11,7 @@ info: |
4. Let n be ? ToInteger(fromIndex). (If fromIndex is undefined, this step
produces the value 0.)
...
+features: [Array.prototype.includes]
---*/
var fromIndex = {
diff --git a/test/built-ins/Array/prototype/includes/return-abrupt-tonumber-length-symbol.js b/test/built-ins/Array/prototype/includes/return-abrupt-tonumber-length-symbol.js
index 2c412574069..64c22ecc2a0 100644
--- a/test/built-ins/Array/prototype/includes/return-abrupt-tonumber-length-symbol.js
+++ b/test/built-ins/Array/prototype/includes/return-abrupt-tonumber-length-symbol.js
@@ -10,7 +10,7 @@ info: |
...
2. Let len be ? ToLength(? Get(O, "length")).
...
-features: [Symbol]
+features: [Symbol, Array.prototype.includes]
---*/
var obj = {
diff --git a/test/built-ins/Array/prototype/includes/return-abrupt-tonumber-length.js b/test/built-ins/Array/prototype/includes/return-abrupt-tonumber-length.js
index dcd2d50b352..f140713f6bb 100644
--- a/test/built-ins/Array/prototype/includes/return-abrupt-tonumber-length.js
+++ b/test/built-ins/Array/prototype/includes/return-abrupt-tonumber-length.js
@@ -10,6 +10,7 @@ info: |
...
2. Let len be ? ToLength(? Get(O, "length")).
...
+features: [Array.prototype.includes]
---*/
var obj1 = {
diff --git a/test/built-ins/Array/prototype/includes/samevaluezero.js b/test/built-ins/Array/prototype/includes/samevaluezero.js
index 2481b651c0e..557da5b7b1b 100644
--- a/test/built-ins/Array/prototype/includes/samevaluezero.js
+++ b/test/built-ins/Array/prototype/includes/samevaluezero.js
@@ -13,6 +13,7 @@ info: |
b. If SameValueZero(searchElement, elementK) is true, return true.
c. Increase k by 1.
...
+features: [Array.prototype.includes]
---*/
var sample = [42, 0, 1, NaN];
diff --git a/test/built-ins/Array/prototype/includes/search-found-returns-true.js b/test/built-ins/Array/prototype/includes/search-found-returns-true.js
index e23e92c46fe..8239b9076b5 100644
--- a/test/built-ins/Array/prototype/includes/search-found-returns-true.js
+++ b/test/built-ins/Array/prototype/includes/search-found-returns-true.js
@@ -18,7 +18,7 @@ info: |
b. If SameValueZero(searchElement, elementK) is true, return true.
c. Increase k by 1.
...
-features: [Symbol]
+features: [Symbol, Array.prototype.includes]
---*/
var symbol = Symbol("1");
diff --git a/test/built-ins/Array/prototype/includes/search-not-found-returns-false.js b/test/built-ins/Array/prototype/includes/search-not-found-returns-false.js
index 7d98d2a68bc..79c0ec0abe2 100644
--- a/test/built-ins/Array/prototype/includes/search-not-found-returns-false.js
+++ b/test/built-ins/Array/prototype/includes/search-not-found-returns-false.js
@@ -18,7 +18,7 @@ info: |
b. If SameValueZero(searchElement, elementK) is true, return true.
c. Increase k by 1.
8. Return false.
-features: [Symbol]
+features: [Symbol, Array.prototype.includes]
---*/
assert.sameValue([42].includes(43), false, "43");
diff --git a/test/built-ins/Array/prototype/includes/sparse.js b/test/built-ins/Array/prototype/includes/sparse.js
index 751c2c928ed..e50d8bcf1c1 100644
--- a/test/built-ins/Array/prototype/includes/sparse.js
+++ b/test/built-ins/Array/prototype/includes/sparse.js
@@ -18,6 +18,7 @@ info: |
b. If SameValueZero(searchElement, elementK) is true, return true.
c. Increase k by 1.
...
+features: [Array.prototype.includes]
---*/
assert.sameValue(
diff --git a/test/built-ins/Array/prototype/includes/this-is-not-object.js b/test/built-ins/Array/prototype/includes/this-is-not-object.js
index 895e17c964f..e073262d67d 100644
--- a/test/built-ins/Array/prototype/includes/this-is-not-object.js
+++ b/test/built-ins/Array/prototype/includes/this-is-not-object.js
@@ -9,6 +9,7 @@ info: |
1. Let O be ? ToObject(this value).
...
+features: [Array.prototype.includes]
---*/
var includes = Array.prototype.includes;
diff --git a/test/built-ins/Array/prototype/includes/tointeger-fromindex.js b/test/built-ins/Array/prototype/includes/tointeger-fromindex.js
index d8d23229603..fb34d328078 100644
--- a/test/built-ins/Array/prototype/includes/tointeger-fromindex.js
+++ b/test/built-ins/Array/prototype/includes/tointeger-fromindex.js
@@ -18,6 +18,7 @@ info: |
b. If SameValueZero(searchElement, elementK) is true, return true.
c. Increase k by 1.
8. Return false.
+features: [Array.prototype.includes]
---*/
var obj = {
diff --git a/test/built-ins/Array/prototype/includes/tolength-length.js b/test/built-ins/Array/prototype/includes/tolength-length.js
index c1e82b9da58..bbe9d4be51a 100644
--- a/test/built-ins/Array/prototype/includes/tolength-length.js
+++ b/test/built-ins/Array/prototype/includes/tolength-length.js
@@ -17,6 +17,7 @@ info: |
2. If len ≤ +0, return +0.
3. If len is +∞, return 253-1.
4. Return min(len, 253-1).
+features: [Array.prototype.includes]
---*/
var obj = {
diff --git a/test/built-ins/Array/prototype/includes/using-fromindex.js b/test/built-ins/Array/prototype/includes/using-fromindex.js
index c6e3f1a6464..472ab2ccc89 100644
--- a/test/built-ins/Array/prototype/includes/using-fromindex.js
+++ b/test/built-ins/Array/prototype/includes/using-fromindex.js
@@ -18,6 +18,7 @@ info: |
b. If SameValueZero(searchElement, elementK) is true, return true.
c. Increase k by 1.
...
+features: [Array.prototype.includes]
---*/
var sample = ["a", "b", "c"];
diff --git a/test/built-ins/Array/prototype/includes/values-are-not-cached.js b/test/built-ins/Array/prototype/includes/values-are-not-cached.js
index a44f374f0ca..1f039ddb7d1 100644
--- a/test/built-ins/Array/prototype/includes/values-are-not-cached.js
+++ b/test/built-ins/Array/prototype/includes/values-are-not-cached.js
@@ -11,6 +11,7 @@ info: |
7. Repeat, while k < len
a. Let elementK be the result of ? Get(O, ! ToString(k)).
...
+features: [Array.prototype.includes]
---*/
function getCleanObj() {
diff --git a/test/built-ins/Array/prototype/methods-called-as-functions.js b/test/built-ins/Array/prototype/methods-called-as-functions.js
index 6d04e33905a..2b4e4c854a5 100644
--- a/test/built-ins/Array/prototype/methods-called-as-functions.js
+++ b/test/built-ins/Array/prototype/methods-called-as-functions.js
@@ -15,7 +15,7 @@ info: |
Argument Type: Undefined
Result: Throw a TypeError exception.
-features: [Symbol, Symbol.isConcatSpreadable, Symbol.iterator, Symbol.species, Array.prototype.flat, Array.prototype.flatMap]
+features: [Symbol, Symbol.isConcatSpreadable, Symbol.iterator, Symbol.species, Array.prototype.flat, Array.prototype.flatMap, Array.prototype.includes]
---*/
["constructor", "length", "0", Symbol.isConcatSpreadable, Symbol.species].forEach(function(key) {
diff --git a/test/built-ins/Array/prototype/pop/clamps-to-integer-limit.js b/test/built-ins/Array/prototype/pop/clamps-to-integer-limit.js
index 0c5899a55eb..2fd7e4321a4 100644
--- a/test/built-ins/Array/prototype/pop/clamps-to-integer-limit.js
+++ b/test/built-ins/Array/prototype/pop/clamps-to-integer-limit.js
@@ -14,6 +14,7 @@ info: |
...
e. Perform ? Set(O, "length", newLen, true).
...
+features: [exponentiation]
---*/
var arrayLike = {};
diff --git a/test/built-ins/Array/prototype/pop/length-near-integer-limit.js b/test/built-ins/Array/prototype/pop/length-near-integer-limit.js
index a480b9c6c87..9d0c7a7e48c 100644
--- a/test/built-ins/Array/prototype/pop/length-near-integer-limit.js
+++ b/test/built-ins/Array/prototype/pop/length-near-integer-limit.js
@@ -15,7 +15,8 @@ info: |
c. Let element be ? Get(O, index).
d. Perform ? DeletePropertyOrThrow(O, index).
e. Perform ? Set(O, "length", newLen, true).
- f. Return element.
+ f. Return element.
+features: [exponentiation]
---*/
var arrayLike = {
diff --git a/test/built-ins/Array/prototype/push/clamps-to-integer-limit.js b/test/built-ins/Array/prototype/push/clamps-to-integer-limit.js
index 9cfc323fc30..6a29bf2aa9d 100644
--- a/test/built-ins/Array/prototype/push/clamps-to-integer-limit.js
+++ b/test/built-ins/Array/prototype/push/clamps-to-integer-limit.js
@@ -14,6 +14,7 @@ info: |
...
7. Perform ? Set(O, "length", len, true).
...
+features: [exponentiation]
---*/
var arrayLike = {};
diff --git a/test/built-ins/Array/prototype/push/length-near-integer-limit.js b/test/built-ins/Array/prototype/push/length-near-integer-limit.js
index 4c94e29873a..5b16f870665 100644
--- a/test/built-ins/Array/prototype/push/length-near-integer-limit.js
+++ b/test/built-ins/Array/prototype/push/length-near-integer-limit.js
@@ -15,6 +15,7 @@ info: |
...
7. Perform ? Set(O, "length", len, true).
...
+features: [exponentiation]
---*/
var arrayLike = {
diff --git a/test/built-ins/Array/prototype/push/throws-if-integer-limit-exceeded.js b/test/built-ins/Array/prototype/push/throws-if-integer-limit-exceeded.js
index ae71cd417ae..76b64fcbe10 100644
--- a/test/built-ins/Array/prototype/push/throws-if-integer-limit-exceeded.js
+++ b/test/built-ins/Array/prototype/push/throws-if-integer-limit-exceeded.js
@@ -13,6 +13,7 @@ info: |
4. Let argCount be the number of elements in items.
5. If len + argCount > 2^53-1, throw a TypeError exception.
...
+features: [exponentiation]
---*/
var arrayLike = {};
diff --git a/test/built-ins/Array/prototype/reverse/length-exceeding-integer-limit-with-object.js b/test/built-ins/Array/prototype/reverse/length-exceeding-integer-limit-with-object.js
index dcfdb869b41..1351e92883f 100644
--- a/test/built-ins/Array/prototype/reverse/length-exceeding-integer-limit-with-object.js
+++ b/test/built-ins/Array/prototype/reverse/length-exceeding-integer-limit-with-object.js
@@ -9,6 +9,7 @@ info: |
...
2. Let len be ? ToLength(? Get(O, "length")).
...
+features: [exponentiation]
---*/
function StopReverse() {}
diff --git a/test/built-ins/Array/prototype/reverse/length-exceeding-integer-limit-with-proxy.js b/test/built-ins/Array/prototype/reverse/length-exceeding-integer-limit-with-proxy.js
index f827f9f162c..e16b61fa57d 100644
--- a/test/built-ins/Array/prototype/reverse/length-exceeding-integer-limit-with-proxy.js
+++ b/test/built-ins/Array/prototype/reverse/length-exceeding-integer-limit-with-proxy.js
@@ -6,6 +6,7 @@ esid: sec-array.prototype.reverse
description: >
Ensure correct MOP operations are called when length exceeds 2^53-1.
includes: [compareArray.js, proxyTrapsHelper.js]
+features: [exponentiation]
---*/
function StopReverse() {}
diff --git a/test/built-ins/Array/prototype/slice/length-exceeding-integer-limit-proxied-array.js b/test/built-ins/Array/prototype/slice/length-exceeding-integer-limit-proxied-array.js
index 79ca743e08e..ed771464b4b 100644
--- a/test/built-ins/Array/prototype/slice/length-exceeding-integer-limit-proxied-array.js
+++ b/test/built-ins/Array/prototype/slice/length-exceeding-integer-limit-proxied-array.js
@@ -17,6 +17,7 @@ info: |
else let final be min(relativeEnd, len).
...
includes: [compareArray.js]
+features: [exponentiation]
---*/
var array = [];
diff --git a/test/built-ins/Array/prototype/slice/length-exceeding-integer-limit.js b/test/built-ins/Array/prototype/slice/length-exceeding-integer-limit.js
index 7adf639c7b0..619c0b95a75 100644
--- a/test/built-ins/Array/prototype/slice/length-exceeding-integer-limit.js
+++ b/test/built-ins/Array/prototype/slice/length-exceeding-integer-limit.js
@@ -16,6 +16,7 @@ info: |
else let final be min(relativeEnd, len).
...
includes: [compareArray.js]
+features: [exponentiation]
---*/
var arrayLike = {
diff --git a/test/built-ins/Array/prototype/splice/clamps-length-to-integer-limit.js b/test/built-ins/Array/prototype/splice/clamps-length-to-integer-limit.js
index 24584ba48a7..b72cc3e51e7 100644
--- a/test/built-ins/Array/prototype/splice/clamps-length-to-integer-limit.js
+++ b/test/built-ins/Array/prototype/splice/clamps-length-to-integer-limit.js
@@ -15,6 +15,7 @@ info: |
...
19. Perform ? Set(O, "length", len - actualDeleteCount + itemCount, true).
...
+features: [exponentiation]
---*/
var arrayLike = {};
diff --git a/test/built-ins/Array/prototype/splice/create-species-length-exceeding-integer-limit.js b/test/built-ins/Array/prototype/splice/create-species-length-exceeding-integer-limit.js
index 2efecc76b72..6b829ec646c 100644
--- a/test/built-ins/Array/prototype/splice/create-species-length-exceeding-integer-limit.js
+++ b/test/built-ins/Array/prototype/splice/create-species-length-exceeding-integer-limit.js
@@ -20,7 +20,7 @@ info: |
12. Perform ? Set(A, "length", actualDeleteCount, true).
...
includes: [compareArray.js, proxyTrapsHelper.js]
-features: [Symbol.species]
+features: [Symbol.species, exponentiation]
---*/
function StopSplice() {}
diff --git a/test/built-ins/Array/prototype/splice/length-and-deleteCount-exceeding-integer-limit.js b/test/built-ins/Array/prototype/splice/length-and-deleteCount-exceeding-integer-limit.js
index 3c686712379..ebe9aea397d 100644
--- a/test/built-ins/Array/prototype/splice/length-and-deleteCount-exceeding-integer-limit.js
+++ b/test/built-ins/Array/prototype/splice/length-and-deleteCount-exceeding-integer-limit.js
@@ -23,6 +23,7 @@ info: |
d. Increment k by 1.
...
includes: [compareArray.js]
+features: [exponentiation]
---*/
var arrayLike = {
diff --git a/test/built-ins/Array/prototype/splice/length-exceeding-integer-limit-shrink-array.js b/test/built-ins/Array/prototype/splice/length-exceeding-integer-limit-shrink-array.js
index 46a59a25f2a..436123d9609 100644
--- a/test/built-ins/Array/prototype/splice/length-exceeding-integer-limit-shrink-array.js
+++ b/test/built-ins/Array/prototype/splice/length-exceeding-integer-limit-shrink-array.js
@@ -25,6 +25,7 @@ info: |
ii. Decrease k by 1.
...
includes: [compareArray.js]
+features: [exponentiation]
---*/
var arrayLike = {
diff --git a/test/built-ins/Array/prototype/splice/length-near-integer-limit-grow-array.js b/test/built-ins/Array/prototype/splice/length-near-integer-limit-grow-array.js
index a36b385a61b..ac3c0c975b6 100644
--- a/test/built-ins/Array/prototype/splice/length-near-integer-limit-grow-array.js
+++ b/test/built-ins/Array/prototype/splice/length-near-integer-limit-grow-array.js
@@ -21,6 +21,7 @@ info: |
vi. Decrease k by 1.
...
includes: [compareArray.js]
+features: [exponentiation]
---*/
var arrayLike = {
diff --git a/test/built-ins/Array/prototype/splice/throws-if-integer-limit-exceeded.js b/test/built-ins/Array/prototype/splice/throws-if-integer-limit-exceeded.js
index 447eb4d0a5b..e2b1e921d54 100644
--- a/test/built-ins/Array/prototype/splice/throws-if-integer-limit-exceeded.js
+++ b/test/built-ins/Array/prototype/splice/throws-if-integer-limit-exceeded.js
@@ -15,6 +15,7 @@ info: |
c. Let actualDeleteCount be min(max(dc, 0), len - actualStart).
8. If len+insertCount-actualDeleteCount > 2^53-1, throw a TypeError exception.
...
+features: [exponentiation]
---*/
var arrayLike = {};
diff --git a/test/built-ins/Array/prototype/toReversed/length-exceeding-array-length-limit.js b/test/built-ins/Array/prototype/toReversed/length-exceeding-array-length-limit.js
index e3a212a078f..3aa3bdb2802 100644
--- a/test/built-ins/Array/prototype/toReversed/length-exceeding-array-length-limit.js
+++ b/test/built-ins/Array/prototype/toReversed/length-exceeding-array-length-limit.js
@@ -16,7 +16,7 @@ info: |
ArrayCreate ( length [, proto ] )
1. If length > 2 ** 32 - 1, throw a RangeError exception.
-features: [change-array-by-copy]
+features: [change-array-by-copy, exponentiation]
---*/
// Object with large "length" property
diff --git a/test/built-ins/Array/prototype/toSorted/length-exceeding-array-length-limit.js b/test/built-ins/Array/prototype/toSorted/length-exceeding-array-length-limit.js
index 72ae5353a54..535ace463b9 100644
--- a/test/built-ins/Array/prototype/toSorted/length-exceeding-array-length-limit.js
+++ b/test/built-ins/Array/prototype/toSorted/length-exceeding-array-length-limit.js
@@ -17,7 +17,7 @@ info: |
ArrayCreate ( length [, proto ] )
1. If length > 2 ** 32 - 1, throw a RangeError exception.
-features: [change-array-by-copy]
+features: [change-array-by-copy, exponentiation]
---*/
// Object with large "length" property
diff --git a/test/built-ins/Array/prototype/toSpliced/length-clamped-to-2pow53minus1.js b/test/built-ins/Array/prototype/toSpliced/length-clamped-to-2pow53minus1.js
index 5938e729be1..a3bad9f9690 100644
--- a/test/built-ins/Array/prototype/toSpliced/length-clamped-to-2pow53minus1.js
+++ b/test/built-ins/Array/prototype/toSpliced/length-clamped-to-2pow53minus1.js
@@ -15,7 +15,7 @@ info: |
1. Let len be ? ToIntegerOrInfinity(argument).
2. If len ≤ 0, return +0𝔽.
3. Return 𝔽(min(len, 2^53 - 1))
-features: [change-array-by-copy]
+features: [change-array-by-copy, exponentiation]
includes: [compareArray.js]
---*/
diff --git a/test/built-ins/Array/prototype/toSpliced/length-exceeding-array-length-limit.js b/test/built-ins/Array/prototype/toSpliced/length-exceeding-array-length-limit.js
index ddd2a4dce25..65b1bb122f2 100644
--- a/test/built-ins/Array/prototype/toSpliced/length-exceeding-array-length-limit.js
+++ b/test/built-ins/Array/prototype/toSpliced/length-exceeding-array-length-limit.js
@@ -19,7 +19,7 @@ info: |
ArrayCreate ( length [, proto ] )
1. If length > 2 ** 32 - 1, throw a RangeError exception.
-features: [change-array-by-copy]
+features: [change-array-by-copy, exponentiation]
---*/
// Object with large "length" property
diff --git a/test/built-ins/Array/prototype/unshift/clamps-to-integer-limit.js b/test/built-ins/Array/prototype/unshift/clamps-to-integer-limit.js
index 9f2e1418459..1c19a96eae6 100644
--- a/test/built-ins/Array/prototype/unshift/clamps-to-integer-limit.js
+++ b/test/built-ins/Array/prototype/unshift/clamps-to-integer-limit.js
@@ -11,6 +11,7 @@ info: |
3. Let argCount be the number of actual arguments.
4. If argCount > 0, then ...
5. Perform ? Set(O, "length", len+argCount, true).
+features: [exponentiation]
---*/
var arrayLike = {};
diff --git a/test/built-ins/Array/prototype/unshift/length-near-integer-limit.js b/test/built-ins/Array/prototype/unshift/length-near-integer-limit.js
index 5dff513e406..f4ff8320a08 100644
--- a/test/built-ins/Array/prototype/unshift/length-near-integer-limit.js
+++ b/test/built-ins/Array/prototype/unshift/length-near-integer-limit.js
@@ -21,6 +21,7 @@ info: |
v. Else fromPresent is false,
1. Perform ? DeletePropertyOrThrow(O, to).
vi. Decrease k by 1.
+features: [exponentiation]
---*/
function StopUnshift() {}
diff --git a/test/built-ins/Array/prototype/unshift/throws-if-integer-limit-exceeded.js b/test/built-ins/Array/prototype/unshift/throws-if-integer-limit-exceeded.js
index 9ad723eca5b..14c2a6bc495 100644
--- a/test/built-ins/Array/prototype/unshift/throws-if-integer-limit-exceeded.js
+++ b/test/built-ins/Array/prototype/unshift/throws-if-integer-limit-exceeded.js
@@ -12,6 +12,7 @@ info: |
4. If argCount > 0, then
a. If len+argCount > 2^53-1, throw a TypeError exception.
b. ...
+features: [exponentiation]
---*/
var arrayLike = {};
diff --git a/test/built-ins/Array/prototype/with/index-bigger-or-eq-than-length.js b/test/built-ins/Array/prototype/with/index-bigger-or-eq-than-length.js
index 932f0861b6b..5b05d12b205 100644
--- a/test/built-ins/Array/prototype/with/index-bigger-or-eq-than-length.js
+++ b/test/built-ins/Array/prototype/with/index-bigger-or-eq-than-length.js
@@ -15,7 +15,7 @@ info: |
5. Else, let actualIndex be len + relativeIndex.
6. If actualIndex >= len or actualIndex < 0, throw a *RangeError* exception.
...
-features: [change-array-by-copy]
+features: [change-array-by-copy, exponentiation]
---*/
assert.throws(RangeError, function() {
diff --git a/test/built-ins/Array/prototype/with/index-smaller-than-minus-length.js b/test/built-ins/Array/prototype/with/index-smaller-than-minus-length.js
index 644718f66b1..a24a36fa0e3 100644
--- a/test/built-ins/Array/prototype/with/index-smaller-than-minus-length.js
+++ b/test/built-ins/Array/prototype/with/index-smaller-than-minus-length.js
@@ -15,7 +15,7 @@ info: |
5. Else, let actualIndex be len + relativeIndex.
6. If actualIndex >= len or actualIndex < 0, throw a *RangeError* exception.
...
-features: [change-array-by-copy]
+features: [change-array-by-copy, exponentiation]
---*/
[0, 1, 2].with(-3, 7);
diff --git a/test/built-ins/Array/prototype/with/length-exceeding-array-length-limit.js b/test/built-ins/Array/prototype/with/length-exceeding-array-length-limit.js
index f6f2d7de493..8e348cdd359 100644
--- a/test/built-ins/Array/prototype/with/length-exceeding-array-length-limit.js
+++ b/test/built-ins/Array/prototype/with/length-exceeding-array-length-limit.js
@@ -17,7 +17,7 @@ info: |
ArrayCreate ( length [, proto ] )
1. If length > 2 ** 32 - 1, throw a RangeError exception.
-features: [change-array-by-copy]
+features: [change-array-by-copy, exponentiation]
---*/
// Object with large "length" property
diff --git a/test/built-ins/Atomics/isLockFree/expected-return-value.js b/test/built-ins/Atomics/isLockFree/expected-return-value.js
index 969782d793c..fa380fc666f 100644
--- a/test/built-ins/Atomics/isLockFree/expected-return-value.js
+++ b/test/built-ins/Atomics/isLockFree/expected-return-value.js
@@ -12,7 +12,7 @@ description: >
If n equals 4, return true.
If n equals 8, return AR.[[IsLockFree8]].
Return false.
-features: [Atomics]
+features: [Atomics, Array.prototype.includes]
---*/
// These are the only counts that we care about tracking.
diff --git a/test/built-ins/Function/prototype/toString/built-in-function-object.js b/test/built-ins/Function/prototype/toString/built-in-function-object.js
index c7310c5c375..a64302c1d6d 100644
--- a/test/built-ins/Function/prototype/toString/built-in-function-object.js
+++ b/test/built-ins/Function/prototype/toString/built-in-function-object.js
@@ -17,7 +17,7 @@ info: |
set
includes: [nativeFunctionMatcher.js, wellKnownIntrinsicObjects.js]
-features: [arrow-function, Reflect]
+features: [arrow-function, Reflect, Array.prototype.includes]
---*/
const visited = [];
diff --git a/test/built-ins/Map/valid-keys.js b/test/built-ins/Map/valid-keys.js
index 3d417b67140..29908ffa925 100644
--- a/test/built-ins/Map/valid-keys.js
+++ b/test/built-ins/Map/valid-keys.js
@@ -11,7 +11,7 @@ info: |
Append p as the last element of entries.
...
-features: [BigInt, Symbol, TypedArray, WeakRef]
+features: [BigInt, Symbol, TypedArray, WeakRef, exponentiation]
---*/
diff --git a/test/built-ins/Number/bigint-conversion.js b/test/built-ins/Number/bigint-conversion.js
index 0397fb0266c..c4dd8513c2d 100644
--- a/test/built-ins/Number/bigint-conversion.js
+++ b/test/built-ins/Number/bigint-conversion.js
@@ -4,7 +4,7 @@
/*---
description: BigInt to Number conversion
esid: pending
-features: [BigInt]
+features: [BigInt, exponentiation]
---*/
assert.sameValue(Number(0n), 0);
diff --git a/test/built-ins/Proxy/has/trap-is-null-target-is-proxy.js b/test/built-ins/Proxy/has/trap-is-null-target-is-proxy.js
index cce9fb9d5f5..a87eee65b1e 100644
--- a/test/built-ins/Proxy/has/trap-is-null-target-is-proxy.js
+++ b/test/built-ins/Proxy/has/trap-is-null-target-is-proxy.js
@@ -14,7 +14,7 @@ info: |
6. Let trap be ? GetMethod(handler, "has").
7. If trap is undefined, then
a. Return ? target.[[HasProperty]](P).
-features: [Proxy, Symbol, Reflect]
+features: [Proxy, Symbol, Reflect, Array.prototype.includes]
---*/
var stringTarget = new Proxy(new String("str"), {});
diff --git a/test/built-ins/RegExp/prototype/exec/failure-lastindex-set.js b/test/built-ins/RegExp/prototype/exec/failure-lastindex-set.js
index 41f08e330b7..b543c81207f 100644
--- a/test/built-ins/RegExp/prototype/exec/failure-lastindex-set.js
+++ b/test/built-ins/RegExp/prototype/exec/failure-lastindex-set.js
@@ -23,6 +23,7 @@ info: |
i. If _global_ is *true* or _sticky_ is *true*, then
1. Perform ? Set(_R_, *"lastIndex"*, *+0*𝔽, *true*).
ii. Return *null*.
+features: [exponentiation]
---*/
var R_g = /./g, R_y = /./y, R_gy = /./gy;
diff --git a/test/built-ins/Set/valid-values.js b/test/built-ins/Set/valid-values.js
index 2f7e6a33c69..9f93ba0ad52 100644
--- a/test/built-ins/Set/valid-values.js
+++ b/test/built-ins/Set/valid-values.js
@@ -14,7 +14,7 @@ info: |
Append value as the last element of entries.
...
-features: [BigInt, Symbol, TypedArray, WeakRef]
+features: [BigInt, Symbol, TypedArray, WeakRef, exponentiation]
---*/
diff --git a/test/built-ins/ShadowRealm/prototype/evaluate/globalthis-config-only-properties.js b/test/built-ins/ShadowRealm/prototype/evaluate/globalthis-config-only-properties.js
index 6b6857f6c1a..d630ddb43f6 100644
--- a/test/built-ins/ShadowRealm/prototype/evaluate/globalthis-config-only-properties.js
+++ b/test/built-ins/ShadowRealm/prototype/evaluate/globalthis-config-only-properties.js
@@ -25,7 +25,7 @@ info: |
The host may use this hook to add properties to the ShadowRealm's global
object. Those properties must be configurable.
-features: [ShadowRealm]
+features: [ShadowRealm, Array.prototype.includes]
---*/
assert.sameValue(
diff --git a/test/built-ins/Temporal/TimeZone/prototype/getPossibleInstantsFor/fixed-offset-near-date-time-limits.js b/test/built-ins/Temporal/TimeZone/prototype/getPossibleInstantsFor/fixed-offset-near-date-time-limits.js
index 27d97938da4..8aa1af72920 100644
--- a/test/built-ins/Temporal/TimeZone/prototype/getPossibleInstantsFor/fixed-offset-near-date-time-limits.js
+++ b/test/built-ins/Temporal/TimeZone/prototype/getPossibleInstantsFor/fixed-offset-near-date-time-limits.js
@@ -5,7 +5,7 @@
esid: sec-temporal.timezone.prototype.getpossibleinstantsfor
description: >
Call getPossibleInstantsFor with values near the date/time limit and a fixed offset.
-features: [Temporal]
+features: [Temporal, exponentiation]
---*/
const oneHour = 1n * 60n * 60n * 1000n**3n;
diff --git a/test/intl402/DateTimeFormat/casing-numbering-system-calendar-options.js b/test/intl402/DateTimeFormat/casing-numbering-system-calendar-options.js
index 0753f79e0fb..bab8f45461c 100644
--- a/test/intl402/DateTimeFormat/casing-numbering-system-calendar-options.js
+++ b/test/intl402/DateTimeFormat/casing-numbering-system-calendar-options.js
@@ -7,6 +7,7 @@ description: >
Tests that the options numberingSystem and calendar are mapped
to lower case properly.
author: Caio Lima
+features: [Array.prototype.includes]
---*/
let defaultLocale = new Intl.DateTimeFormat().resolvedOptions().locale;
diff --git a/test/intl402/DateTimeFormat/prototype/format/related-year-zh.js b/test/intl402/DateTimeFormat/prototype/format/related-year-zh.js
index fd86e5092c3..c4b309b338c 100644
--- a/test/intl402/DateTimeFormat/prototype/format/related-year-zh.js
+++ b/test/intl402/DateTimeFormat/prototype/format/related-year-zh.js
@@ -8,6 +8,7 @@ description: >
Checks the output of 'relatedYear' and 'yearName' type, and
the choice of pattern based on calendar.
locale: [zh-u-ca-chinese]
+features: [Array.prototype.includes]
---*/
const df = new Intl.DateTimeFormat("zh-u-ca-chinese", {year: "numeric"});
diff --git a/test/intl402/DateTimeFormat/prototype/format/timedatestyle-en.js b/test/intl402/DateTimeFormat/prototype/format/timedatestyle-en.js
index 282e39e1b21..5bdf1cd3d44 100644
--- a/test/intl402/DateTimeFormat/prototype/format/timedatestyle-en.js
+++ b/test/intl402/DateTimeFormat/prototype/format/timedatestyle-en.js
@@ -4,7 +4,7 @@
/*---
esid: sec-date-time-style-pattern
description: Checks basic handling of timeStyle and dateStyle.
-features: [Intl.DateTimeFormat-datetimestyle]
+features: [Intl.DateTimeFormat-datetimestyle, Array.prototype.includes]
locale: [en-US]
---*/
diff --git a/test/intl402/DateTimeFormat/prototype/formatToParts/main.js b/test/intl402/DateTimeFormat/prototype/formatToParts/main.js
index b89711dac66..55330dc6e5a 100644
--- a/test/intl402/DateTimeFormat/prototype/formatToParts/main.js
+++ b/test/intl402/DateTimeFormat/prototype/formatToParts/main.js
@@ -3,6 +3,7 @@
/*---
description: Tests for existance and behavior of Intl.DateTimeFormat.prototype.formatToParts
+features: [Array.prototype.includes]
---*/
function reduce(parts) {
diff --git a/test/intl402/DateTimeFormat/prototype/resolvedOptions/hourCycle-timeStyle.js b/test/intl402/DateTimeFormat/prototype/resolvedOptions/hourCycle-timeStyle.js
index 13795dae458..9c7ebc1171e 100644
--- a/test/intl402/DateTimeFormat/prototype/resolvedOptions/hourCycle-timeStyle.js
+++ b/test/intl402/DateTimeFormat/prototype/resolvedOptions/hourCycle-timeStyle.js
@@ -7,7 +7,7 @@ description: >
Intl.DateTimeFormat.prototype.resolvedOptions properly
reflect hourCycle settings when using timeStyle.
includes: [propertyHelper.js]
-features: [Intl.DateTimeFormat-datetimestyle]
+features: [Intl.DateTimeFormat-datetimestyle, Array.prototype.includes]
---*/
const hcValues = ["h11", "h12", "h23", "h24"];
diff --git a/test/intl402/DateTimeFormat/prototype/resolvedOptions/hourCycle.js b/test/intl402/DateTimeFormat/prototype/resolvedOptions/hourCycle.js
index 855edc6655b..4b3b4dc6ca4 100644
--- a/test/intl402/DateTimeFormat/prototype/resolvedOptions/hourCycle.js
+++ b/test/intl402/DateTimeFormat/prototype/resolvedOptions/hourCycle.js
@@ -10,6 +10,7 @@ info: |
12.4.5 Intl.DateTimeFormat.prototype.resolvedOptions()
includes: [propertyHelper.js]
+features: [Array.prototype.includes]
---*/
/* Values passed via unicode extension key work */
diff --git a/test/intl402/Intl/supportedValuesOf/calendars-accepted-by-DateTimeFormat.js b/test/intl402/Intl/supportedValuesOf/calendars-accepted-by-DateTimeFormat.js
index 901c6d4e64b..602168dbc3e 100644
--- a/test/intl402/Intl/supportedValuesOf/calendars-accepted-by-DateTimeFormat.js
+++ b/test/intl402/Intl/supportedValuesOf/calendars-accepted-by-DateTimeFormat.js
@@ -22,7 +22,7 @@ info: |
Intl.DateTimeFormat objects. The list must include "gregory".
includes: [testIntl.js]
locale: [en]
-features: [Intl-enumeration]
+features: [Intl-enumeration, Array.prototype.includes]
---*/
const calendars = Intl.supportedValuesOf("calendar");
diff --git a/test/intl402/Intl/supportedValuesOf/calendars-accepted-by-DisplayNames.js b/test/intl402/Intl/supportedValuesOf/calendars-accepted-by-DisplayNames.js
index 29e5ec5b242..06c17d37e25 100644
--- a/test/intl402/Intl/supportedValuesOf/calendars-accepted-by-DisplayNames.js
+++ b/test/intl402/Intl/supportedValuesOf/calendars-accepted-by-DisplayNames.js
@@ -22,7 +22,7 @@ info: |
Intl.DateTimeFormat objects. The list must include "gregory".
includes: [testIntl.js]
locale: [en]
-features: [Intl-enumeration, Intl.DisplayNames-v2]
+features: [Intl-enumeration, Intl.DisplayNames-v2, Array.prototype.includes]
---*/
const calendars = Intl.supportedValuesOf("calendar");
diff --git a/test/intl402/Intl/supportedValuesOf/calendars.js b/test/intl402/Intl/supportedValuesOf/calendars.js
index dadfc7213c6..8baef6d0fae 100644
--- a/test/intl402/Intl/supportedValuesOf/calendars.js
+++ b/test/intl402/Intl/supportedValuesOf/calendars.js
@@ -21,7 +21,7 @@ info: |
calendars for which the implementation provides the functionality of
Intl.DateTimeFormat objects. The list must include "gregory".
includes: [compareArray.js]
-features: [Intl-enumeration, Intl.Locale]
+features: [Intl-enumeration, Intl.Locale, Array.prototype.includes]
---*/
const calendars = Intl.supportedValuesOf("calendar");
diff --git a/test/intl402/Intl/supportedValuesOf/collations-accepted-by-Collator.js b/test/intl402/Intl/supportedValuesOf/collations-accepted-by-Collator.js
index d4c814906b6..af8c7a93446 100644
--- a/test/intl402/Intl/supportedValuesOf/collations-accepted-by-Collator.js
+++ b/test/intl402/Intl/supportedValuesOf/collations-accepted-by-Collator.js
@@ -23,7 +23,7 @@ info: |
Intl.Collator objects.
includes: [testIntl.js]
locale: [en, ar, de, es, ko, ln, si, sv, zh]
-features: [Intl-enumeration]
+features: [Intl-enumeration, Array.prototype.includes]
---*/
const collations = Intl.supportedValuesOf("collation");
diff --git a/test/intl402/Intl/supportedValuesOf/collations.js b/test/intl402/Intl/supportedValuesOf/collations.js
index d8ccffba691..dc923b86a89 100644
--- a/test/intl402/Intl/supportedValuesOf/collations.js
+++ b/test/intl402/Intl/supportedValuesOf/collations.js
@@ -22,7 +22,7 @@ info: |
collations for which the implementation provides the functionality of
Intl.Collator objects.
includes: [compareArray.js]
-features: [Intl-enumeration, Intl.Locale]
+features: [Intl-enumeration, Intl.Locale, Array.prototype.includes]
---*/
const collations = Intl.supportedValuesOf("collation");
diff --git a/test/intl402/Intl/supportedValuesOf/currencies-accepted-by-DisplayNames.js b/test/intl402/Intl/supportedValuesOf/currencies-accepted-by-DisplayNames.js
index 41545f5a999..b9930605d68 100644
--- a/test/intl402/Intl/supportedValuesOf/currencies-accepted-by-DisplayNames.js
+++ b/test/intl402/Intl/supportedValuesOf/currencies-accepted-by-DisplayNames.js
@@ -23,7 +23,7 @@ info: |
for which the implementation provides the functionality of Intl.DisplayNames
and Intl.NumberFormat objects.
locale: [en]
-features: [Intl-enumeration, Intl.DisplayNames]
+features: [Intl-enumeration, Intl.DisplayNames, Array.prototype.includes]
---*/
const currencies = Intl.supportedValuesOf("currency");
diff --git a/test/intl402/Intl/supportedValuesOf/numberingSystems-accepted-by-DateTimeFormat.js b/test/intl402/Intl/supportedValuesOf/numberingSystems-accepted-by-DateTimeFormat.js
index 32cdcb5da89..d4f70cb4ca2 100644
--- a/test/intl402/Intl/supportedValuesOf/numberingSystems-accepted-by-DateTimeFormat.js
+++ b/test/intl402/Intl/supportedValuesOf/numberingSystems-accepted-by-DateTimeFormat.js
@@ -25,7 +25,7 @@ info: |
value of every row of Table 4, except the header row.
includes: [testIntl.js]
locale: [en]
-features: [Intl-enumeration]
+features: [Intl-enumeration, Array.prototype.includes]
---*/
const numberingSystems = Intl.supportedValuesOf("numberingSystem");
diff --git a/test/intl402/Intl/supportedValuesOf/numberingSystems-accepted-by-NumberFormat.js b/test/intl402/Intl/supportedValuesOf/numberingSystems-accepted-by-NumberFormat.js
index 99b36942f50..67ee2ef9813 100644
--- a/test/intl402/Intl/supportedValuesOf/numberingSystems-accepted-by-NumberFormat.js
+++ b/test/intl402/Intl/supportedValuesOf/numberingSystems-accepted-by-NumberFormat.js
@@ -25,7 +25,7 @@ info: |
value of every row of Table 4, except the header row.
includes: [testIntl.js]
locale: [en]
-features: [Intl-enumeration]
+features: [Intl-enumeration, Array.prototype.includes]
---*/
const numberingSystems = Intl.supportedValuesOf("numberingSystem");
diff --git a/test/intl402/Intl/supportedValuesOf/numberingSystems-accepted-by-RelativeTimeFormat.js b/test/intl402/Intl/supportedValuesOf/numberingSystems-accepted-by-RelativeTimeFormat.js
index ec82f8b6b8d..5f0a5c1cde6 100644
--- a/test/intl402/Intl/supportedValuesOf/numberingSystems-accepted-by-RelativeTimeFormat.js
+++ b/test/intl402/Intl/supportedValuesOf/numberingSystems-accepted-by-RelativeTimeFormat.js
@@ -25,7 +25,7 @@ info: |
value of every row of Table 4, except the header row.
includes: [testIntl.js]
locale: [en]
-features: [Intl-enumeration, Intl.RelativeTimeFormat]
+features: [Intl-enumeration, Intl.RelativeTimeFormat, Array.prototype.includes]
---*/
const numberingSystems = Intl.supportedValuesOf("numberingSystem");
diff --git a/test/intl402/Intl/supportedValuesOf/numberingSystems-with-simple-digit-mappings.js b/test/intl402/Intl/supportedValuesOf/numberingSystems-with-simple-digit-mappings.js
index 62211a960c8..320f0f195de 100644
--- a/test/intl402/Intl/supportedValuesOf/numberingSystems-with-simple-digit-mappings.js
+++ b/test/intl402/Intl/supportedValuesOf/numberingSystems-with-simple-digit-mappings.js
@@ -24,7 +24,7 @@ info: |
Intl.RelativeTimeFormat objects. The list must include the Numbering System
value of every row of Table 4, except the header row.
includes: [testIntl.js]
-features: [Intl-enumeration]
+features: [Intl-enumeration, Array.prototype.includes]
---*/
const numberingSystems = Intl.supportedValuesOf("numberingSystem");
diff --git a/test/intl402/Intl/supportedValuesOf/units-accepted-by-NumberFormat.js b/test/intl402/Intl/supportedValuesOf/units-accepted-by-NumberFormat.js
index fa47e88c700..110972c79ad 100644
--- a/test/intl402/Intl/supportedValuesOf/units-accepted-by-NumberFormat.js
+++ b/test/intl402/Intl/supportedValuesOf/units-accepted-by-NumberFormat.js
@@ -22,7 +22,7 @@ info: |
identifiers listed in every row of Table 1, except the header row.
includes: [testIntl.js]
locale: [en]
-features: [Intl-enumeration]
+features: [Intl-enumeration, Array.prototype.includes]
---*/
const units = Intl.supportedValuesOf("unit");
diff --git a/test/intl402/Intl/supportedValuesOf/units.js b/test/intl402/Intl/supportedValuesOf/units.js
index d05e648f840..b3c37dcffe6 100644
--- a/test/intl402/Intl/supportedValuesOf/units.js
+++ b/test/intl402/Intl/supportedValuesOf/units.js
@@ -21,7 +21,7 @@ info: |
undefined as comparefn, that contains the unique values of simple unit
identifiers listed in every row of Table 1, except the header row.
includes: [compareArray.js, testIntl.js]
-features: [Intl-enumeration]
+features: [Intl-enumeration, Array.prototype.includes]
---*/
const units = Intl.supportedValuesOf("unit");
diff --git a/test/intl402/Locale/prototype/collations/output-array-values.js b/test/intl402/Locale/prototype/collations/output-array-values.js
index 04dce3ea5c5..7f1656d528d 100644
--- a/test/intl402/Locale/prototype/collations/output-array-values.js
+++ b/test/intl402/Locale/prototype/collations/output-array-values.js
@@ -14,7 +14,7 @@ info: |
Unicode Locale Identifier, section 3.2, sorted in descending preference of
those in common use for string comparison in locale. The values "standard"
and "search" must be excluded from list.
-features: [Intl.Locale,Intl.Locale-info]
+features: [Intl.Locale, Intl.Locale-info, Array.prototype.includes]
---*/
const output = new Intl.Locale('en').collations;
diff --git a/test/intl402/Locale/prototype/hourCycles/output-array-values.js b/test/intl402/Locale/prototype/hourCycles/output-array-values.js
index 37cfe713eca..3d7976a964c 100644
--- a/test/intl402/Locale/prototype/hourCycles/output-array-values.js
+++ b/test/intl402/Locale/prototype/hourCycles/output-array-values.js
@@ -13,7 +13,7 @@ info: |
be lower case String values indicating either the 12-hour format ("h11",
"h12") or the 24-hour format ("h23", "h24"), sorted in descending preference
of those in common use for date and time formatting in locale.
-features: [Intl.Locale,Intl.Locale-info]
+features: [Intl.Locale, Intl.Locale-info, Array.prototype.includes]
---*/
const output = new Intl.Locale('en').hourCycles;
diff --git a/test/intl402/NumberFormat/casing-numbering-system-options.js b/test/intl402/NumberFormat/casing-numbering-system-options.js
index 8e927a9c3a8..79d780e8565 100644
--- a/test/intl402/NumberFormat/casing-numbering-system-options.js
+++ b/test/intl402/NumberFormat/casing-numbering-system-options.js
@@ -6,6 +6,7 @@ esid: sec-initializenumberformat
description: >
Tests that the options numberingSystem are mapped to lower case.
author: Caio Lima
+features: [Array.prototype.includes]
---*/
let defaultLocale = new Intl.NumberFormat().resolvedOptions().locale;
diff --git a/test/intl402/PluralRules/prototype/resolvedOptions/pluralCategories.js b/test/intl402/PluralRules/prototype/resolvedOptions/pluralCategories.js
index 9481dc97877..173dde9f7d6 100644
--- a/test/intl402/PluralRules/prototype/resolvedOptions/pluralCategories.js
+++ b/test/intl402/PluralRules/prototype/resolvedOptions/pluralCategories.js
@@ -7,6 +7,7 @@ description: >
Tests that Intl.PluralRules.prototype.resolvedOptions creates a new array
for the pluralCategories property on every call.
includes: [propertyHelper.js, compareArray.js]
+features: [Array.prototype.includes]
---*/
const allowedValues = ["zero", "one", "two", "few", "many", "other"];
diff --git a/test/intl402/Segmenter/constructor/constructor/locales-valid.js b/test/intl402/Segmenter/constructor/constructor/locales-valid.js
index 2361c6e37fa..5aa4324b605 100644
--- a/test/intl402/Segmenter/constructor/constructor/locales-valid.js
+++ b/test/intl402/Segmenter/constructor/constructor/locales-valid.js
@@ -8,7 +8,7 @@ info: |
Intl.Segmenter ([ locales [ , options ]])
3. Let _requestedLocales_ be ? CanonicalizeLocaleList(_locales_).
-features: [Intl.Segmenter]
+features: [Intl.Segmenter, Array.prototype.includes]
---*/
const defaultLocale = new Intl.Segmenter().resolvedOptions().locale;
diff --git a/test/intl402/Temporal/TimeZone/prototype/getOffsetNanosecondsFor/nanoseconds-subtracted-or-added-at-dst-transition.js b/test/intl402/Temporal/TimeZone/prototype/getOffsetNanosecondsFor/nanoseconds-subtracted-or-added-at-dst-transition.js
index 422b170d3ef..268924e79e2 100644
--- a/test/intl402/Temporal/TimeZone/prototype/getOffsetNanosecondsFor/nanoseconds-subtracted-or-added-at-dst-transition.js
+++ b/test/intl402/Temporal/TimeZone/prototype/getOffsetNanosecondsFor/nanoseconds-subtracted-or-added-at-dst-transition.js
@@ -5,7 +5,7 @@
esid: sec-temporal.timezone.prototype.getoffsetnanosecondsfor
description: >
Test offset when nanoseconds are subtracted or added from DST transition.
-features: [Temporal]
+features: [Temporal, exponentiation]
---*/
// From :
diff --git a/test/intl402/fallback-locales-are-supported.js b/test/intl402/fallback-locales-are-supported.js
index da91780b80b..5d289461a15 100644
--- a/test/intl402/fallback-locales-are-supported.js
+++ b/test/intl402/fallback-locales-are-supported.js
@@ -8,6 +8,7 @@ description: >
supported locales.
author: Norbert Lindenberg
includes: [testIntl.js]
+features: [Array.prototype.includes]
---*/
testWithIntlConstructors(function (Constructor) {
diff --git a/test/language/expressions/assignmenttargettype/direct-updateexpression-star-star-exponentiationexpression-0.js b/test/language/expressions/assignmenttargettype/direct-updateexpression-star-star-exponentiationexpression-0.js
index 2b534ff56b1..4bf6b37018f 100644
--- a/test/language/expressions/assignmenttargettype/direct-updateexpression-star-star-exponentiationexpression-0.js
+++ b/test/language/expressions/assignmenttargettype/direct-updateexpression-star-star-exponentiationexpression-0.js
@@ -3,6 +3,7 @@
// - src/assignment-target-type/invalid/direct.template
/*---
description: Static Semantics AssignmentTargetType, Return invalid. (Direct assignment)
+features: [exponentiation]
flags: [generated]
negative:
phase: parse
diff --git a/test/language/expressions/assignmenttargettype/direct-updateexpression-star-star-exponentiationexpression-1.js b/test/language/expressions/assignmenttargettype/direct-updateexpression-star-star-exponentiationexpression-1.js
index 0f1b0caadc7..2f4eb8e7584 100644
--- a/test/language/expressions/assignmenttargettype/direct-updateexpression-star-star-exponentiationexpression-1.js
+++ b/test/language/expressions/assignmenttargettype/direct-updateexpression-star-star-exponentiationexpression-1.js
@@ -3,6 +3,7 @@
// - src/assignment-target-type/invalid/direct.template
/*---
description: Static Semantics AssignmentTargetType, Return invalid. (Direct assignment)
+features: [exponentiation]
flags: [generated]
negative:
phase: parse
diff --git a/test/language/expressions/assignmenttargettype/direct-updateexpression-star-star-exponentiationexpression-2.js b/test/language/expressions/assignmenttargettype/direct-updateexpression-star-star-exponentiationexpression-2.js
index 9be01baaaf2..bf20a283508 100644
--- a/test/language/expressions/assignmenttargettype/direct-updateexpression-star-star-exponentiationexpression-2.js
+++ b/test/language/expressions/assignmenttargettype/direct-updateexpression-star-star-exponentiationexpression-2.js
@@ -3,6 +3,7 @@
// - src/assignment-target-type/invalid/direct.template
/*---
description: Static Semantics AssignmentTargetType, Return invalid. (Direct assignment)
+features: [exponentiation]
flags: [generated]
negative:
phase: parse
diff --git a/test/language/expressions/assignmenttargettype/parenthesized-updateexpression-star-star-exponentiationexpression-0.js b/test/language/expressions/assignmenttargettype/parenthesized-updateexpression-star-star-exponentiationexpression-0.js
index dfa2d5ca639..9bdf63166cf 100644
--- a/test/language/expressions/assignmenttargettype/parenthesized-updateexpression-star-star-exponentiationexpression-0.js
+++ b/test/language/expressions/assignmenttargettype/parenthesized-updateexpression-star-star-exponentiationexpression-0.js
@@ -4,6 +4,7 @@
/*---
description: Static Semantics AssignmentTargetType, Return invalid. (ParenthesizedExpression)
esid: sec-grouping-operator-static-semantics-assignmenttargettype
+features: [exponentiation]
flags: [generated]
negative:
phase: parse
diff --git a/test/language/expressions/assignmenttargettype/parenthesized-updateexpression-star-star-exponentiationexpression-1.js b/test/language/expressions/assignmenttargettype/parenthesized-updateexpression-star-star-exponentiationexpression-1.js
index b6b530e85fb..fc9fb628cbf 100644
--- a/test/language/expressions/assignmenttargettype/parenthesized-updateexpression-star-star-exponentiationexpression-1.js
+++ b/test/language/expressions/assignmenttargettype/parenthesized-updateexpression-star-star-exponentiationexpression-1.js
@@ -4,6 +4,7 @@
/*---
description: Static Semantics AssignmentTargetType, Return invalid. (ParenthesizedExpression)
esid: sec-grouping-operator-static-semantics-assignmenttargettype
+features: [exponentiation]
flags: [generated]
negative:
phase: parse
diff --git a/test/language/expressions/assignmenttargettype/parenthesized-updateexpression-star-star-exponentiationexpression-2.js b/test/language/expressions/assignmenttargettype/parenthesized-updateexpression-star-star-exponentiationexpression-2.js
index aa648bb582e..937a37b5a28 100644
--- a/test/language/expressions/assignmenttargettype/parenthesized-updateexpression-star-star-exponentiationexpression-2.js
+++ b/test/language/expressions/assignmenttargettype/parenthesized-updateexpression-star-star-exponentiationexpression-2.js
@@ -4,6 +4,7 @@
/*---
description: Static Semantics AssignmentTargetType, Return invalid. (ParenthesizedExpression)
esid: sec-grouping-operator-static-semantics-assignmenttargettype
+features: [exponentiation]
flags: [generated]
negative:
phase: parse
diff --git a/test/language/expressions/class/cpn-class-expr-accessors-computed-property-name-from-exponetiation-expression.js b/test/language/expressions/class/cpn-class-expr-accessors-computed-property-name-from-exponetiation-expression.js
index f76f2608986..a227e222444 100644
--- a/test/language/expressions/class/cpn-class-expr-accessors-computed-property-name-from-exponetiation-expression.js
+++ b/test/language/expressions/class/cpn-class-expr-accessors-computed-property-name-from-exponetiation-expression.js
@@ -4,7 +4,7 @@
/*---
description: Computed property name from exponentiation expression (ComputedPropertyName in ClassExpression)
esid: prod-ComputedPropertyName
-features: [computed-property-names]
+features: [computed-property-names, exponentiation]
flags: [generated]
info: |
ClassExpression:
diff --git a/test/language/expressions/class/cpn-class-expr-accessors-computed-property-name-from-math.js b/test/language/expressions/class/cpn-class-expr-accessors-computed-property-name-from-math.js
index 8257361e39f..2caf8f9ace6 100644
--- a/test/language/expressions/class/cpn-class-expr-accessors-computed-property-name-from-math.js
+++ b/test/language/expressions/class/cpn-class-expr-accessors-computed-property-name-from-math.js
@@ -4,7 +4,7 @@
/*---
description: Computed property name from math (ComputedPropertyName in ClassExpression)
esid: prod-ComputedPropertyName
-features: [computed-property-names]
+features: [computed-property-names, exponentiation]
flags: [generated]
info: |
ClassExpression:
diff --git a/test/language/expressions/class/cpn-class-expr-computed-property-name-from-exponetiation-expression.js b/test/language/expressions/class/cpn-class-expr-computed-property-name-from-exponetiation-expression.js
index f1dab7637c8..d4bf478540a 100644
--- a/test/language/expressions/class/cpn-class-expr-computed-property-name-from-exponetiation-expression.js
+++ b/test/language/expressions/class/cpn-class-expr-computed-property-name-from-exponetiation-expression.js
@@ -4,7 +4,7 @@
/*---
description: Computed property name from exponentiation expression (ComputedPropertyName in ClassExpression)
esid: prod-ComputedPropertyName
-features: [computed-property-names]
+features: [computed-property-names, exponentiation]
flags: [generated]
info: |
ClassExpression:
diff --git a/test/language/expressions/class/cpn-class-expr-computed-property-name-from-math.js b/test/language/expressions/class/cpn-class-expr-computed-property-name-from-math.js
index f9387725828..bbeac1afaa3 100644
--- a/test/language/expressions/class/cpn-class-expr-computed-property-name-from-math.js
+++ b/test/language/expressions/class/cpn-class-expr-computed-property-name-from-math.js
@@ -4,7 +4,7 @@
/*---
description: Computed property name from math (ComputedPropertyName in ClassExpression)
esid: prod-ComputedPropertyName
-features: [computed-property-names]
+features: [computed-property-names, exponentiation]
flags: [generated]
info: |
ClassExpression:
diff --git a/test/language/expressions/class/cpn-class-expr-fields-computed-property-name-from-exponetiation-expression.js b/test/language/expressions/class/cpn-class-expr-fields-computed-property-name-from-exponetiation-expression.js
index db184fef6ea..e88a5e62252 100644
--- a/test/language/expressions/class/cpn-class-expr-fields-computed-property-name-from-exponetiation-expression.js
+++ b/test/language/expressions/class/cpn-class-expr-fields-computed-property-name-from-exponetiation-expression.js
@@ -4,7 +4,7 @@
/*---
description: Computed property name from exponentiation expression (ComputedPropertyName in ClassExpression)
esid: prod-ComputedPropertyName
-features: [computed-property-names, class-fields-public, class-static-fields-public]
+features: [computed-property-names, exponentiation, class-fields-public, class-static-fields-public]
flags: [generated]
info: |
ClassExpression:
diff --git a/test/language/expressions/class/cpn-class-expr-fields-computed-property-name-from-math.js b/test/language/expressions/class/cpn-class-expr-fields-computed-property-name-from-math.js
index 24bb837b850..afa864183ac 100644
--- a/test/language/expressions/class/cpn-class-expr-fields-computed-property-name-from-math.js
+++ b/test/language/expressions/class/cpn-class-expr-fields-computed-property-name-from-math.js
@@ -4,7 +4,7 @@
/*---
description: Computed property name from math (ComputedPropertyName in ClassExpression)
esid: prod-ComputedPropertyName
-features: [computed-property-names, class-fields-public, class-static-fields-public]
+features: [computed-property-names, exponentiation, class-fields-public, class-static-fields-public]
flags: [generated]
info: |
ClassExpression:
diff --git a/test/language/expressions/class/cpn-class-expr-fields-methods-computed-property-name-from-exponetiation-expression.js b/test/language/expressions/class/cpn-class-expr-fields-methods-computed-property-name-from-exponetiation-expression.js
index ef13282ffd3..0ca711152ed 100644
--- a/test/language/expressions/class/cpn-class-expr-fields-methods-computed-property-name-from-exponetiation-expression.js
+++ b/test/language/expressions/class/cpn-class-expr-fields-methods-computed-property-name-from-exponetiation-expression.js
@@ -4,7 +4,7 @@
/*---
description: Computed property name from exponentiation expression (ComputedPropertyName in ClassExpression)
esid: prod-ComputedPropertyName
-features: [computed-property-names, class-fields-public, class-static-fields-public]
+features: [computed-property-names, exponentiation, class-fields-public, class-static-fields-public]
flags: [generated]
info: |
ClassExpression:
diff --git a/test/language/expressions/class/cpn-class-expr-fields-methods-computed-property-name-from-math.js b/test/language/expressions/class/cpn-class-expr-fields-methods-computed-property-name-from-math.js
index 1f2e2171b31..8b9b82d18c9 100644
--- a/test/language/expressions/class/cpn-class-expr-fields-methods-computed-property-name-from-math.js
+++ b/test/language/expressions/class/cpn-class-expr-fields-methods-computed-property-name-from-math.js
@@ -4,7 +4,7 @@
/*---
description: Computed property name from math (ComputedPropertyName in ClassExpression)
esid: prod-ComputedPropertyName
-features: [computed-property-names, class-fields-public, class-static-fields-public]
+features: [computed-property-names, exponentiation, class-fields-public, class-static-fields-public]
flags: [generated]
info: |
ClassExpression:
diff --git a/test/language/expressions/compound-assignment/left-hand-side-private-reference-accessor-property-exp.js b/test/language/expressions/compound-assignment/left-hand-side-private-reference-accessor-property-exp.js
index 96481395964..b27ea18c0fe 100644
--- a/test/language/expressions/compound-assignment/left-hand-side-private-reference-accessor-property-exp.js
+++ b/test/language/expressions/compound-assignment/left-hand-side-private-reference-accessor-property-exp.js
@@ -4,7 +4,7 @@
/*---
description: Compound exponentiation assignment with target being a private reference (to an accessor property with getter and setter)
esid: sec-assignment-operators-runtime-semantics-evaluation
-features: [class-fields-private]
+features: [exponentiation, class-fields-private]
flags: [generated]
info: |
sec-assignment-operators-runtime-semantics-evaluation
diff --git a/test/language/expressions/compound-assignment/left-hand-side-private-reference-data-property-exp.js b/test/language/expressions/compound-assignment/left-hand-side-private-reference-data-property-exp.js
index e62385acfb1..85bf0f2a7ee 100644
--- a/test/language/expressions/compound-assignment/left-hand-side-private-reference-data-property-exp.js
+++ b/test/language/expressions/compound-assignment/left-hand-side-private-reference-data-property-exp.js
@@ -4,7 +4,7 @@
/*---
description: Compound exponentiation assignment with target being a private reference (to a field)
esid: sec-assignment-operators-runtime-semantics-evaluation
-features: [class-fields-private]
+features: [exponentiation, class-fields-private]
flags: [generated]
info: |
sec-assignment-operators-runtime-semantics-evaluation
diff --git a/test/language/expressions/compound-assignment/left-hand-side-private-reference-method-exp.js b/test/language/expressions/compound-assignment/left-hand-side-private-reference-method-exp.js
index 25036c1d862..5d6ade31df2 100644
--- a/test/language/expressions/compound-assignment/left-hand-side-private-reference-method-exp.js
+++ b/test/language/expressions/compound-assignment/left-hand-side-private-reference-method-exp.js
@@ -4,7 +4,7 @@
/*---
description: Compound exponentiation assignment with target being a private reference (to a private method)
esid: sec-assignment-operators-runtime-semantics-evaluation
-features: [class-fields-private]
+features: [exponentiation, class-fields-private]
flags: [generated]
info: |
sec-assignment-operators-runtime-semantics-evaluation
diff --git a/test/language/expressions/compound-assignment/left-hand-side-private-reference-readonly-accessor-property-exp.js b/test/language/expressions/compound-assignment/left-hand-side-private-reference-readonly-accessor-property-exp.js
index b0e17bb8e73..72a5f8fbfdb 100644
--- a/test/language/expressions/compound-assignment/left-hand-side-private-reference-readonly-accessor-property-exp.js
+++ b/test/language/expressions/compound-assignment/left-hand-side-private-reference-readonly-accessor-property-exp.js
@@ -4,7 +4,7 @@
/*---
description: Compound exponentiation assignment with target being a private reference (to an accessor property with getter)
esid: sec-assignment-operators-runtime-semantics-evaluation
-features: [class-fields-private]
+features: [exponentiation, class-fields-private]
flags: [generated]
info: |
sec-assignment-operators-runtime-semantics-evaluation
diff --git a/test/language/expressions/dynamic-import/syntax/invalid/invalid-assignmenttargettype-syntax-error-17-lhs-assignment-operator-assignment-expression.js b/test/language/expressions/dynamic-import/syntax/invalid/invalid-assignmenttargettype-syntax-error-17-lhs-assignment-operator-assignment-expression.js
index d27455ea3f9..2ddc94f6f66 100644
--- a/test/language/expressions/dynamic-import/syntax/invalid/invalid-assignmenttargettype-syntax-error-17-lhs-assignment-operator-assignment-expression.js
+++ b/test/language/expressions/dynamic-import/syntax/invalid/invalid-assignmenttargettype-syntax-error-17-lhs-assignment-operator-assignment-expression.js
@@ -40,7 +40,7 @@ info: |
negative:
phase: parse
type: SyntaxError
-features: [dynamic-import]
+features: [dynamic-import, exponentiation]
---*/
$DONOTEVALUATE();
diff --git a/test/language/expressions/exponentiation/applying-the-exp-operator_A1.js b/test/language/expressions/exponentiation/applying-the-exp-operator_A1.js
index 02e2049cdff..5f1ea2008c6 100644
--- a/test/language/expressions/exponentiation/applying-the-exp-operator_A1.js
+++ b/test/language/expressions/exponentiation/applying-the-exp-operator_A1.js
@@ -4,6 +4,7 @@
/*---
esid: sec-applying-the-exp-operator
description: If exponent is NaN, the result is NaN.
+features: [exponentiation]
---*/
var exponent = NaN;
diff --git a/test/language/expressions/exponentiation/applying-the-exp-operator_A11.js b/test/language/expressions/exponentiation/applying-the-exp-operator_A11.js
index feffb65d98f..293f985d41c 100644
--- a/test/language/expressions/exponentiation/applying-the-exp-operator_A11.js
+++ b/test/language/expressions/exponentiation/applying-the-exp-operator_A11.js
@@ -4,6 +4,7 @@
/*---
esid: sec-applying-the-exp-operator
description: If base is +∞ and exponent > 0, the result is +∞.
+features: [exponentiation]
---*/
diff --git a/test/language/expressions/exponentiation/applying-the-exp-operator_A12.js b/test/language/expressions/exponentiation/applying-the-exp-operator_A12.js
index d9f3084b57e..c3617f1d143 100644
--- a/test/language/expressions/exponentiation/applying-the-exp-operator_A12.js
+++ b/test/language/expressions/exponentiation/applying-the-exp-operator_A12.js
@@ -4,6 +4,7 @@
/*---
esid: sec-applying-the-exp-operator
description: If base is +∞ and exponent < 0, the result is +0.
+features: [exponentiation]
---*/
diff --git a/test/language/expressions/exponentiation/applying-the-exp-operator_A13.js b/test/language/expressions/exponentiation/applying-the-exp-operator_A13.js
index 4d955e55b45..2ae3ad3d054 100644
--- a/test/language/expressions/exponentiation/applying-the-exp-operator_A13.js
+++ b/test/language/expressions/exponentiation/applying-the-exp-operator_A13.js
@@ -4,6 +4,7 @@
/*---
esid: sec-applying-the-exp-operator
description: If base is −∞ and exponent > 0 and exponent is an odd integer, the result is −∞.
+features: [exponentiation]
---*/
diff --git a/test/language/expressions/exponentiation/applying-the-exp-operator_A14.js b/test/language/expressions/exponentiation/applying-the-exp-operator_A14.js
index 8637ecca269..77b016d9662 100644
--- a/test/language/expressions/exponentiation/applying-the-exp-operator_A14.js
+++ b/test/language/expressions/exponentiation/applying-the-exp-operator_A14.js
@@ -4,6 +4,7 @@
/*---
esid: sec-applying-the-exp-operator
description: If base is −∞ and exponent > 0 and exponent is not an odd integer, the result is +∞.
+features: [exponentiation]
---*/
diff --git a/test/language/expressions/exponentiation/applying-the-exp-operator_A15.js b/test/language/expressions/exponentiation/applying-the-exp-operator_A15.js
index e4ec599d6b2..7260e078e03 100644
--- a/test/language/expressions/exponentiation/applying-the-exp-operator_A15.js
+++ b/test/language/expressions/exponentiation/applying-the-exp-operator_A15.js
@@ -4,6 +4,7 @@
/*---
esid: sec-applying-the-exp-operator
description: If base is −∞ and exponent < 0 and exponent is an odd integer, the result is −0.
+features: [exponentiation]
---*/
diff --git a/test/language/expressions/exponentiation/applying-the-exp-operator_A16.js b/test/language/expressions/exponentiation/applying-the-exp-operator_A16.js
index ecfc9e21a44..29fb080f9aa 100644
--- a/test/language/expressions/exponentiation/applying-the-exp-operator_A16.js
+++ b/test/language/expressions/exponentiation/applying-the-exp-operator_A16.js
@@ -4,6 +4,7 @@
/*---
esid: sec-applying-the-exp-operator
description: If base is −∞ and exponent < 0 and exponent is not an odd integer, the result is +0.
+features: [exponentiation]
---*/
diff --git a/test/language/expressions/exponentiation/applying-the-exp-operator_A17.js b/test/language/expressions/exponentiation/applying-the-exp-operator_A17.js
index 5764dacd1ae..d04058da216 100644
--- a/test/language/expressions/exponentiation/applying-the-exp-operator_A17.js
+++ b/test/language/expressions/exponentiation/applying-the-exp-operator_A17.js
@@ -4,6 +4,7 @@
/*---
esid: sec-applying-the-exp-operator
description: If base is +0 and exponent > 0, the result is +0.
+features: [exponentiation]
---*/
diff --git a/test/language/expressions/exponentiation/applying-the-exp-operator_A18.js b/test/language/expressions/exponentiation/applying-the-exp-operator_A18.js
index f3ae5c7f270..0d48cf32824 100644
--- a/test/language/expressions/exponentiation/applying-the-exp-operator_A18.js
+++ b/test/language/expressions/exponentiation/applying-the-exp-operator_A18.js
@@ -4,6 +4,7 @@
/*---
esid: sec-applying-the-exp-operator
description: If base is +0 and exponent < 0, the result is +∞.
+features: [exponentiation]
---*/
diff --git a/test/language/expressions/exponentiation/applying-the-exp-operator_A19.js b/test/language/expressions/exponentiation/applying-the-exp-operator_A19.js
index d56b8a0daa7..7c9934c87d7 100644
--- a/test/language/expressions/exponentiation/applying-the-exp-operator_A19.js
+++ b/test/language/expressions/exponentiation/applying-the-exp-operator_A19.js
@@ -4,6 +4,7 @@
/*---
esid: sec-applying-the-exp-operator
description: If base is −0 and exponent > 0 and exponent is an odd integer, the result is −0.
+features: [exponentiation]
---*/
diff --git a/test/language/expressions/exponentiation/applying-the-exp-operator_A2.js b/test/language/expressions/exponentiation/applying-the-exp-operator_A2.js
index 5eaf70151ad..1c94a7fa514 100644
--- a/test/language/expressions/exponentiation/applying-the-exp-operator_A2.js
+++ b/test/language/expressions/exponentiation/applying-the-exp-operator_A2.js
@@ -5,6 +5,7 @@
esid: sec-applying-the-exp-operator
description: >
If exponent is +0, the result is 1, even if base is NaN.
+features: [exponentiation]
---*/
diff --git a/test/language/expressions/exponentiation/applying-the-exp-operator_A20.js b/test/language/expressions/exponentiation/applying-the-exp-operator_A20.js
index 93ae818e2b6..518ac4a9757 100644
--- a/test/language/expressions/exponentiation/applying-the-exp-operator_A20.js
+++ b/test/language/expressions/exponentiation/applying-the-exp-operator_A20.js
@@ -4,6 +4,7 @@
/*---
esid: sec-applying-the-exp-operator
description: If base is −0 and exponent > 0 and exponent is not an odd integer, the result is +0.
+features: [exponentiation]
---*/
diff --git a/test/language/expressions/exponentiation/applying-the-exp-operator_A21.js b/test/language/expressions/exponentiation/applying-the-exp-operator_A21.js
index 361295d3c7a..b236eb201c0 100644
--- a/test/language/expressions/exponentiation/applying-the-exp-operator_A21.js
+++ b/test/language/expressions/exponentiation/applying-the-exp-operator_A21.js
@@ -4,6 +4,7 @@
/*---
esid: sec-applying-the-exp-operator
description: If base is −0 and exponent < 0 and exponent is an odd integer, the result is −∞.
+features: [exponentiation]
---*/
diff --git a/test/language/expressions/exponentiation/applying-the-exp-operator_A22.js b/test/language/expressions/exponentiation/applying-the-exp-operator_A22.js
index 17786cebac4..c1bc09b81ee 100644
--- a/test/language/expressions/exponentiation/applying-the-exp-operator_A22.js
+++ b/test/language/expressions/exponentiation/applying-the-exp-operator_A22.js
@@ -4,6 +4,7 @@
/*---
esid: sec-applying-the-exp-operator
description: If base is −0 and exponent < 0 and exponent is not an odd integer, the result is +∞.
+features: [exponentiation]
---*/
diff --git a/test/language/expressions/exponentiation/applying-the-exp-operator_A23.js b/test/language/expressions/exponentiation/applying-the-exp-operator_A23.js
index c2010f3ee3d..836fddb66b0 100644
--- a/test/language/expressions/exponentiation/applying-the-exp-operator_A23.js
+++ b/test/language/expressions/exponentiation/applying-the-exp-operator_A23.js
@@ -4,6 +4,7 @@
/*---
esid: sec-applying-the-exp-operator
description: If base < 0 and base is finite and exponent is finite and exponent is not an integer, the result is NaN.
+features: [exponentiation]
---*/
diff --git a/test/language/expressions/exponentiation/applying-the-exp-operator_A3.js b/test/language/expressions/exponentiation/applying-the-exp-operator_A3.js
index 629df3221b5..24dc972c1ef 100644
--- a/test/language/expressions/exponentiation/applying-the-exp-operator_A3.js
+++ b/test/language/expressions/exponentiation/applying-the-exp-operator_A3.js
@@ -5,6 +5,7 @@
esid: sec-applying-the-exp-operator
description: >
If exponent is −0, the result is 1, even if base is NaN.
+features: [exponentiation]
---*/
diff --git a/test/language/expressions/exponentiation/applying-the-exp-operator_A4.js b/test/language/expressions/exponentiation/applying-the-exp-operator_A4.js
index f7af9993227..bf73c0de559 100644
--- a/test/language/expressions/exponentiation/applying-the-exp-operator_A4.js
+++ b/test/language/expressions/exponentiation/applying-the-exp-operator_A4.js
@@ -4,6 +4,7 @@
/*---
esid: sec-applying-the-exp-operator
description: If base is NaN and exponent is nonzero, the result is NaN.
+features: [exponentiation]
---*/
diff --git a/test/language/expressions/exponentiation/applying-the-exp-operator_A5.js b/test/language/expressions/exponentiation/applying-the-exp-operator_A5.js
index f0b0fd7674a..7deb3cf0cec 100644
--- a/test/language/expressions/exponentiation/applying-the-exp-operator_A5.js
+++ b/test/language/expressions/exponentiation/applying-the-exp-operator_A5.js
@@ -4,6 +4,7 @@
/*---
esid: sec-applying-the-exp-operator
description: If abs(base) > 1 and exponent is +∞, the result is +∞.
+features: [exponentiation]
---*/
diff --git a/test/language/expressions/exponentiation/applying-the-exp-operator_A6.js b/test/language/expressions/exponentiation/applying-the-exp-operator_A6.js
index 06c39324338..36c973093b7 100644
--- a/test/language/expressions/exponentiation/applying-the-exp-operator_A6.js
+++ b/test/language/expressions/exponentiation/applying-the-exp-operator_A6.js
@@ -4,6 +4,7 @@
/*---
esid: sec-applying-the-exp-operator
description: If abs(base) > 1 and exponent is −∞, the result is +0.
+features: [exponentiation]
---*/
diff --git a/test/language/expressions/exponentiation/applying-the-exp-operator_A7.js b/test/language/expressions/exponentiation/applying-the-exp-operator_A7.js
index 5420f64f894..bc7c7aa0bf7 100644
--- a/test/language/expressions/exponentiation/applying-the-exp-operator_A7.js
+++ b/test/language/expressions/exponentiation/applying-the-exp-operator_A7.js
@@ -4,6 +4,7 @@
/*---
esid: sec-applying-the-exp-operator
description: If abs(base) is 1 and exponent is +∞, the result is NaN.
+features: [exponentiation]
---*/
diff --git a/test/language/expressions/exponentiation/applying-the-exp-operator_A8.js b/test/language/expressions/exponentiation/applying-the-exp-operator_A8.js
index 0e3dcc3679f..68521e6902b 100644
--- a/test/language/expressions/exponentiation/applying-the-exp-operator_A8.js
+++ b/test/language/expressions/exponentiation/applying-the-exp-operator_A8.js
@@ -4,6 +4,7 @@
/*---
esid: sec-applying-the-exp-operator
description: If abs(base) is 1 and exponent is −∞, the result is NaN.
+features: [exponentiation]
---*/
diff --git a/test/language/expressions/exponentiation/applying-the-exp-operator_A9.js b/test/language/expressions/exponentiation/applying-the-exp-operator_A9.js
index 6eee820d5b6..0a37bf930d8 100644
--- a/test/language/expressions/exponentiation/applying-the-exp-operator_A9.js
+++ b/test/language/expressions/exponentiation/applying-the-exp-operator_A9.js
@@ -4,7 +4,7 @@
/*---
esid: sec-applying-the-exp-operator
description: If abs(base) < 1 and exponent is +∞, the result is +0.
-
+features: [exponentiation]
---*/
diff --git a/test/language/expressions/exponentiation/bigint-and-number.js b/test/language/expressions/exponentiation/bigint-and-number.js
index 769bb4c9175..3c32d5b17f6 100644
--- a/test/language/expressions/exponentiation/bigint-and-number.js
+++ b/test/language/expressions/exponentiation/bigint-and-number.js
@@ -3,7 +3,7 @@
/*---
esid: sec-exp-operator-runtime-semantics-evaluation
description: Mixing BigInt and Number produces a TypeError for exponentiation operator
-features: [BigInt]
+features: [BigInt, exponentiation]
info: |
Let base be ? ToNumeric(leftValue).
Let exponent be ? ToNumeric(rightValue).
diff --git a/test/language/expressions/exponentiation/bigint-arithmetic.js b/test/language/expressions/exponentiation/bigint-arithmetic.js
index 2ccbce791d2..2ab0d90b085 100644
--- a/test/language/expressions/exponentiation/bigint-arithmetic.js
+++ b/test/language/expressions/exponentiation/bigint-arithmetic.js
@@ -3,7 +3,7 @@
/*---
esid: sec-exp-operator-runtime-semantics-evaluation
description: BigInt exponentiation arithmetic
-features: [BigInt]
+features: [BigInt, exponentiation]
---*/
assert.sameValue(
0x123n ** 0x123n,
diff --git a/test/language/expressions/exponentiation/bigint-errors.js b/test/language/expressions/exponentiation/bigint-errors.js
index e563bc6528c..a18aec253b4 100644
--- a/test/language/expressions/exponentiation/bigint-errors.js
+++ b/test/language/expressions/exponentiation/bigint-errors.js
@@ -3,7 +3,7 @@
/*---
description: exponentiation operator ToNumeric with BigInt operands
esid: sec-exp-operator-runtime-semantics-evaluation
-features: [BigInt, Symbol, Symbol.toPrimitive, computed-property-names]
+features: [BigInt, Symbol, Symbol.toPrimitive, computed-property-names, exponentiation]
---*/
assert.throws(TypeError, function() {
Symbol('1') ** 0n;
diff --git a/test/language/expressions/exponentiation/bigint-negative-exponent-throws.js b/test/language/expressions/exponentiation/bigint-negative-exponent-throws.js
index 8e3b32c539b..ae49cb2b290 100644
--- a/test/language/expressions/exponentiation/bigint-negative-exponent-throws.js
+++ b/test/language/expressions/exponentiation/bigint-negative-exponent-throws.js
@@ -13,7 +13,7 @@ info: |
1. If exponent < 0, throw a RangeError exception.
...
-features: [BigInt]
+features: [BigInt, exponentiation]
---*/
assert.throws(RangeError, function() {
1n ** -1n;
diff --git a/test/language/expressions/exponentiation/bigint-toprimitive.js b/test/language/expressions/exponentiation/bigint-toprimitive.js
index 9cae71e6fc3..09c19c8a1b6 100644
--- a/test/language/expressions/exponentiation/bigint-toprimitive.js
+++ b/test/language/expressions/exponentiation/bigint-toprimitive.js
@@ -3,7 +3,7 @@
/*---
description: exponentiation operator ToNumeric with BigInt operands
esid: sec-exp-operator-runtime-semantics-evaluation
-features: [BigInt, Symbol.toPrimitive, computed-property-names]
+features: [BigInt, Symbol.toPrimitive, computed-property-names, exponentiation]
---*/
function err() {
throw new Test262Error();
diff --git a/test/language/expressions/exponentiation/bigint-wrapped-values.js b/test/language/expressions/exponentiation/bigint-wrapped-values.js
index a5ba5070c37..13fd85202cf 100644
--- a/test/language/expressions/exponentiation/bigint-wrapped-values.js
+++ b/test/language/expressions/exponentiation/bigint-wrapped-values.js
@@ -3,7 +3,7 @@
/*---
description: exponentiation operator ToNumeric with BigInt operands
esid: sec-exp-operator-runtime-semantics-evaluation
-features: [BigInt, Symbol.toPrimitive, computed-property-names]
+features: [BigInt, Symbol.toPrimitive, computed-property-names, exponentiation]
---*/
assert.sameValue(Object(2n) ** 1n, 2n, 'The result of (Object(2n) ** 1n) is 2n');
assert.sameValue(1n ** Object(2n), 1n, 'The result of (1n ** Object(2n)) is 1n');
diff --git a/test/language/expressions/exponentiation/bigint-zero-base-zero-exponent.js b/test/language/expressions/exponentiation/bigint-zero-base-zero-exponent.js
index 425c46ff1ef..6c7218c53a4 100644
--- a/test/language/expressions/exponentiation/bigint-zero-base-zero-exponent.js
+++ b/test/language/expressions/exponentiation/bigint-zero-base-zero-exponent.js
@@ -15,6 +15,6 @@ info: |
2. If base is 0n and exponent is 0n, return 1n.
3. Return a BigInt representing the mathematical value of base raised to the power exponent.
...
-features: [BigInt]
+features: [BigInt, exponentiation]
---*/
assert.sameValue(0n ** 0n, 1n, 'The result of (0n ** 0n) is 1n');
diff --git a/test/language/expressions/exponentiation/exp-assignment-operator.js b/test/language/expressions/exponentiation/exp-assignment-operator.js
index b00d15b8103..e1907de3aae 100644
--- a/test/language/expressions/exponentiation/exp-assignment-operator.js
+++ b/test/language/expressions/exponentiation/exp-assignment-operator.js
@@ -17,7 +17,7 @@ info: |
6. Let r be the result of applying op to lval and rval as if evaluating the expression lval op rval.
7. Perform ? PutValue(lref, r).
8. Return r.
-
+features: [exponentiation]
---*/
var base = -3;
diff --git a/test/language/expressions/exponentiation/exp-operator-evaluation-order.js b/test/language/expressions/exponentiation/exp-operator-evaluation-order.js
index eeef5863308..c1464ab324e 100644
--- a/test/language/expressions/exponentiation/exp-operator-evaluation-order.js
+++ b/test/language/expressions/exponentiation/exp-operator-evaluation-order.js
@@ -16,6 +16,7 @@ info: |
5. Let base be ? ToNumber(leftValue).
6. Let exponent be ? ToNumber(rightValue).
7. Return the result of Applying the ** operator with base and exponent as specified in 12.7.3.4.
+features: [exponentiation]
---*/
var capture = [];
diff --git a/test/language/expressions/exponentiation/exp-operator-precedence-unary-expression-semantics.js b/test/language/expressions/exponentiation/exp-operator-precedence-unary-expression-semantics.js
index 03723c4d466..7c4b030538c 100644
--- a/test/language/expressions/exponentiation/exp-operator-precedence-unary-expression-semantics.js
+++ b/test/language/expressions/exponentiation/exp-operator-precedence-unary-expression-semantics.js
@@ -19,6 +19,7 @@ info: |
`-` UnaryExpression
`~` UnaryExpression
`!` UnaryExpression
+features: [exponentiation]
---*/
assert.sameValue(-(3 ** 2), -9, "-(3 ** 2) === -9");
diff --git a/test/language/expressions/exponentiation/exp-operator-precedence-update-expression-semantics.js b/test/language/expressions/exponentiation/exp-operator-precedence-update-expression-semantics.js
index a87f92217f9..f728c0bf240 100644
--- a/test/language/expressions/exponentiation/exp-operator-precedence-update-expression-semantics.js
+++ b/test/language/expressions/exponentiation/exp-operator-precedence-update-expression-semantics.js
@@ -15,6 +15,7 @@ info: |
LeftHandSideExpression `--`
`++` UnaryExpression
`--` UnaryExpression
+features: [exponentiation]
---*/
var base = 4;
diff --git a/test/language/expressions/exponentiation/exp-operator-syntax-error-bitnot-unary-expression-base.js b/test/language/expressions/exponentiation/exp-operator-syntax-error-bitnot-unary-expression-base.js
index 5ccb8438b6d..dcccd7bbf4b 100644
--- a/test/language/expressions/exponentiation/exp-operator-syntax-error-bitnot-unary-expression-base.js
+++ b/test/language/expressions/exponentiation/exp-operator-syntax-error-bitnot-unary-expression-base.js
@@ -14,6 +14,7 @@ info: |
...
`~` UnaryExpression
...
+features: [exponentiation]
negative:
phase: parse
diff --git a/test/language/expressions/exponentiation/exp-operator-syntax-error-delete-unary-expression-base.js b/test/language/expressions/exponentiation/exp-operator-syntax-error-delete-unary-expression-base.js
index 6e112053e7b..95b7003b119 100644
--- a/test/language/expressions/exponentiation/exp-operator-syntax-error-delete-unary-expression-base.js
+++ b/test/language/expressions/exponentiation/exp-operator-syntax-error-delete-unary-expression-base.js
@@ -14,6 +14,7 @@ info: |
...
`delete` UnaryExpression
...
+features: [exponentiation]
negative:
phase: parse
diff --git a/test/language/expressions/exponentiation/exp-operator-syntax-error-logical-not-unary-expression-base.js b/test/language/expressions/exponentiation/exp-operator-syntax-error-logical-not-unary-expression-base.js
index b453969e347..82f12d1701f 100644
--- a/test/language/expressions/exponentiation/exp-operator-syntax-error-logical-not-unary-expression-base.js
+++ b/test/language/expressions/exponentiation/exp-operator-syntax-error-logical-not-unary-expression-base.js
@@ -14,6 +14,7 @@ info: |
...
`!` UnaryExpression
...
+features: [exponentiation]
negative:
phase: parse
diff --git a/test/language/expressions/exponentiation/exp-operator-syntax-error-negate-unary-expression-base.js b/test/language/expressions/exponentiation/exp-operator-syntax-error-negate-unary-expression-base.js
index 992e7925f0a..372ec1d503f 100644
--- a/test/language/expressions/exponentiation/exp-operator-syntax-error-negate-unary-expression-base.js
+++ b/test/language/expressions/exponentiation/exp-operator-syntax-error-negate-unary-expression-base.js
@@ -14,6 +14,7 @@ info: |
...
`-` UnaryExpression
...
+features: [exponentiation]
negative:
phase: parse
diff --git a/test/language/expressions/exponentiation/exp-operator-syntax-error-plus-unary-expression-base.js b/test/language/expressions/exponentiation/exp-operator-syntax-error-plus-unary-expression-base.js
index c475d138a14..b959e00852f 100644
--- a/test/language/expressions/exponentiation/exp-operator-syntax-error-plus-unary-expression-base.js
+++ b/test/language/expressions/exponentiation/exp-operator-syntax-error-plus-unary-expression-base.js
@@ -14,6 +14,7 @@ info: |
...
`+` UnaryExpression
...
+features: [exponentiation]
negative:
phase: parse
diff --git a/test/language/expressions/exponentiation/exp-operator-syntax-error-typeof-unary-expression-base.js b/test/language/expressions/exponentiation/exp-operator-syntax-error-typeof-unary-expression-base.js
index 2193981d695..3d901e969be 100644
--- a/test/language/expressions/exponentiation/exp-operator-syntax-error-typeof-unary-expression-base.js
+++ b/test/language/expressions/exponentiation/exp-operator-syntax-error-typeof-unary-expression-base.js
@@ -14,6 +14,7 @@ info: |
...
`typeof` UnaryExpression
...
+features: [exponentiation]
negative:
phase: parse
diff --git a/test/language/expressions/exponentiation/exp-operator-syntax-error-void-unary-expression-base.js b/test/language/expressions/exponentiation/exp-operator-syntax-error-void-unary-expression-base.js
index bf5ffc94c31..ef515afe36b 100644
--- a/test/language/expressions/exponentiation/exp-operator-syntax-error-void-unary-expression-base.js
+++ b/test/language/expressions/exponentiation/exp-operator-syntax-error-void-unary-expression-base.js
@@ -14,6 +14,7 @@ info: |
...
`void` UnaryExpression
...
+features: [exponentiation]
negative:
phase: parse
diff --git a/test/language/expressions/exponentiation/exp-operator.js b/test/language/expressions/exponentiation/exp-operator.js
index 7b46edcac95..fdf3c8fa246 100644
--- a/test/language/expressions/exponentiation/exp-operator.js
+++ b/test/language/expressions/exponentiation/exp-operator.js
@@ -6,6 +6,7 @@ author: Rick Waldron
esid: sec-exp-operator
description: >
Performs exponential calculation on operands. Same algorithm as %MathPow%(base, exponent)
+features: [exponentiation]
---*/
var exponent = 2;
diff --git a/test/language/expressions/exponentiation/int32_min-exponent.js b/test/language/expressions/exponentiation/int32_min-exponent.js
index 556c8885c6a..0d91d53f8bd 100644
--- a/test/language/expressions/exponentiation/int32_min-exponent.js
+++ b/test/language/expressions/exponentiation/int32_min-exponent.js
@@ -6,6 +6,7 @@ esid: sec-applying-the-exp-operator
description: >
Using -(2**31) as exponent with the exponentiation operator should behave
as expected.
+features: [exponentiation]
---*/
const INT32_MIN = -2147483648;
diff --git a/test/language/expressions/exponentiation/order-of-evaluation.js b/test/language/expressions/exponentiation/order-of-evaluation.js
index 4a933c63771..91c5e953f9f 100644
--- a/test/language/expressions/exponentiation/order-of-evaluation.js
+++ b/test/language/expressions/exponentiation/order-of-evaluation.js
@@ -3,7 +3,7 @@
/*---
esid: sec-exp-operator-runtime-semantics-evaluation
description: Type coercion order of operations for exponentiation operator
-features: [Symbol]
+features: [Symbol, exponentiation]
info: |
Evaluate lhs
Evaluate rhs
diff --git a/test/language/expressions/object/cpn-obj-lit-computed-property-name-from-exponetiation-expression.js b/test/language/expressions/object/cpn-obj-lit-computed-property-name-from-exponetiation-expression.js
index a3a51ba5ecb..301d48ac4a6 100644
--- a/test/language/expressions/object/cpn-obj-lit-computed-property-name-from-exponetiation-expression.js
+++ b/test/language/expressions/object/cpn-obj-lit-computed-property-name-from-exponetiation-expression.js
@@ -4,7 +4,7 @@
/*---
description: Computed property name from exponentiation expression (ComputedPropertyName in ObjectLiteral)
esid: prod-ComputedPropertyName
-features: [computed-property-names]
+features: [computed-property-names, exponentiation]
flags: [generated]
info: |
ObjectLiteral:
diff --git a/test/language/expressions/object/cpn-obj-lit-computed-property-name-from-math.js b/test/language/expressions/object/cpn-obj-lit-computed-property-name-from-math.js
index f3218082c0a..b00930e79e6 100644
--- a/test/language/expressions/object/cpn-obj-lit-computed-property-name-from-math.js
+++ b/test/language/expressions/object/cpn-obj-lit-computed-property-name-from-math.js
@@ -4,7 +4,7 @@
/*---
description: Computed property name from math (ComputedPropertyName in ObjectLiteral)
esid: prod-ComputedPropertyName
-features: [computed-property-names]
+features: [computed-property-names, exponentiation]
flags: [generated]
info: |
ObjectLiteral:
diff --git a/test/language/statements/class/cpn-class-decl-accessors-computed-property-name-from-exponetiation-expression.js b/test/language/statements/class/cpn-class-decl-accessors-computed-property-name-from-exponetiation-expression.js
index 02e36b1715f..ff1d5a6f4bd 100644
--- a/test/language/statements/class/cpn-class-decl-accessors-computed-property-name-from-exponetiation-expression.js
+++ b/test/language/statements/class/cpn-class-decl-accessors-computed-property-name-from-exponetiation-expression.js
@@ -4,7 +4,7 @@
/*---
description: Computed property name from exponentiation expression (ComputedPropertyName in ClassDeclaration)
esid: prod-ComputedPropertyName
-features: [computed-property-names]
+features: [computed-property-names, exponentiation]
flags: [generated]
info: |
ClassExpression:
diff --git a/test/language/statements/class/cpn-class-decl-accessors-computed-property-name-from-math.js b/test/language/statements/class/cpn-class-decl-accessors-computed-property-name-from-math.js
index d9d3b9f1186..13f88ea8323 100644
--- a/test/language/statements/class/cpn-class-decl-accessors-computed-property-name-from-math.js
+++ b/test/language/statements/class/cpn-class-decl-accessors-computed-property-name-from-math.js
@@ -4,7 +4,7 @@
/*---
description: Computed property name from math (ComputedPropertyName in ClassDeclaration)
esid: prod-ComputedPropertyName
-features: [computed-property-names]
+features: [computed-property-names, exponentiation]
flags: [generated]
info: |
ClassExpression:
diff --git a/test/language/statements/class/cpn-class-decl-computed-property-name-from-exponetiation-expression.js b/test/language/statements/class/cpn-class-decl-computed-property-name-from-exponetiation-expression.js
index 40038346b28..fee561912a9 100644
--- a/test/language/statements/class/cpn-class-decl-computed-property-name-from-exponetiation-expression.js
+++ b/test/language/statements/class/cpn-class-decl-computed-property-name-from-exponetiation-expression.js
@@ -4,7 +4,7 @@
/*---
description: Computed property name from exponentiation expression (ComputedPropertyName in ClassDeclaration)
esid: prod-ComputedPropertyName
-features: [computed-property-names]
+features: [computed-property-names, exponentiation]
flags: [generated]
info: |
ClassExpression:
diff --git a/test/language/statements/class/cpn-class-decl-computed-property-name-from-math.js b/test/language/statements/class/cpn-class-decl-computed-property-name-from-math.js
index bbcbfa70c53..4594c331434 100644
--- a/test/language/statements/class/cpn-class-decl-computed-property-name-from-math.js
+++ b/test/language/statements/class/cpn-class-decl-computed-property-name-from-math.js
@@ -4,7 +4,7 @@
/*---
description: Computed property name from math (ComputedPropertyName in ClassDeclaration)
esid: prod-ComputedPropertyName
-features: [computed-property-names]
+features: [computed-property-names, exponentiation]
flags: [generated]
info: |
ClassExpression:
diff --git a/test/language/statements/class/cpn-class-decl-fields-computed-property-name-from-exponetiation-expression.js b/test/language/statements/class/cpn-class-decl-fields-computed-property-name-from-exponetiation-expression.js
index a00c8dcf0b0..b1fd2c55f01 100644
--- a/test/language/statements/class/cpn-class-decl-fields-computed-property-name-from-exponetiation-expression.js
+++ b/test/language/statements/class/cpn-class-decl-fields-computed-property-name-from-exponetiation-expression.js
@@ -4,7 +4,7 @@
/*---
description: Computed property name from exponentiation expression (ComputedPropertyName in ClassExpression)
esid: prod-ComputedPropertyName
-features: [computed-property-names, class-fields-public, class-static-fields-public]
+features: [computed-property-names, exponentiation, class-fields-public, class-static-fields-public]
flags: [generated]
info: |
ClassExpression:
diff --git a/test/language/statements/class/cpn-class-decl-fields-computed-property-name-from-math.js b/test/language/statements/class/cpn-class-decl-fields-computed-property-name-from-math.js
index c512cb069d6..2f34703a500 100644
--- a/test/language/statements/class/cpn-class-decl-fields-computed-property-name-from-math.js
+++ b/test/language/statements/class/cpn-class-decl-fields-computed-property-name-from-math.js
@@ -4,7 +4,7 @@
/*---
description: Computed property name from math (ComputedPropertyName in ClassExpression)
esid: prod-ComputedPropertyName
-features: [computed-property-names, class-fields-public, class-static-fields-public]
+features: [computed-property-names, exponentiation, class-fields-public, class-static-fields-public]
flags: [generated]
info: |
ClassExpression:
diff --git a/test/language/statements/class/cpn-class-decl-fields-methods-computed-property-name-from-exponetiation-expression.js b/test/language/statements/class/cpn-class-decl-fields-methods-computed-property-name-from-exponetiation-expression.js
index 02bd62297eb..fab8d63ab3f 100644
--- a/test/language/statements/class/cpn-class-decl-fields-methods-computed-property-name-from-exponetiation-expression.js
+++ b/test/language/statements/class/cpn-class-decl-fields-methods-computed-property-name-from-exponetiation-expression.js
@@ -4,7 +4,7 @@
/*---
description: Computed property name from exponentiation expression (ComputedPropertyName in ClassExpression)
esid: prod-ComputedPropertyName
-features: [computed-property-names, class-fields-public, class-static-fields-public]
+features: [computed-property-names, exponentiation, class-fields-public, class-static-fields-public]
flags: [generated]
info: |
ClassExpression:
diff --git a/test/language/statements/class/cpn-class-decl-fields-methods-computed-property-name-from-math.js b/test/language/statements/class/cpn-class-decl-fields-methods-computed-property-name-from-math.js
index 763688bb79d..1f384d411df 100644
--- a/test/language/statements/class/cpn-class-decl-fields-methods-computed-property-name-from-math.js
+++ b/test/language/statements/class/cpn-class-decl-fields-methods-computed-property-name-from-math.js
@@ -4,7 +4,7 @@
/*---
description: Computed property name from math (ComputedPropertyName in ClassExpression)
esid: prod-ComputedPropertyName
-features: [computed-property-names, class-fields-public, class-static-fields-public]
+features: [computed-property-names, exponentiation, class-fields-public, class-static-fields-public]
flags: [generated]
info: |
ClassExpression:
diff --git a/test/staging/ArrayBuffer/resizable/includes-parameter-conversion-resizes.js b/test/staging/ArrayBuffer/resizable/includes-parameter-conversion-resizes.js
index 6d513ac39d7..0e9b1beb698 100644
--- a/test/staging/ArrayBuffer/resizable/includes-parameter-conversion-resizes.js
+++ b/test/staging/ArrayBuffer/resizable/includes-parameter-conversion-resizes.js
@@ -6,7 +6,7 @@ esid: sec-arraybuffer-length
description: >
Automatically ported from IncludesParameterConversionResizes test
in V8's mjsunit test typedarray-resizablearraybuffer.js
-features: [resizable-arraybuffer]
+features: [resizable-arraybuffer, Array.prototype.includes]
flags: [onlyStrict]
---*/
diff --git a/test/staging/ArrayBuffer/resizable/includes.js b/test/staging/ArrayBuffer/resizable/includes.js
index 4ae996953eb..a33c7ca29af 100644
--- a/test/staging/ArrayBuffer/resizable/includes.js
+++ b/test/staging/ArrayBuffer/resizable/includes.js
@@ -6,7 +6,7 @@ esid: sec-arraybuffer-length
description: >
Automatically ported from Includes test
in V8's mjsunit test typedarray-resizablearraybuffer.js
-features: [resizable-arraybuffer]
+features: [resizable-arraybuffer, Array.prototype.includes]
flags: [onlyStrict]
---*/
diff --git a/test/staging/ArrayBuffer/resizable/sort-callback-shrinks.js b/test/staging/ArrayBuffer/resizable/sort-callback-shrinks.js
index 47ef31ca1d3..0ba38348047 100644
--- a/test/staging/ArrayBuffer/resizable/sort-callback-shrinks.js
+++ b/test/staging/ArrayBuffer/resizable/sort-callback-shrinks.js
@@ -7,7 +7,7 @@ description: >
Automatically ported from SortCallbackShrinks test
in V8's mjsunit test typedarray-resizablearraybuffer.js
includes: [compareArray.js]
-features: [resizable-arraybuffer]
+features: [resizable-arraybuffer, Array.prototype.includes]
flags: [onlyStrict]
---*/
diff --git a/test/staging/Intl402/Temporal/old/non-iso-calendars.js b/test/staging/Intl402/Temporal/old/non-iso-calendars.js
index e5ba2ac73b3..f6dd8981f23 100644
--- a/test/staging/Intl402/Temporal/old/non-iso-calendars.js
+++ b/test/staging/Intl402/Temporal/old/non-iso-calendars.js
@@ -4,7 +4,7 @@
/*---
esid: sec-temporal-intl
description: Non-ISO Calendars
-features: [Temporal]
+features: [Temporal, Array.prototype.includes]
---*/
var testChineseData = new Date("2001-02-01T00:00Z").toLocaleString("en-US-u-ca-chinese", {
diff --git a/test/staging/Temporal/UserCalendar/old/calendar-extra-fields.js b/test/staging/Temporal/UserCalendar/old/calendar-extra-fields.js
index ee3b0062848..2ef1262540e 100644
--- a/test/staging/Temporal/UserCalendar/old/calendar-extra-fields.js
+++ b/test/staging/Temporal/UserCalendar/old/calendar-extra-fields.js
@@ -4,7 +4,7 @@
/*---
esid: sec-temporal-zoneddatetime-objects
description: calendar with extra fields
-features: [Temporal]
+features: [Temporal, Array.prototype.includes]
---*/
class SeasonCalendar extends Temporal.Calendar {
diff --git a/test/staging/Temporal/UserCalendar/old/calendar-non-trivial-mergefields.js b/test/staging/Temporal/UserCalendar/old/calendar-non-trivial-mergefields.js
index 4a18631e075..f4262c66b43 100644
--- a/test/staging/Temporal/UserCalendar/old/calendar-non-trivial-mergefields.js
+++ b/test/staging/Temporal/UserCalendar/old/calendar-non-trivial-mergefields.js
@@ -4,7 +4,7 @@
/*---
esid: sec-temporal-zoneddatetime-objects
description: calendar with nontrivial mergeFields implementation
-features: [Temporal]
+features: [Temporal, Array.prototype.includes]
---*/
class CenturyCalendar extends Temporal.Calendar {