diff --git a/test/built-ins/Atomics/Symbol.toStringTag.js b/test/built-ins/Atomics/Symbol.toStringTag.js
index bb4b8ccdaee61c2c0b003809abf6bcce86b29c2d..d3d1ba2d7df5c5333da33b944bb95b1a6e7f8533 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 198d97b849826e5e80c62d8b34466fcd53e51b2d..93422391d4703abd6071f8e6ecbc2b460153c80e 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 b9f4c37798ac722203ed1e43b162871afd89ef04..518f30277e0abb60d7bc9a3e237c8217ef98e13d 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 f65988d00a10a3a1543dade3f2154ee8ee9cf1cd..ccb06e1fad45675c10a4c3fc0e89e8172980d0eb 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 3719f2f90086a248d3177240c00e1a3f7190f180..e1a44542a8fe2f1a0093a7643cccb283387ceadb 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 21d834eae972da28afb97ac4a5c8fc0f508ff4c2..ca2ad7bfa2ae41c1c32094af029115d2e405b15e 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 c5be59fa2962bb29a57e89a08f1e71bdaa4f80f3..7093525ba705b0584de09c916107e9e79b45c3ea 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 94ec10fd51888833b0017c9a88dc61945351b1c8..b1e9bb0fd7f2b9d638f3e6601b4d62341ddfc537 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 c49fd8aa7732f3c61ab27a8f1367563e61240af1..33010c4b529173d14458d58572b1ee9bea4462b1 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 8d70354874acf1f7692c593ce77a08c05047bd7c..4a5a90efa2750859b3ff77a3e376e3812089ea0f 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 a7538d011781ffbe5d39aa121b70f66591d2d690..9c34faf82162938267425404790fb23956b1ed61 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 453ab24567f3891fb86004897aa3009177684f83..78f78fd64587d23cb2c8cc0303c064b0ac80f04d 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 43b3b5b79a147220e3fa5c7ffbc25f5b84fd44b3..db09540738eae9ee145f7885d4e9ea5d5294aa10 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 b725d1b3d93f101bd43d759d1d6429bfd55b56ee..80a56b04c4d25df8a31a280b10ed1db810bac2b6 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 c616509445098e2f139fad4ca4fff6e41057b597..aaaa95d4ea118d22df76242afd80e13a0f3529fc 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 059c9301e8291297baecddb611be3c8feba1498d..06d66b0aeb494fd3a2280972c7d80711c97d6d5b 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 b12bf1973c391bdff89422a6c7f59e0fe3d45549..11334867295fa41819939ee64b904cb7d1264af8 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 1a624a491d2c202dae18d7d317ae220c861fa336..6a0cc44462e8a03e81fc8f5806e1827ce23b144a 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 8966fefad090dd5bd756122d2df868ee2f145c3b..95ca01a2374d9adfed97fdd2e10df68c576fd2c4 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 e3f7302617771e5d8b9a1215d1b1b4483d435cc0..c6684d46357574a34c6935758718f4dd4c5f7ee0 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 a83b0c462397ab66b5cb5eeed39cab7ae2babe2d..f0c041df1cdb9ea5f1bfb7accd97dac233fdf748 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 32ddce6c28e1fabae45165f04c2a67cfdf296f11..1c5e686f4e84891b972bac8b0f41866d3de9352c 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 f8a9354c8e8869f76fb71dafc2510c3dd69c9aa1..30bf266e12272a923afa88f3e394889fb66f3381 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 5fcd308073fc3c22f5118ac8274e2d1e71262d83..beaf7962c7efb51fd959e1322fc59460039c97d5 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 ad84cd81a109c4586aae1b17193b617c93890e59..bfa8478eddb79898a80716514ccf38b26cc684d7 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 f5760d9fbaa756265404cf21cca36320a199139e..cfeafe0bbb4aaba56238bc2f09bc2a22f0897a78 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 031d33504a5603817c5b80e95dc2101032d95333..ef6f55b41d2ea7cb22ba6bc9a9ff7c5cfd20425a 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 c49f27390e11947f9e1b154da7fcf81961c94425..072711b9c2b3319ddde484e69ecbd832cc48db49 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 40cd2a6d1faaa85afd4ce36802f615c25f8de8bf..7629a7c09f256ed4499eed47ac2195bb6a0dfe86 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 8442ce9493b2c9f99d4f63bd52c794f3ce713751..0c8e6bccc650e3ac11f29d1bfb296cbb78991e6f 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 726a618d02761c381100cacc8e1117fe98d26f32..170c727f06c4e5bfb7b56683853053b9347a6eaf 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 72d9beefadc73d33acb02e77ca2e12155bfd2e26..26b7163e327cfbbde99fa8afe32d6057d2310007 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 1e32049177f0cb15b62937073f7c4f2b5fa2e28e..05e2c4956370cc4da9fbbeceecfe06aaae2f8a5e 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 ca004416af478106cddd695522004f4585a7d55f..4096e9697d109da7f220f6ba7fb76e190c0a7c5e 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 a4f34569e3942ccfc9464ac0d778c1230609cd61..1a75c23448c77ebdcb04679ea7eab33bc34e800a 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 0134956277bbccf29f7f5bda73a1e7d63636eff6..0116afea5336e5532a377ca97201866cfb3f2938 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 67eff07a07f3a66aea443349e6549659f49a27c9..946bab41c084d77b7fb37852e2d7f07d8ee5adfa 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 ce8649ba47f8ccc262793ba94b5e69e84283f9a1..1e7183f6d7b2e6746b3474a6eb145157fd6509cb 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 c8192dbfc2eecfb2cb9d4a9ce35208c0ef6f4ee4..a76ea756a302c1d80fa53dff4ec2a546cea113cf 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 231a5be420f50a610c4f584087382a7ef2ef33a5..9143f9459f9f69e65e928b5bae32bb11c4fc9108 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 8d0ee81f0167dcb41bf5e4c2cc761136d3e99c57..97d8ca3628b77e6bc9218361cc9c299e3056d891 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 7bf2f781e32da985698626fc4a9debe4cf287eec..06029384cc6e9a7c013a34614ebc89cd174e0fde 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 c34f86024e396db00e23d23dff0f601110f1e8c8..f2dfb40916c6937e9aa5cef39e74cfca4474226a 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 d7aa2cc86f07b5e5d64b977afdeeafe818400248..e4e8dae4d5d6638bfb8b3234090853dd7c41e097 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 71cd4cb5866590da48e78511e60b88975415609c..8130e97385f70e6149948c38a5761292a5cb8809 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 47dd0400eab6bfbef808091d5d31a5b5b8074f07..64afa5d9f01cb66ebef38512f011ea3f7bdcbe7d 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 70ed90a7da34281cb19e185dd70eef0000f960fb..90a605b7c75205cdae34c4f3c5ff87c04116a722 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 af237d2cdaff0045b21adf47b36a9b657b5f2a67..3563f7e37d5a659631beff967f63e947e9197b2f 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 6ede71ded26e118704830e7cdf23e7215a2bd2f9..314eacf92a15de2337406eae2001f8a0e6ff8224 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 c64365360bca43fa877bf2c5c674254ce093c77b..3635d6728b90de227d4cfcce5d16f69d53ed2225 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 1256ad5114bf989d3db56f8ca73b2b47f888d7fe..1745841592f938e225fadaa9f545f4369cf2a0e1 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 0250297e62c0621bf26de1743ba2d6ba88804c6f..53dbc3f52c42a8570fe4f2e25197974ac421983d 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 95cf0af36c2e4a56558b250cfa5033a272e9263c..38d22dda68eb5d38ab95b27e7d1e91c50b56cea1 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 8c7541a04819bc586d390b62a2bffbe24ada20a4..84ce5ce1901acb0457deb0cff68a982bb9f359ec 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 cba6a7b19b5f57bf6075ca645d58ee32806a9d83..1da152c7a0386a09976acd476537e884e3b235fd 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 4f6143fc3af5a8b4a50fb526388ab63fa527cabf..add2f7b3ad0af97fa9e3ff9e75c7743b20c3b6f4 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 f4a4792b70403229253412343aa009a03bb54fc2..63cf092f385d87776c734a45e56b45840df82cad 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 56eeeade10a1ce50950f0682373526be694f3f63..18916a934565c2863332a28e7c92ec275589734a 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 d2ee14e0c37a36fc21894a4e65e34a3e67dd1b4c..c361763f47de97d1aa14f6fd751f72497886584a 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 eaf13a7b76831bcbf880889544db888a03661d6b..3c39094c7f0557a599def077e7473f1d26b2e5eb 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 80283218038b1fc530813d89360bd41ee51d55e9..f275634fec4fd9a7aa037e886adcff2661d35690 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 3ddae8d322d2a7dd56ec1cabee761089961d6185..434e272392896c3891d48721a601a0cbf62acc35 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 cffc184e1237ecd3a1cbb8da25cf7a865f5698c4..87a337f8d6f944c7f7d84bc962bd743a2cd07412 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 950d2d5a316a93793f40f0bbb89e6743bf9cf602..353ffedd50fed75474faf34ec8e25bfb5931b3b2 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 700c22c2ed81f71116b5b758979b218ab953b954..52b878ecbeb4ffa9ab2c765757d403473c43abaa 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 14788079f2aa5103d2f5ebd67a83b8530bb6437f..969733f85374d9a1f223d708058d272842d42fa3 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 b0408aa96284ed96afd29a634f3774aee111ff16..caaedb63d113c09130041ae49c5472ad4bee0b83 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 c77644ff0e18a0ead7195ae67cdf6f9a00336790..9ef59d474de0c264e2aad572c44adbf83079be07 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 64961e57f6e7936aba93644fcced3352bb429bc0..038fe7ed37a761c3322e0b6940a384edde375dd6 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 4a299eaa2f74ff30aeddd2b170b82e404766dec8..44a8279540296e0f1db25a3efd2127a6251d2338 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 bdc718e1352de50066269cb5a015c77184522c22..8c3b0643232718c93bd079eb66926ea499875203 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 fde739d23412ec119db7742a9dc027893fbf8628..40ad8e0fafd338d18ed9cef6b0043f6017952438 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 e5c8daa724cfe9136754782ff7c9e1cf08d274bb..b1e1b710f2eb5d860b465639a6cb2d2734980ee5 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 cc7d194fb7dabbba7d08f25f3a681c521c204d3a..1a00282eef068ec59d631382340d55e4d6e74001 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 8ef8895581aac1fef1be87bfd4b2e5c6d8505387..f632daa105995a26a525162ea071791339ef73d7 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 145286c89fbf78b14948ca3b26f4974c03116d53..46447c29c2955303241429a57a8882caf8cdcc78 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 b9b683f3b8441e9968cefd106e1c3950dfc45592..1c436e08daacb6635a03dc875f9fc72f2473f49d 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 c2d296ac75896a12bef6cff98ff49c87f826a5c8..2c2ea7ab57857c8e99c2e0318d1a9b0f5fa89ad6 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 db067b0af3564e57b79e6721b639c28c3f93c1e9..c530ca36ef6533e5c513e0c8752a94d53877bd77 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 22d0d26c41337f14548d6e759d3c62eeb12c43a4..d02f62fb3269e243d744a8e24ee518b48d17d665 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 6bf50f21e00465faf62f2c9898df0698251021d1..a9187b8b926424ae2cdd77aa60669a0c25370354 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 a03bf2b141e0ad11a27d89258a30f9be6628e70f..16f3c3a9a5a5fa54da4b44e2d28fdb7c42ecf831 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 2793751fbc5f75ac695127bc4e22872437a40654..e7ff9c92657c3cce85e52276d503b302ac79af9e 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 9a744c30b5601c2df50b8cb6340cae24c7a567ec..aaa3c27b8c6c8fb634b8c759f33f4f572282557b 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 7350ab82d6edeba8c605c5a2a89a84457f310bfa..ac00b13a03f35b3bf82b2b59c229b4440a5959e3 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 57d025952e2c5ecadb2e5849726fafd790b3aa97..4502c18f744de08e9515feabe9e4695717ec1bf3 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 03fd7648d0e413f3c0292edc85d3b0a9806de67d..32562f120827e3832d6691bc80e1798b4f6d95bd 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 f8a2a1912bc5b29e3bb064e8d1cd5ab4b36eaf72..2b3c48727454ca7c27304843b7103a6bac0be817 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 7ea7ad638e0b4154159a6efe7b8f30381086a08e..f45169b7e10ce5772fd36a98a49fb2ab4069dc4e 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 82ab36db62e0782379c34419837fa603278a51b1..bb469e93942bb738992ff41c1d8e4bd0f2ae5514 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 42dface3563c1cc420b4c26099c5cc296abbecfa..307c4958719a7cf178cc4c1923352cb10295ee49 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 8266192cf236a41d46f2b4c287dfc35ba7c8c48d..ce356efe5dff5e1f23de1eb122422badf2db0136 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 66810df9f912835c1634a27f65b75c5f0351f4aa..50f26674a81694fb550356c378dcc7f897f99f38 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 32fee07cf4e7a3b4d35238da3cc88b318e6adc9d..48ad7b4370b48d39cd420edb6a51c13a4fa34896 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 f3ae27ebea7d0da0eab458a1de0f4e87c1af09d2..d7cbcdc7ba1ee22d8aeb99aaf2731b9aa8d85a43 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 4cc423002e646dfdd12cd3834f17561c6e4240d4..0cb8e2f21768ca316b8e91abffb887ee698d63c1 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 49ca70562dbeb9e2152841e9259c70c0f3416aac..d9e5f4954f8cadccb3172e27813942495fd0f49d 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 4342a14ebdbd52e82277480cfb4b3df625184588..a99090928bfcdc0117871975ba270bac93972b58 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 c69d5d29250cd1cba42cfc7cf4beb9a637b4e119..f9883d271728efc41207bfab73e0316d63b51ff0 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 13af24035fcef4382ff625a6730856c0300c65fa..e0b6c8034e69cbac52bacba43f6e8ee719e69b19 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 4096fa244d74cee9bdb84c671973b66207d7dca3..d7fd32407e3c47648952bf8e29f9d9c40ab76e87 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 e9957b4a645054130d09a200c2dabed6f23b1d64..1919cbcccc709e9c03216ea2df5a76987568b5f4 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 65da03f2831b19fe8a6b9f2617daa00befc1780b..712efe7a7af19f10e39b6f4f44e722dd60f2a0f7 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 b8d570dcf0ec7b5e0bb8d2797b00a84f6fff01ce..6418596b9cdee3030c6d9e7509dd4567b0bcbf2e 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 2c4a075341407333bdf5b8d743ca826efd2f7847..54c521e7b4c17409a2137c220e6874a856231396 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 f728fed8fe2b06e85f1040edde05860a024f62f7..88928a0163f5234c2a8dbb1f4a3bb2aa79c77699 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 cfb7288ad6095fed170034771566e6450b0a4dc1..a97be524be160c1348d7eb4316178d3fd0a28717 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 19e276a653224682b46a4b37ee84738e0f79d37c..61310afa04268af5fefc47bbb6459df4cad99d93 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 ca61abaa9b27c15e0471455d9b308f7dcdb65ab4..c652f29ac13e18ab11599b87522f4816421ad408 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 2fa3955b8f42524b1434c7da9b7f4d68d91c7ec3..2b33bbc29c0f2f704104c7fa50a1ee9b1a5bc9be 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 ea4595dc097081b9a7e34164fc6b71dfccb2cb49..df67d4cdc8244c545a0c9a4029f9d5094c0339fb 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 55aa3bb79b170889b0d689fabec6e6b582699b9b..b4dd039fd6a6187a62ade8b5adf0a5c41d7e01d0 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 4e5e392fc7576c96a47f753b0b3765f71f3d120c..930caa4033e6dc23644ae7595536804939e65072 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 9e13981089500a4c2f8e7063c677aaddf32d1917..36ab5e82ace069ba76cc0a310461b209c2fdb11a 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 cc010c7e5f751ee16e2f355e7af9f69caed4b64d..6e8bb5218bcb24a7074e8add409f208fd7dd0bb2 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 81175e8848bfe460d63f18902af0bf393ccfe2aa..dacc7ea3514dd8b451a1e1d128495947c5a3bcab 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 84fb109a5660c5c33ccd1b3d2e9d459c9b7df3e9..25a03d6faac922f9ddf33f4abeea2bfdfaaac34e 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 a614ba784e9795070dc30fe4868599cd03e25fb8..4d62cb00f13c1c218297a5830bee9e61e6cdfe2b 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 6a26fb9efd39ebd18f5018a1c08f0a188e7dbda8..6a8b1577528ea7dcfb3090a09078624fe069eb82 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 78653666c253dffff0b8837994e62f3135d335b9..69348df1748bf548dbeb38efdc00a3bae9d2b16d 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 4c2a689421f13dab656b065081bb223a077378dd..b2864147522588956908aab524ad293ee22b78c9 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 203b853b347a84b1db7099891e7e83d13c01954b..63ebfee5edb7bc5fccab52c42790a7c24317c98e 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 6a4809c218336d6bb467ef36fdebde18ce045e44..8a0c018c84469ffa80914af2e06a0680a345b0a8 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 20b05d8171814a29f5e3510901d661e416b213f0..9591247ba888af42dd02b49a1d7e91012a1631e2 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 bf2f209a396671b0092d84ca4751aab8be76b55b..e6602f1cd5b2d93e1a7dc2ae7ec0aad7ac5ee5d5 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 341ea209675c3346648588a14c07d52653ac9a11..1282b188f38e5a28747d06469583da6fa0b720a1 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 30761d27f069f310d0aab1f5350a6150b40ff319..ff160d71ae86b8518ce84644149c41eff9c6483b 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 2a5b1f74bd44670ed33eb814991a8c6f25e46f0d..f6451c9e8a4dc18c8517b0ed5bfc48daaeda20e6 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 3b5358d8cd02451609f12d62e25e921d12e9e537..c85466bddc1c9bddb7abfa69938903739b5b02d2 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 c5d2c899377c6b4542e657e17ac32a7935250576..68b07a6875be002448f2e925a647db4083576134 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 e77883e0a839fb5e8f4842fab6488a65f0b303e1..9fd02967225680ee9dbc1462ad5fe901ba7bf255 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 e6cd4997e077962ee78c992dedaa53a63e7d5a4a..f1f82ef8e2f7d9d3dfe4d409dc7035513d112df1 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 5ca031906acff655fda92cc337bed5737515f46f..a8a545e1688801b15374fc7304bcee10bc5afc2c 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);