From 478f5b4c0c44b91bbeeeb2fde009c09a0b271061 Mon Sep 17 00:00:00 2001
From: Leo Balter <leonardo.balter@gmail.com>
Date: Mon, 19 Mar 2018 19:51:32 -0400
Subject: [PATCH] Add features tags for Atomics and SharedArrayBuffer (#1494)

* Add features tags for Atomics

* Add features tags for SharedArrayBuffer
---
 test/built-ins/Atomics/Symbol.toStringTag.js                    | 2 +-
 test/built-ins/Atomics/add/descriptor.js                        | 1 +
 test/built-ins/Atomics/add/length.js                            | 1 +
 test/built-ins/Atomics/add/name.js                              | 1 +
 test/built-ins/Atomics/add/nonshared-int-views.js               | 2 +-
 test/built-ins/Atomics/add/shared-nonint-views.js               | 2 +-
 test/built-ins/Atomics/and/descriptor.js                        | 1 +
 test/built-ins/Atomics/and/length.js                            | 1 +
 test/built-ins/Atomics/and/name.js                              | 1 +
 test/built-ins/Atomics/and/nonshared-int-views.js               | 2 +-
 test/built-ins/Atomics/and/shared-nonint-views.js               | 2 +-
 test/built-ins/Atomics/compareExchange/descriptor.js            | 1 +
 test/built-ins/Atomics/compareExchange/length.js                | 1 +
 test/built-ins/Atomics/compareExchange/name.js                  | 1 +
 test/built-ins/Atomics/compareExchange/nonshared-int-views.js   | 2 +-
 test/built-ins/Atomics/compareExchange/shared-nonint-views.js   | 2 +-
 test/built-ins/Atomics/exchange/descriptor.js                   | 1 +
 test/built-ins/Atomics/exchange/length.js                       | 1 +
 test/built-ins/Atomics/exchange/name.js                         | 1 +
 test/built-ins/Atomics/exchange/nonshared-int-views.js          | 2 +-
 test/built-ins/Atomics/exchange/shared-nonint-views.js          | 2 +-
 test/built-ins/Atomics/isLockFree/corner-cases.js               | 1 +
 test/built-ins/Atomics/isLockFree/descriptor.js                 | 1 +
 test/built-ins/Atomics/isLockFree/length.js                     | 1 +
 test/built-ins/Atomics/isLockFree/name.js                       | 1 +
 test/built-ins/Atomics/isLockFree/value.js                      | 1 +
 test/built-ins/Atomics/load/descriptor.js                       | 1 +
 test/built-ins/Atomics/load/length.js                           | 1 +
 test/built-ins/Atomics/load/name.js                             | 1 +
 test/built-ins/Atomics/load/nonshared-int-views.js              | 2 +-
 test/built-ins/Atomics/load/shared-nonint-views.js              | 2 +-
 test/built-ins/Atomics/or/descriptor.js                         | 1 +
 test/built-ins/Atomics/or/length.js                             | 1 +
 test/built-ins/Atomics/or/name.js                               | 1 +
 test/built-ins/Atomics/or/nonshared-int-views.js                | 2 +-
 test/built-ins/Atomics/or/shared-nonint-views.js                | 2 +-
 test/built-ins/Atomics/prop-desc.js                             | 1 +
 test/built-ins/Atomics/proto.js                                 | 1 +
 test/built-ins/Atomics/store/descriptor.js                      | 1 +
 test/built-ins/Atomics/store/length.js                          | 1 +
 test/built-ins/Atomics/store/name.js                            | 1 +
 test/built-ins/Atomics/store/nonshared-int-views.js             | 2 +-
 test/built-ins/Atomics/store/shared-nonint-views.js             | 2 +-
 test/built-ins/Atomics/sub/descriptor.js                        | 1 +
 test/built-ins/Atomics/sub/length.js                            | 1 +
 test/built-ins/Atomics/sub/name.js                              | 1 +
 test/built-ins/Atomics/sub/nonshared-int-views.js               | 2 +-
 test/built-ins/Atomics/sub/shared-nonint-views.js               | 2 +-
 test/built-ins/Atomics/wait/descriptor.js                       | 1 +
 test/built-ins/Atomics/wait/did-timeout.js                      | 1 +
 test/built-ins/Atomics/wait/good-views.js                       | 1 +
 test/built-ins/Atomics/wait/length.js                           | 1 +
 test/built-ins/Atomics/wait/name.js                             | 1 +
 test/built-ins/Atomics/wait/negative-timeout.js                 | 1 +
 test/built-ins/Atomics/wait/no-spurious-wakeup.js               | 1 +
 test/built-ins/Atomics/wait/nonshared-int-views.js              | 2 +-
 test/built-ins/Atomics/wait/shared-nonint-views.js              | 2 +-
 test/built-ins/Atomics/wait/was-woken.js                        | 1 +
 test/built-ins/Atomics/wake/counts.js                           | 1 +
 test/built-ins/Atomics/wake/descriptor.js                       | 1 +
 test/built-ins/Atomics/wake/length.js                           | 1 +
 test/built-ins/Atomics/wake/name.js                             | 1 +
 test/built-ins/Atomics/wake/nonshared-int-views.js              | 2 +-
 test/built-ins/Atomics/wake/shared-nonint-views.js              | 2 +-
 test/built-ins/Atomics/wake/wake-all-on-loc.js                  | 1 +
 test/built-ins/Atomics/wake/wake-all.js                         | 1 +
 test/built-ins/Atomics/wake/wake-in-order.js                    | 1 +
 test/built-ins/Atomics/wake/wake-nan.js                         | 1 +
 test/built-ins/Atomics/wake/wake-negative.js                    | 1 +
 test/built-ins/Atomics/wake/wake-one.js                         | 1 +
 test/built-ins/Atomics/wake/wake-two.js                         | 1 +
 test/built-ins/Atomics/wake/wake-zero.js                        | 1 +
 test/built-ins/Atomics/xor/descriptor.js                        | 1 +
 test/built-ins/Atomics/xor/length.js                            | 1 +
 test/built-ins/Atomics/xor/name.js                              | 1 +
 test/built-ins/Atomics/xor/nonshared-int-views.js               | 2 +-
 test/built-ins/Atomics/xor/shared-nonint-views.js               | 2 +-
 test/built-ins/SharedArrayBuffer/allocation-limit.js            | 1 +
 .../SharedArrayBuffer/data-allocation-after-object-creation.js  | 2 +-
 test/built-ins/SharedArrayBuffer/init-zero.js                   | 2 +-
 test/built-ins/SharedArrayBuffer/length-is-absent.js            | 1 +
 test/built-ins/SharedArrayBuffer/length-is-too-large-throws.js  | 1 +
 test/built-ins/SharedArrayBuffer/negative-length-throws.js      | 1 +
 .../SharedArrayBuffer/newtarget-prototype-is-not-object.js      | 2 +-
 test/built-ins/SharedArrayBuffer/proto-from-ctor-realm.js       | 2 +-
 test/built-ins/SharedArrayBuffer/prototype-from-newtarget.js    | 2 +-
 .../built-ins/SharedArrayBuffer/prototype/Symbol.toStringTag.js | 2 +-
 .../prototype/byteLength/invoked-as-accessor.js                 | 1 +
 .../SharedArrayBuffer/prototype/byteLength/invoked-as-func.js   | 1 +
 test/built-ins/SharedArrayBuffer/prototype/byteLength/length.js | 1 +
 test/built-ins/SharedArrayBuffer/prototype/byteLength/name.js   | 1 +
 .../SharedArrayBuffer/prototype/byteLength/prop-desc.js         | 1 +
 .../SharedArrayBuffer/prototype/byteLength/return-bytelength.js | 1 +
 .../prototype/byteLength/this-has-no-typedarrayname-internal.js | 2 +-
 .../prototype/byteLength/this-is-arraybuffer.js                 | 1 +
 .../prototype/byteLength/this-is-not-object.js                  | 2 +-
 test/built-ins/SharedArrayBuffer/prototype/constructor.js       | 1 +
 .../prototype/slice/context-is-not-arraybuffer-object.js        | 1 +
 .../SharedArrayBuffer/prototype/slice/context-is-not-object.js  | 2 +-
 test/built-ins/SharedArrayBuffer/prototype/slice/descriptor.js  | 1 +
 .../SharedArrayBuffer/prototype/slice/end-default-if-absent.js  | 1 +
 .../prototype/slice/end-default-if-undefined.js                 | 1 +
 .../SharedArrayBuffer/prototype/slice/end-exceeds-length.js     | 1 +
 test/built-ins/SharedArrayBuffer/prototype/slice/extensible.js  | 1 +
 test/built-ins/SharedArrayBuffer/prototype/slice/length.js      | 1 +
 test/built-ins/SharedArrayBuffer/prototype/slice/name.js        | 1 +
 .../built-ins/SharedArrayBuffer/prototype/slice/negative-end.js | 1 +
 .../SharedArrayBuffer/prototype/slice/negative-start.js         | 1 +
 .../SharedArrayBuffer/prototype/slice/nonconstructor.js         | 1 +
 .../SharedArrayBuffer/prototype/slice/number-conversion.js      | 1 +
 .../prototype/slice/species-constructor-is-not-object.js        | 2 +-
 .../prototype/slice/species-constructor-is-undefined.js         | 1 +
 .../prototype/slice/species-is-not-constructor.js               | 2 +-
 .../SharedArrayBuffer/prototype/slice/species-is-not-object.js  | 2 +-
 .../SharedArrayBuffer/prototype/slice/species-is-null.js        | 2 +-
 .../SharedArrayBuffer/prototype/slice/species-is-undefined.js   | 2 +-
 .../prototype/slice/species-returns-larger-arraybuffer.js       | 2 +-
 .../prototype/slice/species-returns-not-arraybuffer.js          | 2 +-
 .../prototype/slice/species-returns-same-arraybuffer.js         | 2 +-
 .../prototype/slice/species-returns-smaller-arraybuffer.js      | 2 +-
 test/built-ins/SharedArrayBuffer/prototype/slice/species.js     | 2 +-
 .../prototype/slice/start-default-if-absent.js                  | 1 +
 .../prototype/slice/start-default-if-undefined.js               | 1 +
 .../SharedArrayBuffer/prototype/slice/start-exceeds-end.js      | 1 +
 .../SharedArrayBuffer/prototype/slice/start-exceeds-length.js   | 1 +
 .../SharedArrayBuffer/prototype/slice/this-is-arraybuffer.js    | 1 +
 .../prototype/slice/tointeger-conversion-end.js                 | 1 +
 .../prototype/slice/tointeger-conversion-start.js               | 1 +
 .../SharedArrayBuffer/return-abrupt-from-length-symbol.js       | 2 +-
 test/built-ins/SharedArrayBuffer/return-abrupt-from-length.js   | 1 +
 test/built-ins/SharedArrayBuffer/toindex-length.js              | 1 +
 test/built-ins/SharedArrayBuffer/undefined-newtarget-throws.js  | 1 +
 test/built-ins/SharedArrayBuffer/zero-length.js                 | 1 +
 133 files changed, 133 insertions(+), 43 deletions(-)

diff --git a/test/built-ins/Atomics/Symbol.toStringTag.js b/test/built-ins/Atomics/Symbol.toStringTag.js
index bb4b8ccdae..d3d1ba2d7d 100644
--- a/test/built-ins/Atomics/Symbol.toStringTag.js
+++ b/test/built-ins/Atomics/Symbol.toStringTag.js
@@ -11,7 +11,7 @@ info: |
     This property has the attributes { [[Writable]]: false, [[Enumerable]]:
     false, [[Configurable]]: true }.
 includes: [propertyHelper.js]
-features: [Symbol.toStringTag]
+features: [Atomics, Symbol.toStringTag]
 ---*/
 
 assert.sameValue(Atomics[Symbol.toStringTag], 'Atomics');
diff --git a/test/built-ins/Atomics/add/descriptor.js b/test/built-ins/Atomics/add/descriptor.js
index 198d97b849..93422391d4 100644
--- a/test/built-ins/Atomics/add/descriptor.js
+++ b/test/built-ins/Atomics/add/descriptor.js
@@ -6,6 +6,7 @@
 esid: sec-atomics.add
 description: Testing descriptor property of Atomics.add
 includes: [propertyHelper.js]
+features: [Atomics]
 ---*/
 
 verifyWritable(Atomics, "add");
diff --git a/test/built-ins/Atomics/add/length.js b/test/built-ins/Atomics/add/length.js
index b9f4c37798..518f30277e 100644
--- a/test/built-ins/Atomics/add/length.js
+++ b/test/built-ins/Atomics/add/length.js
@@ -21,6 +21,7 @@ info: |
     object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
     [[Configurable]]: true }.
 includes: [propertyHelper.js]
+features: [Atomics]
 ---*/
 
 assert.sameValue(Atomics.add.length, 3);
diff --git a/test/built-ins/Atomics/add/name.js b/test/built-ins/Atomics/add/name.js
index f65988d00a..ccb06e1fad 100644
--- a/test/built-ins/Atomics/add/name.js
+++ b/test/built-ins/Atomics/add/name.js
@@ -7,6 +7,7 @@ esid: sec-atomics.add
 description: >
   Atomics.add.name is "add".
 includes: [propertyHelper.js]
+features: [Atomics]
 ---*/
 
 assert.sameValue(Atomics.add.name, "add");
diff --git a/test/built-ins/Atomics/add/nonshared-int-views.js b/test/built-ins/Atomics/add/nonshared-int-views.js
index 3719f2f900..e1a44542a8 100644
--- a/test/built-ins/Atomics/add/nonshared-int-views.js
+++ b/test/built-ins/Atomics/add/nonshared-int-views.js
@@ -6,7 +6,7 @@ esid: sec-atomics.add
 description: >
   Test Atomics.add on non-shared integer TypedArrays
 includes: [testTypedArray.js]
-features: [TypedArray]
+features: [Atomics, TypedArray]
 ---*/
 
 var ab = new ArrayBuffer(16);
diff --git a/test/built-ins/Atomics/add/shared-nonint-views.js b/test/built-ins/Atomics/add/shared-nonint-views.js
index 21d834eae9..ca2ad7bfa2 100644
--- a/test/built-ins/Atomics/add/shared-nonint-views.js
+++ b/test/built-ins/Atomics/add/shared-nonint-views.js
@@ -6,7 +6,7 @@ esid: sec-atomics.add
 description: >
   Test Atomics.add on shared non-integer TypedArrays
 includes: [testTypedArray.js]
-features: [TypedArray]
+features: [Atomics, TypedArray]
 ---*/
 
 var sab = new SharedArrayBuffer(1024);
diff --git a/test/built-ins/Atomics/and/descriptor.js b/test/built-ins/Atomics/and/descriptor.js
index c5be59fa29..7093525ba7 100644
--- a/test/built-ins/Atomics/and/descriptor.js
+++ b/test/built-ins/Atomics/and/descriptor.js
@@ -6,6 +6,7 @@
 esid: sec-atomics.and
 description: Testing descriptor property of Atomics.and
 includes: [propertyHelper.js]
+features: [Atomics]
 ---*/
 
 verifyWritable(Atomics, "and");
diff --git a/test/built-ins/Atomics/and/length.js b/test/built-ins/Atomics/and/length.js
index 94ec10fd51..b1e9bb0fd7 100644
--- a/test/built-ins/Atomics/and/length.js
+++ b/test/built-ins/Atomics/and/length.js
@@ -21,6 +21,7 @@ info: |
     object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
     [[Configurable]]: true }.
 includes: [propertyHelper.js]
+features: [Atomics]
 ---*/
 
 assert.sameValue(Atomics.and.length, 3);
diff --git a/test/built-ins/Atomics/and/name.js b/test/built-ins/Atomics/and/name.js
index c49fd8aa77..33010c4b52 100644
--- a/test/built-ins/Atomics/and/name.js
+++ b/test/built-ins/Atomics/and/name.js
@@ -7,6 +7,7 @@ esid: sec-atomics.and
 description: >
   Atomics.and.name is "and".
 includes: [propertyHelper.js]
+features: [Atomics]
 ---*/
 
 assert.sameValue(Atomics.and.name, "and");
diff --git a/test/built-ins/Atomics/and/nonshared-int-views.js b/test/built-ins/Atomics/and/nonshared-int-views.js
index 8d70354874..4a5a90efa2 100644
--- a/test/built-ins/Atomics/and/nonshared-int-views.js
+++ b/test/built-ins/Atomics/and/nonshared-int-views.js
@@ -6,7 +6,7 @@ esid: sec-atomics.and
 description: >
   Test Atomics.and on non-shared integer TypedArrays
 includes: [testTypedArray.js]
-features: [TypedArray]
+features: [Atomics, TypedArray]
 ---*/
 
 var ab = new ArrayBuffer(16);
diff --git a/test/built-ins/Atomics/and/shared-nonint-views.js b/test/built-ins/Atomics/and/shared-nonint-views.js
index a7538d0117..9c34faf821 100644
--- a/test/built-ins/Atomics/and/shared-nonint-views.js
+++ b/test/built-ins/Atomics/and/shared-nonint-views.js
@@ -6,7 +6,7 @@ esid: sec-atomics.and
 description: >
   Test Atomics.and on shared non-integer TypedArrays
 includes: [testTypedArray.js]
-features: [TypedArray]
+features: [Atomics, TypedArray]
 ---*/
 
 var sab = new SharedArrayBuffer(1024);
diff --git a/test/built-ins/Atomics/compareExchange/descriptor.js b/test/built-ins/Atomics/compareExchange/descriptor.js
index 453ab24567..78f78fd645 100644
--- a/test/built-ins/Atomics/compareExchange/descriptor.js
+++ b/test/built-ins/Atomics/compareExchange/descriptor.js
@@ -6,6 +6,7 @@
 esid: sec-atomics.compareexchange
 description: Testing descriptor property of Atomics.compareExchange
 includes: [propertyHelper.js]
+features: [Atomics]
 ---*/
 
 verifyWritable(Atomics, "compareExchange");
diff --git a/test/built-ins/Atomics/compareExchange/length.js b/test/built-ins/Atomics/compareExchange/length.js
index 43b3b5b79a..db09540738 100644
--- a/test/built-ins/Atomics/compareExchange/length.js
+++ b/test/built-ins/Atomics/compareExchange/length.js
@@ -21,6 +21,7 @@ info: |
     object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
     [[Configurable]]: true }.
 includes: [propertyHelper.js]
+features: [Atomics]
 ---*/
 
 assert.sameValue(Atomics.compareExchange.length, 4);
diff --git a/test/built-ins/Atomics/compareExchange/name.js b/test/built-ins/Atomics/compareExchange/name.js
index b725d1b3d9..80a56b04c4 100644
--- a/test/built-ins/Atomics/compareExchange/name.js
+++ b/test/built-ins/Atomics/compareExchange/name.js
@@ -7,6 +7,7 @@ esid: sec-atomics.compareexchange
 description: >
   Atomics.compareExchange.name is "compareExchange".
 includes: [propertyHelper.js]
+features: [Atomics]
 ---*/
 
 assert.sameValue(Atomics.compareExchange.name, "compareExchange");
diff --git a/test/built-ins/Atomics/compareExchange/nonshared-int-views.js b/test/built-ins/Atomics/compareExchange/nonshared-int-views.js
index c616509445..aaaa95d4ea 100644
--- a/test/built-ins/Atomics/compareExchange/nonshared-int-views.js
+++ b/test/built-ins/Atomics/compareExchange/nonshared-int-views.js
@@ -6,7 +6,7 @@ esid: sec-atomics.compareexchange
 description: >
   Test Atomics.compareExchange on non-shared integer TypedArrays
 includes: [testTypedArray.js]
-features: [TypedArray]
+features: [Atomics, TypedArray]
 ---*/
 
 var ab = new ArrayBuffer(16);
diff --git a/test/built-ins/Atomics/compareExchange/shared-nonint-views.js b/test/built-ins/Atomics/compareExchange/shared-nonint-views.js
index 059c9301e8..06d66b0aeb 100644
--- a/test/built-ins/Atomics/compareExchange/shared-nonint-views.js
+++ b/test/built-ins/Atomics/compareExchange/shared-nonint-views.js
@@ -6,7 +6,7 @@ esid: sec-atomics.compareexchange
 description: >
   Test Atomics.compareExchange on shared non-integer TypedArrays
 includes: [testTypedArray.js]
-features: [TypedArray]
+features: [Atomics, TypedArray]
 ---*/
 
 var sab = new SharedArrayBuffer(1024);
diff --git a/test/built-ins/Atomics/exchange/descriptor.js b/test/built-ins/Atomics/exchange/descriptor.js
index b12bf1973c..1133486729 100644
--- a/test/built-ins/Atomics/exchange/descriptor.js
+++ b/test/built-ins/Atomics/exchange/descriptor.js
@@ -6,6 +6,7 @@
 esid: sec-atomics.exchange
 description: Testing descriptor property of Atomics.exchange
 includes: [propertyHelper.js]
+features: [Atomics]
 ---*/
 
 verifyWritable(Atomics, "exchange");
diff --git a/test/built-ins/Atomics/exchange/length.js b/test/built-ins/Atomics/exchange/length.js
index 1a624a491d..6a0cc44462 100644
--- a/test/built-ins/Atomics/exchange/length.js
+++ b/test/built-ins/Atomics/exchange/length.js
@@ -21,6 +21,7 @@ info: |
     object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
     [[Configurable]]: true }.
 includes: [propertyHelper.js]
+features: [Atomics]
 ---*/
 
 assert.sameValue(Atomics.exchange.length, 3);
diff --git a/test/built-ins/Atomics/exchange/name.js b/test/built-ins/Atomics/exchange/name.js
index 8966fefad0..95ca01a237 100644
--- a/test/built-ins/Atomics/exchange/name.js
+++ b/test/built-ins/Atomics/exchange/name.js
@@ -7,6 +7,7 @@ esid: sec-atomics.exchange
 description: >
   Atomics.exchange.name is "exchange".
 includes: [propertyHelper.js]
+features: [Atomics]
 ---*/
 
 assert.sameValue(Atomics.exchange.name, "exchange");
diff --git a/test/built-ins/Atomics/exchange/nonshared-int-views.js b/test/built-ins/Atomics/exchange/nonshared-int-views.js
index e3f7302617..c6684d4635 100644
--- a/test/built-ins/Atomics/exchange/nonshared-int-views.js
+++ b/test/built-ins/Atomics/exchange/nonshared-int-views.js
@@ -6,7 +6,7 @@ esid: sec-atomics.exchange
 description: >
   Test Atomics.exchange on non-shared integer TypedArrays
 includes: [testTypedArray.js]
-features: [TypedArray]
+features: [Atomics, TypedArray]
 ---*/
 
 var ab = new ArrayBuffer(16);
diff --git a/test/built-ins/Atomics/exchange/shared-nonint-views.js b/test/built-ins/Atomics/exchange/shared-nonint-views.js
index a83b0c4623..f0c041df1c 100644
--- a/test/built-ins/Atomics/exchange/shared-nonint-views.js
+++ b/test/built-ins/Atomics/exchange/shared-nonint-views.js
@@ -6,7 +6,7 @@ esid: sec-atomics.exchange
 description: >
   Test Atomics.exchange on shared non-integer TypedArrays
 includes: [testTypedArray.js]
-features: [TypedArray]
+features: [Atomics, TypedArray]
 ---*/
 
 var sab = new SharedArrayBuffer(1024);
diff --git a/test/built-ins/Atomics/isLockFree/corner-cases.js b/test/built-ins/Atomics/isLockFree/corner-cases.js
index 32ddce6c28..1c5e686f4e 100644
--- a/test/built-ins/Atomics/isLockFree/corner-cases.js
+++ b/test/built-ins/Atomics/isLockFree/corner-cases.js
@@ -5,6 +5,7 @@
 esid: sec-atomics.islockfree
 description: >
   Test isLockFree on various non-intuitive arguments
+features: [Atomics]
 ---*/
 
 assert.sameValue(false, Atomics.isLockFree(hide(3, Number.NaN)));
diff --git a/test/built-ins/Atomics/isLockFree/descriptor.js b/test/built-ins/Atomics/isLockFree/descriptor.js
index f8a9354c8e..30bf266e12 100644
--- a/test/built-ins/Atomics/isLockFree/descriptor.js
+++ b/test/built-ins/Atomics/isLockFree/descriptor.js
@@ -6,6 +6,7 @@
 esid: sec-atomics.islockfree
 description: Testing descriptor property of Atomics.add
 includes: [propertyHelper.js]
+features: [Atomics]
 ---*/
 
 verifyWritable(Atomics, "add");
diff --git a/test/built-ins/Atomics/isLockFree/length.js b/test/built-ins/Atomics/isLockFree/length.js
index 5fcd308073..beaf7962c7 100644
--- a/test/built-ins/Atomics/isLockFree/length.js
+++ b/test/built-ins/Atomics/isLockFree/length.js
@@ -21,6 +21,7 @@ info: |
     object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
     [[Configurable]]: true }.
 includes: [propertyHelper.js]
+features: [Atomics]
 ---*/
 
 assert.sameValue(Atomics.isLockFree.length, 1);
diff --git a/test/built-ins/Atomics/isLockFree/name.js b/test/built-ins/Atomics/isLockFree/name.js
index ad84cd81a1..bfa8478edd 100644
--- a/test/built-ins/Atomics/isLockFree/name.js
+++ b/test/built-ins/Atomics/isLockFree/name.js
@@ -7,6 +7,7 @@ esid: sec-atomics.islockfree
 description: >
   Atomics.isLockFree.name is "isLockFree".
 includes: [propertyHelper.js]
+features: [Atomics]
 ---*/
 
 assert.sameValue(Atomics.isLockFree.name, "isLockFree");
diff --git a/test/built-ins/Atomics/isLockFree/value.js b/test/built-ins/Atomics/isLockFree/value.js
index f5760d9fba..cfeafe0bbb 100644
--- a/test/built-ins/Atomics/isLockFree/value.js
+++ b/test/built-ins/Atomics/isLockFree/value.js
@@ -5,6 +5,7 @@
 esid: sec-atomics.islockfree
 description: >
   Test isLockFree on nonnegative integer arguments
+features: [Atomics]
 ---*/
 
 var sizes   = [    1,     2,     3,     4,     5,     6,     7,  8,
diff --git a/test/built-ins/Atomics/load/descriptor.js b/test/built-ins/Atomics/load/descriptor.js
index 031d33504a..ef6f55b41d 100644
--- a/test/built-ins/Atomics/load/descriptor.js
+++ b/test/built-ins/Atomics/load/descriptor.js
@@ -6,6 +6,7 @@
 esid: sec-atomics.load
 description: Testing descriptor property of Atomics.load
 includes: [propertyHelper.js]
+features: [Atomics]
 ---*/
 
 verifyWritable(Atomics, "load");
diff --git a/test/built-ins/Atomics/load/length.js b/test/built-ins/Atomics/load/length.js
index c49f27390e..072711b9c2 100644
--- a/test/built-ins/Atomics/load/length.js
+++ b/test/built-ins/Atomics/load/length.js
@@ -21,6 +21,7 @@ info: |
     object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
     [[Configurable]]: true }.
 includes: [propertyHelper.js]
+features: [Atomics]
 ---*/
 
 assert.sameValue(Atomics.load.length, 2);
diff --git a/test/built-ins/Atomics/load/name.js b/test/built-ins/Atomics/load/name.js
index 40cd2a6d1f..7629a7c09f 100644
--- a/test/built-ins/Atomics/load/name.js
+++ b/test/built-ins/Atomics/load/name.js
@@ -7,6 +7,7 @@ esid: sec-atomics.load
 description: >
   Atomics.load.name is "load".
 includes: [propertyHelper.js]
+features: [Atomics]
 ---*/
 
 assert.sameValue(Atomics.load.name, "load");
diff --git a/test/built-ins/Atomics/load/nonshared-int-views.js b/test/built-ins/Atomics/load/nonshared-int-views.js
index 8442ce9493..0c8e6bccc6 100644
--- a/test/built-ins/Atomics/load/nonshared-int-views.js
+++ b/test/built-ins/Atomics/load/nonshared-int-views.js
@@ -6,7 +6,7 @@ esid: sec-atomics.load
 description: >
   Test Atomics.load on non-shared integer TypedArrays
 includes: [testTypedArray.js]
-features: [TypedArray]
+features: [Atomics, TypedArray]
 ---*/
 
 var ab = new ArrayBuffer(16);
diff --git a/test/built-ins/Atomics/load/shared-nonint-views.js b/test/built-ins/Atomics/load/shared-nonint-views.js
index 726a618d02..170c727f06 100644
--- a/test/built-ins/Atomics/load/shared-nonint-views.js
+++ b/test/built-ins/Atomics/load/shared-nonint-views.js
@@ -6,7 +6,7 @@ esid: sec-atomics.load
 description: >
   Test Atomics.load on shared non-integer TypedArrays
 includes: [testTypedArray.js]
-features: [TypedArray]
+features: [Atomics, TypedArray]
 ---*/
 
 var sab = new SharedArrayBuffer(1024);
diff --git a/test/built-ins/Atomics/or/descriptor.js b/test/built-ins/Atomics/or/descriptor.js
index 72d9beefad..26b7163e32 100644
--- a/test/built-ins/Atomics/or/descriptor.js
+++ b/test/built-ins/Atomics/or/descriptor.js
@@ -6,6 +6,7 @@
 esid: sec-atomics.or
 description: Testing descriptor property of Atomics.or
 includes: [propertyHelper.js]
+features: [Atomics]
 ---*/
 
 verifyWritable(Atomics, "or");
diff --git a/test/built-ins/Atomics/or/length.js b/test/built-ins/Atomics/or/length.js
index 1e32049177..05e2c49563 100644
--- a/test/built-ins/Atomics/or/length.js
+++ b/test/built-ins/Atomics/or/length.js
@@ -21,6 +21,7 @@ info: |
     object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
     [[Configurable]]: true }.
 includes: [propertyHelper.js]
+features: [Atomics]
 ---*/
 
 assert.sameValue(Atomics.or.length, 3);
diff --git a/test/built-ins/Atomics/or/name.js b/test/built-ins/Atomics/or/name.js
index ca004416af..4096e9697d 100644
--- a/test/built-ins/Atomics/or/name.js
+++ b/test/built-ins/Atomics/or/name.js
@@ -7,6 +7,7 @@ esid: sec-atomics.or
 description: >
   Atomics.or.name is "or".
 includes: [propertyHelper.js]
+features: [Atomics]
 ---*/
 
 assert.sameValue(Atomics.or.name, "or");
diff --git a/test/built-ins/Atomics/or/nonshared-int-views.js b/test/built-ins/Atomics/or/nonshared-int-views.js
index a4f34569e3..1a75c23448 100644
--- a/test/built-ins/Atomics/or/nonshared-int-views.js
+++ b/test/built-ins/Atomics/or/nonshared-int-views.js
@@ -6,7 +6,7 @@ esid: sec-atomics.or
 description: >
   Test Atomics.or on non-shared integer TypedArrays
 includes: [testTypedArray.js]
-features: [TypedArray]
+features: [Atomics, TypedArray]
 ---*/
 
 var ab = new ArrayBuffer(16);
diff --git a/test/built-ins/Atomics/or/shared-nonint-views.js b/test/built-ins/Atomics/or/shared-nonint-views.js
index 0134956277..0116afea53 100644
--- a/test/built-ins/Atomics/or/shared-nonint-views.js
+++ b/test/built-ins/Atomics/or/shared-nonint-views.js
@@ -6,7 +6,7 @@ esid: sec-atomics.or
 description: >
   Test Atomics.or on shared non-integer TypedArrays
 includes: [testTypedArray.js]
-features: [TypedArray]
+features: [Atomics, TypedArray]
 ---*/
 
 var sab = new SharedArrayBuffer(1024);
diff --git a/test/built-ins/Atomics/prop-desc.js b/test/built-ins/Atomics/prop-desc.js
index 67eff07a07..946bab41c0 100644
--- a/test/built-ins/Atomics/prop-desc.js
+++ b/test/built-ins/Atomics/prop-desc.js
@@ -20,6 +20,7 @@ info: |
   has the attributes { [[Writable]]: true, [[Enumerable]]: false,
   [[Configurable]]: true } unless otherwise specified.
 includes: [propertyHelper.js]
+features: [Atomics]
 ---*/
 
 assert.sameValue(typeof Atomics, "object", "no [[Call]]");
diff --git a/test/built-ins/Atomics/proto.js b/test/built-ins/Atomics/proto.js
index ce8649ba47..1e7183f6d7 100644
--- a/test/built-ins/Atomics/proto.js
+++ b/test/built-ins/Atomics/proto.js
@@ -10,6 +10,7 @@ info: |
 
   The value of the [[Prototype]] internal slot of the Atomics object is the
   intrinsic object %ObjectPrototype%.
+features: [Atomics]
 ---*/
 
 var proto = Object.getPrototypeOf(Atomics);
diff --git a/test/built-ins/Atomics/store/descriptor.js b/test/built-ins/Atomics/store/descriptor.js
index c8192dbfc2..a76ea756a3 100644
--- a/test/built-ins/Atomics/store/descriptor.js
+++ b/test/built-ins/Atomics/store/descriptor.js
@@ -6,6 +6,7 @@
 esid: sec-atomics.store
 description: Testing descriptor property of Atomics.store
 includes: [propertyHelper.js]
+features: [Atomics]
 ---*/
 
 verifyWritable(Atomics, "store");
diff --git a/test/built-ins/Atomics/store/length.js b/test/built-ins/Atomics/store/length.js
index 231a5be420..9143f9459f 100644
--- a/test/built-ins/Atomics/store/length.js
+++ b/test/built-ins/Atomics/store/length.js
@@ -21,6 +21,7 @@ info: |
     object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
     [[Configurable]]: true }.
 includes: [propertyHelper.js]
+features: [Atomics]
 ---*/
 
 assert.sameValue(Atomics.store.length, 3);
diff --git a/test/built-ins/Atomics/store/name.js b/test/built-ins/Atomics/store/name.js
index 8d0ee81f01..97d8ca3628 100644
--- a/test/built-ins/Atomics/store/name.js
+++ b/test/built-ins/Atomics/store/name.js
@@ -7,6 +7,7 @@ esid: sec-atomics.store
 description: >
   Atomics.store.name is "store".
 includes: [propertyHelper.js]
+features: [Atomics]
 ---*/
 
 assert.sameValue(Atomics.store.name, "store");
diff --git a/test/built-ins/Atomics/store/nonshared-int-views.js b/test/built-ins/Atomics/store/nonshared-int-views.js
index 7bf2f781e3..06029384cc 100644
--- a/test/built-ins/Atomics/store/nonshared-int-views.js
+++ b/test/built-ins/Atomics/store/nonshared-int-views.js
@@ -6,7 +6,7 @@ esid: sec-atomics.store
 description: >
   Test Atomics.store on non-shared integer TypedArrays
 includes: [testTypedArray.js]
-features: [TypedArray]
+features: [Atomics, TypedArray]
 ---*/
 
 var ab = new ArrayBuffer(16);
diff --git a/test/built-ins/Atomics/store/shared-nonint-views.js b/test/built-ins/Atomics/store/shared-nonint-views.js
index c34f86024e..f2dfb40916 100644
--- a/test/built-ins/Atomics/store/shared-nonint-views.js
+++ b/test/built-ins/Atomics/store/shared-nonint-views.js
@@ -6,7 +6,7 @@ esid: sec-atomics.store
 description: >
   Test Atomics.store on shared non-integer TypedArrays
 includes: [testTypedArray.js]
-features: [TypedArray]
+features: [Atomics, TypedArray]
 ---*/
 
 var sab = new SharedArrayBuffer(1024);
diff --git a/test/built-ins/Atomics/sub/descriptor.js b/test/built-ins/Atomics/sub/descriptor.js
index d7aa2cc86f..e4e8dae4d5 100644
--- a/test/built-ins/Atomics/sub/descriptor.js
+++ b/test/built-ins/Atomics/sub/descriptor.js
@@ -6,6 +6,7 @@
 esid: sec-atomics.sub
 description: Testing descriptor property of Atomics.sub
 includes: [propertyHelper.js]
+features: [Atomics]
 ---*/
 
 verifyWritable(Atomics, "sub");
diff --git a/test/built-ins/Atomics/sub/length.js b/test/built-ins/Atomics/sub/length.js
index 71cd4cb586..8130e97385 100644
--- a/test/built-ins/Atomics/sub/length.js
+++ b/test/built-ins/Atomics/sub/length.js
@@ -21,6 +21,7 @@ info: |
     object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
     [[Configurable]]: true }.
 includes: [propertyHelper.js]
+features: [Atomics]
 ---*/
 
 assert.sameValue(Atomics.sub.length, 3);
diff --git a/test/built-ins/Atomics/sub/name.js b/test/built-ins/Atomics/sub/name.js
index 47dd0400ea..64afa5d9f0 100644
--- a/test/built-ins/Atomics/sub/name.js
+++ b/test/built-ins/Atomics/sub/name.js
@@ -7,6 +7,7 @@ esid: sec-atomics.sub
 description: >
   Atomics.sub.name is "sub".
 includes: [propertyHelper.js]
+features: [Atomics]
 ---*/
 
 assert.sameValue(Atomics.sub.name, "sub");
diff --git a/test/built-ins/Atomics/sub/nonshared-int-views.js b/test/built-ins/Atomics/sub/nonshared-int-views.js
index 70ed90a7da..90a605b7c7 100644
--- a/test/built-ins/Atomics/sub/nonshared-int-views.js
+++ b/test/built-ins/Atomics/sub/nonshared-int-views.js
@@ -6,7 +6,7 @@ esid: sec-atomics.sub
 description: >
   Test Atomics.sub on non-shared integer TypedArrays
 includes: [testTypedArray.js]
-features: [TypedArray]
+features: [Atomics, TypedArray]
 ---*/
 
 var ab = new ArrayBuffer(16);
diff --git a/test/built-ins/Atomics/sub/shared-nonint-views.js b/test/built-ins/Atomics/sub/shared-nonint-views.js
index af237d2cda..3563f7e37d 100644
--- a/test/built-ins/Atomics/sub/shared-nonint-views.js
+++ b/test/built-ins/Atomics/sub/shared-nonint-views.js
@@ -6,7 +6,7 @@ esid: sec-atomics.sub
 description: >
   Test Atomics.sub on shared non-integer TypedArrays
 includes: [testTypedArray.js]
-features: [TypedArray]
+features: [Atomics, TypedArray]
 ---*/
 
 var sab = new SharedArrayBuffer(1024);
diff --git a/test/built-ins/Atomics/wait/descriptor.js b/test/built-ins/Atomics/wait/descriptor.js
index 6ede71ded2..314eacf92a 100644
--- a/test/built-ins/Atomics/wait/descriptor.js
+++ b/test/built-ins/Atomics/wait/descriptor.js
@@ -6,6 +6,7 @@
 esid: sec-atomics.wait
 description: Testing descriptor property of Atomics.wait
 includes: [propertyHelper.js]
+features: [Atomics]
 ---*/
 
 verifyWritable(Atomics, "wait");
diff --git a/test/built-ins/Atomics/wait/did-timeout.js b/test/built-ins/Atomics/wait/did-timeout.js
index c64365360b..3635d6728b 100644
--- a/test/built-ins/Atomics/wait/did-timeout.js
+++ b/test/built-ins/Atomics/wait/did-timeout.js
@@ -7,6 +7,7 @@ description: >
   Test that Atomics.wait returns the right result when it timed out and that
   the time to time out is reasonable.
 includes: [atomicsHelper.js]
+features: [Atomics]
 ---*/
 
 $262.agent.start(
diff --git a/test/built-ins/Atomics/wait/good-views.js b/test/built-ins/Atomics/wait/good-views.js
index 1256ad5114..1745841592 100644
--- a/test/built-ins/Atomics/wait/good-views.js
+++ b/test/built-ins/Atomics/wait/good-views.js
@@ -6,6 +6,7 @@ esid: sec-atomics.wait
 description: >
   Test Atomics.wait on arrays that allow atomic operations,
   in an Agent that is allowed to wait.
+features: [Atomics]
 ---*/
 
 // Let's assume 'wait' is not allowed on the main thread,
diff --git a/test/built-ins/Atomics/wait/length.js b/test/built-ins/Atomics/wait/length.js
index 0250297e62..53dbc3f52c 100644
--- a/test/built-ins/Atomics/wait/length.js
+++ b/test/built-ins/Atomics/wait/length.js
@@ -21,6 +21,7 @@ info: |
     object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
     [[Configurable]]: true }.
 includes: [propertyHelper.js]
+features: [Atomics]
 ---*/
 
 assert.sameValue(Atomics.wait.length, 4);
diff --git a/test/built-ins/Atomics/wait/name.js b/test/built-ins/Atomics/wait/name.js
index 95cf0af36c..38d22dda68 100644
--- a/test/built-ins/Atomics/wait/name.js
+++ b/test/built-ins/Atomics/wait/name.js
@@ -7,6 +7,7 @@ esid: sec-atomics.wait
 description: >
   Atomics.wait.name is "wait".
 includes: [propertyHelper.js]
+features: [Atomics]
 ---*/
 
 assert.sameValue(Atomics.wait.name, "wait");
diff --git a/test/built-ins/Atomics/wait/negative-timeout.js b/test/built-ins/Atomics/wait/negative-timeout.js
index 8c7541a048..84ce5ce190 100644
--- a/test/built-ins/Atomics/wait/negative-timeout.js
+++ b/test/built-ins/Atomics/wait/negative-timeout.js
@@ -5,6 +5,7 @@
 esid: sec-atomics.wait
 description: >
   Test that Atomics.wait times out with a negative timeout
+features: [Atomics]
 ---*/
 
 $262.agent.start(
diff --git a/test/built-ins/Atomics/wait/no-spurious-wakeup.js b/test/built-ins/Atomics/wait/no-spurious-wakeup.js
index cba6a7b19b..1da152c7a0 100644
--- a/test/built-ins/Atomics/wait/no-spurious-wakeup.js
+++ b/test/built-ins/Atomics/wait/no-spurious-wakeup.js
@@ -7,6 +7,7 @@ description: >
   Test that Atomics.wait actually waits and does not spuriously wake
   up when the memory value is changed.
 includes: [atomicsHelper.js]
+features: [Atomics]
 ---*/
 
 $262.agent.start(
diff --git a/test/built-ins/Atomics/wait/nonshared-int-views.js b/test/built-ins/Atomics/wait/nonshared-int-views.js
index 4f6143fc3a..add2f7b3ad 100644
--- a/test/built-ins/Atomics/wait/nonshared-int-views.js
+++ b/test/built-ins/Atomics/wait/nonshared-int-views.js
@@ -6,7 +6,7 @@ esid: sec-atomics.wait
 description: >
   Test Atomics.wait on non-shared integer TypedArrays
 includes: [testTypedArray.js]
-features: [TypedArray]
+features: [Atomics, TypedArray]
 ---*/
 
 var ab = new ArrayBuffer(16);
diff --git a/test/built-ins/Atomics/wait/shared-nonint-views.js b/test/built-ins/Atomics/wait/shared-nonint-views.js
index f4a4792b70..63cf092f38 100644
--- a/test/built-ins/Atomics/wait/shared-nonint-views.js
+++ b/test/built-ins/Atomics/wait/shared-nonint-views.js
@@ -6,7 +6,7 @@ esid: sec-atomics.wait
 description: >
   Test Atomics.wait on shared non-integer TypedArrays
 includes: [testTypedArray.js]
-features: [TypedArray]
+features: [Atomics, TypedArray]
 ---*/
 
 var sab = new SharedArrayBuffer(1024);
diff --git a/test/built-ins/Atomics/wait/was-woken.js b/test/built-ins/Atomics/wait/was-woken.js
index 56eeeade10..18916a9345 100644
--- a/test/built-ins/Atomics/wait/was-woken.js
+++ b/test/built-ins/Atomics/wait/was-woken.js
@@ -5,6 +5,7 @@
 esid: sec-atomics.wait
 description: >
   Test that Atomics.wait returns the right result when it was awoken.
+features: [Atomics]
 ---*/
 
 $262.agent.start(
diff --git a/test/built-ins/Atomics/wake/counts.js b/test/built-ins/Atomics/wake/counts.js
index d2ee14e0c3..c361763f47 100644
--- a/test/built-ins/Atomics/wake/counts.js
+++ b/test/built-ins/Atomics/wake/counts.js
@@ -5,6 +5,7 @@
 esid: sec-atomics.wake
 description: >
   Allowed boundary cases of the third 'count' argument to Atomics.wake
+features: [Atomics]
 ---*/
 
 var sab = new SharedArrayBuffer(4);
diff --git a/test/built-ins/Atomics/wake/descriptor.js b/test/built-ins/Atomics/wake/descriptor.js
index eaf13a7b76..3c39094c7f 100644
--- a/test/built-ins/Atomics/wake/descriptor.js
+++ b/test/built-ins/Atomics/wake/descriptor.js
@@ -6,6 +6,7 @@
 esid: sec-atomics.wake
 description: Testing descriptor property of Atomics.wake
 includes: [propertyHelper.js]
+features: [Atomics]
 ---*/
 
 verifyWritable(Atomics, "wake");
diff --git a/test/built-ins/Atomics/wake/length.js b/test/built-ins/Atomics/wake/length.js
index 8028321803..f275634fec 100644
--- a/test/built-ins/Atomics/wake/length.js
+++ b/test/built-ins/Atomics/wake/length.js
@@ -21,6 +21,7 @@ info: |
     object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
     [[Configurable]]: true }.
 includes: [propertyHelper.js]
+features: [Atomics]
 ---*/
 
 assert.sameValue(Atomics.wake.length, 3);
diff --git a/test/built-ins/Atomics/wake/name.js b/test/built-ins/Atomics/wake/name.js
index 3ddae8d322..434e272392 100644
--- a/test/built-ins/Atomics/wake/name.js
+++ b/test/built-ins/Atomics/wake/name.js
@@ -7,6 +7,7 @@ esid: sec-atomics.wake
 description: >
   Atomics.wake.name is "wake".
 includes: [propertyHelper.js]
+features: [Atomics]
 ---*/
 
 assert.sameValue(Atomics.wake.name, "wake");
diff --git a/test/built-ins/Atomics/wake/nonshared-int-views.js b/test/built-ins/Atomics/wake/nonshared-int-views.js
index cffc184e12..87a337f8d6 100644
--- a/test/built-ins/Atomics/wake/nonshared-int-views.js
+++ b/test/built-ins/Atomics/wake/nonshared-int-views.js
@@ -6,7 +6,7 @@ esid: sec-atomics.wake
 description: >
   Test Atomics.wake on non-shared integer TypedArrays
 includes: [testTypedArray.js]
-features: [TypedArray]
+features: [Atomics, TypedArray]
 ---*/
 
 var ab = new ArrayBuffer(16);
diff --git a/test/built-ins/Atomics/wake/shared-nonint-views.js b/test/built-ins/Atomics/wake/shared-nonint-views.js
index 950d2d5a31..353ffedd50 100644
--- a/test/built-ins/Atomics/wake/shared-nonint-views.js
+++ b/test/built-ins/Atomics/wake/shared-nonint-views.js
@@ -6,7 +6,7 @@ esid: sec-atomics.wake
 description: >
   Test Atomics.wake on shared non-integer TypedArrays
 includes: [testTypedArray.js]
-features: [TypedArray]
+features: [Atomics, TypedArray]
 ---*/
 
 var sab = new SharedArrayBuffer(1024);
diff --git a/test/built-ins/Atomics/wake/wake-all-on-loc.js b/test/built-ins/Atomics/wake/wake-all-on-loc.js
index 700c22c2ed..52b878ecbe 100644
--- a/test/built-ins/Atomics/wake/wake-all-on-loc.js
+++ b/test/built-ins/Atomics/wake/wake-all-on-loc.js
@@ -6,6 +6,7 @@ esid: sec-atomics.wake
 description: >
   Test that Atomics.wake wakes all waiters on a location, but does not
   wake waiters on other locations.
+features: [Atomics]
 ---*/
 
 var WAKEUP = 0;                 // Waiters on this will be woken
diff --git a/test/built-ins/Atomics/wake/wake-all.js b/test/built-ins/Atomics/wake/wake-all.js
index 14788079f2..969733f853 100644
--- a/test/built-ins/Atomics/wake/wake-all.js
+++ b/test/built-ins/Atomics/wake/wake-all.js
@@ -5,6 +5,7 @@
 esid: sec-atomics.wake
 description: >
   Test that Atomics.wake wakes all waiters if that's what the count is.
+features: [Atomics]
 ---*/
 
 var WAKEUP = 0;                 // Waiters on this will be woken
diff --git a/test/built-ins/Atomics/wake/wake-in-order.js b/test/built-ins/Atomics/wake/wake-in-order.js
index b0408aa962..caaedb63d1 100644
--- a/test/built-ins/Atomics/wake/wake-in-order.js
+++ b/test/built-ins/Atomics/wake/wake-in-order.js
@@ -5,6 +5,7 @@
 esid: sec-atomics.wake
 description: >
   Test that Atomics.wake wakes agents in the order they are waiting.
+features: [Atomics]
 ---*/
 
 var NUMAGENT = 3;
diff --git a/test/built-ins/Atomics/wake/wake-nan.js b/test/built-ins/Atomics/wake/wake-nan.js
index c77644ff0e..9ef59d474d 100644
--- a/test/built-ins/Atomics/wake/wake-nan.js
+++ b/test/built-ins/Atomics/wake/wake-nan.js
@@ -5,6 +5,7 @@
 esid: sec-atomics.wake
 description: >
   Test that Atomics.wake wakes zero waiters if the count is NaN
+features: [Atomics]
 ---*/
 
 $262.agent.start(
diff --git a/test/built-ins/Atomics/wake/wake-negative.js b/test/built-ins/Atomics/wake/wake-negative.js
index 64961e57f6..038fe7ed37 100644
--- a/test/built-ins/Atomics/wake/wake-negative.js
+++ b/test/built-ins/Atomics/wake/wake-negative.js
@@ -5,6 +5,7 @@
 esid: sec-atomics.wake
 description: >
   Test that Atomics.wake wakes zero waiters if the count is negative
+features: [Atomics]
 ---*/
 
 $262.agent.start(
diff --git a/test/built-ins/Atomics/wake/wake-one.js b/test/built-ins/Atomics/wake/wake-one.js
index 4a299eaa2f..44a8279540 100644
--- a/test/built-ins/Atomics/wake/wake-one.js
+++ b/test/built-ins/Atomics/wake/wake-one.js
@@ -5,6 +5,7 @@
 esid: sec-atomics.wake
 description: >
   Test that Atomics.wake wakes one waiter if that's what the count is.
+features: [Atomics]
 ---*/
 
 var NUMAGENT = 3;
diff --git a/test/built-ins/Atomics/wake/wake-two.js b/test/built-ins/Atomics/wake/wake-two.js
index bdc718e135..8c3b064323 100644
--- a/test/built-ins/Atomics/wake/wake-two.js
+++ b/test/built-ins/Atomics/wake/wake-two.js
@@ -5,6 +5,7 @@
 esid: sec-atomics.wake
 description: >
   Test that Atomics.wake wakes two waiters if that's what the count is.
+features: [Atomics]
 ---*/
 
 
diff --git a/test/built-ins/Atomics/wake/wake-zero.js b/test/built-ins/Atomics/wake/wake-zero.js
index fde739d234..40ad8e0faf 100644
--- a/test/built-ins/Atomics/wake/wake-zero.js
+++ b/test/built-ins/Atomics/wake/wake-zero.js
@@ -5,6 +5,7 @@
 esid: sec-atomics.wake
 description: >
   Test that Atomics.wake wakes zero waiters if that's what the count is.
+features: [Atomics]
 ---*/
 
 
diff --git a/test/built-ins/Atomics/xor/descriptor.js b/test/built-ins/Atomics/xor/descriptor.js
index e5c8daa724..b1e1b710f2 100644
--- a/test/built-ins/Atomics/xor/descriptor.js
+++ b/test/built-ins/Atomics/xor/descriptor.js
@@ -6,6 +6,7 @@
 esid: sec-atomics.xor
 description: Testing descriptor property of Atomics.xor
 includes: [propertyHelper.js]
+features: [Atomics]
 ---*/
 
 verifyWritable(Atomics, "xor");
diff --git a/test/built-ins/Atomics/xor/length.js b/test/built-ins/Atomics/xor/length.js
index cc7d194fb7..1a00282eef 100644
--- a/test/built-ins/Atomics/xor/length.js
+++ b/test/built-ins/Atomics/xor/length.js
@@ -21,6 +21,7 @@ info: |
     object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
     [[Configurable]]: true }.
 includes: [propertyHelper.js]
+features: [Atomics]
 ---*/
 
 assert.sameValue(Atomics.xor.length, 3);
diff --git a/test/built-ins/Atomics/xor/name.js b/test/built-ins/Atomics/xor/name.js
index 8ef8895581..f632daa105 100644
--- a/test/built-ins/Atomics/xor/name.js
+++ b/test/built-ins/Atomics/xor/name.js
@@ -7,6 +7,7 @@ esid: sec-atomics.xor
 description: >
   Atomics.xor.name is "xor".
 includes: [propertyHelper.js]
+features: [Atomics]
 ---*/
 
 assert.sameValue(Atomics.xor.name, "xor");
diff --git a/test/built-ins/Atomics/xor/nonshared-int-views.js b/test/built-ins/Atomics/xor/nonshared-int-views.js
index 145286c89f..46447c29c2 100644
--- a/test/built-ins/Atomics/xor/nonshared-int-views.js
+++ b/test/built-ins/Atomics/xor/nonshared-int-views.js
@@ -6,7 +6,7 @@ esid: sec-atomics.xor
 description: >
   Test Atomics.xor on non-shared integer TypedArrays
 includes: [testTypedArray.js]
-features: [TypedArray]
+features: [Atomics, TypedArray]
 ---*/
 
 var ab = new ArrayBuffer(16);
diff --git a/test/built-ins/Atomics/xor/shared-nonint-views.js b/test/built-ins/Atomics/xor/shared-nonint-views.js
index b9b683f3b8..1c436e08da 100644
--- a/test/built-ins/Atomics/xor/shared-nonint-views.js
+++ b/test/built-ins/Atomics/xor/shared-nonint-views.js
@@ -6,7 +6,7 @@ esid: sec-atomics.xor
 description: >
   Test Atomics.xor on shared non-integer TypedArrays
 includes: [testTypedArray.js]
-features: [TypedArray]
+features: [Atomics, TypedArray]
 ---*/
 
 var sab = new SharedArrayBuffer(1024);
diff --git a/test/built-ins/SharedArrayBuffer/allocation-limit.js b/test/built-ins/SharedArrayBuffer/allocation-limit.js
index c2d296ac75..2c2ea7ab57 100644
--- a/test/built-ins/SharedArrayBuffer/allocation-limit.js
+++ b/test/built-ins/SharedArrayBuffer/allocation-limit.js
@@ -18,6 +18,7 @@ info: |
        bytes. If it is impossible to create such a Shared Data Block,
        throw a RangeError exception.
     ...
+features: [SharedArrayBuffer]
 ---*/
 
 assert.throws(RangeError, function() {
diff --git a/test/built-ins/SharedArrayBuffer/data-allocation-after-object-creation.js b/test/built-ins/SharedArrayBuffer/data-allocation-after-object-creation.js
index db067b0af3..c530ca36ef 100644
--- a/test/built-ins/SharedArrayBuffer/data-allocation-after-object-creation.js
+++ b/test/built-ins/SharedArrayBuffer/data-allocation-after-object-creation.js
@@ -18,7 +18,7 @@ info: |
     ...
     3. Let block be ? CreateByteDataBlock(byteLength).
     ...
-features: [Reflect.construct]
+features: [SharedArrayBuffer, Reflect.construct]
 ---*/
 
 function DummyError() {}
diff --git a/test/built-ins/SharedArrayBuffer/init-zero.js b/test/built-ins/SharedArrayBuffer/init-zero.js
index 22d0d26c41..d02f62fb32 100644
--- a/test/built-ins/SharedArrayBuffer/init-zero.js
+++ b/test/built-ins/SharedArrayBuffer/init-zero.js
@@ -5,7 +5,7 @@
 /*---
 esid: sec-createsharedbytedatablock
 description: All bytes are initialized to zero
-features: [DataView]
+features: [SharedArrayBuffer, DataView]
 ---*/
 
 var view = new DataView(new SharedArrayBuffer(9));
diff --git a/test/built-ins/SharedArrayBuffer/length-is-absent.js b/test/built-ins/SharedArrayBuffer/length-is-absent.js
index 6bf50f21e0..a9187b8b92 100644
--- a/test/built-ins/SharedArrayBuffer/length-is-absent.js
+++ b/test/built-ins/SharedArrayBuffer/length-is-absent.js
@@ -12,6 +12,7 @@ info: |
   1. If NewTarget is undefined, throw a TypeError exception.
   2. Let byteLength be ? ToIndex(length).
   3. Return ? AllocateSharedArrayBuffer(NewTarget, byteLength).
+features: [SharedArrayBuffer]
 ---*/
 
 var buffer = new SharedArrayBuffer();
diff --git a/test/built-ins/SharedArrayBuffer/length-is-too-large-throws.js b/test/built-ins/SharedArrayBuffer/length-is-too-large-throws.js
index a03bf2b141..16f3c3a9a5 100644
--- a/test/built-ins/SharedArrayBuffer/length-is-too-large-throws.js
+++ b/test/built-ins/SharedArrayBuffer/length-is-too-large-throws.js
@@ -20,6 +20,7 @@ info: |
     a. Let integerIndex be ? ToInteger(value).
     b. If integerIndex < 0, throw a RangeError exception.
   ...
+features: [SharedArrayBuffer]
 ---*/
 
 assert.throws(RangeError, function() {
diff --git a/test/built-ins/SharedArrayBuffer/negative-length-throws.js b/test/built-ins/SharedArrayBuffer/negative-length-throws.js
index 2793751fbc..e7ff9c9265 100644
--- a/test/built-ins/SharedArrayBuffer/negative-length-throws.js
+++ b/test/built-ins/SharedArrayBuffer/negative-length-throws.js
@@ -20,6 +20,7 @@ info: |
     a. Let integerIndex be ? ToInteger(value).
     b. If integerIndex < 0, throw a RangeError exception.
   ...
+features: [SharedArrayBuffer]
 ---*/
 
 assert.throws(RangeError, function() {
diff --git a/test/built-ins/SharedArrayBuffer/newtarget-prototype-is-not-object.js b/test/built-ins/SharedArrayBuffer/newtarget-prototype-is-not-object.js
index 9a744c30b5..aaa3c27b8c 100644
--- a/test/built-ins/SharedArrayBuffer/newtarget-prototype-is-not-object.js
+++ b/test/built-ins/SharedArrayBuffer/newtarget-prototype-is-not-object.js
@@ -18,7 +18,7 @@ info: |
     1. Let obj be ? OrdinaryCreateFromConstructor(constructor, "%SharedArrayBufferPrototype%",
        «[[ArrayBufferData]], [[ArrayBufferByteLength]]» ).
     ...
-features: [Symbol, Reflect.construct]
+features: [SharedArrayBuffer, Symbol, Reflect.construct]
 ---*/
 
 function newTarget() {}
diff --git a/test/built-ins/SharedArrayBuffer/proto-from-ctor-realm.js b/test/built-ins/SharedArrayBuffer/proto-from-ctor-realm.js
index 7350ab82d6..ac00b13a03 100644
--- a/test/built-ins/SharedArrayBuffer/proto-from-ctor-realm.js
+++ b/test/built-ins/SharedArrayBuffer/proto-from-ctor-realm.js
@@ -17,7 +17,7 @@ info: |
        a. Let realm be ? GetFunctionRealm(constructor).
        b. Let proto be realm's intrinsic object named intrinsicDefaultProto.
     [...]
-features: [cross-realm, Reflect]
+features: [SharedArrayBuffer, cross-realm, Reflect]
 ---*/
 
 var other = $262.createRealm().global;
diff --git a/test/built-ins/SharedArrayBuffer/prototype-from-newtarget.js b/test/built-ins/SharedArrayBuffer/prototype-from-newtarget.js
index 57d025952e..4502c18f74 100644
--- a/test/built-ins/SharedArrayBuffer/prototype-from-newtarget.js
+++ b/test/built-ins/SharedArrayBuffer/prototype-from-newtarget.js
@@ -18,7 +18,7 @@ info: |
     1. Let obj be ? OrdinaryCreateFromConstructor(constructor, "%SharedArrayBufferPrototype%",
        «[[ArrayBufferData]], [[ArrayBufferByteLength]]» ).
     ...
-features: [Reflect.construct]
+features: [SharedArrayBuffer, Reflect.construct]
 ---*/
 
 var arrayBuffer = Reflect.construct(SharedArrayBuffer, [8], Object);
diff --git a/test/built-ins/SharedArrayBuffer/prototype/Symbol.toStringTag.js b/test/built-ins/SharedArrayBuffer/prototype/Symbol.toStringTag.js
index 03fd7648d0..32562f1208 100644
--- a/test/built-ins/SharedArrayBuffer/prototype/Symbol.toStringTag.js
+++ b/test/built-ins/SharedArrayBuffer/prototype/Symbol.toStringTag.js
@@ -11,7 +11,7 @@ info: |
     This property has the attributes { [[Writable]]: false, [[Enumerable]]:
     false, [[Configurable]]: true }.
 includes: [propertyHelper.js]
-features: [Symbol.toStringTag]
+features: [SharedArrayBuffer, Symbol.toStringTag]
 ---*/
 
 assert.sameValue(SharedArrayBuffer.prototype[Symbol.toStringTag], 'SharedArrayBuffer');
diff --git a/test/built-ins/SharedArrayBuffer/prototype/byteLength/invoked-as-accessor.js b/test/built-ins/SharedArrayBuffer/prototype/byteLength/invoked-as-accessor.js
index f8a2a1912b..2b3c487274 100644
--- a/test/built-ins/SharedArrayBuffer/prototype/byteLength/invoked-as-accessor.js
+++ b/test/built-ins/SharedArrayBuffer/prototype/byteLength/invoked-as-accessor.js
@@ -4,6 +4,7 @@
 
 /*---
 description: Requires this value to have a [[ArrayBufferData]] internal slot
+features: [SharedArrayBuffer]
 ---*/
 
 assert.throws(TypeError, function() {
diff --git a/test/built-ins/SharedArrayBuffer/prototype/byteLength/invoked-as-func.js b/test/built-ins/SharedArrayBuffer/prototype/byteLength/invoked-as-func.js
index 7ea7ad638e..f45169b7e1 100644
--- a/test/built-ins/SharedArrayBuffer/prototype/byteLength/invoked-as-func.js
+++ b/test/built-ins/SharedArrayBuffer/prototype/byteLength/invoked-as-func.js
@@ -3,6 +3,7 @@
 // This code is governed by the BSD license found in the LICENSE file.
 /*---
 description: Throws a TypeError exception when invoked as a function
+features: [SharedArrayBuffer]
 ---*/
 
 var getter = Object.getOwnPropertyDescriptor(
diff --git a/test/built-ins/SharedArrayBuffer/prototype/byteLength/length.js b/test/built-ins/SharedArrayBuffer/prototype/byteLength/length.js
index 82ab36db62..bb469e9394 100644
--- a/test/built-ins/SharedArrayBuffer/prototype/byteLength/length.js
+++ b/test/built-ins/SharedArrayBuffer/prototype/byteLength/length.js
@@ -6,6 +6,7 @@
 description: >
   get SharedArrayBuffer.prototype.byteLength.length is 0.
 includes: [propertyHelper.js]
+features: [SharedArrayBuffer]
 ---*/
 
 var desc = Object.getOwnPropertyDescriptor(SharedArrayBuffer.prototype, "byteLength");
diff --git a/test/built-ins/SharedArrayBuffer/prototype/byteLength/name.js b/test/built-ins/SharedArrayBuffer/prototype/byteLength/name.js
index 42dface356..307c495871 100644
--- a/test/built-ins/SharedArrayBuffer/prototype/byteLength/name.js
+++ b/test/built-ins/SharedArrayBuffer/prototype/byteLength/name.js
@@ -6,6 +6,7 @@ description: >
   get SharedArrayBuffer.prototype.byteLength
 
 includes: [propertyHelper.js]
+features: [SharedArrayBuffer]
 ---*/
 
 var descriptor = Object.getOwnPropertyDescriptor(
diff --git a/test/built-ins/SharedArrayBuffer/prototype/byteLength/prop-desc.js b/test/built-ins/SharedArrayBuffer/prototype/byteLength/prop-desc.js
index 8266192cf2..ce356efe5d 100644
--- a/test/built-ins/SharedArrayBuffer/prototype/byteLength/prop-desc.js
+++ b/test/built-ins/SharedArrayBuffer/prototype/byteLength/prop-desc.js
@@ -5,6 +5,7 @@
 description: >
   "byteLength" property of SharedArrayBuffer.prototype
 includes: [propertyHelper.js]
+features: [SharedArrayBuffer]
 ---*/
 
 var desc = Object.getOwnPropertyDescriptor(SharedArrayBuffer.prototype, "byteLength");
diff --git a/test/built-ins/SharedArrayBuffer/prototype/byteLength/return-bytelength.js b/test/built-ins/SharedArrayBuffer/prototype/byteLength/return-bytelength.js
index 66810df9f9..50f26674a8 100644
--- a/test/built-ins/SharedArrayBuffer/prototype/byteLength/return-bytelength.js
+++ b/test/built-ins/SharedArrayBuffer/prototype/byteLength/return-bytelength.js
@@ -3,6 +3,7 @@
 // This code is governed by the BSD license found in the LICENSE file.
 /*---
 description: Return value from [[ByteLength]] internal slot
+features: [SharedArrayBuffer]
 ---*/
 
 var ab1 = new SharedArrayBuffer(0);
diff --git a/test/built-ins/SharedArrayBuffer/prototype/byteLength/this-has-no-typedarrayname-internal.js b/test/built-ins/SharedArrayBuffer/prototype/byteLength/this-has-no-typedarrayname-internal.js
index 32fee07cf4..48ad7b4370 100644
--- a/test/built-ins/SharedArrayBuffer/prototype/byteLength/this-has-no-typedarrayname-internal.js
+++ b/test/built-ins/SharedArrayBuffer/prototype/byteLength/this-has-no-typedarrayname-internal.js
@@ -5,7 +5,7 @@
 description: >
   Throws a TypeError exception when `this` does not have a [[ArrayBufferData]]
   internal slot
-features: [DataView, Int8Array]
+features: [SharedArrayBuffer, DataView, Int8Array]
 ---*/
 
 var getter = Object.getOwnPropertyDescriptor(
diff --git a/test/built-ins/SharedArrayBuffer/prototype/byteLength/this-is-arraybuffer.js b/test/built-ins/SharedArrayBuffer/prototype/byteLength/this-is-arraybuffer.js
index f3ae27ebea..d7cbcdc7ba 100644
--- a/test/built-ins/SharedArrayBuffer/prototype/byteLength/this-is-arraybuffer.js
+++ b/test/built-ins/SharedArrayBuffer/prototype/byteLength/this-is-arraybuffer.js
@@ -4,6 +4,7 @@
 /*---
 esid: sec-get-sharedarraybuffer.prototype.bytelength
 description: Throws a TypeError exception when `this` is an ArrayBuffer
+features: [SharedArrayBuffer]
 ---*/
 
 var getter = Object.getOwnPropertyDescriptor(
diff --git a/test/built-ins/SharedArrayBuffer/prototype/byteLength/this-is-not-object.js b/test/built-ins/SharedArrayBuffer/prototype/byteLength/this-is-not-object.js
index 4cc423002e..0cb8e2f217 100644
--- a/test/built-ins/SharedArrayBuffer/prototype/byteLength/this-is-not-object.js
+++ b/test/built-ins/SharedArrayBuffer/prototype/byteLength/this-is-not-object.js
@@ -3,7 +3,7 @@
 // This code is governed by the BSD license found in the LICENSE file.
 /*---
 description: Throws a TypeError exception when `this` is not Object
-features: [Symbol]
+features: [SharedArrayBuffer, Symbol]
 ---*/
 
 var getter = Object.getOwnPropertyDescriptor(
diff --git a/test/built-ins/SharedArrayBuffer/prototype/constructor.js b/test/built-ins/SharedArrayBuffer/prototype/constructor.js
index 49ca70562d..d9e5f4954f 100644
--- a/test/built-ins/SharedArrayBuffer/prototype/constructor.js
+++ b/test/built-ins/SharedArrayBuffer/prototype/constructor.js
@@ -6,6 +6,7 @@
 description: >
   The `SharedArrayBuffer.prototype.constructor` property descriptor.
 includes: [propertyHelper.js]
+features: [SharedArrayBuffer]
 ---*/
 
 assert.sameValue(SharedArrayBuffer.prototype.constructor, SharedArrayBuffer);
diff --git a/test/built-ins/SharedArrayBuffer/prototype/slice/context-is-not-arraybuffer-object.js b/test/built-ins/SharedArrayBuffer/prototype/slice/context-is-not-arraybuffer-object.js
index 4342a14ebd..a99090928b 100644
--- a/test/built-ins/SharedArrayBuffer/prototype/slice/context-is-not-arraybuffer-object.js
+++ b/test/built-ins/SharedArrayBuffer/prototype/slice/context-is-not-arraybuffer-object.js
@@ -5,6 +5,7 @@
 /*---
 description: >
   Throws a TypeError if `this` does not have an [[ArrayBufferData]] internal slot.
+features: [SharedArrayBuffer]
 ---*/
 
 assert.throws(TypeError, function() {
diff --git a/test/built-ins/SharedArrayBuffer/prototype/slice/context-is-not-object.js b/test/built-ins/SharedArrayBuffer/prototype/slice/context-is-not-object.js
index c69d5d2925..f9883d2717 100644
--- a/test/built-ins/SharedArrayBuffer/prototype/slice/context-is-not-object.js
+++ b/test/built-ins/SharedArrayBuffer/prototype/slice/context-is-not-object.js
@@ -7,7 +7,7 @@ description: >
   Throws a TypeError if `this` is not an Object.
 info: |
   SharedArrayBuffer.prototype.slice ( start, end )
-features: [Symbol]
+features: [SharedArrayBuffer, Symbol]
 ---*/
 
 assert.throws(TypeError, function() {
diff --git a/test/built-ins/SharedArrayBuffer/prototype/slice/descriptor.js b/test/built-ins/SharedArrayBuffer/prototype/slice/descriptor.js
index 13af24035f..e0b6c8034e 100644
--- a/test/built-ins/SharedArrayBuffer/prototype/slice/descriptor.js
+++ b/test/built-ins/SharedArrayBuffer/prototype/slice/descriptor.js
@@ -13,6 +13,7 @@ info: |
     Annex B.2 has the attributes { [[Writable]]: true, [[Enumerable]]: false,
     [[Configurable]]: true } unless otherwise specified.
 includes: [propertyHelper.js]
+features: [SharedArrayBuffer]
 ---*/
 
 verifyNotEnumerable(SharedArrayBuffer.prototype, "slice");
diff --git a/test/built-ins/SharedArrayBuffer/prototype/slice/end-default-if-absent.js b/test/built-ins/SharedArrayBuffer/prototype/slice/end-default-if-absent.js
index 4096fa244d..d7fd32407e 100644
--- a/test/built-ins/SharedArrayBuffer/prototype/slice/end-default-if-absent.js
+++ b/test/built-ins/SharedArrayBuffer/prototype/slice/end-default-if-absent.js
@@ -8,6 +8,7 @@ description: >
 info: |
   SharedArrayBuffer.prototype.slice ( start, end )
 
+features: [SharedArrayBuffer]
 ---*/
 
 var arrayBuffer = new SharedArrayBuffer(8);
diff --git a/test/built-ins/SharedArrayBuffer/prototype/slice/end-default-if-undefined.js b/test/built-ins/SharedArrayBuffer/prototype/slice/end-default-if-undefined.js
index e9957b4a64..1919cbcccc 100644
--- a/test/built-ins/SharedArrayBuffer/prototype/slice/end-default-if-undefined.js
+++ b/test/built-ins/SharedArrayBuffer/prototype/slice/end-default-if-undefined.js
@@ -8,6 +8,7 @@ description: >
 info: |
   SharedArrayBuffer.prototype.slice ( start, end )
 
+features: [SharedArrayBuffer]
 ---*/
 
 var arrayBuffer = new SharedArrayBuffer(8);
diff --git a/test/built-ins/SharedArrayBuffer/prototype/slice/end-exceeds-length.js b/test/built-ins/SharedArrayBuffer/prototype/slice/end-exceeds-length.js
index 65da03f283..712efe7a7a 100644
--- a/test/built-ins/SharedArrayBuffer/prototype/slice/end-exceeds-length.js
+++ b/test/built-ins/SharedArrayBuffer/prototype/slice/end-exceeds-length.js
@@ -8,6 +8,7 @@ description: >
 info: |
   SharedArrayBuffer.prototype.slice ( start, end )
 
+features: [SharedArrayBuffer]
 ---*/
 
 var arrayBuffer = new SharedArrayBuffer(8);
diff --git a/test/built-ins/SharedArrayBuffer/prototype/slice/extensible.js b/test/built-ins/SharedArrayBuffer/prototype/slice/extensible.js
index b8d570dcf0..6418596b9c 100644
--- a/test/built-ins/SharedArrayBuffer/prototype/slice/extensible.js
+++ b/test/built-ins/SharedArrayBuffer/prototype/slice/extensible.js
@@ -11,6 +11,7 @@ info: |
   17 ECMAScript Standard Built-in Objects:
     Unless specified otherwise, the [[Extensible]] internal slot
     of a built-in object initially has the value true.
+features: [SharedArrayBuffer]
 ---*/
 
 assert(Object.isExtensible(SharedArrayBuffer.prototype.slice));
diff --git a/test/built-ins/SharedArrayBuffer/prototype/slice/length.js b/test/built-ins/SharedArrayBuffer/prototype/slice/length.js
index 2c4a075341..54c521e7b4 100644
--- a/test/built-ins/SharedArrayBuffer/prototype/slice/length.js
+++ b/test/built-ins/SharedArrayBuffer/prototype/slice/length.js
@@ -20,6 +20,7 @@ info: |
     object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
     [[Configurable]]: true }.
 includes: [propertyHelper.js]
+features: [SharedArrayBuffer]
 ---*/
 
 assert.sameValue(SharedArrayBuffer.prototype.slice.length, 2);
diff --git a/test/built-ins/SharedArrayBuffer/prototype/slice/name.js b/test/built-ins/SharedArrayBuffer/prototype/slice/name.js
index f728fed8fe..88928a0163 100644
--- a/test/built-ins/SharedArrayBuffer/prototype/slice/name.js
+++ b/test/built-ins/SharedArrayBuffer/prototype/slice/name.js
@@ -17,6 +17,7 @@ info: |
     object, if it exists, has the attributes { [[Writable]]: false,
     [[Enumerable]]: false, [[Configurable]]: true }.
 includes: [propertyHelper.js]
+features: [SharedArrayBuffer]
 ---*/
 
 assert.sameValue(SharedArrayBuffer.prototype.slice.name, "slice");
diff --git a/test/built-ins/SharedArrayBuffer/prototype/slice/negative-end.js b/test/built-ins/SharedArrayBuffer/prototype/slice/negative-end.js
index cfb7288ad6..a97be524be 100644
--- a/test/built-ins/SharedArrayBuffer/prototype/slice/negative-end.js
+++ b/test/built-ins/SharedArrayBuffer/prototype/slice/negative-end.js
@@ -8,6 +8,7 @@ description: >
 info: |
   SharedArrayBuffer.prototype.slice ( start, end )
 
+features: [SharedArrayBuffer]
 ---*/
 
 var arrayBuffer = new SharedArrayBuffer(8);
diff --git a/test/built-ins/SharedArrayBuffer/prototype/slice/negative-start.js b/test/built-ins/SharedArrayBuffer/prototype/slice/negative-start.js
index 19e276a653..61310afa04 100644
--- a/test/built-ins/SharedArrayBuffer/prototype/slice/negative-start.js
+++ b/test/built-ins/SharedArrayBuffer/prototype/slice/negative-start.js
@@ -8,6 +8,7 @@ description: >
 info: |
   SharedArrayBuffer.prototype.slice ( start, end )
 
+features: [SharedArrayBuffer]
 ---*/
 
 var arrayBuffer = new SharedArrayBuffer(8);
diff --git a/test/built-ins/SharedArrayBuffer/prototype/slice/nonconstructor.js b/test/built-ins/SharedArrayBuffer/prototype/slice/nonconstructor.js
index ca61abaa9b..c652f29ac1 100644
--- a/test/built-ins/SharedArrayBuffer/prototype/slice/nonconstructor.js
+++ b/test/built-ins/SharedArrayBuffer/prototype/slice/nonconstructor.js
@@ -12,6 +12,7 @@ info: |
     Built-in function objects that are not identified as constructors do not
     implement the [[Construct]] internal method unless otherwise specified
     in the description of a particular function.
+features: [SharedArrayBuffer]
 ---*/
 
 assert.sameValue(Object.prototype.hasOwnProperty.call(SharedArrayBuffer.prototype.slice, "prototype"), false);
diff --git a/test/built-ins/SharedArrayBuffer/prototype/slice/number-conversion.js b/test/built-ins/SharedArrayBuffer/prototype/slice/number-conversion.js
index 2fa3955b8f..2b33bbc29c 100644
--- a/test/built-ins/SharedArrayBuffer/prototype/slice/number-conversion.js
+++ b/test/built-ins/SharedArrayBuffer/prototype/slice/number-conversion.js
@@ -8,6 +8,7 @@ description: >
 info: |
   SharedArrayBuffer.prototype.slice ( start, end )
 
+features: [SharedArrayBuffer]
 ---*/
 
 var arrayBuffer = new SharedArrayBuffer(8);
diff --git a/test/built-ins/SharedArrayBuffer/prototype/slice/species-constructor-is-not-object.js b/test/built-ins/SharedArrayBuffer/prototype/slice/species-constructor-is-not-object.js
index ea4595dc09..df67d4cdc8 100644
--- a/test/built-ins/SharedArrayBuffer/prototype/slice/species-constructor-is-not-object.js
+++ b/test/built-ins/SharedArrayBuffer/prototype/slice/species-constructor-is-not-object.js
@@ -8,7 +8,7 @@ description: >
 info: |
   SharedArrayBuffer.prototype.slice ( start, end )
 
-features: [Symbol]
+features: [SharedArrayBuffer, Symbol]
 ---*/
 
 var arrayBuffer = new SharedArrayBuffer(8);
diff --git a/test/built-ins/SharedArrayBuffer/prototype/slice/species-constructor-is-undefined.js b/test/built-ins/SharedArrayBuffer/prototype/slice/species-constructor-is-undefined.js
index 55aa3bb79b..b4dd039fd6 100644
--- a/test/built-ins/SharedArrayBuffer/prototype/slice/species-constructor-is-undefined.js
+++ b/test/built-ins/SharedArrayBuffer/prototype/slice/species-constructor-is-undefined.js
@@ -7,6 +7,7 @@ description: >
   Uses default constructor is `constructor` property is undefined.
 info: |
   SharedArrayBuffer.prototype.slice ( start, end )
+features: [SharedArrayBuffer]
 ---*/
 
 var arrayBuffer = new SharedArrayBuffer(8);
diff --git a/test/built-ins/SharedArrayBuffer/prototype/slice/species-is-not-constructor.js b/test/built-ins/SharedArrayBuffer/prototype/slice/species-is-not-constructor.js
index 4e5e392fc7..930caa4033 100644
--- a/test/built-ins/SharedArrayBuffer/prototype/slice/species-is-not-constructor.js
+++ b/test/built-ins/SharedArrayBuffer/prototype/slice/species-is-not-constructor.js
@@ -8,7 +8,7 @@ description: >
 info: |
   SharedArrayBuffer.prototype.slice ( start, end )
 
-features: [Symbol.species]
+features: [SharedArrayBuffer, Symbol.species]
 ---*/
 
 var speciesConstructor = {};
diff --git a/test/built-ins/SharedArrayBuffer/prototype/slice/species-is-not-object.js b/test/built-ins/SharedArrayBuffer/prototype/slice/species-is-not-object.js
index 9e13981089..36ab5e82ac 100644
--- a/test/built-ins/SharedArrayBuffer/prototype/slice/species-is-not-object.js
+++ b/test/built-ins/SharedArrayBuffer/prototype/slice/species-is-not-object.js
@@ -8,7 +8,7 @@ description: >
 info: |
   SharedArrayBuffer.prototype.slice ( start, end )
 
-features: [Symbol.species]
+features: [SharedArrayBuffer, Symbol.species]
 ---*/
 
 var speciesConstructor = {};
diff --git a/test/built-ins/SharedArrayBuffer/prototype/slice/species-is-null.js b/test/built-ins/SharedArrayBuffer/prototype/slice/species-is-null.js
index cc010c7e5f..6e8bb5218b 100644
--- a/test/built-ins/SharedArrayBuffer/prototype/slice/species-is-null.js
+++ b/test/built-ins/SharedArrayBuffer/prototype/slice/species-is-null.js
@@ -8,7 +8,7 @@ description: >
 info: |
   SharedArrayBuffer.prototype.slice ( start, end )
 
-features: [Symbol.species]
+features: [SharedArrayBuffer, Symbol.species]
 ---*/
 
 var speciesConstructor = {};
diff --git a/test/built-ins/SharedArrayBuffer/prototype/slice/species-is-undefined.js b/test/built-ins/SharedArrayBuffer/prototype/slice/species-is-undefined.js
index 81175e8848..dacc7ea351 100644
--- a/test/built-ins/SharedArrayBuffer/prototype/slice/species-is-undefined.js
+++ b/test/built-ins/SharedArrayBuffer/prototype/slice/species-is-undefined.js
@@ -8,7 +8,7 @@ description: >
 info: |
   SharedArrayBuffer.prototype.slice ( start, end )
 
-features: [Symbol.species]
+features: [SharedArrayBuffer, Symbol.species]
 ---*/
 
 var speciesConstructor = {};
diff --git a/test/built-ins/SharedArrayBuffer/prototype/slice/species-returns-larger-arraybuffer.js b/test/built-ins/SharedArrayBuffer/prototype/slice/species-returns-larger-arraybuffer.js
index 84fb109a56..25a03d6faa 100644
--- a/test/built-ins/SharedArrayBuffer/prototype/slice/species-returns-larger-arraybuffer.js
+++ b/test/built-ins/SharedArrayBuffer/prototype/slice/species-returns-larger-arraybuffer.js
@@ -8,7 +8,7 @@ description: >
 info: |
   SharedArrayBuffer.prototype.slice ( start, end )
 
-features: [Symbol.species]
+features: [SharedArrayBuffer, Symbol.species]
 ---*/
 
 var speciesConstructor = {};
diff --git a/test/built-ins/SharedArrayBuffer/prototype/slice/species-returns-not-arraybuffer.js b/test/built-ins/SharedArrayBuffer/prototype/slice/species-returns-not-arraybuffer.js
index a614ba784e..4d62cb00f1 100644
--- a/test/built-ins/SharedArrayBuffer/prototype/slice/species-returns-not-arraybuffer.js
+++ b/test/built-ins/SharedArrayBuffer/prototype/slice/species-returns-not-arraybuffer.js
@@ -8,7 +8,7 @@ description: >
 info: |
   SharedArrayBuffer.prototype.slice ( start, end )
 
-features: [Symbol.species]
+features: [SharedArrayBuffer, Symbol.species]
 ---*/
 
 var speciesConstructor = {};
diff --git a/test/built-ins/SharedArrayBuffer/prototype/slice/species-returns-same-arraybuffer.js b/test/built-ins/SharedArrayBuffer/prototype/slice/species-returns-same-arraybuffer.js
index 6a26fb9efd..6a8b157752 100644
--- a/test/built-ins/SharedArrayBuffer/prototype/slice/species-returns-same-arraybuffer.js
+++ b/test/built-ins/SharedArrayBuffer/prototype/slice/species-returns-same-arraybuffer.js
@@ -8,7 +8,7 @@ description: >
 info: |
   SharedArrayBuffer.prototype.slice ( start, end )
 
-features: [Symbol.species]
+features: [SharedArrayBuffer, Symbol.species]
 ---*/
 
 var speciesConstructor = {};
diff --git a/test/built-ins/SharedArrayBuffer/prototype/slice/species-returns-smaller-arraybuffer.js b/test/built-ins/SharedArrayBuffer/prototype/slice/species-returns-smaller-arraybuffer.js
index 78653666c2..69348df174 100644
--- a/test/built-ins/SharedArrayBuffer/prototype/slice/species-returns-smaller-arraybuffer.js
+++ b/test/built-ins/SharedArrayBuffer/prototype/slice/species-returns-smaller-arraybuffer.js
@@ -8,7 +8,7 @@ description: >
 info: |
   SharedArrayBuffer.prototype.slice ( start, end )
 
-features: [Symbol.species]
+features: [SharedArrayBuffer, Symbol.species]
 ---*/
 
 var speciesConstructor = {};
diff --git a/test/built-ins/SharedArrayBuffer/prototype/slice/species.js b/test/built-ins/SharedArrayBuffer/prototype/slice/species.js
index 4c2a689421..b286414752 100644
--- a/test/built-ins/SharedArrayBuffer/prototype/slice/species.js
+++ b/test/built-ins/SharedArrayBuffer/prototype/slice/species.js
@@ -8,7 +8,7 @@ description: >
 info: |
   SharedArrayBuffer.prototype.slice ( start, end )
 
-features: [Symbol.species]
+features: [SharedArrayBuffer, Symbol.species]
 ---*/
 
 var resultBuffer;
diff --git a/test/built-ins/SharedArrayBuffer/prototype/slice/start-default-if-absent.js b/test/built-ins/SharedArrayBuffer/prototype/slice/start-default-if-absent.js
index 203b853b34..63ebfee5ed 100644
--- a/test/built-ins/SharedArrayBuffer/prototype/slice/start-default-if-absent.js
+++ b/test/built-ins/SharedArrayBuffer/prototype/slice/start-default-if-absent.js
@@ -8,6 +8,7 @@ description: >
 info: |
   SharedArrayBuffer.prototype.slice ( start, end )
 
+features: [SharedArrayBuffer]
 ---*/
 
 var arrayBuffer = new SharedArrayBuffer(8);
diff --git a/test/built-ins/SharedArrayBuffer/prototype/slice/start-default-if-undefined.js b/test/built-ins/SharedArrayBuffer/prototype/slice/start-default-if-undefined.js
index 6a4809c218..8a0c018c84 100644
--- a/test/built-ins/SharedArrayBuffer/prototype/slice/start-default-if-undefined.js
+++ b/test/built-ins/SharedArrayBuffer/prototype/slice/start-default-if-undefined.js
@@ -7,6 +7,7 @@ description: >
   The `start` index defaults to 0 if undefined.
 info: |
   SharedArrayBuffer.prototype.slice ( start, end )
+features: [SharedArrayBuffer]
 ---*/
 
 var arrayBuffer = new SharedArrayBuffer(8);
diff --git a/test/built-ins/SharedArrayBuffer/prototype/slice/start-exceeds-end.js b/test/built-ins/SharedArrayBuffer/prototype/slice/start-exceeds-end.js
index 20b05d8171..9591247ba8 100644
--- a/test/built-ins/SharedArrayBuffer/prototype/slice/start-exceeds-end.js
+++ b/test/built-ins/SharedArrayBuffer/prototype/slice/start-exceeds-end.js
@@ -8,6 +8,7 @@ description: >
 info: |
   SharedArrayBuffer.prototype.slice ( start, end )
 
+features: [SharedArrayBuffer]
 ---*/
 
 var arrayBuffer = new SharedArrayBuffer(8);
diff --git a/test/built-ins/SharedArrayBuffer/prototype/slice/start-exceeds-length.js b/test/built-ins/SharedArrayBuffer/prototype/slice/start-exceeds-length.js
index bf2f209a39..e6602f1cd5 100644
--- a/test/built-ins/SharedArrayBuffer/prototype/slice/start-exceeds-length.js
+++ b/test/built-ins/SharedArrayBuffer/prototype/slice/start-exceeds-length.js
@@ -7,6 +7,7 @@ description: >
   Large `start` index is clamped to [[ArrayBufferByteLength]].
 info: |
   SharedArrayBuffer.prototype.slice ( start, end )
+features: [SharedArrayBuffer]
 ---*/
 
 var arrayBuffer = new SharedArrayBuffer(8);
diff --git a/test/built-ins/SharedArrayBuffer/prototype/slice/this-is-arraybuffer.js b/test/built-ins/SharedArrayBuffer/prototype/slice/this-is-arraybuffer.js
index 341ea20967..1282b188f3 100644
--- a/test/built-ins/SharedArrayBuffer/prototype/slice/this-is-arraybuffer.js
+++ b/test/built-ins/SharedArrayBuffer/prototype/slice/this-is-arraybuffer.js
@@ -5,6 +5,7 @@
 esid: sec-sharedarraybuffer.prototype.slice
 description: >
   Throws a TypeError if `this` is an ArrayBuffer
+features: [SharedArrayBuffer]
 ---*/
 
 assert.throws(TypeError, function() {
diff --git a/test/built-ins/SharedArrayBuffer/prototype/slice/tointeger-conversion-end.js b/test/built-ins/SharedArrayBuffer/prototype/slice/tointeger-conversion-end.js
index 30761d27f0..ff160d71ae 100644
--- a/test/built-ins/SharedArrayBuffer/prototype/slice/tointeger-conversion-end.js
+++ b/test/built-ins/SharedArrayBuffer/prototype/slice/tointeger-conversion-end.js
@@ -7,6 +7,7 @@ description: >
   The `end` index parameter is converted to an integral numeric value.
 info: |
   SharedArrayBuffer.prototype.slice ( start, end )
+features: [SharedArrayBuffer]
 ---*/
 
 var arrayBuffer = new SharedArrayBuffer(8);
diff --git a/test/built-ins/SharedArrayBuffer/prototype/slice/tointeger-conversion-start.js b/test/built-ins/SharedArrayBuffer/prototype/slice/tointeger-conversion-start.js
index 2a5b1f74bd..f6451c9e8a 100644
--- a/test/built-ins/SharedArrayBuffer/prototype/slice/tointeger-conversion-start.js
+++ b/test/built-ins/SharedArrayBuffer/prototype/slice/tointeger-conversion-start.js
@@ -7,6 +7,7 @@ description: >
   The `start` index parameter is converted to an integral numeric value.
 info: |
   SharedArrayBuffer.prototype.slice ( start, end )
+features: [SharedArrayBuffer]
 ---*/
 
 var arrayBuffer = new SharedArrayBuffer(8);
diff --git a/test/built-ins/SharedArrayBuffer/return-abrupt-from-length-symbol.js b/test/built-ins/SharedArrayBuffer/return-abrupt-from-length-symbol.js
index 3b5358d8cd..c85466bddc 100644
--- a/test/built-ins/SharedArrayBuffer/return-abrupt-from-length-symbol.js
+++ b/test/built-ins/SharedArrayBuffer/return-abrupt-from-length-symbol.js
@@ -12,7 +12,7 @@ info: |
   1. If NewTarget is undefined, throw a TypeError exception.
   2. Let byteLength be ? ToIndex(length).
   ...
-features: [Symbol]
+features: [SharedArrayBuffer, Symbol]
 ---*/
 
 var s = Symbol();
diff --git a/test/built-ins/SharedArrayBuffer/return-abrupt-from-length.js b/test/built-ins/SharedArrayBuffer/return-abrupt-from-length.js
index c5d2c89937..68b07a6875 100644
--- a/test/built-ins/SharedArrayBuffer/return-abrupt-from-length.js
+++ b/test/built-ins/SharedArrayBuffer/return-abrupt-from-length.js
@@ -12,6 +12,7 @@ info: |
   1. If NewTarget is undefined, throw a TypeError exception.
   2. Let byteLength be ? ToIndex(length).
   ...
+features: [SharedArrayBuffer]
 ---*/
 
 var len = {
diff --git a/test/built-ins/SharedArrayBuffer/toindex-length.js b/test/built-ins/SharedArrayBuffer/toindex-length.js
index e77883e0a8..9fd0296722 100644
--- a/test/built-ins/SharedArrayBuffer/toindex-length.js
+++ b/test/built-ins/SharedArrayBuffer/toindex-length.js
@@ -23,6 +23,7 @@ info: |
     c. Let index be ! ToLength(integerIndex).
     d. If SameValueZero(integerIndex, index) is false, throw a RangeError exception.
   3. Return index.
+features: [SharedArrayBuffer]
 ---*/
 
 var obj1 = {
diff --git a/test/built-ins/SharedArrayBuffer/undefined-newtarget-throws.js b/test/built-ins/SharedArrayBuffer/undefined-newtarget-throws.js
index e6cd4997e0..f1f82ef8e2 100644
--- a/test/built-ins/SharedArrayBuffer/undefined-newtarget-throws.js
+++ b/test/built-ins/SharedArrayBuffer/undefined-newtarget-throws.js
@@ -13,6 +13,7 @@ info: |
 
   1. If NewTarget is undefined, throw a TypeError exception.
   ...
+features: [SharedArrayBuffer]
 ---*/
 
 assert.throws(TypeError, function() {
diff --git a/test/built-ins/SharedArrayBuffer/zero-length.js b/test/built-ins/SharedArrayBuffer/zero-length.js
index 5ca031906a..a8a545e168 100644
--- a/test/built-ins/SharedArrayBuffer/zero-length.js
+++ b/test/built-ins/SharedArrayBuffer/zero-length.js
@@ -15,6 +15,7 @@ info: |
   4. ReturnIfAbrupt(byteLength).
   5. If SameValueZero(numberLength, byteLength) is false, throw a RangeError exception.
   ...
+features: [SharedArrayBuffer]
 ---*/
 
 var positiveZero = new SharedArrayBuffer(+0);
-- 
GitLab