diff --git a/test/built-ins/Proxy/apply/call-parameters.js b/test/built-ins/Proxy/apply/call-parameters.js
index 347e4bb4ea9c9d5fc9c8daafb903207e88fc3725..f45af9cdff4f8c6c3907d8c1028cc23389a7684b 100644
--- a/test/built-ins/Proxy/apply/call-parameters.js
+++ b/test/built-ins/Proxy/apply/call-parameters.js
@@ -9,6 +9,7 @@ info: |
     [[Call]] (thisArgument, argumentsList)
 
     9. Return Call(trap, handler, «target, thisArgument, argArray»).
+features: [Proxy]
 ---*/
 
 var _target, _args, _handler, _context;
diff --git a/test/built-ins/Proxy/apply/call-result.js b/test/built-ins/Proxy/apply/call-result.js
index 1f3bf53d2fc0b415b9d5fcca41cf314b0cbe422a..451d3c18cd952549a971fcb074bcd1554def80ab 100644
--- a/test/built-ins/Proxy/apply/call-result.js
+++ b/test/built-ins/Proxy/apply/call-result.js
@@ -8,6 +8,7 @@ info: |
     [[Call]] (thisArgument, argumentsList)
 
     9. Return Call(trap, handler, «target, thisArgument, argArray»).
+features: [Proxy]
 ---*/
 
 var target = function(a, b) {
diff --git a/test/built-ins/Proxy/apply/null-handler.js b/test/built-ins/Proxy/apply/null-handler.js
index cdc7461d11d4d1c80f5b08f0605a8c4f93655d51..6e0016ec8b0b2c4f8c7da03c25e4d3ffe5e8494f 100644
--- a/test/built-ins/Proxy/apply/null-handler.js
+++ b/test/built-ins/Proxy/apply/null-handler.js
@@ -6,6 +6,7 @@ description: >
     [[Call]] (thisArgument, argumentsList)
 
     2. If handler is null, throw a TypeError exception.
+features: [Proxy]
 ---*/
 
 
diff --git a/test/built-ins/Proxy/apply/return-abrupt.js b/test/built-ins/Proxy/apply/return-abrupt.js
index db3f6bfa562bc991140bf05f1dc43eec7726a9fd..494973defb1459a45f4367ae351b569e0695b656 100644
--- a/test/built-ins/Proxy/apply/return-abrupt.js
+++ b/test/built-ins/Proxy/apply/return-abrupt.js
@@ -4,6 +4,7 @@
 es6id: 9.5.13
 description: >
     Return is an abrupt completion
+features: [Proxy]
 ---*/
 
 var target = function(a, b) {
diff --git a/test/built-ins/Proxy/apply/trap-is-not-callable-realm.js b/test/built-ins/Proxy/apply/trap-is-not-callable-realm.js
index e9298ce27a7538700d69b3f12b50d070746ae231..d225b984c2c4bc5d27698a9519dc67b5bc2ddb63 100644
--- a/test/built-ins/Proxy/apply/trap-is-not-callable-realm.js
+++ b/test/built-ins/Proxy/apply/trap-is-not-callable-realm.js
@@ -6,7 +6,7 @@ es6id: 9.5.13
 description: >
   Throws if trap is not callable (honoring the Realm of the current execution
   context)
-features: [cross-realm]
+features: [cross-realm, Proxy]
 ---*/
 
 var OProxy = $262.createRealm().global.Proxy;
diff --git a/test/built-ins/Proxy/apply/trap-is-not-callable.js b/test/built-ins/Proxy/apply/trap-is-not-callable.js
index b6e74f1ef3c9a30a0a1ee1a20aee41dac9655af3..14e84966b25ceacfd6113046528616bbdedd860b 100644
--- a/test/built-ins/Proxy/apply/trap-is-not-callable.js
+++ b/test/built-ins/Proxy/apply/trap-is-not-callable.js
@@ -4,6 +4,7 @@
 es6id: 9.5.13
 description: >
     Throws if trap is not callable.
+features: [Proxy]
 ---*/
 
 var p = new Proxy(function() {}, {
diff --git a/test/built-ins/Proxy/apply/trap-is-null.js b/test/built-ins/Proxy/apply/trap-is-null.js
index 8bb87786c1f9316d6dc7b757e45c46600f9e5b30..0584a3ddb6a6eb3f754d036984a0532493f512f0 100644
--- a/test/built-ins/Proxy/apply/trap-is-null.js
+++ b/test/built-ins/Proxy/apply/trap-is-null.js
@@ -20,6 +20,7 @@ info: |
     ...
     3. If func is either undefined or null, return undefined.
     ...
+features: [Proxy]
 ---*/
 
 var calls = 0;
diff --git a/test/built-ins/Proxy/apply/trap-is-undefined-no-property.js b/test/built-ins/Proxy/apply/trap-is-undefined-no-property.js
index 898fad36216b65e3ded4aefd0107837d5c36791b..45e2ef5f773b4e8eb806aef44c3026f37ed69b33 100644
--- a/test/built-ins/Proxy/apply/trap-is-undefined-no-property.js
+++ b/test/built-ins/Proxy/apply/trap-is-undefined-no-property.js
@@ -20,6 +20,7 @@ info: |
     ...
     3. If func is either undefined or null, return undefined.
     ...
+features: [Proxy]
 ---*/
 
 var calls = 0;
diff --git a/test/built-ins/Proxy/apply/trap-is-undefined.js b/test/built-ins/Proxy/apply/trap-is-undefined.js
index a8df9f34baaa923405a25edb41b45ba08c3e19ef..5a2b9e5e77d1926ce1aee04ff4dcb1c0b0b46701 100644
--- a/test/built-ins/Proxy/apply/trap-is-undefined.js
+++ b/test/built-ins/Proxy/apply/trap-is-undefined.js
@@ -20,6 +20,7 @@ info: |
     ...
     3. If func is either undefined or null, return undefined.
     ...
+features: [Proxy]
 ---*/
 
 var calls = 0;
diff --git a/test/built-ins/Proxy/construct/call-parameters-new-target.js b/test/built-ins/Proxy/construct/call-parameters-new-target.js
index dab0f8512f69d5098bb6751d1393515089573962..21adc346b98d37149b8b5163e6ad946613138d92 100644
--- a/test/built-ins/Proxy/construct/call-parameters-new-target.js
+++ b/test/built-ins/Proxy/construct/call-parameters-new-target.js
@@ -11,7 +11,7 @@ info: |
     [[Construct]] (argumentsList, newTarget)
 
     9. Let newObj be Call(trap, handler, «target, argArray, newTarget»).
-features: [Reflect.construct]
+features: [Proxy, Reflect, Reflect.construct]
 ---*/
 
 function Target() {}
diff --git a/test/built-ins/Proxy/construct/call-parameters.js b/test/built-ins/Proxy/construct/call-parameters.js
index 7d0e9cc1e44663fb45fef9d2a626fa9ce75f7445..ad36717b52535ea5cbbeb8b33138ab33941f4603 100644
--- a/test/built-ins/Proxy/construct/call-parameters.js
+++ b/test/built-ins/Proxy/construct/call-parameters.js
@@ -10,6 +10,7 @@ info: |
     [[Construct]] ( argumentsList, newTarget)
 
     9. Let newObj be Call(trap, handler, «target, argArray, newTarget »).
+features: [Proxy]
 ---*/
 
 var _target, _handler, _args, _P;
diff --git a/test/built-ins/Proxy/construct/call-result.js b/test/built-ins/Proxy/construct/call-result.js
index 7740f1fe858507f0b7e28fe909d917f7077c2208..0a6585846839137492b80a1534830333c1a2d5bf 100644
--- a/test/built-ins/Proxy/construct/call-result.js
+++ b/test/built-ins/Proxy/construct/call-result.js
@@ -8,6 +8,7 @@ info: |
     [[Construct]] ( argumentsList, newTarget)
 
     12. Return newObj
+features: [Proxy]
 ---*/
 
 function Target(a, b) {
diff --git a/test/built-ins/Proxy/construct/null-handler.js b/test/built-ins/Proxy/construct/null-handler.js
index 816d04d4f741617dfa98aa49d676e68ad0d94f17..d94f02e70c4d0e7083319c92bcc00a7784ae17a7 100644
--- a/test/built-ins/Proxy/construct/null-handler.js
+++ b/test/built-ins/Proxy/construct/null-handler.js
@@ -6,6 +6,7 @@ description: >
     [[Construct]] ( argumentsList, newTarget)
 
     2. If handler is null, throw a TypeError exception.
+features: [Proxy]
 ---*/
 
 
diff --git a/test/built-ins/Proxy/construct/return-is-abrupt.js b/test/built-ins/Proxy/construct/return-is-abrupt.js
index c0d41aa4ee2ffb7f2028f887deaaffb48c15cd25..272fd06489ce4f5a9ffe819231c65f9fb4dc3778 100644
--- a/test/built-ins/Proxy/construct/return-is-abrupt.js
+++ b/test/built-ins/Proxy/construct/return-is-abrupt.js
@@ -9,6 +9,7 @@ info: |
 
     9. Let newObj be Call(trap, handler, «target, argArray, newTarget »).
     10. ReturnIfAbrupt(newObj).
+features: [Proxy]
 ---*/
 
 function Target() {}
diff --git a/test/built-ins/Proxy/construct/return-not-object-throws-boolean.js b/test/built-ins/Proxy/construct/return-not-object-throws-boolean.js
index 5c40d5c8c827f7707478eff5adcdac439a656bde..6b00f4635ef3dfe610d10cc3b2238ac441c4773c 100644
--- a/test/built-ins/Proxy/construct/return-not-object-throws-boolean.js
+++ b/test/built-ins/Proxy/construct/return-not-object-throws-boolean.js
@@ -8,6 +8,7 @@ info: |
     [[Construct]] ( argumentsList, newTarget)
 
     11. If Type(newObj) is not Object, throw a TypeError exception.
+features: [Proxy]
 ---*/
 
 function Target() {
diff --git a/test/built-ins/Proxy/construct/return-not-object-throws-number.js b/test/built-ins/Proxy/construct/return-not-object-throws-number.js
index 7e97a803b89fa0f9015dea883ae16ebfb028dffc..3861877640a401a1f0df980665450c78a428b43a 100644
--- a/test/built-ins/Proxy/construct/return-not-object-throws-number.js
+++ b/test/built-ins/Proxy/construct/return-not-object-throws-number.js
@@ -8,6 +8,7 @@ info: |
     [[Construct]] ( argumentsList, newTarget)
 
     11. If Type(newObj) is not Object, throw a TypeError exception.
+features: [Proxy]
 ---*/
 
 function Target() {
diff --git a/test/built-ins/Proxy/construct/return-not-object-throws-string.js b/test/built-ins/Proxy/construct/return-not-object-throws-string.js
index ca2f5af05ca8ff06de84c264790127873d3c56ba..4917cb36b283b36c8a5f4ae4bf9b111b59de42b1 100644
--- a/test/built-ins/Proxy/construct/return-not-object-throws-string.js
+++ b/test/built-ins/Proxy/construct/return-not-object-throws-string.js
@@ -8,6 +8,7 @@ info: |
     [[Construct]] ( argumentsList, newTarget)
 
     11. If Type(newObj) is not Object, throw a TypeError exception.
+features: [Proxy]
 ---*/
 
 function Target() {
diff --git a/test/built-ins/Proxy/construct/return-not-object-throws-symbol.js b/test/built-ins/Proxy/construct/return-not-object-throws-symbol.js
index 963812950a7d9e2822a8cac9ea490df57da74928..fbf42ad1132c4dad0921344bc7db93d2a677dfc2 100644
--- a/test/built-ins/Proxy/construct/return-not-object-throws-symbol.js
+++ b/test/built-ins/Proxy/construct/return-not-object-throws-symbol.js
@@ -8,7 +8,7 @@ info: |
     [[Construct]] ( argumentsList, newTarget)
 
     11. If Type(newObj) is not Object, throw a TypeError exception.
-features: [Symbol]
+features: [Proxy, Symbol]
 ---*/
 
 function Target() {
diff --git a/test/built-ins/Proxy/construct/return-not-object-throws-undefined.js b/test/built-ins/Proxy/construct/return-not-object-throws-undefined.js
index 347dd3dd92223e7b9e9cf3b849358254929d658c..026c6e19b4c7ff5883efa8cee629ae554e31c242 100644
--- a/test/built-ins/Proxy/construct/return-not-object-throws-undefined.js
+++ b/test/built-ins/Proxy/construct/return-not-object-throws-undefined.js
@@ -8,6 +8,7 @@ info: |
     [[Construct]] ( argumentsList, newTarget)
 
     11. If Type(newObj) is not Object, throw a TypeError exception.
+features: [Proxy]
 ---*/
 
 function Target() {
diff --git a/test/built-ins/Proxy/construct/trap-is-not-callable-realm.js b/test/built-ins/Proxy/construct/trap-is-not-callable-realm.js
index ea02b140a7d922d464d5f4015813ecb090ffa27a..853ea5879dbf9a1ac7105025e9c34dcd2739777e 100644
--- a/test/built-ins/Proxy/construct/trap-is-not-callable-realm.js
+++ b/test/built-ins/Proxy/construct/trap-is-not-callable-realm.js
@@ -6,7 +6,7 @@ es6id: 9.5.14
 description: >
   Throws if trap is not callable (honoring the Realm of the current execution
   context)
-features: [cross-realm]
+features: [cross-realm, Proxy]
 ---*/
 
 var OProxy = $262.createRealm().global.Proxy;
diff --git a/test/built-ins/Proxy/construct/trap-is-not-callable.js b/test/built-ins/Proxy/construct/trap-is-not-callable.js
index 41bc0c700c64b6e695e2dfaa430a00211a022253..f5f7996e8ef26ecee229cdb825fcb1fa13c8703d 100644
--- a/test/built-ins/Proxy/construct/trap-is-not-callable.js
+++ b/test/built-ins/Proxy/construct/trap-is-not-callable.js
@@ -4,6 +4,7 @@
 es6id: 9.5.14
 description: >
     Throws if trap is not callable.
+features: [Proxy]
 ---*/
 
 function Target() {}
diff --git a/test/built-ins/Proxy/construct/trap-is-null.js b/test/built-ins/Proxy/construct/trap-is-null.js
index 9bc1ab29f3fa6eaf41f7e323db4218abff369de0..fdd485273809de7ee5f6eb48b813a62f4940951f 100644
--- a/test/built-ins/Proxy/construct/trap-is-null.js
+++ b/test/built-ins/Proxy/construct/trap-is-null.js
@@ -21,7 +21,7 @@ info: |
     ...
     3. If func is either undefined or null, return undefined.
     ...
-features: [Reflect.construct]
+features: [Proxy, Reflect, Reflect.construct]
 ---*/
 
 var calls = 0;
diff --git a/test/built-ins/Proxy/construct/trap-is-undefined-no-property.js b/test/built-ins/Proxy/construct/trap-is-undefined-no-property.js
index 4157f7b234f861d40036ed486040db258078069a..a6472c1ab389b2b0c271eb5c7532eb26f97454fc 100644
--- a/test/built-ins/Proxy/construct/trap-is-undefined-no-property.js
+++ b/test/built-ins/Proxy/construct/trap-is-undefined-no-property.js
@@ -10,7 +10,7 @@ info: |
 
     7. If trap is undefined, then
         b. Return Construct(target, argumentsList, newTarget).
-features: [Reflect.construct]
+features: [Proxy, Reflect, Reflect.construct]
 ---*/
 
 var calls = 0;
diff --git a/test/built-ins/Proxy/construct/trap-is-undefined-proto-from-ctor-realm.js b/test/built-ins/Proxy/construct/trap-is-undefined-proto-from-ctor-realm.js
index 3af68854db43bdd8f39ccd3764ae56917bab0e60..67930e35c32a942cde6e502033d3a01a7b74a02c 100644
--- a/test/built-ins/Proxy/construct/trap-is-undefined-proto-from-ctor-realm.js
+++ b/test/built-ins/Proxy/construct/trap-is-undefined-proto-from-ctor-realm.js
@@ -20,7 +20,7 @@ info: |
        a. Let realm be ? GetFunctionRealm(constructor).
        b. Let proto be realm's intrinsic object named intrinsicDefaultProto.
     [...]
-features: [cross-realm, Reflect.construct]
+features: [cross-realm, Proxy, Reflect, Reflect.construct]
 ---*/
 
 var other = $262.createRealm().global;
diff --git a/test/built-ins/Proxy/construct/trap-is-undefined.js b/test/built-ins/Proxy/construct/trap-is-undefined.js
index 97580c6d6476059ba0aa47a4728b270dd69cfcf0..7c17356267af928dc2bd30a909eca9e0adb2ccf9 100644
--- a/test/built-ins/Proxy/construct/trap-is-undefined.js
+++ b/test/built-ins/Proxy/construct/trap-is-undefined.js
@@ -21,7 +21,7 @@ info: |
     ...
     3. If func is either undefined or null, return undefined.
     ...
-features: [Reflect.construct]
+features: [Proxy, Reflect, Reflect.construct]
 ---*/
 
 var calls = 0;
diff --git a/test/built-ins/Proxy/constructor.js b/test/built-ins/Proxy/constructor.js
index 1fff16b9674925e512fc0e8074d06abca3196a48..1b6806f6f9da60c5b066be2f4f16885f17413d20 100644
--- a/test/built-ins/Proxy/constructor.js
+++ b/test/built-ins/Proxy/constructor.js
@@ -5,6 +5,7 @@ es6id: 26.2.1
 description: >
     The Proxy constructor is the %Proxy% intrinsic object and the
     initial value of the Proxy property of the global object.
+features: [Proxy]
 ---*/
 
 assert.sameValue(typeof Proxy, "function", "`typeof Proxy` is `'function'`");
diff --git a/test/built-ins/Proxy/create-handler-is-revoked-proxy.js b/test/built-ins/Proxy/create-handler-is-revoked-proxy.js
index 151ad36f41618c46a6a81f52f039a93c9930b096..fc9a343dc8b6ff5a3bfe702ab094cd290bf879c0 100644
--- a/test/built-ins/Proxy/create-handler-is-revoked-proxy.js
+++ b/test/built-ins/Proxy/create-handler-is-revoked-proxy.js
@@ -9,6 +9,7 @@ description: >
     [[ProxyHandler]] internal slot of handler is null, throw a
     TypeError exception.
     ...
+features: [Proxy]
 ---*/
 
 var revocable = Proxy.revocable({}, {});
diff --git a/test/built-ins/Proxy/create-handler-not-object-throw-boolean.js b/test/built-ins/Proxy/create-handler-not-object-throw-boolean.js
index e1846af107874994ed0bc6c74b1e4b27b71b98bc..123119a010dca665da83f7974c3d6c42af42515d 100644
--- a/test/built-ins/Proxy/create-handler-not-object-throw-boolean.js
+++ b/test/built-ins/Proxy/create-handler-not-object-throw-boolean.js
@@ -7,6 +7,7 @@ description: >
     ...
     3. If Type(handler) is not Object, throw a TypeError exception.
     ...
+features: [Proxy]
 ---*/
 
 assert.throws(TypeError, function() {
diff --git a/test/built-ins/Proxy/create-handler-not-object-throw-null.js b/test/built-ins/Proxy/create-handler-not-object-throw-null.js
index c22244d25f8071ceafc812b2f4de84c1a579532b..992ebe7f4ae1ffd2e255c109f4b5e439bc1f6fb0 100644
--- a/test/built-ins/Proxy/create-handler-not-object-throw-null.js
+++ b/test/built-ins/Proxy/create-handler-not-object-throw-null.js
@@ -7,6 +7,7 @@ description: >
     ...
     3. If Type(handler) is not Object, throw a TypeError exception.
     ...
+features: [Proxy]
 ---*/
 
 assert.throws(TypeError, function() {
diff --git a/test/built-ins/Proxy/create-handler-not-object-throw-number.js b/test/built-ins/Proxy/create-handler-not-object-throw-number.js
index 262a99067258dbbe2836a6118aac09ebe125a3f1..4ed00aa68f1fefecbb15ba39d7de4bb0ece820d9 100644
--- a/test/built-ins/Proxy/create-handler-not-object-throw-number.js
+++ b/test/built-ins/Proxy/create-handler-not-object-throw-number.js
@@ -7,6 +7,7 @@ description: >
     ...
     3. If Type(handler) is not Object, throw a TypeError exception.
     ...
+features: [Proxy]
 ---*/
 
 assert.throws(TypeError, function() {
diff --git a/test/built-ins/Proxy/create-handler-not-object-throw-string.js b/test/built-ins/Proxy/create-handler-not-object-throw-string.js
index 3882b313e69be9f7101c58a250d766b97a9e1657..60b5aac4ad995aa1d774f124c9861d0503dba712 100644
--- a/test/built-ins/Proxy/create-handler-not-object-throw-string.js
+++ b/test/built-ins/Proxy/create-handler-not-object-throw-string.js
@@ -7,6 +7,7 @@ description: >
     ...
     3. If Type(handler) is not Object, throw a TypeError exception.
     ...
+features: [Proxy]
 ---*/
 
 assert.throws(TypeError, function() {
diff --git a/test/built-ins/Proxy/create-handler-not-object-throw-symbol.js b/test/built-ins/Proxy/create-handler-not-object-throw-symbol.js
index 78234d8e22f70efa75b6900bb05693b2451e7708..5efddeb3539db732db14b0d7ed0efc81c36f51bf 100644
--- a/test/built-ins/Proxy/create-handler-not-object-throw-symbol.js
+++ b/test/built-ins/Proxy/create-handler-not-object-throw-symbol.js
@@ -7,7 +7,7 @@ description: >
     ...
     3. If Type(handler) is not Object, throw a TypeError exception.
     ...
-features: [Symbol]
+features: [Proxy, Symbol]
 ---*/
 
 assert.throws(TypeError, function() {
diff --git a/test/built-ins/Proxy/create-handler-not-object-throw-undefined.js b/test/built-ins/Proxy/create-handler-not-object-throw-undefined.js
index 78a78ba640f99efbb45ffe797237218aa9d16228..03d75c02bb206158d5d4bc2bcd268a116b16f3f2 100644
--- a/test/built-ins/Proxy/create-handler-not-object-throw-undefined.js
+++ b/test/built-ins/Proxy/create-handler-not-object-throw-undefined.js
@@ -7,6 +7,7 @@ description: >
     ...
     3. If Type(handler) is not Object, throw a TypeError exception.
     ...
+features: [Proxy]
 ---*/
 
 assert.throws(TypeError, function() {
diff --git a/test/built-ins/Proxy/create-target-is-not-callable.js b/test/built-ins/Proxy/create-target-is-not-callable.js
index b29ed9cd0d3e11c1a8561a80c317facf418d74c1..b381ab5877c4b1513250d069d6cd62379b5b11e9 100644
--- a/test/built-ins/Proxy/create-target-is-not-callable.js
+++ b/test/built-ins/Proxy/create-target-is-not-callable.js
@@ -16,6 +16,7 @@ info: |
     tailPosition )
 
     4. If IsCallable(func) is false, throw a TypeError exception.
+features: [Proxy]
 ---*/
 
 var p = new Proxy({}, {});
diff --git a/test/built-ins/Proxy/create-target-is-not-constructor.js b/test/built-ins/Proxy/create-target-is-not-constructor.js
index f369b5ef215b15f03bd01bdc8fc0765856793b14..dc18e2a574f028a12a44fa8cba162d88e07918ca 100644
--- a/test/built-ins/Proxy/create-target-is-not-constructor.js
+++ b/test/built-ins/Proxy/create-target-is-not-constructor.js
@@ -17,6 +17,7 @@ info: |
     12.3.3.1.1 Runtime Semantics: EvaluateNew(constructProduction, arguments)
 
     8. If IsConstructor (constructor) is false, throw a TypeError exception.
+features: [Proxy]
 ---*/
 
 var p = new Proxy(eval, {});
diff --git a/test/built-ins/Proxy/create-target-is-revoked-proxy.js b/test/built-ins/Proxy/create-target-is-revoked-proxy.js
index fb8b118de38d9ce4c957547e8d21b8cc0c8c9f00..7e33b1ddb9ef3d05ab42f47c8a061cbea3b287d4 100644
--- a/test/built-ins/Proxy/create-target-is-revoked-proxy.js
+++ b/test/built-ins/Proxy/create-target-is-revoked-proxy.js
@@ -9,6 +9,7 @@ description: >
     [[ProxyHandler]] internal slot of target is null, throw a
     TypeError exception.
     ...
+features: [Proxy]
 ---*/
 
 var revocable = Proxy.revocable({}, {});
diff --git a/test/built-ins/Proxy/create-target-not-object-throw-boolean.js b/test/built-ins/Proxy/create-target-not-object-throw-boolean.js
index d8b9f1856f9930d6a313e5e58aab57e2783874d6..7cd761a31fec78a60ad445a21dd0d3a5f8c8d63e 100644
--- a/test/built-ins/Proxy/create-target-not-object-throw-boolean.js
+++ b/test/built-ins/Proxy/create-target-not-object-throw-boolean.js
@@ -7,6 +7,7 @@ description: >
     ...
     1. If Type(target) is not Object, throw a TypeError exception.
     ...
+features: [Proxy]
 ---*/
 
 assert.throws(TypeError, function() {
diff --git a/test/built-ins/Proxy/create-target-not-object-throw-null.js b/test/built-ins/Proxy/create-target-not-object-throw-null.js
index af64c1e46b84b5d6e1fdf0f38435eb3d9c305358..18a3b995c8975363bf89b660fb455988b989493f 100644
--- a/test/built-ins/Proxy/create-target-not-object-throw-null.js
+++ b/test/built-ins/Proxy/create-target-not-object-throw-null.js
@@ -7,6 +7,7 @@ description: >
     ...
     1. If Type(target) is not Object, throw a TypeError exception.
     ...
+features: [Proxy]
 ---*/
 
 assert.throws(TypeError, function() {
diff --git a/test/built-ins/Proxy/create-target-not-object-throw-number.js b/test/built-ins/Proxy/create-target-not-object-throw-number.js
index ba788934410aaeae7cc30fb063fcb3f95a4bad6a..c7f05b634c08c06167551fc25f60136c14ef47ea 100644
--- a/test/built-ins/Proxy/create-target-not-object-throw-number.js
+++ b/test/built-ins/Proxy/create-target-not-object-throw-number.js
@@ -7,6 +7,7 @@ description: >
     ...
     1. If Type(target) is not Object, throw a TypeError exception.
     ...
+features: [Proxy]
 ---*/
 
 assert.throws(TypeError, function() {
diff --git a/test/built-ins/Proxy/create-target-not-object-throw-string.js b/test/built-ins/Proxy/create-target-not-object-throw-string.js
index aa1fcd96ff94c7af467763058c9e607e658fafde..6fd1bc2b0d4461c84b4600ffd39ac761f1eec9d2 100644
--- a/test/built-ins/Proxy/create-target-not-object-throw-string.js
+++ b/test/built-ins/Proxy/create-target-not-object-throw-string.js
@@ -7,6 +7,7 @@ description: >
     ...
     1. If Type(target) is not Object, throw a TypeError exception.
     ...
+features: [Proxy]
 ---*/
 
 assert.throws(TypeError, function() {
diff --git a/test/built-ins/Proxy/create-target-not-object-throw-symbol.js b/test/built-ins/Proxy/create-target-not-object-throw-symbol.js
index 825e7145af2fcce1b7f1ae0e2a969bcb0c2c5c5e..6062561c244f96ff46c9303739cde89ee6d32a3e 100644
--- a/test/built-ins/Proxy/create-target-not-object-throw-symbol.js
+++ b/test/built-ins/Proxy/create-target-not-object-throw-symbol.js
@@ -7,7 +7,7 @@ description: >
     ...
     1. If Type(target) is not Object, throw a TypeError exception.
     ...
-features: [Symbol]
+features: [Proxy, Symbol]
 ---*/
 
 assert.throws(TypeError, function() {
diff --git a/test/built-ins/Proxy/create-target-not-object-throw-undefined.js b/test/built-ins/Proxy/create-target-not-object-throw-undefined.js
index 42895cf623ae986261e82a6dcd95b07184f01790..bd1b9acdd6e4f01cc1cd600c2dc67950ef01dde9 100644
--- a/test/built-ins/Proxy/create-target-not-object-throw-undefined.js
+++ b/test/built-ins/Proxy/create-target-not-object-throw-undefined.js
@@ -7,6 +7,7 @@ description: >
     ...
     1. If Type(target) is not Object, throw a TypeError exception.
     ...
+features: [Proxy]
 ---*/
 
 assert.throws(TypeError, function() {
diff --git a/test/built-ins/Proxy/defineProperty/call-parameters.js b/test/built-ins/Proxy/defineProperty/call-parameters.js
index 6afb6f5baf2c14aef2243c1665ce42538e4f7f93..7ea4a7f9ad1e01d9935febf84f8c78d8b3a00b73 100644
--- a/test/built-ins/Proxy/defineProperty/call-parameters.js
+++ b/test/built-ins/Proxy/defineProperty/call-parameters.js
@@ -13,6 +13,7 @@ info: |
     10. Let booleanTrapResult be ToBoolean(Call(trap, handler, «target, P,
     descObj»)).
     ...
+features: [Proxy]
 ---*/
 
 var _handler, _target, _prop, _desc;
diff --git a/test/built-ins/Proxy/defineProperty/desc-realm.js b/test/built-ins/Proxy/defineProperty/desc-realm.js
index 609ed7e14667f542c38080df3aab91ab96066934..0a18f9a06118e4bfac106278ca627fb57dcffc46 100644
--- a/test/built-ins/Proxy/defineProperty/desc-realm.js
+++ b/test/built-ins/Proxy/defineProperty/desc-realm.js
@@ -21,7 +21,7 @@ info: |
   2. Let obj be ObjectCreate(%ObjectPrototype%).
   ...
   11. Return obj.
-features: [cross-realm]
+features: [cross-realm, Proxy]
 ---*/
 
 var OProxy = $262.createRealm().global.Proxy;
diff --git a/test/built-ins/Proxy/defineProperty/null-handler-realm.js b/test/built-ins/Proxy/defineProperty/null-handler-realm.js
index 746dea53996068f96b0b27b78f65756a0a9ea4c9..44e228e8e20dc6e11e66a86a39bbf26dcebd6492 100644
--- a/test/built-ins/Proxy/defineProperty/null-handler-realm.js
+++ b/test/built-ins/Proxy/defineProperty/null-handler-realm.js
@@ -10,7 +10,7 @@ info: |
   1. Assert: IsPropertyKey(P) is true.
   2. Let handler be O.[[ProxyHandler]].
   3. If handler is null, throw a TypeError exception.
-features: [cross-realm]
+features: [cross-realm, Proxy]
 ---*/
 
 var OProxy = $262.createRealm().global.Proxy;
diff --git a/test/built-ins/Proxy/defineProperty/null-handler.js b/test/built-ins/Proxy/defineProperty/null-handler.js
index aa83c1ff03652848acb98cb54e9aed4418fbbb6f..509058dcda7bb642c9c0ff292008a6d5ca4671bf 100644
--- a/test/built-ins/Proxy/defineProperty/null-handler.js
+++ b/test/built-ins/Proxy/defineProperty/null-handler.js
@@ -4,6 +4,7 @@
 es6id: 9.5.6
 description: >
     Throws a TypeError exception if handler is null.
+features: [Proxy]
 ---*/
 
 var p = Proxy.revocable({}, {});
diff --git a/test/built-ins/Proxy/defineProperty/return-boolean-and-define-target.js b/test/built-ins/Proxy/defineProperty/return-boolean-and-define-target.js
index 0f7594a143619343403da7026090d6014d575c9b..51aecfcd3eac324c4f59b0950d6a29ec21c53d40 100644
--- a/test/built-ins/Proxy/defineProperty/return-boolean-and-define-target.js
+++ b/test/built-ins/Proxy/defineProperty/return-boolean-and-define-target.js
@@ -6,7 +6,7 @@ description: >
     If a property has a corresponding target object property then applying the
     Property Descriptor of the property to the target object using
     [[DefineOwnProperty]] will not throw an exception.
-features: [Reflect]
+features: [Proxy, Reflect]
 includes: [propertyHelper.js]
 ---*/
 
diff --git a/test/built-ins/Proxy/defineProperty/return-is-abrupt.js b/test/built-ins/Proxy/defineProperty/return-is-abrupt.js
index 5914eacf60561888a3cdaf41ad9752ce7c74ff92..175429057c46b9ab885279aad483aabe711a00ed 100644
--- a/test/built-ins/Proxy/defineProperty/return-is-abrupt.js
+++ b/test/built-ins/Proxy/defineProperty/return-is-abrupt.js
@@ -12,6 +12,7 @@ info: |
     descObj»)).
     11. ReturnIfAbrupt(booleanTrapResult).
     ...
+features: [Proxy]
 ---*/
 
 var p = new Proxy({}, {
diff --git a/test/built-ins/Proxy/defineProperty/targetdesc-configurable-desc-not-configurable-realm.js b/test/built-ins/Proxy/defineProperty/targetdesc-configurable-desc-not-configurable-realm.js
index b87cfbfe5dca97ce947aa52086aaed4cb65c5e6a..af491e9518e340738c536e86c58563b8ba7fdd72 100644
--- a/test/built-ins/Proxy/defineProperty/targetdesc-configurable-desc-not-configurable-realm.js
+++ b/test/built-ins/Proxy/defineProperty/targetdesc-configurable-desc-not-configurable-realm.js
@@ -15,7 +15,7 @@ info: |
         b. If settingConfigFalse is true and targetDesc.[[Configurable]] is
         true, throw a TypeError exception.
     ...
-features: [cross-realm]
+features: [cross-realm, Proxy]
 ---*/
 
 var OProxy = $262.createRealm().global.Proxy;
diff --git a/test/built-ins/Proxy/defineProperty/targetdesc-configurable-desc-not-configurable.js b/test/built-ins/Proxy/defineProperty/targetdesc-configurable-desc-not-configurable.js
index 25bf8817131b5b19b67faae4bd788b5d129ba83f..546ec79c2d8a7f7b0dcc5a5d955252b1cda63d14 100644
--- a/test/built-ins/Proxy/defineProperty/targetdesc-configurable-desc-not-configurable.js
+++ b/test/built-ins/Proxy/defineProperty/targetdesc-configurable-desc-not-configurable.js
@@ -13,6 +13,7 @@ info: |
         b. If settingConfigFalse is true and targetDesc.[[Configurable]] is
         true, throw a TypeError exception.
     ...
+features: [Proxy]
 ---*/
 
 var target = {};
diff --git a/test/built-ins/Proxy/defineProperty/targetdesc-not-compatible-descriptor-not-configurable-target-realm.js b/test/built-ins/Proxy/defineProperty/targetdesc-not-compatible-descriptor-not-configurable-target-realm.js
index 4d62b68c968860aef0d5a462ef515a9c52192fae..5b1d0d311d11f21c173f16e5bef048917535a6c2 100644
--- a/test/built-ins/Proxy/defineProperty/targetdesc-not-compatible-descriptor-not-configurable-target-realm.js
+++ b/test/built-ins/Proxy/defineProperty/targetdesc-not-compatible-descriptor-not-configurable-target-realm.js
@@ -14,7 +14,7 @@ info: |
         a. If IsCompatiblePropertyDescriptor(extensibleTarget, Desc ,
         targetDesc) is false, throw a TypeError exception.
     ...
-features: [cross-realm]
+features: [cross-realm, Proxy]
 ---*/
 
 var OProxy = $262.createRealm().global.Proxy;
diff --git a/test/built-ins/Proxy/defineProperty/targetdesc-not-compatible-descriptor-not-configurable-target.js b/test/built-ins/Proxy/defineProperty/targetdesc-not-compatible-descriptor-not-configurable-target.js
index 14ce2cc2441d08332477d70f16092bb82fcfd903..57d56406edcd730632692508db76634c239e69f7 100644
--- a/test/built-ins/Proxy/defineProperty/targetdesc-not-compatible-descriptor-not-configurable-target.js
+++ b/test/built-ins/Proxy/defineProperty/targetdesc-not-compatible-descriptor-not-configurable-target.js
@@ -13,6 +13,7 @@ info: |
         a. If IsCompatiblePropertyDescriptor(extensibleTarget, Desc ,
         targetDesc) is false, throw a TypeError exception.
     ...
+features: [Proxy]
 ---*/
 
 var target = {};
diff --git a/test/built-ins/Proxy/defineProperty/targetdesc-not-compatible-descriptor-realm.js b/test/built-ins/Proxy/defineProperty/targetdesc-not-compatible-descriptor-realm.js
index 7469989277b49f17453e8cc0f053d421421bbde9..042c617392bbeb85322b170fde7220105d204a5a 100644
--- a/test/built-ins/Proxy/defineProperty/targetdesc-not-compatible-descriptor-realm.js
+++ b/test/built-ins/Proxy/defineProperty/targetdesc-not-compatible-descriptor-realm.js
@@ -15,7 +15,7 @@ info: |
         a. If IsCompatiblePropertyDescriptor(extensibleTarget, Desc ,
         targetDesc) is false, throw a TypeError exception.
     ...
-features: [cross-realm]
+features: [cross-realm, Proxy]
 ---*/
 
 var OProxy = $262.createRealm().global.Proxy;
diff --git a/test/built-ins/Proxy/defineProperty/targetdesc-not-compatible-descriptor.js b/test/built-ins/Proxy/defineProperty/targetdesc-not-compatible-descriptor.js
index 1a671b3a0b79282035442dd2424ef5b8b6945528..d357e2c53d317f01c42f9f2482d556968d579cac 100644
--- a/test/built-ins/Proxy/defineProperty/targetdesc-not-compatible-descriptor.js
+++ b/test/built-ins/Proxy/defineProperty/targetdesc-not-compatible-descriptor.js
@@ -13,6 +13,7 @@ info: |
         a. If IsCompatiblePropertyDescriptor(extensibleTarget, Desc ,
         targetDesc) is false, throw a TypeError exception.
     ...
+features: [Proxy]
 ---*/
 
 var target = {};
diff --git a/test/built-ins/Proxy/defineProperty/targetdesc-undefined-not-configurable-descriptor-realm.js b/test/built-ins/Proxy/defineProperty/targetdesc-undefined-not-configurable-descriptor-realm.js
index b1f5b831e01fba89db166878f1c9497bbbdd1a5c..d883ecdf22fe9052b777cb73120510f4503997d5 100644
--- a/test/built-ins/Proxy/defineProperty/targetdesc-undefined-not-configurable-descriptor-realm.js
+++ b/test/built-ins/Proxy/defineProperty/targetdesc-undefined-not-configurable-descriptor-realm.js
@@ -15,7 +15,7 @@ info: |
         ...
         b. If settingConfigFalse is true, throw a TypeError exception.
     ...
-features: [cross-realm]
+features: [cross-realm, Proxy]
 ---*/
 
 var OProxy = $262.createRealm().global.Proxy;
diff --git a/test/built-ins/Proxy/defineProperty/targetdesc-undefined-not-configurable-descriptor.js b/test/built-ins/Proxy/defineProperty/targetdesc-undefined-not-configurable-descriptor.js
index ca6f80c86641036d0ed6f8ae8eb3c7f4e129efd5..881c0b0777a6a4eaa725b36b1082d9e023772ca5 100644
--- a/test/built-ins/Proxy/defineProperty/targetdesc-undefined-not-configurable-descriptor.js
+++ b/test/built-ins/Proxy/defineProperty/targetdesc-undefined-not-configurable-descriptor.js
@@ -13,6 +13,7 @@ info: |
         ...
         b. If settingConfigFalse is true, throw a TypeError exception.
     ...
+features: [Proxy]
 ---*/
 
 var target = {};
diff --git a/test/built-ins/Proxy/defineProperty/targetdesc-undefined-target-is-not-extensible-realm.js b/test/built-ins/Proxy/defineProperty/targetdesc-undefined-target-is-not-extensible-realm.js
index 9471abc13771b0a213f435ecf2b0136119947c4f..c281849d9992751b37d78a34f4cba01ed56275fa 100644
--- a/test/built-ins/Proxy/defineProperty/targetdesc-undefined-target-is-not-extensible-realm.js
+++ b/test/built-ins/Proxy/defineProperty/targetdesc-undefined-target-is-not-extensible-realm.js
@@ -14,7 +14,7 @@ info: |
     19. If targetDesc is undefined, then
         a. If extensibleTarget is false, throw a TypeError exception.
     ...
-features: [cross-realm]
+features: [cross-realm, Proxy]
 ---*/
 
 var OProxy = $262.createRealm().global.Proxy;
diff --git a/test/built-ins/Proxy/defineProperty/targetdesc-undefined-target-is-not-extensible.js b/test/built-ins/Proxy/defineProperty/targetdesc-undefined-target-is-not-extensible.js
index 9f5a53c7d37307cb8039b1396405426a21ec0c1f..7908b63823f0b3a2f4c0af3bc32048a6818392c4 100644
--- a/test/built-ins/Proxy/defineProperty/targetdesc-undefined-target-is-not-extensible.js
+++ b/test/built-ins/Proxy/defineProperty/targetdesc-undefined-target-is-not-extensible.js
@@ -12,6 +12,7 @@ info: |
     19. If targetDesc is undefined, then
         a. If extensibleTarget is false, throw a TypeError exception.
     ...
+features: [Proxy]
 ---*/
 
 var target = {};
diff --git a/test/built-ins/Proxy/defineProperty/trap-is-not-callable-realm.js b/test/built-ins/Proxy/defineProperty/trap-is-not-callable-realm.js
index 2542dcf056c64e49254d235ab9863b72e71f9f60..e5674f8a79fbab514f8fc97ff3b5f3d3cb1b4e0b 100644
--- a/test/built-ins/Proxy/defineProperty/trap-is-not-callable-realm.js
+++ b/test/built-ins/Proxy/defineProperty/trap-is-not-callable-realm.js
@@ -17,7 +17,7 @@ info: |
         2. Let func be GetV(O, P).
         5. If IsCallable(func) is false, throw a TypeError exception.
         ...
-features: [cross-realm]
+features: [cross-realm, Proxy]
 ---*/
 
 var OProxy = $262.createRealm().global.Proxy;
diff --git a/test/built-ins/Proxy/defineProperty/trap-is-not-callable.js b/test/built-ins/Proxy/defineProperty/trap-is-not-callable.js
index d75b215674e71e53b9c9d7e35cbe618e152918f3..8c417344efa21de88fd4d699f3508a4ff70afbe2 100644
--- a/test/built-ins/Proxy/defineProperty/trap-is-not-callable.js
+++ b/test/built-ins/Proxy/defineProperty/trap-is-not-callable.js
@@ -15,6 +15,7 @@ info: |
         2. Let func be GetV(O, P).
         5. If IsCallable(func) is false, throw a TypeError exception.
         ...
+features: [Proxy]
 ---*/
 
 var target = {};
diff --git a/test/built-ins/Proxy/defineProperty/trap-is-undefined.js b/test/built-ins/Proxy/defineProperty/trap-is-undefined.js
index 3fe044b29e6b874ebd37aa5e49e2e35a29a13ce8..d99bd51eb21b6498b0bf22bc5756b176d667298e 100644
--- a/test/built-ins/Proxy/defineProperty/trap-is-undefined.js
+++ b/test/built-ins/Proxy/defineProperty/trap-is-undefined.js
@@ -12,6 +12,7 @@ info: |
         a. Return target.[[DefineOwnProperty]](P, Desc).
     ...
 includes: [propertyHelper.js]
+features: [Proxy]
 ---*/
 
 var target = {};
diff --git a/test/built-ins/Proxy/defineProperty/trap-return-is-false.js b/test/built-ins/Proxy/defineProperty/trap-return-is-false.js
index a401653c5196b9b05dd6e7cf67bbb5b2559d24b4..202f80e3520c1627ae69666cafe8dc9ad3da0af8 100644
--- a/test/built-ins/Proxy/defineProperty/trap-return-is-false.js
+++ b/test/built-ins/Proxy/defineProperty/trap-return-is-false.js
@@ -10,7 +10,7 @@ info: |
     ...
     12. If booleanTrapResult is false, return false.
     ...
-features: [Reflect]
+features: [Proxy, Reflect]
 ---*/
 
 var target = {};
diff --git a/test/built-ins/Proxy/deleteProperty/boolean-trap-result-boolean-false.js b/test/built-ins/Proxy/deleteProperty/boolean-trap-result-boolean-false.js
index 4419f0a19c2a7720a01e4047c92678a2a874802c..dcc7e5e42f1b4aa02db07bce88ea46723eee4bd3 100644
--- a/test/built-ins/Proxy/deleteProperty/boolean-trap-result-boolean-false.js
+++ b/test/built-ins/Proxy/deleteProperty/boolean-trap-result-boolean-false.js
@@ -6,7 +6,7 @@ description: >
     [[Delete]] (P)
 
     The result is a Boolean value.
-features: [Reflect]
+features: [Proxy, Reflect]
 ---*/
 
 var target = {};
diff --git a/test/built-ins/Proxy/deleteProperty/boolean-trap-result-boolean-true.js b/test/built-ins/Proxy/deleteProperty/boolean-trap-result-boolean-true.js
index c5ccffbf382c12b77d21900cc58c02b2f9c1e7c2..6706fdcaed8c437d4d4b3cbc32ef8563f39e4027 100644
--- a/test/built-ins/Proxy/deleteProperty/boolean-trap-result-boolean-true.js
+++ b/test/built-ins/Proxy/deleteProperty/boolean-trap-result-boolean-true.js
@@ -6,7 +6,7 @@ description: >
     [[Delete]] (P)
 
     The result is a Boolean value.
-features: [Reflect]
+features: [Proxy, Reflect]
 ---*/
 
 var p = new Proxy({}, {
diff --git a/test/built-ins/Proxy/deleteProperty/call-parameters.js b/test/built-ins/Proxy/deleteProperty/call-parameters.js
index bfd8e3b0810d7f9cbfa2bd8ccb617dd891f84cd0..c166712515a5cb2a0262efe0172d6ec145202ffe 100644
--- a/test/built-ins/Proxy/deleteProperty/call-parameters.js
+++ b/test/built-ins/Proxy/deleteProperty/call-parameters.js
@@ -10,6 +10,7 @@ info: |
     6.1.7.2 Object Internal Methods and Internal Slots
 
     (...) Receiver is used as the this value when evaluating the code
+features: [Proxy]
 ---*/
 
 var _handler, _target, _prop;
diff --git a/test/built-ins/Proxy/deleteProperty/null-handler.js b/test/built-ins/Proxy/deleteProperty/null-handler.js
index ddc6c8d8a7e3b16ed049f618b6cb25ce9e7187da..64014b14a8bf9bf4506655c53639b375741bc158 100644
--- a/test/built-ins/Proxy/deleteProperty/null-handler.js
+++ b/test/built-ins/Proxy/deleteProperty/null-handler.js
@@ -6,6 +6,7 @@ description: >
     [[Delete]] (P)
 
     3. If handler is null, throw a TypeError exception.
+features: [Proxy]
 ---*/
 
 var p = Proxy.revocable({
diff --git a/test/built-ins/Proxy/deleteProperty/return-false-not-strict.js b/test/built-ins/Proxy/deleteProperty/return-false-not-strict.js
index 6c485ec64e63b66ffe405028098f9069dcd69292..2d5f0512e19fffe4c1f291cb4640c63a6610a066 100644
--- a/test/built-ins/Proxy/deleteProperty/return-false-not-strict.js
+++ b/test/built-ins/Proxy/deleteProperty/return-false-not-strict.js
@@ -7,6 +7,7 @@ description: >
 
     11. If booleanTrapResult is false, return false.
 flags: [noStrict]
+features: [Proxy]
 ---*/
 
 var p = new Proxy({}, {
diff --git a/test/built-ins/Proxy/deleteProperty/return-false-strict.js b/test/built-ins/Proxy/deleteProperty/return-false-strict.js
index befa2c60abb7f3c5a2cade3450bb027b24830f98..31b4a888838c12275c314f5a98d25ea1511bd0c5 100644
--- a/test/built-ins/Proxy/deleteProperty/return-false-strict.js
+++ b/test/built-ins/Proxy/deleteProperty/return-false-strict.js
@@ -7,7 +7,7 @@ description: >
 
     11. If booleanTrapResult is false, return false.
 flags: [onlyStrict]
-features: [Reflect]
+features: [Proxy, Reflect]
 ---*/
 
 var p = new Proxy({}, {
diff --git a/test/built-ins/Proxy/deleteProperty/return-is-abrupt.js b/test/built-ins/Proxy/deleteProperty/return-is-abrupt.js
index 7e9f76bf476f39c34a6074c1d7808d3e13576189..4689b99c32d82160a2e7ed10453c53b08ba89652 100644
--- a/test/built-ins/Proxy/deleteProperty/return-is-abrupt.js
+++ b/test/built-ins/Proxy/deleteProperty/return-is-abrupt.js
@@ -7,6 +7,7 @@ description: >
 info: |
     9. Let booleanTrapResult be ToBoolean(Call(trap, handler, «target, P»)).
     10. ReturnIfAbrupt(booleanTrapResult).
+features: [Proxy]
 ---*/
 
 var p = new Proxy({}, {
diff --git a/test/built-ins/Proxy/deleteProperty/targetdesc-is-not-configurable.js b/test/built-ins/Proxy/deleteProperty/targetdesc-is-not-configurable.js
index 7923974dc857df24515eb11d737155ae7e4ff594..db176173096f5020a4b5ce7e11927d467739f2a9 100644
--- a/test/built-ins/Proxy/deleteProperty/targetdesc-is-not-configurable.js
+++ b/test/built-ins/Proxy/deleteProperty/targetdesc-is-not-configurable.js
@@ -9,6 +9,7 @@ description: >
     own property of the target object.
 info: |
     14. If targetDesc.[[Configurable]] is false, throw a TypeError exception.
+features: [Proxy]
 ---*/
 
 var target = {};
diff --git a/test/built-ins/Proxy/deleteProperty/targetdesc-is-undefined-return-true.js b/test/built-ins/Proxy/deleteProperty/targetdesc-is-undefined-return-true.js
index d3d2d77397dc26cf9a575ca96f9f597663f592b1..da5485faff02ccfd4a5eea454b01991582e30d92 100644
--- a/test/built-ins/Proxy/deleteProperty/targetdesc-is-undefined-return-true.js
+++ b/test/built-ins/Proxy/deleteProperty/targetdesc-is-undefined-return-true.js
@@ -6,6 +6,7 @@ description: >
     [[Delete]] (P)
 
     14. If targetDesc is undefined, return true.
+features: [Proxy]
 ---*/
 
 var p = new Proxy({}, {
diff --git a/test/built-ins/Proxy/deleteProperty/trap-is-not-callable-realm.js b/test/built-ins/Proxy/deleteProperty/trap-is-not-callable-realm.js
index b1f1a1713c97905753fc8dde92b9af0197c87eb7..a6fb334d93baddc3da14c9d8830648abbb1f5ca7 100644
--- a/test/built-ins/Proxy/deleteProperty/trap-is-not-callable-realm.js
+++ b/test/built-ins/Proxy/deleteProperty/trap-is-not-callable-realm.js
@@ -15,7 +15,7 @@ info: |
     7.3.9 GetMethod (O, P)
 
     5. If IsCallable(func) is false, throw a TypeError exception.
-features: [cross-realm]
+features: [cross-realm, Proxy]
 ---*/
 
 var OProxy = $262.createRealm().global.Proxy;
diff --git a/test/built-ins/Proxy/deleteProperty/trap-is-not-callable.js b/test/built-ins/Proxy/deleteProperty/trap-is-not-callable.js
index 29ee6d64ca74e646235f73b4b689477b951ee849..aee5dd6abb16e3fa7e5b26b59a1667d03f8e4518 100644
--- a/test/built-ins/Proxy/deleteProperty/trap-is-not-callable.js
+++ b/test/built-ins/Proxy/deleteProperty/trap-is-not-callable.js
@@ -13,6 +13,7 @@ info: |
     7.3.9 GetMethod (O, P)
 
     5. If IsCallable(func) is false, throw a TypeError exception.
+features: [Proxy]
 ---*/
 
 var p = new Proxy({}, {
diff --git a/test/built-ins/Proxy/deleteProperty/trap-is-undefined-not-strict.js b/test/built-ins/Proxy/deleteProperty/trap-is-undefined-not-strict.js
index 0f174367f12500d55f2a58882e6a0d308af69ed1..48d8b9167551c0bbf5f5b4bcfc6f4a81ccd48cbb 100644
--- a/test/built-ins/Proxy/deleteProperty/trap-is-undefined-not-strict.js
+++ b/test/built-ins/Proxy/deleteProperty/trap-is-undefined-not-strict.js
@@ -7,6 +7,7 @@ description: >
 
     8. If trap is undefined, then Return target.[[Delete]](P).
 flags: [noStrict]
+features: [Proxy]
 ---*/
 
 var target = {
diff --git a/test/built-ins/Proxy/deleteProperty/trap-is-undefined-strict.js b/test/built-ins/Proxy/deleteProperty/trap-is-undefined-strict.js
index d1c1df2bf244846c97a3941395a1ff4118542185..c48228cbbb7a49888db9c2d03e7dacea9b0df379 100644
--- a/test/built-ins/Proxy/deleteProperty/trap-is-undefined-strict.js
+++ b/test/built-ins/Proxy/deleteProperty/trap-is-undefined-strict.js
@@ -7,7 +7,7 @@ description: >
 
     8. If trap is undefined, then Return target.[[Delete]](P).
 flags: [onlyStrict]
-features: [Reflect]
+features: [Proxy, Reflect]
 ---*/
 
 var target = {
diff --git a/test/built-ins/Proxy/enumerate/removed-does-not-trigger.js b/test/built-ins/Proxy/enumerate/removed-does-not-trigger.js
index c4cc879db8cba9ff6ca11dd95bfbc630c5874a47..26965254696a3284ce3d7e847d410950015b673d 100644
--- a/test/built-ins/Proxy/enumerate/removed-does-not-trigger.js
+++ b/test/built-ins/Proxy/enumerate/removed-does-not-trigger.js
@@ -5,7 +5,7 @@ esid: sec-proxy-object-internal-methods-and-internal-slots
 description: >
   Enumerate trap was removed and it should not be triggered anymore.
 includes: [compareArray.js]
-features: [Symbol.iterator]
+features: [Proxy, Symbol, Symbol.iterator]
 ---*/
 
 var x;
diff --git a/test/built-ins/Proxy/function-prototype.js b/test/built-ins/Proxy/function-prototype.js
index b37f51b56e0a7ab8a0616f9295f8358f4c8ef041..763117ee07f158eb42e3259766c51ad7f2fb2c91 100644
--- a/test/built-ins/Proxy/function-prototype.js
+++ b/test/built-ins/Proxy/function-prototype.js
@@ -5,6 +5,7 @@ es6id: 26.2.2
 description: >
     The value of the [[Prototype]] internal slot of the Proxy
     constructor is the intrinsic object %FunctionPrototype% (19.2.3).
+features: [Proxy]
 ---*/
 
 assert.sameValue(
diff --git a/test/built-ins/Proxy/get-fn-realm.js b/test/built-ins/Proxy/get-fn-realm.js
index 922a6ffd0dc8bdd308eba3c728e7531dc706e80c..4dc7a9b3f7bf952d79d24209a79f25ad6492d22f 100644
--- a/test/built-ins/Proxy/get-fn-realm.js
+++ b/test/built-ins/Proxy/get-fn-realm.js
@@ -16,7 +16,7 @@ info: |
           throw a TypeError exception.
        b. Let proxyTarget be the value of obj's [[ProxyTarget]] internal slot.
        c. Return ? GetFunctionRealm(proxyTarget).
-features: [cross-realm]
+features: [cross-realm, Proxy]
 ---*/
 
 var other = $262.createRealm().global;
diff --git a/test/built-ins/Proxy/get/accessor-get-is-undefined-throws.js b/test/built-ins/Proxy/get/accessor-get-is-undefined-throws.js
index 4427d5b807fed91ff20d3371747b96ae7a2c56c4..966fb3cd5f7db7d1633c278901a64f459ec7b593 100644
--- a/test/built-ins/Proxy/get/accessor-get-is-undefined-throws.js
+++ b/test/built-ins/Proxy/get/accessor-get-is-undefined-throws.js
@@ -13,6 +13,7 @@ info: |
         is false and targetDesc.[[Get]] is undefined, then
             i. If trapResult is not undefined, throw a TypeError exception.
 
+features: [Proxy]
 ---*/
 
 var target = {};
diff --git a/test/built-ins/Proxy/get/call-parameters.js b/test/built-ins/Proxy/get/call-parameters.js
index b4f0e11d31f70669da7f0ad3ad1876c132b52673..7f1c4736a73eb55d76c8e06d5249c618a554d2a3 100644
--- a/test/built-ins/Proxy/get/call-parameters.js
+++ b/test/built-ins/Proxy/get/call-parameters.js
@@ -10,6 +10,7 @@ info: |
     6.1.7.2 Object Internal Methods and Internal Slots
 
     (...) Receiver is used as the this value when evaluating the code
+features: [Proxy]
 ---*/
 
 var _target, _handler, _prop, _receiver;
diff --git a/test/built-ins/Proxy/get/not-same-value-configurable-false-writable-false-throws.js b/test/built-ins/Proxy/get/not-same-value-configurable-false-writable-false-throws.js
index ce6f0a1fc92062bac4809047e4c9dad2759aa6ec..5a6435c5d8318c0e64c85a6130d78a388fb98c58 100644
--- a/test/built-ins/Proxy/get/not-same-value-configurable-false-writable-false-throws.js
+++ b/test/built-ins/Proxy/get/not-same-value-configurable-false-writable-false-throws.js
@@ -13,6 +13,7 @@ info: |
         false and targetDesc.[[Writable]] is false, then
             i. If SameValue(trapResult, targetDesc.[[Value]]) is false, throw a
             TypeError exception.
+features: [Proxy]
 ---*/
 
 var target = {};
diff --git a/test/built-ins/Proxy/get/null-handler.js b/test/built-ins/Proxy/get/null-handler.js
index 0be40457c769a2be4867b673fff0b6587d0ffce8..4ba9149c84a222ce510d76a5544383d86118ddfe 100644
--- a/test/built-ins/Proxy/get/null-handler.js
+++ b/test/built-ins/Proxy/get/null-handler.js
@@ -6,6 +6,7 @@ description: >
     [[Get]] (P, Receiver)
 
     2. If handler is null, throw a TypeError exception.
+features: [Proxy]
 ---*/
 
 var p = Proxy.revocable({}, {});
diff --git a/test/built-ins/Proxy/get/return-is-abrupt.js b/test/built-ins/Proxy/get/return-is-abrupt.js
index c632d8e5f0264cc7bb37e4c92322ec2aaa2c6695..49b6f519af062b8ee8a8e7c51cc3e56c23a1af12 100644
--- a/test/built-ins/Proxy/get/return-is-abrupt.js
+++ b/test/built-ins/Proxy/get/return-is-abrupt.js
@@ -9,6 +9,7 @@ info: |
 
     9. Let trapResult be Call(trap, handler, «target, P, Receiver»).
     10. ReturnIfAbrupt(trapResult).
+features: [Proxy]
 ---*/
 
 var p = new Proxy({}, {
diff --git a/test/built-ins/Proxy/get/return-trap-result-accessor-property.js b/test/built-ins/Proxy/get/return-trap-result-accessor-property.js
index e50ae367ee9cd03e0461900a0c0c85bb0b325c83..40b27fd0fde1edffcb215a0f5fb9dd18425a3b50 100644
--- a/test/built-ins/Proxy/get/return-trap-result-accessor-property.js
+++ b/test/built-ins/Proxy/get/return-trap-result-accessor-property.js
@@ -6,6 +6,7 @@ description: >
     [[Get]] (P, Receiver)
 
     14. Return trapResult.
+features: [Proxy]
 ---*/
 
 var target = {};
diff --git a/test/built-ins/Proxy/get/return-trap-result-configurable-false-writable-true.js b/test/built-ins/Proxy/get/return-trap-result-configurable-false-writable-true.js
index feadb297d0016637d2e4f726dc45bbbfd7481138..439e1f6f2087eeeb7fb62fae80883f2a76aa9bdf 100644
--- a/test/built-ins/Proxy/get/return-trap-result-configurable-false-writable-true.js
+++ b/test/built-ins/Proxy/get/return-trap-result-configurable-false-writable-true.js
@@ -6,6 +6,7 @@ description: >
     [[Get]] (P, Receiver)
 
     14. Return trapResult.
+features: [Proxy]
 ---*/
 
 var target = {};
diff --git a/test/built-ins/Proxy/get/return-trap-result-configurable-true-assessor-get-undefined.js b/test/built-ins/Proxy/get/return-trap-result-configurable-true-assessor-get-undefined.js
index 5afb94229a856f2e0fa180eaa7cb498a79edaa7a..49efc9b1cf49ae3c51955b2a842f9d7d15a6b2ba 100644
--- a/test/built-ins/Proxy/get/return-trap-result-configurable-true-assessor-get-undefined.js
+++ b/test/built-ins/Proxy/get/return-trap-result-configurable-true-assessor-get-undefined.js
@@ -6,6 +6,7 @@ description: >
     [[Get]] (P, Receiver)
 
     14. Return trapResult.
+features: [Proxy]
 ---*/
 
 var target = {};
diff --git a/test/built-ins/Proxy/get/return-trap-result-configurable-true-writable-false.js b/test/built-ins/Proxy/get/return-trap-result-configurable-true-writable-false.js
index 31d494104ac332eebff1e34b510dd19c40e0d3c8..998809a14d3198b8a6ed0215b69109f0cc4d9d1f 100644
--- a/test/built-ins/Proxy/get/return-trap-result-configurable-true-writable-false.js
+++ b/test/built-ins/Proxy/get/return-trap-result-configurable-true-writable-false.js
@@ -6,6 +6,7 @@ description: >
     [[Get]] (P, Receiver)
 
     14. Return trapResult.
+features: [Proxy]
 ---*/
 
 var target = {};
diff --git a/test/built-ins/Proxy/get/return-trap-result-same-value-configurable-false-writable-false.js b/test/built-ins/Proxy/get/return-trap-result-same-value-configurable-false-writable-false.js
index f26b48638857d00dfe7b29b6dc97c0853171ce47..2d9fcd1c65aa5b18191b54d3a3c502f3454901d4 100644
--- a/test/built-ins/Proxy/get/return-trap-result-same-value-configurable-false-writable-false.js
+++ b/test/built-ins/Proxy/get/return-trap-result-same-value-configurable-false-writable-false.js
@@ -15,6 +15,7 @@ info: |
             TypeError exception.
         ...
     14. Return trapResult.
+features: [Proxy]
 ---*/
 
 var target = {};
diff --git a/test/built-ins/Proxy/get/return-trap-result.js b/test/built-ins/Proxy/get/return-trap-result.js
index 7e1b945f782856ebf249a4414bc5ca2bdac59f6b..625d97ee485af5703d7a4b5dd6b90e252787cdde 100644
--- a/test/built-ins/Proxy/get/return-trap-result.js
+++ b/test/built-ins/Proxy/get/return-trap-result.js
@@ -6,6 +6,7 @@ description: >
     [[Get]] (P, Receiver)
 
     14. Return trapResult.
+features: [Proxy]
 ---*/
 
 var target = {
diff --git a/test/built-ins/Proxy/get/trap-is-not-callable-realm.js b/test/built-ins/Proxy/get/trap-is-not-callable-realm.js
index 1d3cfade35fec75530b7e2d385f01118633fc211..2c17b941917d96e0514163cad742b753a178436a 100644
--- a/test/built-ins/Proxy/get/trap-is-not-callable-realm.js
+++ b/test/built-ins/Proxy/get/trap-is-not-callable-realm.js
@@ -15,7 +15,7 @@ info: |
     7.3.9 GetMethod (O, P)
 
     5. If IsCallable(func) is false, throw a TypeError exception.
-features: [cross-realm]
+features: [cross-realm, Proxy]
 ---*/
 
 var OProxy = $262.createRealm().global.Proxy;
diff --git a/test/built-ins/Proxy/get/trap-is-not-callable.js b/test/built-ins/Proxy/get/trap-is-not-callable.js
index 50b129401808bc81bd0e8e6500d9d8dabf382839..372169181654f5c06fc6a5293ee88668b3bee5c9 100644
--- a/test/built-ins/Proxy/get/trap-is-not-callable.js
+++ b/test/built-ins/Proxy/get/trap-is-not-callable.js
@@ -13,6 +13,7 @@ info: |
     7.3.9 GetMethod (O, P)
 
     5. If IsCallable(func) is false, throw a TypeError exception.
+features: [Proxy]
 ---*/
 
 var p = new Proxy({}, {
diff --git a/test/built-ins/Proxy/get/trap-is-undefined-no-property.js b/test/built-ins/Proxy/get/trap-is-undefined-no-property.js
index c25ea6ca2ea0877457b0ee974483c38b038bb8a9..eecc09f9db9a159b5205f11e8123c4743fc66d31 100644
--- a/test/built-ins/Proxy/get/trap-is-undefined-no-property.js
+++ b/test/built-ins/Proxy/get/trap-is-undefined-no-property.js
@@ -6,6 +6,7 @@ description: >
     [[Get]] (P, Receiver)
 
     8. If trap is undefined, then return target.[[Get]](P, Receiver).
+features: [Proxy]
 ---*/
 
 var target = {
diff --git a/test/built-ins/Proxy/get/trap-is-undefined-receiver.js b/test/built-ins/Proxy/get/trap-is-undefined-receiver.js
index 3cf99140b57c16d7b065a79c5a73bf1c2af153f7..f0d7d0f8a7327cfb02a90a3285619d8091ce2c62 100644
--- a/test/built-ins/Proxy/get/trap-is-undefined-receiver.js
+++ b/test/built-ins/Proxy/get/trap-is-undefined-receiver.js
@@ -10,6 +10,7 @@ info: |
 
     7. If trap is undefined, then
         a. Return ? target.[[Get]](P, Receiver).
+features: [Proxy]
 ---*/
 
 var target = {
diff --git a/test/built-ins/Proxy/get/trap-is-undefined.js b/test/built-ins/Proxy/get/trap-is-undefined.js
index b06d573306d01368bfb4436704603cda305fcd15..8d41201cd738e2064ab808ac79dbddae474865ef 100644
--- a/test/built-ins/Proxy/get/trap-is-undefined.js
+++ b/test/built-ins/Proxy/get/trap-is-undefined.js
@@ -7,6 +7,7 @@ description: >
 
     8. If trap is undefined, then return target.[[Get]](P, Receiver).
 
+features: [Proxy]
 ---*/
 
 var target = {
diff --git a/test/built-ins/Proxy/getOwnPropertyDescriptor/call-parameters.js b/test/built-ins/Proxy/getOwnPropertyDescriptor/call-parameters.js
index dada9a171a53e5e6a43107563b4dcc83404e5585..a0df1c3ff013aa428ae2d10ceb21cb90168f2d02 100644
--- a/test/built-ins/Proxy/getOwnPropertyDescriptor/call-parameters.js
+++ b/test/built-ins/Proxy/getOwnPropertyDescriptor/call-parameters.js
@@ -10,6 +10,7 @@ info: |
     ...
     9. Let trapResultObj be Call(trap, handler, «target, P»).
     ...
+features: [Proxy]
 ---*/
 
 var _target, _handler, _prop;
diff --git a/test/built-ins/Proxy/getOwnPropertyDescriptor/null-handler.js b/test/built-ins/Proxy/getOwnPropertyDescriptor/null-handler.js
index 61a59ce02310bddeead2d38bbf84a4af9cca0443..d25efb4466bdfe8ed84a423ab4d2c3d8df6dd097 100644
--- a/test/built-ins/Proxy/getOwnPropertyDescriptor/null-handler.js
+++ b/test/built-ins/Proxy/getOwnPropertyDescriptor/null-handler.js
@@ -4,6 +4,7 @@
 es6id: 9.5.5
 description: >
     Throws a TypeError exception if handler is null.
+features: [Proxy]
 ---*/
 
 var p = Proxy.revocable({}, {});
diff --git a/test/built-ins/Proxy/getOwnPropertyDescriptor/result-is-undefined-target-is-not-extensible.js b/test/built-ins/Proxy/getOwnPropertyDescriptor/result-is-undefined-target-is-not-extensible.js
index a19bfedbc8f8a7343429d2239835e3a3f02f2f4a..d4caac0a9095272159648e93cdb396feeebbdda7 100644
--- a/test/built-ins/Proxy/getOwnPropertyDescriptor/result-is-undefined-target-is-not-extensible.js
+++ b/test/built-ins/Proxy/getOwnPropertyDescriptor/result-is-undefined-target-is-not-extensible.js
@@ -13,6 +13,7 @@ info: |
         ...
         e. If ToBoolean(extensibleTarget) is false, throw a TypeError exception.
     ...
+features: [Proxy]
 ---*/
 
 var target = {
diff --git a/test/built-ins/Proxy/getOwnPropertyDescriptor/result-is-undefined-targetdesc-is-not-configurable.js b/test/built-ins/Proxy/getOwnPropertyDescriptor/result-is-undefined-targetdesc-is-not-configurable.js
index 6d62c28bf7d3777f477097fc086312886cc0ac92..e1606fe8661e2b899bd787ebe451c0dff5618d37 100644
--- a/test/built-ins/Proxy/getOwnPropertyDescriptor/result-is-undefined-targetdesc-is-not-configurable.js
+++ b/test/built-ins/Proxy/getOwnPropertyDescriptor/result-is-undefined-targetdesc-is-not-configurable.js
@@ -13,6 +13,7 @@ info: |
         ...
         b. If targetDesc.[[Configurable]] is false, throw a TypeError exception.
     ...
+features: [Proxy]
 ---*/
 
 var target = {};
diff --git a/test/built-ins/Proxy/getOwnPropertyDescriptor/result-is-undefined-targetdesc-is-undefined.js b/test/built-ins/Proxy/getOwnPropertyDescriptor/result-is-undefined-targetdesc-is-undefined.js
index 651005509c5e2f1e693ddea6e3f57c751d5e4148..11d517cf872362c34f21f7ba229154fc293a4a2f 100644
--- a/test/built-ins/Proxy/getOwnPropertyDescriptor/result-is-undefined-targetdesc-is-undefined.js
+++ b/test/built-ins/Proxy/getOwnPropertyDescriptor/result-is-undefined-targetdesc-is-undefined.js
@@ -12,6 +12,7 @@ info: |
     14. If trapResultObj is undefined, then
         a. If targetDesc is undefined, return undefined.
     ...
+features: [Proxy]
 ---*/
 
 var t = {};
diff --git a/test/built-ins/Proxy/getOwnPropertyDescriptor/result-is-undefined.js b/test/built-ins/Proxy/getOwnPropertyDescriptor/result-is-undefined.js
index fb881aeba10855ff4613137b096fa3c0f6d14187..47df43f642281f2e947ad6025b10f17280f5449e 100644
--- a/test/built-ins/Proxy/getOwnPropertyDescriptor/result-is-undefined.js
+++ b/test/built-ins/Proxy/getOwnPropertyDescriptor/result-is-undefined.js
@@ -13,6 +13,7 @@ info: |
         ...
         f. Return undefined.
     ...
+features: [Proxy]
 ---*/
 
 var target = {
diff --git a/test/built-ins/Proxy/getOwnPropertyDescriptor/result-type-is-not-object-nor-undefined-realm.js b/test/built-ins/Proxy/getOwnPropertyDescriptor/result-type-is-not-object-nor-undefined-realm.js
index 4b54cba83e7837f5a39847b9db3c87876c189d87..7355c45ed0b232200dc4cc0594f0196c8dc50945 100644
--- a/test/built-ins/Proxy/getOwnPropertyDescriptor/result-type-is-not-object-nor-undefined-realm.js
+++ b/test/built-ins/Proxy/getOwnPropertyDescriptor/result-type-is-not-object-nor-undefined-realm.js
@@ -10,7 +10,7 @@ info: |
   [...]
   9. If Type(trapResultObj) is neither Object nor Undefined, throw a TypeError
      exception.
-features: [cross-realm]
+features: [cross-realm, Proxy]
 ---*/
 
 var OProxy = $262.createRealm().global.Proxy;
diff --git a/test/built-ins/Proxy/getOwnPropertyDescriptor/result-type-is-not-object-nor-undefined.js b/test/built-ins/Proxy/getOwnPropertyDescriptor/result-type-is-not-object-nor-undefined.js
index 1e706893c98393018fee8fede1ff0f0e55d73d0a..e7d3c638479927662208f84f7ccb4369375bfd5d 100644
--- a/test/built-ins/Proxy/getOwnPropertyDescriptor/result-type-is-not-object-nor-undefined.js
+++ b/test/built-ins/Proxy/getOwnPropertyDescriptor/result-type-is-not-object-nor-undefined.js
@@ -11,7 +11,7 @@ info: |
     11. If Type(trapResultObj) is neither Object nor Undefined, throw a
     TypeError exception.
     ...
-features: [Symbol]
+features: [Proxy, Symbol]
 ---*/
 
 var target = {
diff --git a/test/built-ins/Proxy/getOwnPropertyDescriptor/resultdesc-is-invalid-descriptor.js b/test/built-ins/Proxy/getOwnPropertyDescriptor/resultdesc-is-invalid-descriptor.js
index b256f6907a21e0cd74283833ed14a12f5b0f5f8e..6902d563339c7ec28c5a725959b893f9472bd618 100644
--- a/test/built-ins/Proxy/getOwnPropertyDescriptor/resultdesc-is-invalid-descriptor.js
+++ b/test/built-ins/Proxy/getOwnPropertyDescriptor/resultdesc-is-invalid-descriptor.js
@@ -12,6 +12,7 @@ info: |
     20. Let valid be IsCompatiblePropertyDescriptor (extensibleTarget,
     resultDesc, targetDesc).
     21. If valid is false, throw a TypeError exception.
+features: [Proxy]
 ---*/
 
 var target = {};
diff --git a/test/built-ins/Proxy/getOwnPropertyDescriptor/resultdesc-is-not-configurable-targetdesc-is-configurable.js b/test/built-ins/Proxy/getOwnPropertyDescriptor/resultdesc-is-not-configurable-targetdesc-is-configurable.js
index bc99d971baf4789cd4e67fb866d0ab86802f1c1f..b146fee8416eedddeaa7634c2a4047e6859007c1 100644
--- a/test/built-ins/Proxy/getOwnPropertyDescriptor/resultdesc-is-not-configurable-targetdesc-is-configurable.js
+++ b/test/built-ins/Proxy/getOwnPropertyDescriptor/resultdesc-is-not-configurable-targetdesc-is-configurable.js
@@ -14,6 +14,7 @@ info: |
         then
             i. Throw a TypeError exception.
     ...
+features: [Proxy]
 ---*/
 
 var target = {
diff --git a/test/built-ins/Proxy/getOwnPropertyDescriptor/resultdesc-is-not-configurable-targetdesc-is-undefined.js b/test/built-ins/Proxy/getOwnPropertyDescriptor/resultdesc-is-not-configurable-targetdesc-is-undefined.js
index 4dba72b98d69cc420fa62d7832df7e86eadb9e68..c3cd6a6631176a2f03592d49d0b17b28bdc32705 100644
--- a/test/built-ins/Proxy/getOwnPropertyDescriptor/resultdesc-is-not-configurable-targetdesc-is-undefined.js
+++ b/test/built-ins/Proxy/getOwnPropertyDescriptor/resultdesc-is-not-configurable-targetdesc-is-undefined.js
@@ -24,6 +24,7 @@ info: |
         a. If targetDesc is undefined or targetDesc.[[Configurable]] is true, then
             i. Throw a TypeError exception.
 
+features: [Proxy]
 ---*/
 
 var target = {};
diff --git a/test/built-ins/Proxy/getOwnPropertyDescriptor/resultdesc-return-configurable.js b/test/built-ins/Proxy/getOwnPropertyDescriptor/resultdesc-return-configurable.js
index ed8dd3bcfe709aa983eb60037db92ab130972495..2339e60be81cb32df5d20208e6fff7c0fcd5927a 100644
--- a/test/built-ins/Proxy/getOwnPropertyDescriptor/resultdesc-return-configurable.js
+++ b/test/built-ins/Proxy/getOwnPropertyDescriptor/resultdesc-return-configurable.js
@@ -5,6 +5,7 @@ es6id: 9.5.5
 description: >
     Return descriptor from trap result if it has the same value as the target
     property descriptor.
+features: [Proxy]
 ---*/
 
 var target = {};
diff --git a/test/built-ins/Proxy/getOwnPropertyDescriptor/resultdesc-return-not-configurable.js b/test/built-ins/Proxy/getOwnPropertyDescriptor/resultdesc-return-not-configurable.js
index 928039e340b4a5003c0a43f498805ef6a15b0b07..f385314ef7c9561b394d89c2ef426f65b6d37f65 100644
--- a/test/built-ins/Proxy/getOwnPropertyDescriptor/resultdesc-return-not-configurable.js
+++ b/test/built-ins/Proxy/getOwnPropertyDescriptor/resultdesc-return-not-configurable.js
@@ -5,6 +5,7 @@ es6id: 9.5.5
 description: >
     Return descriptor from trap result if it has the same value as the target
     property descriptor and they're not configurable.
+features: [Proxy]
 ---*/
 
 var target = {};
diff --git a/test/built-ins/Proxy/getOwnPropertyDescriptor/return-is-abrupt.js b/test/built-ins/Proxy/getOwnPropertyDescriptor/return-is-abrupt.js
index 805f068e647abe8979ca3c63b4fd72767bf3cfe0..a71f27b6e4dad40d007fc9a89cd579bcf4b989e5 100644
--- a/test/built-ins/Proxy/getOwnPropertyDescriptor/return-is-abrupt.js
+++ b/test/built-ins/Proxy/getOwnPropertyDescriptor/return-is-abrupt.js
@@ -11,6 +11,7 @@ info: |
     9. Let trapResultObj be Call(trap, handler, «target, P»).
     10. ReturnIfAbrupt(trapResultObj).
     ...
+features: [Proxy]
 ---*/
 
 var p = new Proxy({}, {
diff --git a/test/built-ins/Proxy/getOwnPropertyDescriptor/trap-is-not-callable-realm.js b/test/built-ins/Proxy/getOwnPropertyDescriptor/trap-is-not-callable-realm.js
index f5740c8ed7967f3ebf8de227b0d54d95a2dcba6c..1b32775f7af9a585364b6d0dda56da08d401f1bc 100644
--- a/test/built-ins/Proxy/getOwnPropertyDescriptor/trap-is-not-callable-realm.js
+++ b/test/built-ins/Proxy/getOwnPropertyDescriptor/trap-is-not-callable-realm.js
@@ -20,7 +20,7 @@ info: |
         2. Let func be GetV(O, P).
         5. If IsCallable(func) is false, throw a TypeError exception.
         ...
-features: [cross-realm]
+features: [cross-realm, Proxy]
 ---*/
 
 var OProxy = $262.createRealm().global.Proxy;
diff --git a/test/built-ins/Proxy/getOwnPropertyDescriptor/trap-is-not-callable.js b/test/built-ins/Proxy/getOwnPropertyDescriptor/trap-is-not-callable.js
index ce9fd5886e9c36f345ecbaacbf8c5a207c5d41a8..3d0ca59f7b6907cac946fbd2a114f15f4587fc1f 100644
--- a/test/built-ins/Proxy/getOwnPropertyDescriptor/trap-is-not-callable.js
+++ b/test/built-ins/Proxy/getOwnPropertyDescriptor/trap-is-not-callable.js
@@ -18,6 +18,7 @@ info: |
         2. Let func be GetV(O, P).
         5. If IsCallable(func) is false, throw a TypeError exception.
         ...
+features: [Proxy]
 ---*/
 
 var target = {};
diff --git a/test/built-ins/Proxy/getOwnPropertyDescriptor/trap-is-undefined.js b/test/built-ins/Proxy/getOwnPropertyDescriptor/trap-is-undefined.js
index 4471bc1ecb657cd6c8618af3c653bba2a438700e..9e8f4a37eacb3296e6e670fe7d5239e46bfe83ee 100644
--- a/test/built-ins/Proxy/getOwnPropertyDescriptor/trap-is-undefined.js
+++ b/test/built-ins/Proxy/getOwnPropertyDescriptor/trap-is-undefined.js
@@ -12,6 +12,7 @@ info: |
         a. Return target.[[GetOwnProperty]](P).
     ...
 includes: [propertyHelper.js]
+features: [Proxy]
 ---*/
 
 var target = {
diff --git a/test/built-ins/Proxy/getPrototypeOf/call-parameters.js b/test/built-ins/Proxy/getPrototypeOf/call-parameters.js
index 4c35a5ec36866c3d5af7f877c588b47c40f6cf59..c70c87b0a37930cef547972269198dea14b768a9 100644
--- a/test/built-ins/Proxy/getPrototypeOf/call-parameters.js
+++ b/test/built-ins/Proxy/getPrototypeOf/call-parameters.js
@@ -11,6 +11,7 @@ info: |
     8. Let handlerProto be Call(trap, handler, «target»).
     ...
 
+features: [Proxy]
 ---*/
 
 var _handler, _target;
diff --git a/test/built-ins/Proxy/getPrototypeOf/extensible-target-return-handlerproto.js b/test/built-ins/Proxy/getPrototypeOf/extensible-target-return-handlerproto.js
index a611999421ea66b40333959972b6ad5f868db920..ec6845dedf235267d240a10aa8db9c346fa5398c 100644
--- a/test/built-ins/Proxy/getPrototypeOf/extensible-target-return-handlerproto.js
+++ b/test/built-ins/Proxy/getPrototypeOf/extensible-target-return-handlerproto.js
@@ -20,6 +20,7 @@ info: |
     13. If extensibleTarget is true, return handlerProto.
     ...
 
+features: [Proxy]
 ---*/
 
 var prot = {
diff --git a/test/built-ins/Proxy/getPrototypeOf/not-extensible-not-same-proto-throws.js b/test/built-ins/Proxy/getPrototypeOf/not-extensible-not-same-proto-throws.js
index 0569ed4edf03d30f8e3f31604dc86fed2582f340..b7c7d0a5731a52eca82a07f0384477bd7c9599b8 100644
--- a/test/built-ins/Proxy/getPrototypeOf/not-extensible-not-same-proto-throws.js
+++ b/test/built-ins/Proxy/getPrototypeOf/not-extensible-not-same-proto-throws.js
@@ -23,6 +23,7 @@ info: |
     16. If SameValue(handlerProto, targetProto) is false, throw a TypeError
     exception.
     ...
+features: [Proxy]
 ---*/
 
 var target = Object.create({
diff --git a/test/built-ins/Proxy/getPrototypeOf/not-extensible-same-proto.js b/test/built-ins/Proxy/getPrototypeOf/not-extensible-same-proto.js
index 052b02c7be14418ac6036f1fa96119917b015ea1..ff74619d4a33685fb7ca3bb2ddb8d6e6dcec03e8 100644
--- a/test/built-ins/Proxy/getPrototypeOf/not-extensible-same-proto.js
+++ b/test/built-ins/Proxy/getPrototypeOf/not-extensible-same-proto.js
@@ -22,6 +22,7 @@ info: |
     ...
     17. Return handlerProto.
 
+features: [Proxy]
 ---*/
 
 var target = Object.create(Array.prototype);
diff --git a/test/built-ins/Proxy/getPrototypeOf/null-handler.js b/test/built-ins/Proxy/getPrototypeOf/null-handler.js
index 37684198091000914522082f689e3ffbd9e57859..e43ef4e531a80f9a4f5f6aa5aa5b5880fa664518 100644
--- a/test/built-ins/Proxy/getPrototypeOf/null-handler.js
+++ b/test/built-ins/Proxy/getPrototypeOf/null-handler.js
@@ -4,6 +4,7 @@
 es6id: 9.5.1
 description: >
     Throws a TypeError exception if handler is null.
+features: [Proxy]
 ---*/
 
 var p = Proxy.revocable({}, {});
diff --git a/test/built-ins/Proxy/getPrototypeOf/return-is-abrupt.js b/test/built-ins/Proxy/getPrototypeOf/return-is-abrupt.js
index f81d3ffe3254b1b5e2fe2a26a6eba75deb6d22db..59af3a3bc516531ae773402372d5ef79777d448a 100644
--- a/test/built-ins/Proxy/getPrototypeOf/return-is-abrupt.js
+++ b/test/built-ins/Proxy/getPrototypeOf/return-is-abrupt.js
@@ -7,6 +7,7 @@ description: >
 info: |
     8. Let handlerProto be Call(trap, handler, «target»).
     9. ReturnIfAbrupt(handlerProto).
+features: [Proxy]
 ---*/
 
 var p = new Proxy({}, {
diff --git a/test/built-ins/Proxy/getPrototypeOf/trap-is-not-callable-realm.js b/test/built-ins/Proxy/getPrototypeOf/trap-is-not-callable-realm.js
index 4a0f1a0bc18d839ec82f255e3d079e1dc38f18fa..fff2def4b10b835a8356059817c42af608adc5fc 100644
--- a/test/built-ins/Proxy/getPrototypeOf/trap-is-not-callable-realm.js
+++ b/test/built-ins/Proxy/getPrototypeOf/trap-is-not-callable-realm.js
@@ -6,7 +6,7 @@ es6id: 9.5.1
 description: >
   Throws if trap is not callable (honoring the Realm of the current execution
   context)
-features: [cross-realm]
+features: [cross-realm, Proxy]
 ---*/
 
 var OProxy = $262.createRealm().global.Proxy;
diff --git a/test/built-ins/Proxy/getPrototypeOf/trap-is-not-callable.js b/test/built-ins/Proxy/getPrototypeOf/trap-is-not-callable.js
index 3920ee73dfce6cb368333fcaeda2906687185d94..a7ab07480ce9ed1fc82eddb82114c70df5cb412d 100644
--- a/test/built-ins/Proxy/getPrototypeOf/trap-is-not-callable.js
+++ b/test/built-ins/Proxy/getPrototypeOf/trap-is-not-callable.js
@@ -4,6 +4,7 @@
 es6id: 9.5.1
 description: >
     Throws if trap is not callable.
+features: [Proxy]
 ---*/
 
 var p = new Proxy({}, {
diff --git a/test/built-ins/Proxy/getPrototypeOf/trap-is-undefined.js b/test/built-ins/Proxy/getPrototypeOf/trap-is-undefined.js
index efa9dcd1009f05d163bb0697e957cb648b26bf50..c286f94c35b9cfc4a4d69a503bcc6fd9998b774f 100644
--- a/test/built-ins/Proxy/getPrototypeOf/trap-is-undefined.js
+++ b/test/built-ins/Proxy/getPrototypeOf/trap-is-undefined.js
@@ -4,6 +4,7 @@
 es6id: 9.5.1
 description: >
     Return target.[[GetPrototypeOf]]() if trap is undefined.
+features: [Proxy]
 ---*/
 
 var target = Object.create(Array.prototype);
diff --git a/test/built-ins/Proxy/getPrototypeOf/trap-result-neither-object-nor-null-throws-boolean.js b/test/built-ins/Proxy/getPrototypeOf/trap-result-neither-object-nor-null-throws-boolean.js
index 7a534ddc9902508f4970ed18378c1b564445f2e5..0d7ab1ad3ac192e017f46d44de949a199665907e 100644
--- a/test/built-ins/Proxy/getPrototypeOf/trap-result-neither-object-nor-null-throws-boolean.js
+++ b/test/built-ins/Proxy/getPrototypeOf/trap-result-neither-object-nor-null-throws-boolean.js
@@ -4,6 +4,7 @@
 es6id: 9.5.1
 description: >
     Throw a TypeError exception if trap result is false.
+features: [Proxy]
 ---*/
 
 var p = new Proxy({}, {
diff --git a/test/built-ins/Proxy/getPrototypeOf/trap-result-neither-object-nor-null-throws-number.js b/test/built-ins/Proxy/getPrototypeOf/trap-result-neither-object-nor-null-throws-number.js
index 628e0868cd1a46b165a3975838e074354b3fc858..8c4bb9c3dfadbae4e18ced6151475ea34ee41cfb 100644
--- a/test/built-ins/Proxy/getPrototypeOf/trap-result-neither-object-nor-null-throws-number.js
+++ b/test/built-ins/Proxy/getPrototypeOf/trap-result-neither-object-nor-null-throws-number.js
@@ -4,6 +4,7 @@
 es6id: 9.5.1
 description: >
     Throw a TypeError exception if trap result is a Number.
+features: [Proxy]
 ---*/
 
 var p = new Proxy({}, {
diff --git a/test/built-ins/Proxy/getPrototypeOf/trap-result-neither-object-nor-null-throws-string.js b/test/built-ins/Proxy/getPrototypeOf/trap-result-neither-object-nor-null-throws-string.js
index 29033521ee9eba8f878c8478a78a4407228fcda6..3c30d2c09ac0859d7b64b90d833634e61354375c 100644
--- a/test/built-ins/Proxy/getPrototypeOf/trap-result-neither-object-nor-null-throws-string.js
+++ b/test/built-ins/Proxy/getPrototypeOf/trap-result-neither-object-nor-null-throws-string.js
@@ -4,6 +4,7 @@
 es6id: 9.5.1
 description: >
     throw a TypeError exception if trap result is a String.
+features: [Proxy]
 ---*/
 
 var p = new Proxy({}, {
diff --git a/test/built-ins/Proxy/getPrototypeOf/trap-result-neither-object-nor-null-throws-symbol.js b/test/built-ins/Proxy/getPrototypeOf/trap-result-neither-object-nor-null-throws-symbol.js
index 0c88056ee7b2e2fd927dcf5d0d34d607bf9dc6d0..205c6dcab8d8d565a989614c017a4e347ee16922 100644
--- a/test/built-ins/Proxy/getPrototypeOf/trap-result-neither-object-nor-null-throws-symbol.js
+++ b/test/built-ins/Proxy/getPrototypeOf/trap-result-neither-object-nor-null-throws-symbol.js
@@ -4,7 +4,7 @@
 es6id: 9.5.1
 description: >
     Throw a TypeError exception if trap result is a Symbol.
-features: [Symbol]
+features: [Proxy, Symbol]
 ---*/
 
 var p = new Proxy({}, {
diff --git a/test/built-ins/Proxy/getPrototypeOf/trap-result-neither-object-nor-null-throws-undefined.js b/test/built-ins/Proxy/getPrototypeOf/trap-result-neither-object-nor-null-throws-undefined.js
index ea4aeff85329690fe55f14c779148f0f5d7627b8..102a0dcfa417ef811c328c983b167fad372e4060 100644
--- a/test/built-ins/Proxy/getPrototypeOf/trap-result-neither-object-nor-null-throws-undefined.js
+++ b/test/built-ins/Proxy/getPrototypeOf/trap-result-neither-object-nor-null-throws-undefined.js
@@ -4,6 +4,7 @@
 es6id: 9.5.1
 description: >
     Throw a TypeError exception if trap result is undefined.
+features: [Proxy]
 ---*/
 
 var p = new Proxy({}, {
diff --git a/test/built-ins/Proxy/has/call-in.js b/test/built-ins/Proxy/has/call-in.js
index f51d824dbf1f5ee4dafb048eda329e69301e89fe..123eb55ba999f7b7680ec04a943c4ea7b82a34b8 100644
--- a/test/built-ins/Proxy/has/call-in.js
+++ b/test/built-ins/Proxy/has/call-in.js
@@ -10,6 +10,7 @@ info: |
     ...
     9. Let booleanTrapResult be ToBoolean(Call(trap, handler, «target, P»)).
     ...
+features: [Proxy]
 ---*/
 
 var _handler, _target, _prop;
diff --git a/test/built-ins/Proxy/has/call-object-create.js b/test/built-ins/Proxy/has/call-object-create.js
index 4bcbe2ca5e40204b7f824ce06442f600cfc5d673..3954219296ec8da2c613883f4080bcc51a760599 100644
--- a/test/built-ins/Proxy/has/call-object-create.js
+++ b/test/built-ins/Proxy/has/call-object-create.js
@@ -15,6 +15,7 @@ info: |
     ...
     9. Let booleanTrapResult be ToBoolean(Call(trap, handler, «target, P»)).
     ...
+features: [Proxy]
 ---*/
 
 var _handler, _target, _prop;
diff --git a/test/built-ins/Proxy/has/call-with.js b/test/built-ins/Proxy/has/call-with.js
index 1efe91f2cb13fddf9c39978cf2b6e5ef6d68eb91..306cc2fc66718ca05f2beb2c31141afe56857749 100644
--- a/test/built-ins/Proxy/has/call-with.js
+++ b/test/built-ins/Proxy/has/call-with.js
@@ -11,6 +11,7 @@ info: |
     9. Let booleanTrapResult be ToBoolean(Call(trap, handler, «target, P»)).
     ...
 flags: [noStrict]
+features: [Proxy]
 ---*/
 
 var _handler, _target, _prop;
diff --git a/test/built-ins/Proxy/has/null-handler-using-with.js b/test/built-ins/Proxy/has/null-handler-using-with.js
index 68320160ba38d4d0397ed08d5ee28f2536b85088..d586f56f929274bb2cedd90b99e9f6e4e2d5736e 100644
--- a/test/built-ins/Proxy/has/null-handler-using-with.js
+++ b/test/built-ins/Proxy/has/null-handler-using-with.js
@@ -5,6 +5,7 @@ es6id: 9.5.7
 description: >
     Throws a TypeError exception if handler is null.
 flags: [noStrict]
+features: [Proxy]
 ---*/
 
 var p = Proxy.revocable({}, {});
diff --git a/test/built-ins/Proxy/has/null-handler.js b/test/built-ins/Proxy/has/null-handler.js
index 8cc5d8ea32215bf8a188a379083fe7965251deff..8a8bfcc7a5f47f59929d7cea32bdbb229141813f 100644
--- a/test/built-ins/Proxy/has/null-handler.js
+++ b/test/built-ins/Proxy/has/null-handler.js
@@ -4,6 +4,7 @@
 es6id: 9.5.7
 description: >
     Throws a TypeError exception if handler is null.
+features: [Proxy]
 ---*/
 
 var p = Proxy.revocable({}, {});
diff --git a/test/built-ins/Proxy/has/return-false-target-not-extensible-using-with.js b/test/built-ins/Proxy/has/return-false-target-not-extensible-using-with.js
index fb3e6f463e47eab8a93f76bfa17327fa5b3039b1..5424c8509b8e0435395d7b10eb24f7ae927fafc9 100644
--- a/test/built-ins/Proxy/has/return-false-target-not-extensible-using-with.js
+++ b/test/built-ins/Proxy/has/return-false-target-not-extensible-using-with.js
@@ -19,6 +19,7 @@ info: |
             iv. If extensibleTarget is false, throw a TypeError exception.
     ...
 flags: [noStrict]
+features: [Proxy]
 ---*/
 
 var target = {};
diff --git a/test/built-ins/Proxy/has/return-false-target-not-extensible.js b/test/built-ins/Proxy/has/return-false-target-not-extensible.js
index dc5e3a3b90be51a695fadf3df1905e89cd78fb86..4f27abcf742fd47b0b5d2aa2e0d1ddf6c9a149b6 100644
--- a/test/built-ins/Proxy/has/return-false-target-not-extensible.js
+++ b/test/built-ins/Proxy/has/return-false-target-not-extensible.js
@@ -18,6 +18,7 @@ info: |
             ...
             iv. If extensibleTarget is false, throw a TypeError exception.
     ...
+features: [Proxy]
 ---*/
 
 var target = {};
diff --git a/test/built-ins/Proxy/has/return-false-target-prop-exists-using-with.js b/test/built-ins/Proxy/has/return-false-target-prop-exists-using-with.js
index cb7ebd738e7c3445d7b21d4a13533e1a5bc1689c..2235e4e48c5b9761a170743b11fea810d4398a34 100644
--- a/test/built-ins/Proxy/has/return-false-target-prop-exists-using-with.js
+++ b/test/built-ins/Proxy/has/return-false-target-prop-exists-using-with.js
@@ -11,6 +11,7 @@ info: |
     ...
     12. Return booleanTrapResult.
 flags: [noStrict]
+features: [Proxy]
 ---*/
 
 var target = {
diff --git a/test/built-ins/Proxy/has/return-false-target-prop-exists.js b/test/built-ins/Proxy/has/return-false-target-prop-exists.js
index 52bc88f4ffa783de722d185fcfbe745a2c87ec36..9eb62335661c9ac9201a15ada834133e4b5eb8b0 100644
--- a/test/built-ins/Proxy/has/return-false-target-prop-exists.js
+++ b/test/built-ins/Proxy/has/return-false-target-prop-exists.js
@@ -10,6 +10,7 @@ info: |
 
     ...
     12. Return booleanTrapResult.
+features: [Proxy]
 ---*/
 
 var target = {
diff --git a/test/built-ins/Proxy/has/return-false-targetdesc-not-configurable-using-with.js b/test/built-ins/Proxy/has/return-false-targetdesc-not-configurable-using-with.js
index a6a5517092e44090ccca5cfb2af465648707168b..fdd7636f53beb05d53f4b6661ac596850b5d0940 100644
--- a/test/built-ins/Proxy/has/return-false-targetdesc-not-configurable-using-with.js
+++ b/test/built-ins/Proxy/has/return-false-targetdesc-not-configurable-using-with.js
@@ -16,6 +16,7 @@ info: |
             exception.
     ...
 flags: [noStrict]
+features: [Proxy]
 ---*/
 
 var target = {};
diff --git a/test/built-ins/Proxy/has/return-false-targetdesc-not-configurable.js b/test/built-ins/Proxy/has/return-false-targetdesc-not-configurable.js
index 71f882c22901df7c756000489deaf538759f0811..e733be526ce427b4f9ec628995e12a5aafb6499d 100644
--- a/test/built-ins/Proxy/has/return-false-targetdesc-not-configurable.js
+++ b/test/built-ins/Proxy/has/return-false-targetdesc-not-configurable.js
@@ -15,6 +15,7 @@ info: |
             i. If targetDesc.[[Configurable]] is false, throw a TypeError
             exception.
     ...
+features: [Proxy]
 ---*/
 
 var target = {};
diff --git a/test/built-ins/Proxy/has/return-is-abrupt-in.js b/test/built-ins/Proxy/has/return-is-abrupt-in.js
index 9e42c2d058d1d88926f16ce04862a94c59bf5f97..daf1846d8b0460661495cf8985242ebdc1ed6436 100644
--- a/test/built-ins/Proxy/has/return-is-abrupt-in.js
+++ b/test/built-ins/Proxy/has/return-is-abrupt-in.js
@@ -11,6 +11,7 @@ info: |
     9. Let booleanTrapResult be ToBoolean(Call(trap, handler, «target, P»)).
     10. ReturnIfAbrupt(booleanTrapResult).
     ...
+features: [Proxy]
 ---*/
 
 var p = new Proxy({}, {
diff --git a/test/built-ins/Proxy/has/return-is-abrupt-with.js b/test/built-ins/Proxy/has/return-is-abrupt-with.js
index e4ff88601bd07f9f5c85c24f566607875b6f037c..03c9883b361ad6fbe837c5407004291e6b357865 100644
--- a/test/built-ins/Proxy/has/return-is-abrupt-with.js
+++ b/test/built-ins/Proxy/has/return-is-abrupt-with.js
@@ -12,6 +12,7 @@ info: |
     10. ReturnIfAbrupt(booleanTrapResult).
     ...
 flags: [noStrict]
+features: [Proxy]
 ---*/
 
 var p = new Proxy({}, {
diff --git a/test/built-ins/Proxy/has/return-true-target-prop-exists-using-with.js b/test/built-ins/Proxy/has/return-true-target-prop-exists-using-with.js
index 1e58f30f78f1812d6152997c80e79195aef1968a..f2f7413eb0a86131efc9cdbf10efb51151bc49b6 100644
--- a/test/built-ins/Proxy/has/return-true-target-prop-exists-using-with.js
+++ b/test/built-ins/Proxy/has/return-true-target-prop-exists-using-with.js
@@ -6,6 +6,7 @@ description: >
     The result of [[HasProperty]] is a Boolean value and will affect has
     checkings. True returned when target property exists;
 flags: [noStrict]
+features: [Proxy]
 ---*/
 
 var target = {
diff --git a/test/built-ins/Proxy/has/return-true-target-prop-exists.js b/test/built-ins/Proxy/has/return-true-target-prop-exists.js
index 187ef003046592b5f7bac1733c8b02b9a827e994..42b7d0ec88ee8ef2dd11a7bcbef379cf7054fb6a 100644
--- a/test/built-ins/Proxy/has/return-true-target-prop-exists.js
+++ b/test/built-ins/Proxy/has/return-true-target-prop-exists.js
@@ -5,6 +5,7 @@ es6id: 9.5.7
 description: >
     The result of [[HasProperty]] is a Boolean value and will affect has
     checkings. True returned when target property exists;
+features: [Proxy]
 ---*/
 
 var target = {
diff --git a/test/built-ins/Proxy/has/return-true-without-same-target-prop.js b/test/built-ins/Proxy/has/return-true-without-same-target-prop.js
index 5ee560de89ab22700f8e4f18fdd6212491c1e958..9d32b235f03acdfbb912d98345202fbc5eb61b58 100644
--- a/test/built-ins/Proxy/has/return-true-without-same-target-prop.js
+++ b/test/built-ins/Proxy/has/return-true-without-same-target-prop.js
@@ -5,6 +5,7 @@ es6id: 9.5.7
 description: >
     The result of [[HasProperty]] is a Boolean value and will affect has
     checkings. True returned when target property doesn't exists;
+features: [Proxy]
 ---*/
 
 var p = new Proxy({}, {
diff --git a/test/built-ins/Proxy/has/trap-is-not-callable-realm.js b/test/built-ins/Proxy/has/trap-is-not-callable-realm.js
index d36bfe4bb51f85a458c62227212c0fa3221031b1..c628a54a6157c93b34e2325240c1ab6f5f5128bc 100644
--- a/test/built-ins/Proxy/has/trap-is-not-callable-realm.js
+++ b/test/built-ins/Proxy/has/trap-is-not-callable-realm.js
@@ -17,7 +17,7 @@ info: |
         2. Let func be GetV(O, P).
         5. If IsCallable(func) is false, throw a TypeError exception.
         ...
-features: [cross-realm]
+features: [cross-realm, Proxy]
 ---*/
 
 var OProxy = $262.createRealm().global.Proxy;
diff --git a/test/built-ins/Proxy/has/trap-is-not-callable-using-with.js b/test/built-ins/Proxy/has/trap-is-not-callable-using-with.js
index 951ebcf43a03bed06590047eff47bcdb768ac445..e0990240971e26c5a486da7b67f3361515094749 100644
--- a/test/built-ins/Proxy/has/trap-is-not-callable-using-with.js
+++ b/test/built-ins/Proxy/has/trap-is-not-callable-using-with.js
@@ -16,6 +16,7 @@ info: |
         5. If IsCallable(func) is false, throw a TypeError exception.
         ...
 flags: [noStrict]
+features: [Proxy]
 ---*/
 
 var target = {};
diff --git a/test/built-ins/Proxy/has/trap-is-not-callable.js b/test/built-ins/Proxy/has/trap-is-not-callable.js
index 63f4943574be9be8a85c4cfc7e74e8fb8a97dc65..7127dcb1101571a7493b7ed64bca149d73f06a1f 100644
--- a/test/built-ins/Proxy/has/trap-is-not-callable.js
+++ b/test/built-ins/Proxy/has/trap-is-not-callable.js
@@ -15,6 +15,7 @@ info: |
         2. Let func be GetV(O, P).
         5. If IsCallable(func) is false, throw a TypeError exception.
         ...
+features: [Proxy]
 ---*/
 
 var target = {};
diff --git a/test/built-ins/Proxy/has/trap-is-undefined-using-with.js b/test/built-ins/Proxy/has/trap-is-undefined-using-with.js
index 4c3ec37c2709077f2744711bdf0ac632e8292729..4c778fcd02fae3e3469666700b2480cd1b388d9f 100644
--- a/test/built-ins/Proxy/has/trap-is-undefined-using-with.js
+++ b/test/built-ins/Proxy/has/trap-is-undefined-using-with.js
@@ -12,6 +12,7 @@ info: |
         a. Return target.[[HasProperty]](P).
     ...
 flags: [noStrict]
+features: [Proxy]
 ---*/
 
 var target = Object.create(Array.prototype);
diff --git a/test/built-ins/Proxy/has/trap-is-undefined.js b/test/built-ins/Proxy/has/trap-is-undefined.js
index dfffc0a9594589fc0889750ea11dd4b75b68cc96..d78229a2fcdc85d9c20e81e50c1cee676ea78629 100644
--- a/test/built-ins/Proxy/has/trap-is-undefined.js
+++ b/test/built-ins/Proxy/has/trap-is-undefined.js
@@ -11,6 +11,7 @@ info: |
     8. If trap is undefined, then
         a. Return target.[[HasProperty]](P).
     ...
+features: [Proxy]
 ---*/
 
 var target = Object.create(Array.prototype);
diff --git a/test/built-ins/Proxy/isExtensible/call-parameters.js b/test/built-ins/Proxy/isExtensible/call-parameters.js
index 3327adc8c42e2130ee22f0ba9df372c00d5c80a3..d76443ea496d87ec22cc15ffa636060b786f5d35 100644
--- a/test/built-ins/Proxy/isExtensible/call-parameters.js
+++ b/test/built-ins/Proxy/isExtensible/call-parameters.js
@@ -12,6 +12,7 @@ info: |
     8. Let booleanTrapResult be ToBoolean(Call(trap, handler, «target»)).
     ...
 
+features: [Proxy]
 ---*/
 
 var _target, _handler;
diff --git a/test/built-ins/Proxy/isExtensible/null-handler.js b/test/built-ins/Proxy/isExtensible/null-handler.js
index 0ff2c1b37f631dd926ad6f63a0457926093de93b..be770d6e20841bd4596c569aae57fa1bfb8ed4ce 100644
--- a/test/built-ins/Proxy/isExtensible/null-handler.js
+++ b/test/built-ins/Proxy/isExtensible/null-handler.js
@@ -4,6 +4,7 @@
 es6id: 9.5.3
 description: >
     Throws a TypeError exception if handler is null
+features: [Proxy]
 ---*/
 
 var p = Proxy.revocable({}, {});
diff --git a/test/built-ins/Proxy/isExtensible/return-is-abrupt.js b/test/built-ins/Proxy/isExtensible/return-is-abrupt.js
index ae7591d536fcd9586aa1b17230a5761e717b71a5..295c601239d20a65686d6e20392fc01632cc9db8 100644
--- a/test/built-ins/Proxy/isExtensible/return-is-abrupt.js
+++ b/test/built-ins/Proxy/isExtensible/return-is-abrupt.js
@@ -11,6 +11,7 @@ info: |
     8. Let booleanTrapResult be ToBoolean(Call(trap, handler, «target»)).
     9. ReturnIfAbrupt(booleanTrapResult).
     ...
+features: [Proxy]
 ---*/
 
 var p = new Proxy({}, {
diff --git a/test/built-ins/Proxy/isExtensible/return-is-boolean.js b/test/built-ins/Proxy/isExtensible/return-is-boolean.js
index 5c8bf4e3f03b7afbf0e51986119c69a313b3d66a..b5c3e67fb4ddc9bfd444d5339e13aafd99819402 100644
--- a/test/built-ins/Proxy/isExtensible/return-is-boolean.js
+++ b/test/built-ins/Proxy/isExtensible/return-is-boolean.js
@@ -4,6 +4,7 @@
 es6id: 9.5.3
 description: >
     The trap returns a boolean result.
+features: [Proxy]
 ---*/
 
 var target = {};
diff --git a/test/built-ins/Proxy/isExtensible/return-is-different-from-target.js b/test/built-ins/Proxy/isExtensible/return-is-different-from-target.js
index 50a76377d846cdbc2355f3005fe238b5655fdf34..7ff5e33b02fc84041bc1c6b64ad4f8f3bdb68c7b 100644
--- a/test/built-ins/Proxy/isExtensible/return-is-different-from-target.js
+++ b/test/built-ins/Proxy/isExtensible/return-is-different-from-target.js
@@ -12,6 +12,7 @@ info: |
     12. If SameValue(booleanTrapResult, targetResult) is false, throw a
     TypeError exception.
     ...
+features: [Proxy]
 ---*/
 
 var p = new Proxy({}, {
diff --git a/test/built-ins/Proxy/isExtensible/return-same-result-from-target.js b/test/built-ins/Proxy/isExtensible/return-same-result-from-target.js
index 0c8406f46a9ea7f1dc2712debfd9f9e3ee7698d4..204a6de18fa9a6bf83954e5dfe0a8de33610a462 100644
--- a/test/built-ins/Proxy/isExtensible/return-same-result-from-target.js
+++ b/test/built-ins/Proxy/isExtensible/return-same-result-from-target.js
@@ -4,6 +4,7 @@
 es6id: 9.5.3
 description: >
     Return trap result.
+features: [Proxy]
 ---*/
 
 var target = {};
diff --git a/test/built-ins/Proxy/isExtensible/trap-is-not-callable-realm.js b/test/built-ins/Proxy/isExtensible/trap-is-not-callable-realm.js
index 9c4e95795612ff8b7ea8560a466be956b6405b8f..546ed847f6fd1f7375286f180dc413b978e5ba7a 100644
--- a/test/built-ins/Proxy/isExtensible/trap-is-not-callable-realm.js
+++ b/test/built-ins/Proxy/isExtensible/trap-is-not-callable-realm.js
@@ -19,7 +19,7 @@ info: |
         2. Let func be GetV(O, P).
         5. If IsCallable(func) is false, throw a TypeError exception.
         ...
-features: [cross-realm]
+features: [cross-realm, Proxy]
 ---*/
 
 var OProxy = $262.createRealm().global.Proxy;
diff --git a/test/built-ins/Proxy/isExtensible/trap-is-not-callable.js b/test/built-ins/Proxy/isExtensible/trap-is-not-callable.js
index 7db8f4cf6ef250121ceb6dcb29e18abd3bec7b3b..367fc9d98adedadf3af0f184da587341e27c0d32 100644
--- a/test/built-ins/Proxy/isExtensible/trap-is-not-callable.js
+++ b/test/built-ins/Proxy/isExtensible/trap-is-not-callable.js
@@ -17,6 +17,7 @@ info: |
         2. Let func be GetV(O, P).
         5. If IsCallable(func) is false, throw a TypeError exception.
         ...
+features: [Proxy]
 ---*/
 
 
diff --git a/test/built-ins/Proxy/isExtensible/trap-is-undefined.js b/test/built-ins/Proxy/isExtensible/trap-is-undefined.js
index 3eb3883ee86dc9330317fb0002a6d721cf6c2039..b21e9f364dc597e16a9a2c8857aeb07a81f6ba36 100644
--- a/test/built-ins/Proxy/isExtensible/trap-is-undefined.js
+++ b/test/built-ins/Proxy/isExtensible/trap-is-undefined.js
@@ -11,6 +11,7 @@ info: |
     7. If trap is undefined, then
         a. Return target.[[IsExtensible]]().
     ...
+features: [Proxy]
 ---*/
 
 var target = {};
diff --git a/test/built-ins/Proxy/length.js b/test/built-ins/Proxy/length.js
index 6f3d21449435e628eaaef12a8356925e6c807e2f..3f4ca5a95b13699e281a3598c3a0fa255b48a7ed 100644
--- a/test/built-ins/Proxy/length.js
+++ b/test/built-ins/Proxy/length.js
@@ -8,6 +8,7 @@ description: >
     Besides the length property (whose value is 2)
 
 includes: [propertyHelper.js]
+features: [Proxy]
 ---*/
 
 assert.sameValue(Proxy.length, 2, "The value of `Proxy.length` is `2`");
diff --git a/test/built-ins/Proxy/name.js b/test/built-ins/Proxy/name.js
index e081f7e1e3c88cd9f6733f6ddbeb84f0132dbe35..14aaeb58513de511798fc67d644f8a1e173337ff 100644
--- a/test/built-ins/Proxy/name.js
+++ b/test/built-ins/Proxy/name.js
@@ -8,6 +8,7 @@ description: >
     17 ECMAScript Standard Built-in Objects
 
 includes: [propertyHelper.js]
+features: [Proxy]
 ---*/
 
 assert.sameValue(Proxy.name, "Proxy", "The value of `Proxy.name` is `'Proxy'`");
diff --git a/test/built-ins/Proxy/ownKeys/call-parameters-object-getownpropertynames.js b/test/built-ins/Proxy/ownKeys/call-parameters-object-getownpropertynames.js
index 112a31da8cde106cf2c50c4f649aead5376978b3..1a29a7cf26fab736f3e7cc0d9fa3f89a8ed655cc 100644
--- a/test/built-ins/Proxy/ownKeys/call-parameters-object-getownpropertynames.js
+++ b/test/built-ins/Proxy/ownKeys/call-parameters-object-getownpropertynames.js
@@ -6,6 +6,7 @@ description: >
     [[OwnPropertyKeys]] ( )
 
     7. Let trapResultArray be ? Call(trap, handler, « target »).
+features: [Proxy]
 ---*/
 
 var _target, _handler;
diff --git a/test/built-ins/Proxy/ownKeys/call-parameters-object-getownpropertysymbols.js b/test/built-ins/Proxy/ownKeys/call-parameters-object-getownpropertysymbols.js
index f788aa2916a3f099b57dd4b3ce7e9a5cdc918b4c..45a14b7b58ca577af526088617bd09109313af0e 100644
--- a/test/built-ins/Proxy/ownKeys/call-parameters-object-getownpropertysymbols.js
+++ b/test/built-ins/Proxy/ownKeys/call-parameters-object-getownpropertysymbols.js
@@ -7,7 +7,7 @@ description: >
 
     7. Let trapResultArray be ? Call(trap, handler, « target »).
 
-features: [Symbol]
+features: [Proxy, Symbol]
 ---*/
 
 var _target, _handler;
diff --git a/test/built-ins/Proxy/ownKeys/call-parameters-object-keys.js b/test/built-ins/Proxy/ownKeys/call-parameters-object-keys.js
index 6723d9104b6b312437e5182f3cb34816631eadf4..d928b3c594331eff0a26a6475a608c7df6626270 100644
--- a/test/built-ins/Proxy/ownKeys/call-parameters-object-keys.js
+++ b/test/built-ins/Proxy/ownKeys/call-parameters-object-keys.js
@@ -6,6 +6,7 @@ description: >
     [[OwnPropertyKeys]] ( )
 
     8. Let trapResultArray be Call(trap, handler, «target»).
+features: [Proxy]
 ---*/
 
 var _target, _handler;
diff --git a/test/built-ins/Proxy/ownKeys/extensible-return-trap-result-absent-not-configurable-keys.js b/test/built-ins/Proxy/ownKeys/extensible-return-trap-result-absent-not-configurable-keys.js
index 6c3cc745e59cd328783d9a4bff92e4ddff50a160..e7e8f0f36d2e26f62e20265d568ef441cce12773 100644
--- a/test/built-ins/Proxy/ownKeys/extensible-return-trap-result-absent-not-configurable-keys.js
+++ b/test/built-ins/Proxy/ownKeys/extensible-return-trap-result-absent-not-configurable-keys.js
@@ -11,6 +11,7 @@ info: |
     ...
     15. If extensibleTarget is true and targetNonconfigurableKeys is empty, then
         a. Return trapResult.
+features: [Proxy]
 ---*/
 
 var p = new Proxy({
diff --git a/test/built-ins/Proxy/ownKeys/extensible-return-trap-result.js b/test/built-ins/Proxy/ownKeys/extensible-return-trap-result.js
index 63b06910a29dcb06ea7a35f3852af6bbb4c4645f..8610f518f8a5a53c87ce6434d0d62c5803666b31 100644
--- a/test/built-ins/Proxy/ownKeys/extensible-return-trap-result.js
+++ b/test/built-ins/Proxy/ownKeys/extensible-return-trap-result.js
@@ -10,6 +10,7 @@ info: |
 
     ...
     18. If extensibleTarget is true, return trapResult.
+features: [Proxy]
 ---*/
 
 var target = {};
diff --git a/test/built-ins/Proxy/ownKeys/not-extensible-missing-keys-throws.js b/test/built-ins/Proxy/ownKeys/not-extensible-missing-keys-throws.js
index cb256bacac6bd090322c0162f0d72201a199fa47..0f72f15617431887cad5bea439e7481699700b6e 100644
--- a/test/built-ins/Proxy/ownKeys/not-extensible-missing-keys-throws.js
+++ b/test/built-ins/Proxy/ownKeys/not-extensible-missing-keys-throws.js
@@ -12,6 +12,7 @@ info: |
     19. For each key that is an element of targetConfigurableKeys, do
         a. If key is not an element of uncheckedResultKeys, throw a TypeError
         exception.
+features: [Proxy]
 ---*/
 
 var target = {
diff --git a/test/built-ins/Proxy/ownKeys/not-extensible-new-keys-throws.js b/test/built-ins/Proxy/ownKeys/not-extensible-new-keys-throws.js
index fb6eddf5f3b6eade4185b03c0344fbaf4384625d..eb7d7ac5c98c210ce6d6f91377deb94f7e403755 100644
--- a/test/built-ins/Proxy/ownKeys/not-extensible-new-keys-throws.js
+++ b/test/built-ins/Proxy/ownKeys/not-extensible-new-keys-throws.js
@@ -10,6 +10,7 @@ info: |
 
     ...
     20. If uncheckedResultKeys is not empty, throw a TypeError exception.
+features: [Proxy]
 ---*/
 
 var target = {
diff --git a/test/built-ins/Proxy/ownKeys/not-extensible-return-keys.js b/test/built-ins/Proxy/ownKeys/not-extensible-return-keys.js
index a491ffb6d0c85c016eddb87273e4dc8c6ac81615..523d14dee1efe75468c1baa762f83ac8291af3d2 100644
--- a/test/built-ins/Proxy/ownKeys/not-extensible-return-keys.js
+++ b/test/built-ins/Proxy/ownKeys/not-extensible-return-keys.js
@@ -10,6 +10,7 @@ info: |
 
     ...
     21. Return trapResult.
+features: [Proxy]
 ---*/
 
 var target = {
diff --git a/test/built-ins/Proxy/ownKeys/null-handler.js b/test/built-ins/Proxy/ownKeys/null-handler.js
index 653e1fc8685e937f15d3da28ec159b42fdb8428e..1839e98befe97db706bf823601fd43b74410a77a 100644
--- a/test/built-ins/Proxy/ownKeys/null-handler.js
+++ b/test/built-ins/Proxy/ownKeys/null-handler.js
@@ -6,6 +6,7 @@ description: >
     [[OwnPropertyKeys]] ( )
 
     2. If handler is null, throw a TypeError exception.
+features: [Proxy]
 ---*/
 
 var p = Proxy.revocable({}, {});
diff --git a/test/built-ins/Proxy/ownKeys/return-all-non-configurable-keys.js b/test/built-ins/Proxy/ownKeys/return-all-non-configurable-keys.js
index 9cd1c90b4fe0fe3238bb0d5c42e2f84218fcbc79..dd2d6d4bfa0f84b43a55ea2067f35fa41023b812 100644
--- a/test/built-ins/Proxy/ownKeys/return-all-non-configurable-keys.js
+++ b/test/built-ins/Proxy/ownKeys/return-all-non-configurable-keys.js
@@ -13,6 +13,7 @@ info: |
         a. If key is not an element of uncheckedResultKeys, throw a TypeError
         exception.
 
+features: [Proxy]
 ---*/
 
 var target = {
diff --git a/test/built-ins/Proxy/ownKeys/return-duplicate-entries-throws.js b/test/built-ins/Proxy/ownKeys/return-duplicate-entries-throws.js
index 0585a0a40508059068056293149eea866d6144c7..fd1370195ae5c077ae2a77a82a438c1a5bdbcd45 100644
--- a/test/built-ins/Proxy/ownKeys/return-duplicate-entries-throws.js
+++ b/test/built-ins/Proxy/ownKeys/return-duplicate-entries-throws.js
@@ -9,6 +9,7 @@ info: |
 
     ...
     9. If trapResult contains any duplicate entries, throw a TypeError exception.
+features: [Proxy]
 ---*/
 
 var p = new Proxy({}, {
diff --git a/test/built-ins/Proxy/ownKeys/return-duplicate-symbol-entries-throws.js b/test/built-ins/Proxy/ownKeys/return-duplicate-symbol-entries-throws.js
index d264c94520df2659392c7ab96c806b29ab1764d4..811a7d6f60390d892a51b769983bebaa482c5588 100644
--- a/test/built-ins/Proxy/ownKeys/return-duplicate-symbol-entries-throws.js
+++ b/test/built-ins/Proxy/ownKeys/return-duplicate-symbol-entries-throws.js
@@ -9,7 +9,7 @@ info: |
 
     ...
     9. If trapResult contains any duplicate entries, throw a TypeError exception.
-features: [Symbol]
+features: [Proxy, Symbol]
 ---*/
 
 var s = Symbol();
diff --git a/test/built-ins/Proxy/ownKeys/return-is-abrupt.js b/test/built-ins/Proxy/ownKeys/return-is-abrupt.js
index 405fbbfbaaa1fa47c8271e46cdeafc295d842314..f443c3e3117d00df2f1ad3d99ce4b9f8fefa8960 100644
--- a/test/built-ins/Proxy/ownKeys/return-is-abrupt.js
+++ b/test/built-ins/Proxy/ownKeys/return-is-abrupt.js
@@ -11,6 +11,7 @@ info: |
     7. Let trapResultArray be ? Call(trap, handler, « target »).
     8. Let trapResult be ? CreateListFromArrayLike(trapResultArray, « String, Symbol »).
 
+features: [Proxy]
 ---*/
 
 var p = new Proxy({}, {
diff --git a/test/built-ins/Proxy/ownKeys/return-not-list-object-throws-realm.js b/test/built-ins/Proxy/ownKeys/return-not-list-object-throws-realm.js
index 45e22b3a0a05c48e19b80aced6f9200da1e6dfb6..631d63698f04755cde5dab108e5ff5e27f2e9468 100644
--- a/test/built-ins/Proxy/ownKeys/return-not-list-object-throws-realm.js
+++ b/test/built-ins/Proxy/ownKeys/return-not-list-object-throws-realm.js
@@ -17,7 +17,7 @@ info: |
 
     2. If Type(obj) is not Object, throw a TypeError exception.
 
-features: [cross-realm, Symbol]
+features: [cross-realm, Proxy, Symbol]
 ---*/
 
 var other = $262.createRealm().global;
diff --git a/test/built-ins/Proxy/ownKeys/return-not-list-object-throws.js b/test/built-ins/Proxy/ownKeys/return-not-list-object-throws.js
index c3bd07242534c983ae1e2ec6afe734e6dbb06c83..34b2453949dc41f28beb8d0534a97b803ed61dc4 100644
--- a/test/built-ins/Proxy/ownKeys/return-not-list-object-throws.js
+++ b/test/built-ins/Proxy/ownKeys/return-not-list-object-throws.js
@@ -17,7 +17,7 @@ info: |
 
     2. If Type(obj) is not Object, throw a TypeError exception.
 
-features: [Symbol]
+features: [Proxy, Symbol]
 ---*/
 
 var target = {};
diff --git a/test/built-ins/Proxy/ownKeys/return-type-throws-array.js b/test/built-ins/Proxy/ownKeys/return-type-throws-array.js
index 1e74a418cc4ef3e4344ccf9e6dd4f3e27a3696b4..4a8638eb1b421be2e9403b2447445ebb44617e42 100644
--- a/test/built-ins/Proxy/ownKeys/return-type-throws-array.js
+++ b/test/built-ins/Proxy/ownKeys/return-type-throws-array.js
@@ -21,6 +21,7 @@ info: |
       ...
       d. If Type(next) is not an element of elementTypes,
           throw a TypeError exception.
+features: [Proxy]
 ---*/
 
 var p = new Proxy({}, {
diff --git a/test/built-ins/Proxy/ownKeys/return-type-throws-boolean.js b/test/built-ins/Proxy/ownKeys/return-type-throws-boolean.js
index bdc89b941eb23d62a0333944581adfdbbc539918..0eac0512578bc56b1d8e3c6ef9e997f56b44b84f 100644
--- a/test/built-ins/Proxy/ownKeys/return-type-throws-boolean.js
+++ b/test/built-ins/Proxy/ownKeys/return-type-throws-boolean.js
@@ -21,6 +21,7 @@ info: |
       ...
       d. If Type(next) is not an element of elementTypes,
           throw a TypeError exception.
+features: [Proxy]
 ---*/
 
 var p = new Proxy({}, {
diff --git a/test/built-ins/Proxy/ownKeys/return-type-throws-null.js b/test/built-ins/Proxy/ownKeys/return-type-throws-null.js
index 34abf804cb78c3ea3a0a0ef87909b9d6d3362361..c4fd819c953aa2fa4c72c77964319c11cb6a9840 100644
--- a/test/built-ins/Proxy/ownKeys/return-type-throws-null.js
+++ b/test/built-ins/Proxy/ownKeys/return-type-throws-null.js
@@ -21,6 +21,7 @@ info: |
       ...
       d. If Type(next) is not an element of elementTypes,
           throw a TypeError exception.
+features: [Proxy]
 ---*/
 
 var p = new Proxy({}, {
diff --git a/test/built-ins/Proxy/ownKeys/return-type-throws-number.js b/test/built-ins/Proxy/ownKeys/return-type-throws-number.js
index ffc6440f81474d318bd32cf1cf4e4d1015456147..af375e97981136a00311803e287fba80f7febda5 100644
--- a/test/built-ins/Proxy/ownKeys/return-type-throws-number.js
+++ b/test/built-ins/Proxy/ownKeys/return-type-throws-number.js
@@ -21,6 +21,7 @@ info: |
       ...
       d. If Type(next) is not an element of elementTypes,
           throw a TypeError exception.
+features: [Proxy]
 ---*/
 
 var p = new Proxy({}, {
diff --git a/test/built-ins/Proxy/ownKeys/return-type-throws-object.js b/test/built-ins/Proxy/ownKeys/return-type-throws-object.js
index 221d777df342ac5b80348d836fbba35f48b984bb..b7604142a10c2eac24b48cadd5d0172fab8626ad 100644
--- a/test/built-ins/Proxy/ownKeys/return-type-throws-object.js
+++ b/test/built-ins/Proxy/ownKeys/return-type-throws-object.js
@@ -21,6 +21,7 @@ info: |
       ...
       d. If Type(next) is not an element of elementTypes,
           throw a TypeError exception.
+features: [Proxy]
 ---*/
 
 var p = new Proxy({}, {
diff --git a/test/built-ins/Proxy/ownKeys/return-type-throws-undefined.js b/test/built-ins/Proxy/ownKeys/return-type-throws-undefined.js
index aa3924d529d6b0170e08891dfd907cd7a3f2b2b1..7fc879049662b7e9f5345f71982059a330e20920 100644
--- a/test/built-ins/Proxy/ownKeys/return-type-throws-undefined.js
+++ b/test/built-ins/Proxy/ownKeys/return-type-throws-undefined.js
@@ -21,6 +21,7 @@ info: |
       ...
       d. If Type(next) is not an element of elementTypes,
           throw a TypeError exception.
+features: [Proxy]
 ---*/
 
 var p = new Proxy({}, {
diff --git a/test/built-ins/Proxy/ownKeys/trap-is-not-callable-realm.js b/test/built-ins/Proxy/ownKeys/trap-is-not-callable-realm.js
index 0eb431e7dd8d5590a22a00d43ac344cedd622bc4..25cc1b8adcf20355c35ed780640b012abfb421cf 100644
--- a/test/built-ins/Proxy/ownKeys/trap-is-not-callable-realm.js
+++ b/test/built-ins/Proxy/ownKeys/trap-is-not-callable-realm.js
@@ -15,7 +15,7 @@ info: |
     7.3.9 GetMethod (O, P)
 
     4. If IsCallable(func) is false, throw a TypeError exception.
-features: [cross-realm]
+features: [cross-realm, Proxy]
 ---*/
 
 var OProxy = $262.createRealm().global.Proxy;
diff --git a/test/built-ins/Proxy/ownKeys/trap-is-not-callable.js b/test/built-ins/Proxy/ownKeys/trap-is-not-callable.js
index 20ed2a8fddda323c09b078db3618c71c931ed870..18fa367f854ccc12e9978aad576bf502369dfedd 100644
--- a/test/built-ins/Proxy/ownKeys/trap-is-not-callable.js
+++ b/test/built-ins/Proxy/ownKeys/trap-is-not-callable.js
@@ -14,6 +14,7 @@ info: |
     7.3.9 GetMethod (O, P)
 
     4. If IsCallable(func) is false, throw a TypeError exception.
+features: [Proxy]
 ---*/
 
 var p = new Proxy({
diff --git a/test/built-ins/Proxy/ownKeys/trap-is-undefined.js b/test/built-ins/Proxy/ownKeys/trap-is-undefined.js
index 3b42a49e11981a849f19f0a904a27d689b9cbdb8..4ef60c2eaceb51775df80a6c39fdea759e094f96 100644
--- a/test/built-ins/Proxy/ownKeys/trap-is-undefined.js
+++ b/test/built-ins/Proxy/ownKeys/trap-is-undefined.js
@@ -6,6 +6,7 @@ description: >
     [[OwnPropertyKeys]] ( )
 
     6. If trap is undefined, then Return target.[[OwnPropertyKeys]]()
+features: [Proxy]
 ---*/
 
 var target = {
diff --git a/test/built-ins/Proxy/preventExtensions/call-parameters.js b/test/built-ins/Proxy/preventExtensions/call-parameters.js
index 7774224b8cd42f47adf5a929dcf592c98efe7971..a2e0b44f2d152c2b0e42f8a8f4ff494809f59ea1 100644
--- a/test/built-ins/Proxy/preventExtensions/call-parameters.js
+++ b/test/built-ins/Proxy/preventExtensions/call-parameters.js
@@ -11,6 +11,7 @@ info: |
     ...
     8. Let booleanTrapResult be ToBoolean(Call(trap, handler, «target»)).
     ...
+features: [Proxy]
 ---*/
 
 var _target, _handler;
diff --git a/test/built-ins/Proxy/preventExtensions/null-handler.js b/test/built-ins/Proxy/preventExtensions/null-handler.js
index e8067f063e12af372ba846fa1f30e8cf093c8ae1..cd8ad9a2ae45bca2724784f820b83fd699ddaa9e 100644
--- a/test/built-ins/Proxy/preventExtensions/null-handler.js
+++ b/test/built-ins/Proxy/preventExtensions/null-handler.js
@@ -4,6 +4,7 @@
 es6id: 9.5.4
 description: >
     Throws a TypeError exception if handler is null.
+features: [Proxy]
 ---*/
 
 var p = Proxy.revocable({}, {});
diff --git a/test/built-ins/Proxy/preventExtensions/return-false.js b/test/built-ins/Proxy/preventExtensions/return-false.js
index dbe0c599473283222dda37b3f8bed7094a6e62e9..71bca52f9b531983bba7fa1da6a1f9bacb866ac4 100644
--- a/test/built-ins/Proxy/preventExtensions/return-false.js
+++ b/test/built-ins/Proxy/preventExtensions/return-false.js
@@ -4,7 +4,7 @@
 es6id: 9.5.4
 description: >
     If boolean trap result if false, return false.
-features: [Reflect]
+features: [Proxy, Reflect]
 ---*/
 
 var target = {};
diff --git a/test/built-ins/Proxy/preventExtensions/return-is-abrupt.js b/test/built-ins/Proxy/preventExtensions/return-is-abrupt.js
index cb3384df6c5bedac1f8d83db84552fe262aaf04e..05f7af77b965d702462363248ed92302f66d33d5 100644
--- a/test/built-ins/Proxy/preventExtensions/return-is-abrupt.js
+++ b/test/built-ins/Proxy/preventExtensions/return-is-abrupt.js
@@ -11,6 +11,7 @@ info: |
     8. Let booleanTrapResult be ToBoolean(Call(trap, handler, «target»)).
     9. ReturnIfAbrupt(booleanTrapResult).
     ...
+features: [Proxy]
 ---*/
 
 var p = new Proxy({}, {
diff --git a/test/built-ins/Proxy/preventExtensions/return-true-target-is-extensible.js b/test/built-ins/Proxy/preventExtensions/return-true-target-is-extensible.js
index 9f922da8ea39b9d5c7a36c9a519a99177e4dccaf..c445bc2b73ec8200ebdfe50b48e4934ee4ea012d 100644
--- a/test/built-ins/Proxy/preventExtensions/return-true-target-is-extensible.js
+++ b/test/built-ins/Proxy/preventExtensions/return-true-target-is-extensible.js
@@ -14,6 +14,7 @@ info: |
         c. If targetIsExtensible is true, throw a TypeError exception.
     11. Return booleanTrapResult.
     ...
+features: [Proxy]
 ---*/
 
 var p = new Proxy({}, {
diff --git a/test/built-ins/Proxy/preventExtensions/return-true-target-is-not-extensible.js b/test/built-ins/Proxy/preventExtensions/return-true-target-is-not-extensible.js
index db2287b4924243da27f64add34037c192394101a..ab93489d848525ac237cfeb2fd01653800252a41 100644
--- a/test/built-ins/Proxy/preventExtensions/return-true-target-is-not-extensible.js
+++ b/test/built-ins/Proxy/preventExtensions/return-true-target-is-not-extensible.js
@@ -4,7 +4,7 @@
 es6id: 9.5.4
 description: >
     Return boolean trap result if its true and target is not extensible.
-features: [Reflect]
+features: [Proxy, Reflect]
 ---*/
 
 var target = {};
diff --git a/test/built-ins/Proxy/preventExtensions/trap-is-not-callable-realm.js b/test/built-ins/Proxy/preventExtensions/trap-is-not-callable-realm.js
index f4806c47002d04e936ba5b85a268014412353f85..4adc5f0e29ad9bc4b8f21d2a92d97cb252b03ea0 100644
--- a/test/built-ins/Proxy/preventExtensions/trap-is-not-callable-realm.js
+++ b/test/built-ins/Proxy/preventExtensions/trap-is-not-callable-realm.js
@@ -19,7 +19,7 @@ info: |
         2. Let func be GetV(O, P).
         5. If IsCallable(func) is false, throw a TypeError exception.
         ...
-features: [cross-realm]
+features: [cross-realm, Proxy]
 ---*/
 
 var OProxy = $262.createRealm().global.Proxy;
diff --git a/test/built-ins/Proxy/preventExtensions/trap-is-not-callable.js b/test/built-ins/Proxy/preventExtensions/trap-is-not-callable.js
index 2a42bfdd9704a6bceee47e9794ce089d185ac143..3a09b2d387fa0dd579122e61a259fa5a1c69d32e 100644
--- a/test/built-ins/Proxy/preventExtensions/trap-is-not-callable.js
+++ b/test/built-ins/Proxy/preventExtensions/trap-is-not-callable.js
@@ -17,6 +17,7 @@ info: |
         2. Let func be GetV(O, P).
         5. If IsCallable(func) is false, throw a TypeError exception.
         ...
+features: [Proxy]
 ---*/
 
 var target = {};
diff --git a/test/built-ins/Proxy/preventExtensions/trap-is-undefined.js b/test/built-ins/Proxy/preventExtensions/trap-is-undefined.js
index 0cd82e501b4833d8f1f4163dd6244c49b4c2bf44..a92f7832ee0f6f788282716bdc991959712a2f31 100644
--- a/test/built-ins/Proxy/preventExtensions/trap-is-undefined.js
+++ b/test/built-ins/Proxy/preventExtensions/trap-is-undefined.js
@@ -4,7 +4,7 @@
 es6id: 9.5.4
 description: >
     Return target.[[PreventExtensions]]() if target is undefined.
-features: [Reflect]
+features: [Proxy, Reflect]
 ---*/
 
 var target = {};
diff --git a/test/built-ins/Proxy/proxy-newtarget.js b/test/built-ins/Proxy/proxy-newtarget.js
index 3884cd44d688b2df30d7e31d958ad0ec1ec75d27..f3227043dff3235c0006a735608f48c7e7062a79 100644
--- a/test/built-ins/Proxy/proxy-newtarget.js
+++ b/test/built-ins/Proxy/proxy-newtarget.js
@@ -17,6 +17,7 @@ description: >
         ...
         10. Return P.
 
+features: [Proxy]
 ---*/
 
 var p1 = new Proxy({}, {});
diff --git a/test/built-ins/Proxy/proxy-no-prototype.js b/test/built-ins/Proxy/proxy-no-prototype.js
index 027a2a8b4771d8e389dced6efdbe9c6404a48dbf..a6d3cddbe2c48ac4465608e22278fc4c83b55f93 100644
--- a/test/built-ins/Proxy/proxy-no-prototype.js
+++ b/test/built-ins/Proxy/proxy-no-prototype.js
@@ -6,6 +6,7 @@ description: >
     The Proxy constructor does not have a prototype property because
     proxy exotic objects do not have a [[Prototype]] internal slot
     that requires initialization.
+features: [Proxy]
 ---*/
 
 assert.sameValue(Object.hasOwnProperty.call(Proxy, 'prototype'), false);
diff --git a/test/built-ins/Proxy/proxy-undefined-newtarget.js b/test/built-ins/Proxy/proxy-undefined-newtarget.js
index 9b8566e92ee5ac77014687eacc5ab226203c99c7..14d77bb56c72a8435e8f1de9c405b4ce6d5fed1f 100644
--- a/test/built-ins/Proxy/proxy-undefined-newtarget.js
+++ b/test/built-ins/Proxy/proxy-undefined-newtarget.js
@@ -11,6 +11,7 @@ description: >
     1. If NewTarget is undefined, throw a TypeError exception.
     ...
 
+features: [Proxy]
 ---*/
 
 assert.throws(TypeError, function() {
diff --git a/test/built-ins/Proxy/revocable/length.js b/test/built-ins/Proxy/revocable/length.js
index ddc208d2242f1b432d693bc0f962d47ece6715a1..3033b979e719adb96f0b04e9fc017c469cfa18e1 100644
--- a/test/built-ins/Proxy/revocable/length.js
+++ b/test/built-ins/Proxy/revocable/length.js
@@ -20,6 +20,7 @@ info: |
     object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
     [[Configurable]]: true }.
 includes: [propertyHelper.js]
+features: [Proxy]
 ---*/
 
 assert.sameValue(Proxy.revocable.length, 2);
diff --git a/test/built-ins/Proxy/revocable/name.js b/test/built-ins/Proxy/revocable/name.js
index 66e10719b129ace10ff2a0845be0140b5f553300..5d3c844c24457a8dbb03c6e2531a0956fb1e1d2b 100644
--- a/test/built-ins/Proxy/revocable/name.js
+++ b/test/built-ins/Proxy/revocable/name.js
@@ -17,6 +17,7 @@ info: |
     object, if it exists, has the attributes { [[Writable]]: false,
     [[Enumerable]]: false, [[Configurable]]: true }.
 includes: [propertyHelper.js]
+features: [Proxy]
 ---*/
 
 assert.sameValue(Proxy.revocable.name, "revocable");
diff --git a/test/built-ins/Proxy/revocable/proxy.js b/test/built-ins/Proxy/revocable/proxy.js
index 32d4c27cd03b38e8291504f524d0f3e40e9dd821..fc7940a384a96884aa8ec524c27621ac2f0bb359 100644
--- a/test/built-ins/Proxy/revocable/proxy.js
+++ b/test/built-ins/Proxy/revocable/proxy.js
@@ -9,6 +9,7 @@ info: |
     Proxy.revocable ( target, handler )
 
     6. Perform CreateDataProperty(result, "proxy", p).
+features: [Proxy]
 ---*/
 
 var target = {
diff --git a/test/built-ins/Proxy/revocable/revocation-function-extensible.js b/test/built-ins/Proxy/revocable/revocation-function-extensible.js
index 8b8e6117df10813943059fc1a4ec5ede0c9f3fb6..e6a7a93ec57989220a898073630944540b902d38 100644
--- a/test/built-ins/Proxy/revocable/revocation-function-extensible.js
+++ b/test/built-ins/Proxy/revocable/revocation-function-extensible.js
@@ -8,6 +8,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: [Proxy]
 ---*/
 
 var revocationFunction = Proxy.revocable({}, {}).revoke;
diff --git a/test/built-ins/Proxy/revocable/revocation-function-length.js b/test/built-ins/Proxy/revocable/revocation-function-length.js
index 618ead532b4ad308ac0f3adfe98d2f4fd3ef6617..5ef5dbc332afac087be602f6a562d7f115fcb7e3 100644
--- a/test/built-ins/Proxy/revocable/revocation-function-length.js
+++ b/test/built-ins/Proxy/revocable/revocation-function-length.js
@@ -12,6 +12,7 @@ info: |
     object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
     [[Configurable]]: true }.
 includes: [propertyHelper.js]
+features: [Proxy]
 ---*/
 
 var revocationFunction = Proxy.revocable({}, {}).revoke;
diff --git a/test/built-ins/Proxy/revocable/revocation-function-name.js b/test/built-ins/Proxy/revocable/revocation-function-name.js
index c3e0d49c83f8d3ee0662f1a3f734066636b6bf7b..7c9045d20f7491f6014552fe00aeef1b78d71c17 100644
--- a/test/built-ins/Proxy/revocable/revocation-function-name.js
+++ b/test/built-ins/Proxy/revocable/revocation-function-name.js
@@ -11,6 +11,7 @@ info: |
     Every built-in Function object, including constructors, that is not
     identified as an anonymous function has a name property whose value
     is a String.
+features: [Proxy]
 ---*/
 
 var revocationFunction = Proxy.revocable({}, {}).revoke;
diff --git a/test/built-ins/Proxy/revocable/revocation-function-nonconstructor.js b/test/built-ins/Proxy/revocable/revocation-function-nonconstructor.js
index 1dd225538a397bf7fc4dc5c24e34fab68594a246..007e00e3847b55e4d9abb87f564793ab00391ea8 100644
--- a/test/built-ins/Proxy/revocable/revocation-function-nonconstructor.js
+++ b/test/built-ins/Proxy/revocable/revocation-function-nonconstructor.js
@@ -9,6 +9,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: [Proxy]
 ---*/
 
 var revocationFunction = Proxy.revocable({}, {}).revoke;
diff --git a/test/built-ins/Proxy/revocable/revocation-function-prototype.js b/test/built-ins/Proxy/revocable/revocation-function-prototype.js
index f1040d2ac5766d6b05d3614676566ca53b03c968..5890170b2bfddb3de4ca84019b5722e6fce1f274 100644
--- a/test/built-ins/Proxy/revocable/revocation-function-prototype.js
+++ b/test/built-ins/Proxy/revocable/revocation-function-prototype.js
@@ -10,6 +10,7 @@ info: |
     constructor has the Function prototype object, which is the initial
     value of the expression Function.prototype (19.2.3), as the value of
     its [[Prototype]] internal slot.
+features: [Proxy]
 ---*/
 
 var revocationFunction = Proxy.revocable({}, {}).revoke;
diff --git a/test/built-ins/Proxy/revocable/revoke-consecutive-call-returns-undefined.js b/test/built-ins/Proxy/revocable/revoke-consecutive-call-returns-undefined.js
index 7621db372c66983e5dcba0494cba5dc06268e741..2296de8238cc509ae3adc2547f6502244a4eb392 100644
--- a/test/built-ins/Proxy/revocable/revoke-consecutive-call-returns-undefined.js
+++ b/test/built-ins/Proxy/revocable/revoke-consecutive-call-returns-undefined.js
@@ -10,6 +10,7 @@ info: |
     ...
     1. Let p be the value of F’s [[RevocableProxy]] internal slot.
     2. If p is null, return undefined.
+features: [Proxy]
 ---*/
 
 var r = Proxy.revocable({}, {});
diff --git a/test/built-ins/Proxy/revocable/revoke-returns-undefined.js b/test/built-ins/Proxy/revocable/revoke-returns-undefined.js
index 8a05d694ec1faa22cd95991a2fb509ad3da0e13e..abb4afd7126c3cf7bd5084957d2c15a6a2aefbe5 100644
--- a/test/built-ins/Proxy/revocable/revoke-returns-undefined.js
+++ b/test/built-ins/Proxy/revocable/revoke-returns-undefined.js
@@ -9,6 +9,7 @@ info: |
 
     ...
     7. Return undefined.
+features: [Proxy]
 ---*/
 
 var r = Proxy.revocable({}, {});
diff --git a/test/built-ins/Proxy/revocable/revoke.js b/test/built-ins/Proxy/revocable/revoke.js
index 6a54f91d56f140b540d8e2cef2e13df7cda5e0eb..7ad537d2dd8f96402d6d1399976e1fd61c7bc541 100644
--- a/test/built-ins/Proxy/revocable/revoke.js
+++ b/test/built-ins/Proxy/revocable/revoke.js
@@ -8,6 +8,7 @@ info: |
     Proxy.revocable ( target, handler )
 
     7. Perform CreateDataProperty(result, "revoke", revoker).
+features: [Proxy]
 ---*/
 
 var r = Proxy.revocable({}, {});
diff --git a/test/built-ins/Proxy/set/boolean-trap-result-is-false-boolean-return-false.js b/test/built-ins/Proxy/set/boolean-trap-result-is-false-boolean-return-false.js
index 7f30f31c9479092f6870d4968541b545e57f07d0..81270ad62a5db06dd88a7ac974133325c359ea0f 100644
--- a/test/built-ins/Proxy/set/boolean-trap-result-is-false-boolean-return-false.js
+++ b/test/built-ins/Proxy/set/boolean-trap-result-is-false-boolean-return-false.js
@@ -6,7 +6,7 @@ description: >
     [[Set]] ( P, V, Receiver)
 
     11. If booleanTrapResult is false, return false.
-features: [Reflect]
+features: [Proxy, Reflect, Reflect.set]
 ---*/
 
 var target = {};
diff --git a/test/built-ins/Proxy/set/boolean-trap-result-is-false-null-return-false.js b/test/built-ins/Proxy/set/boolean-trap-result-is-false-null-return-false.js
index 20ae2d4901b3aa22130a0693907b326db2689d98..43f5e5718346b55ddca32d1a5a9749a50733eca2 100644
--- a/test/built-ins/Proxy/set/boolean-trap-result-is-false-null-return-false.js
+++ b/test/built-ins/Proxy/set/boolean-trap-result-is-false-null-return-false.js
@@ -6,7 +6,7 @@ description: >
     [[Set]] ( P, V, Receiver)
 
     11. If booleanTrapResult is false, return false.
-features: [Reflect]
+features: [Proxy, Reflect, Reflect.set]
 ---*/
 
 var target = {};
diff --git a/test/built-ins/Proxy/set/boolean-trap-result-is-false-number-return-false.js b/test/built-ins/Proxy/set/boolean-trap-result-is-false-number-return-false.js
index a1c4f2259b47672a4a65f059fb111da3be4f0421..527559ce1dcebeeb2b7e90d1a0f164c346237b54 100644
--- a/test/built-ins/Proxy/set/boolean-trap-result-is-false-number-return-false.js
+++ b/test/built-ins/Proxy/set/boolean-trap-result-is-false-number-return-false.js
@@ -6,7 +6,7 @@ description: >
     [[Set]] ( P, V, Receiver)
 
     11. If booleanTrapResult is false, return false.
-features: [Reflect]
+features: [Proxy, Reflect, Reflect.set]
 ---*/
 
 var target = {};
diff --git a/test/built-ins/Proxy/set/boolean-trap-result-is-false-string-return-false.js b/test/built-ins/Proxy/set/boolean-trap-result-is-false-string-return-false.js
index 78f8d8ec5b177df5159b89efa67bc0a607895cdb..42e1410f29f7218c8317ab356255b5f676b0f257 100644
--- a/test/built-ins/Proxy/set/boolean-trap-result-is-false-string-return-false.js
+++ b/test/built-ins/Proxy/set/boolean-trap-result-is-false-string-return-false.js
@@ -6,7 +6,7 @@ description: >
     [[Set]] ( P, V, Receiver)
 
     11. If booleanTrapResult is false, return false.
-features: [Reflect]
+features: [Proxy, Reflect, Reflect.set]
 ---*/
 
 var target = {};
diff --git a/test/built-ins/Proxy/set/boolean-trap-result-is-false-undefined-return-false.js b/test/built-ins/Proxy/set/boolean-trap-result-is-false-undefined-return-false.js
index a17dd5a3fedf37580fca70e2ca584bd52e5c39e0..a0da571fa0428452206c06f113758ae1fefb7c9c 100644
--- a/test/built-ins/Proxy/set/boolean-trap-result-is-false-undefined-return-false.js
+++ b/test/built-ins/Proxy/set/boolean-trap-result-is-false-undefined-return-false.js
@@ -6,7 +6,7 @@ description: >
     [[Set]] ( P, V, Receiver)
 
     11. If booleanTrapResult is false, return false.
-features: [Reflect]
+features: [Proxy, Reflect, Reflect.set]
 ---*/
 
 var target = {};
diff --git a/test/built-ins/Proxy/set/call-parameters.js b/test/built-ins/Proxy/set/call-parameters.js
index 3b2fa4234498af22d6111bc05f2695511e4b2f52..1780b2ee3b6fffe96790f9a5811fd1519aaebd6c 100644
--- a/test/built-ins/Proxy/set/call-parameters.js
+++ b/test/built-ins/Proxy/set/call-parameters.js
@@ -8,6 +8,7 @@ description: >
     9. Let booleanTrapResult be ToBoolean(Call(trap, handler, «target, P, V,
     Receiver»)).
 
+features: [Proxy]
 ---*/
 
 var _target, _handler, _prop, _value, _receiver;
diff --git a/test/built-ins/Proxy/set/null-handler.js b/test/built-ins/Proxy/set/null-handler.js
index 637c43a46e5527eb03e6586c0a6b964dda9b857f..71c4a602427bc88f55aa986012ac83f8f3a0f3dd 100644
--- a/test/built-ins/Proxy/set/null-handler.js
+++ b/test/built-ins/Proxy/set/null-handler.js
@@ -6,6 +6,7 @@ description: >
     [[Set]] ( P, V, Receiver)
 
     3. If handler is null, throw a TypeError exception.
+features: [Proxy]
 ---*/
 
 var p = Proxy.revocable({}, {});
diff --git a/test/built-ins/Proxy/set/return-is-abrupt.js b/test/built-ins/Proxy/set/return-is-abrupt.js
index 6f6ee2b25472aed04b118d0ecfa3f0eef389d95f..d5210c9aaff05a1c42ec13d93cea4b06bbb532a7 100644
--- a/test/built-ins/Proxy/set/return-is-abrupt.js
+++ b/test/built-ins/Proxy/set/return-is-abrupt.js
@@ -11,6 +11,7 @@ info: |
     9. Let booleanTrapResult be ToBoolean(Call(trap, handler, «target, P, V, Receiver»)).
     10. ReturnIfAbrupt(booleanTrapResult).
     ...
+features: [Proxy]
 ---*/
 
 var p = new Proxy({}, {
diff --git a/test/built-ins/Proxy/set/return-true-target-property-accessor-is-configurable-set-is-undefined.js b/test/built-ins/Proxy/set/return-true-target-property-accessor-is-configurable-set-is-undefined.js
index 20e5f2a95d0de8613483862999c3b7690b6f45ee..8e4b3e76782b0922d60daedf49fbefba2caf04e7 100644
--- a/test/built-ins/Proxy/set/return-true-target-property-accessor-is-configurable-set-is-undefined.js
+++ b/test/built-ins/Proxy/set/return-true-target-property-accessor-is-configurable-set-is-undefined.js
@@ -7,7 +7,7 @@ description: >
 
     Returns true if trap returns true and target property accessor is
     configurable and set is undefined.
-features: [Reflect]
+features: [Proxy, Reflect, Reflect.set]
 ---*/
 
 var target = {};
diff --git a/test/built-ins/Proxy/set/return-true-target-property-accessor-is-not-configurable.js b/test/built-ins/Proxy/set/return-true-target-property-accessor-is-not-configurable.js
index 89547216d36b2ed2846d90d0d0b56011dc2a967e..6630fe2edee4a7766145dd476bf829ba445bc5de 100644
--- a/test/built-ins/Proxy/set/return-true-target-property-accessor-is-not-configurable.js
+++ b/test/built-ins/Proxy/set/return-true-target-property-accessor-is-not-configurable.js
@@ -7,7 +7,7 @@ description: >
 
     Returns true if trap returns true and target property accessor is not
     configurable and set is not undefined.
-features: [Reflect]
+features: [Proxy, Reflect, Reflect.set]
 ---*/
 
 var target = {};
diff --git a/test/built-ins/Proxy/set/return-true-target-property-is-not-configurable.js b/test/built-ins/Proxy/set/return-true-target-property-is-not-configurable.js
index 730ecafe15b40f66314f53a0bc860514f66c5582..adb5f9a41cad626eb8281c8e4f4665ce491e9223 100644
--- a/test/built-ins/Proxy/set/return-true-target-property-is-not-configurable.js
+++ b/test/built-ins/Proxy/set/return-true-target-property-is-not-configurable.js
@@ -7,7 +7,7 @@ description: >
 
     Returns true if trap returns true and target property is not configurable
     but writable.
-features: [Reflect]
+features: [Proxy, Reflect, Reflect.set]
 ---*/
 
 var target = {};
diff --git a/test/built-ins/Proxy/set/return-true-target-property-is-not-writable.js b/test/built-ins/Proxy/set/return-true-target-property-is-not-writable.js
index 3fd7a5a95737e21fb50649de42d961342182ef3e..72b8db5489587c09bc829339f39ccd6835b68e7e 100644
--- a/test/built-ins/Proxy/set/return-true-target-property-is-not-writable.js
+++ b/test/built-ins/Proxy/set/return-true-target-property-is-not-writable.js
@@ -7,7 +7,7 @@ description: >
 
     Returns true if trap returns true and target property is configurable
     but not writable.
-features: [Reflect]
+features: [Proxy, Reflect, Reflect.set]
 ---*/
 
 var target = {};
diff --git a/test/built-ins/Proxy/set/target-property-is-accessor-not-configurable-set-is-undefined.js b/test/built-ins/Proxy/set/target-property-is-accessor-not-configurable-set-is-undefined.js
index 582336903d9f31cd4cd7119eb5229caf77aea101..a1520c5094093b8ef6c6b4b88cb407464931eea3 100644
--- a/test/built-ins/Proxy/set/target-property-is-accessor-not-configurable-set-is-undefined.js
+++ b/test/built-ins/Proxy/set/target-property-is-accessor-not-configurable-set-is-undefined.js
@@ -12,6 +12,7 @@ info: |
         b. If IsAccessorDescriptor(targetDesc) and targetDesc.[[Configurable]] is false, then
             i. If targetDesc.[[Set]] is undefined, throw a TypeError exception.
 
+features: [Proxy]
 ---*/
 
 var target = {};
diff --git a/test/built-ins/Proxy/set/target-property-is-not-configurable-not-writable-not-equal-to-v.js b/test/built-ins/Proxy/set/target-property-is-not-configurable-not-writable-not-equal-to-v.js
index 9bfd14990cef778e233193ef26ca175e16f6df27..89c34f5f822fe9a4f655c2023388028f464acd05 100644
--- a/test/built-ins/Proxy/set/target-property-is-not-configurable-not-writable-not-equal-to-v.js
+++ b/test/built-ins/Proxy/set/target-property-is-not-configurable-not-writable-not-equal-to-v.js
@@ -13,6 +13,7 @@ info: |
         false and targetDesc.[[Writable]] is false, then
             i. If SameValue(V, targetDesc.[[Value]]) is false, throw a TypeError
             exception.
+features: [Proxy]
 ---*/
 
 var target = {};
diff --git a/test/built-ins/Proxy/set/trap-is-not-callable-realm.js b/test/built-ins/Proxy/set/trap-is-not-callable-realm.js
index b6338c67fb317ad9643c5168fda6d1bb7ce24c97..5f5845b0e9c32793cfa46191fdb0c3c6d2b9f029 100644
--- a/test/built-ins/Proxy/set/trap-is-not-callable-realm.js
+++ b/test/built-ins/Proxy/set/trap-is-not-callable-realm.js
@@ -15,7 +15,7 @@ info: |
     7.3.9 GetMethod (O, P)
 
     5. If IsCallable(func) is false, throw a TypeError exception.
-features: [cross-realm]
+features: [cross-realm, Proxy]
 ---*/
 
 var OProxy = $262.createRealm().global.Proxy;
diff --git a/test/built-ins/Proxy/set/trap-is-not-callable.js b/test/built-ins/Proxy/set/trap-is-not-callable.js
index cd3622d7c68ec9e6cb2e18910b92c783d211fae5..de9e336c0d182d65db11a94750dc2e5b721696eb 100644
--- a/test/built-ins/Proxy/set/trap-is-not-callable.js
+++ b/test/built-ins/Proxy/set/trap-is-not-callable.js
@@ -13,6 +13,7 @@ info: |
     7.3.9 GetMethod (O, P)
 
     5. If IsCallable(func) is false, throw a TypeError exception.
+features: [Proxy]
 ---*/
 
 var p = new Proxy({}, {
diff --git a/test/built-ins/Proxy/set/trap-is-undefined-no-property.js b/test/built-ins/Proxy/set/trap-is-undefined-no-property.js
index 512cb83e1f2e710222a252158a82a8ca21466777..8323d9b3875405864104d2542a6e1b72468f6baf 100644
--- a/test/built-ins/Proxy/set/trap-is-undefined-no-property.js
+++ b/test/built-ins/Proxy/set/trap-is-undefined-no-property.js
@@ -7,6 +7,7 @@ description: >
 
     8. If trap is undefined, then return target.[[Set]](P, V, Receiver).
 
+features: [Proxy]
 ---*/
 
 var target = {
diff --git a/test/built-ins/Proxy/set/trap-is-undefined-receiver.js b/test/built-ins/Proxy/set/trap-is-undefined-receiver.js
index 4c915c49420f65766687c8a567206a0b69045bc1..255265d03945a2802ba2bbee205cf5e42465c5b8 100644
--- a/test/built-ins/Proxy/set/trap-is-undefined-receiver.js
+++ b/test/built-ins/Proxy/set/trap-is-undefined-receiver.js
@@ -10,6 +10,7 @@ info: |
 
     7. If trap is undefined, then
         a. Return ? target.[[Set]](P, V, Receiver).
+features: [Proxy]
 ---*/
 
 var context;
diff --git a/test/built-ins/Proxy/set/trap-is-undefined.js b/test/built-ins/Proxy/set/trap-is-undefined.js
index 06cadd7a0951270fe02625cd0d81e28e4edbcdbc..2a668a6356f543a085a01073bcaeef829c789dcf 100644
--- a/test/built-ins/Proxy/set/trap-is-undefined.js
+++ b/test/built-ins/Proxy/set/trap-is-undefined.js
@@ -7,6 +7,7 @@ description: >
 
     8. If trap is undefined, then return target.[[Set]](P, V, Receiver).
 
+features: [Proxy]
 ---*/
 
 var target = {
diff --git a/test/built-ins/Proxy/setPrototypeOf/call-parameters.js b/test/built-ins/Proxy/setPrototypeOf/call-parameters.js
index ff44703df8bdac7219c8adde5c13856975f052d5..df7aa375cdf8d8ddab36ae6a12d11a30eafb645a 100644
--- a/test/built-ins/Proxy/setPrototypeOf/call-parameters.js
+++ b/test/built-ins/Proxy/setPrototypeOf/call-parameters.js
@@ -11,6 +11,7 @@ info: |
     ...
     9. Let booleanTrapResult be ToBoolean(Call(trap, handler, «target, V»)).
     ...
+features: [Proxy]
 ---*/
 
 var _handler, _target, _value;
diff --git a/test/built-ins/Proxy/setPrototypeOf/internals-call-order.js b/test/built-ins/Proxy/setPrototypeOf/internals-call-order.js
index 8f2c3d502c8591f277be445a53bdc71ad2148fb9..0d75b09a882a58fc7d695a86f94e6864f8c502d5 100644
--- a/test/built-ins/Proxy/setPrototypeOf/internals-call-order.js
+++ b/test/built-ins/Proxy/setPrototypeOf/internals-call-order.js
@@ -14,7 +14,7 @@ info: |
   10. Let extensibleTarget be ? IsExtensible(target).
   11. If extensibleTarget is true, return true.
   12. Let targetProto be ? target.[[GetPrototypeOf]]().
-features: [Reflect.setPrototypeOf]
+features: [Proxy, Reflect, Reflect.setPrototypeOf]
 ---*/
 
 var calls = [];
diff --git a/test/built-ins/Proxy/setPrototypeOf/not-extensible-target-not-same-target-prototype.js b/test/built-ins/Proxy/setPrototypeOf/not-extensible-target-not-same-target-prototype.js
index d46138c3e189eb2155202f75edfcf806d5d08acb..b8aa3308d512b6621bd37cae6569a16bd9251c61 100644
--- a/test/built-ins/Proxy/setPrototypeOf/not-extensible-target-not-same-target-prototype.js
+++ b/test/built-ins/Proxy/setPrototypeOf/not-extensible-target-not-same-target-prototype.js
@@ -21,7 +21,7 @@ info: |
     16. If booleanTrapResult is true and SameValue(V, targetProto) is false,
     throw a TypeError exception.
     ...
-features: [Reflect.setPrototypeOf]
+features: [Proxy, Reflect, Reflect.setPrototypeOf]
 ---*/
 
 var target, proxy;
diff --git a/test/built-ins/Proxy/setPrototypeOf/not-extensible-target-same-target-prototype.js b/test/built-ins/Proxy/setPrototypeOf/not-extensible-target-same-target-prototype.js
index 26ec3a917695e4263139abf279a690f14d090f2a..22bfb93e3a6fa1427325a51ef14d724c2a6ba14a 100644
--- a/test/built-ins/Proxy/setPrototypeOf/not-extensible-target-same-target-prototype.js
+++ b/test/built-ins/Proxy/setPrototypeOf/not-extensible-target-same-target-prototype.js
@@ -12,7 +12,7 @@ info: |
   12. Let targetProto be ? target.[[GetPrototypeOf]]().
   13. If SameValue(V, targetProto) is false, throw a TypeError exception.
   14. Return true.
-features: [Reflect.setPrototypeOf]
+features: [Proxy, Reflect, Reflect.setPrototypeOf]
 ---*/
 
 var proto = {};
diff --git a/test/built-ins/Proxy/setPrototypeOf/null-handler.js b/test/built-ins/Proxy/setPrototypeOf/null-handler.js
index 8a78bc9653e8f963febfac7dc34f1b258715ec86..6ce40ec56d5f7ad43ac2932744b0aecc0b40936e 100644
--- a/test/built-ins/Proxy/setPrototypeOf/null-handler.js
+++ b/test/built-ins/Proxy/setPrototypeOf/null-handler.js
@@ -4,6 +4,7 @@
 es6id: 9.5.2
 description: >
     Throws a TypeError exception if handler is null
+features: [Proxy]
 ---*/
 
 var p = Proxy.revocable({}, {});
diff --git a/test/built-ins/Proxy/setPrototypeOf/return-abrupt-from-get-trap.js b/test/built-ins/Proxy/setPrototypeOf/return-abrupt-from-get-trap.js
index c547b55e7177367898b5785d8bbc8f7b640cb504..bf044a5b52d86aaaae8995cf6acc42e6afda4872 100644
--- a/test/built-ins/Proxy/setPrototypeOf/return-abrupt-from-get-trap.js
+++ b/test/built-ins/Proxy/setPrototypeOf/return-abrupt-from-get-trap.js
@@ -9,6 +9,7 @@ info: |
   [[SetPrototypeOf]] (V)
 
   6. Let trap be ? GetMethod(handler, "setPrototypeOf").
+features: [Proxy]
 ---*/
 
 var handler = Object.defineProperty({}, "setPrototypeOf", {
diff --git a/test/built-ins/Proxy/setPrototypeOf/return-abrupt-from-isextensible-target.js b/test/built-ins/Proxy/setPrototypeOf/return-abrupt-from-isextensible-target.js
index ee9980648ffceff26dec0632dd9c71ba67fdf2aa..87277dbe16d5197e196f32b63571f94620b2304a 100644
--- a/test/built-ins/Proxy/setPrototypeOf/return-abrupt-from-isextensible-target.js
+++ b/test/built-ins/Proxy/setPrototypeOf/return-abrupt-from-isextensible-target.js
@@ -9,6 +9,7 @@ info: |
   [[SetPrototypeOf]] (V)
 
   10. Let extensibleTarget be ? IsExtensible(target).
+features: [Proxy]
 ---*/
 
 var target = new Proxy({}, {
diff --git a/test/built-ins/Proxy/setPrototypeOf/return-abrupt-from-target-getprototypeof.js b/test/built-ins/Proxy/setPrototypeOf/return-abrupt-from-target-getprototypeof.js
index 3d9a80a9e2a0b7ebeb93b5e9e93a5406619c0a4a..06a293206a7c14b64f01df1e307a96990c2325ba 100644
--- a/test/built-ins/Proxy/setPrototypeOf/return-abrupt-from-target-getprototypeof.js
+++ b/test/built-ins/Proxy/setPrototypeOf/return-abrupt-from-target-getprototypeof.js
@@ -9,6 +9,7 @@ info: |
   [[SetPrototypeOf]] (V)
 
   12. Let targetProto be ? target.[[GetPrototypeOf]]().
+features: [Proxy]
 ---*/
 
 var target = new Proxy({}, {
diff --git a/test/built-ins/Proxy/setPrototypeOf/return-abrupt-from-trap.js b/test/built-ins/Proxy/setPrototypeOf/return-abrupt-from-trap.js
index 292515d93daf38c8ec76f5b18b84dfb8660bda65..afd0df92352bda50ed27380eccac2652b35623be 100644
--- a/test/built-ins/Proxy/setPrototypeOf/return-abrupt-from-trap.js
+++ b/test/built-ins/Proxy/setPrototypeOf/return-abrupt-from-trap.js
@@ -9,6 +9,7 @@ info: |
 
     9. Let booleanTrapResult be ToBoolean(Call(trap, handler, «target, V»)).
     10. ReturnIfAbrupt(booleanTrapResult).
+features: [Proxy]
 ---*/
 
 var p = new Proxy({}, {
diff --git a/test/built-ins/Proxy/setPrototypeOf/toboolean-trap-result-false.js b/test/built-ins/Proxy/setPrototypeOf/toboolean-trap-result-false.js
index e87fdf93d8f885efc2f188493c862c3431645f7d..50b08f39a8ba4530508422b679055abdc42160cf 100644
--- a/test/built-ins/Proxy/setPrototypeOf/toboolean-trap-result-false.js
+++ b/test/built-ins/Proxy/setPrototypeOf/toboolean-trap-result-false.js
@@ -13,7 +13,7 @@ info: |
   9. If booleanTrapResult is false, return false.
   10. Let extensibleTarget be ? IsExtensible(target).
   11. If extensibleTarget is true, return true.
-features: [Reflect.setPrototypeOf]
+features: [Proxy, Reflect, Reflect.setPrototypeOf]
 ---*/
 
 var called = 0;
diff --git a/test/built-ins/Proxy/setPrototypeOf/toboolean-trap-result-true-target-is-extensible.js b/test/built-ins/Proxy/setPrototypeOf/toboolean-trap-result-true-target-is-extensible.js
index 5353aaf006752b7f94087d0443ba26cc6b6a6534..cec54f75ad3dce7123be4c6fd2604193c6242f0d 100644
--- a/test/built-ins/Proxy/setPrototypeOf/toboolean-trap-result-true-target-is-extensible.js
+++ b/test/built-ins/Proxy/setPrototypeOf/toboolean-trap-result-true-target-is-extensible.js
@@ -13,7 +13,7 @@ info: |
   9. If booleanTrapResult is false, return false.
   10. Let extensibleTarget be ? IsExtensible(target).
   11. If extensibleTarget is true, return true.
-features: [Reflect.setPrototypeOf, Symbol]
+features: [Proxy, Reflect, Reflect.setPrototypeOf, Symbol]
 ---*/
 
 var called;
diff --git a/test/built-ins/Proxy/setPrototypeOf/trap-is-not-callable-realm.js b/test/built-ins/Proxy/setPrototypeOf/trap-is-not-callable-realm.js
index 7e7b7212d1afb15b42554951be1be4f7b44d0d10..e68db7348ef409ffbe75a9c4514669914bc2b7f2 100644
--- a/test/built-ins/Proxy/setPrototypeOf/trap-is-not-callable-realm.js
+++ b/test/built-ins/Proxy/setPrototypeOf/trap-is-not-callable-realm.js
@@ -20,7 +20,7 @@ info: |
         2. Let func be GetV(O, P).
         5. If IsCallable(func) is false, throw a TypeError exception.
         ...
-features: [cross-realm]
+features: [cross-realm, Proxy]
 ---*/
 
 var OProxy = $262.createRealm().global.Proxy;
diff --git a/test/built-ins/Proxy/setPrototypeOf/trap-is-not-callable.js b/test/built-ins/Proxy/setPrototypeOf/trap-is-not-callable.js
index c6977adb34914fc243c37f289da4a7f7005015e8..1dffdecc39ce4b743b7596641ebed8ac1b81474b 100644
--- a/test/built-ins/Proxy/setPrototypeOf/trap-is-not-callable.js
+++ b/test/built-ins/Proxy/setPrototypeOf/trap-is-not-callable.js
@@ -18,7 +18,7 @@ info: |
         2. Let func be GetV(O, P).
         5. If IsCallable(func) is false, throw a TypeError exception.
         ...
-features: [Reflect.setPrototypeOf]
+features: [Proxy, Reflect, Reflect.setPrototypeOf]
 ---*/
 
 var target = {};
diff --git a/test/built-ins/Proxy/setPrototypeOf/trap-is-undefined-or-null.js b/test/built-ins/Proxy/setPrototypeOf/trap-is-undefined-or-null.js
index 5e442100c5ae03e21100e557279b22dcf49e4c6b..625b7792e96c78e3de35019aed7100680664d35e 100644
--- a/test/built-ins/Proxy/setPrototypeOf/trap-is-undefined-or-null.js
+++ b/test/built-ins/Proxy/setPrototypeOf/trap-is-undefined-or-null.js
@@ -16,6 +16,7 @@ info: |
 
   2. Let func be ? GetV(V, P).
   3. If func is either undefined or null, return undefined.
+features: [Proxy]
 ---*/
 
 var proxy, called, value;
diff --git a/test/built-ins/Reflect/apply/apply.js b/test/built-ins/Reflect/apply/apply.js
index e7a9fa62ea440a0d581cfc69acae777f6e17e5f0..477abc79f288411dfc42f8799596de371264fd78 100644
--- a/test/built-ins/Reflect/apply/apply.js
+++ b/test/built-ins/Reflect/apply/apply.js
@@ -10,6 +10,7 @@ info: |
   17 ECMAScript Standard Built-in Objects
 
 includes: [propertyHelper.js]
+features: [Reflect]
 ---*/
 
 verifyNotEnumerable(Reflect, 'apply');
diff --git a/test/built-ins/Reflect/apply/arguments-list-is-not-array-like.js b/test/built-ins/Reflect/apply/arguments-list-is-not-array-like.js
index 1c3620624716066a6fb7303f4f1371105f0327bd..548368268398869b8dddc747003b8a73c3e1f83e 100644
--- a/test/built-ins/Reflect/apply/arguments-list-is-not-array-like.js
+++ b/test/built-ins/Reflect/apply/arguments-list-is-not-array-like.js
@@ -19,6 +19,7 @@ info: |
   4. Let len be ToLength(Get(obj, "length")).
   5. ReturnIfAbrupt(len).
   ...
+features: [Reflect]
 ---*/
 
 function fn() {}
diff --git a/test/built-ins/Reflect/apply/call-target.js b/test/built-ins/Reflect/apply/call-target.js
index bf07a0bfb451c521301bdcb406cb0150befdd0ca..5654d51686fd78090ae78cd12c263dc7e77e34f3 100644
--- a/test/built-ins/Reflect/apply/call-target.js
+++ b/test/built-ins/Reflect/apply/call-target.js
@@ -10,6 +10,7 @@ info: |
   ...
   4. Perform PrepareForTailCall().
   5. Return Call(target, thisArgument, args).
+features: [Reflect]
 ---*/
 
 var o = {};
diff --git a/test/built-ins/Reflect/apply/length.js b/test/built-ins/Reflect/apply/length.js
index ed670ec79421482aa828723058835c40966f85bb..8c66edfa969514c8ae0c157cd0260be3cd46bbda 100644
--- a/test/built-ins/Reflect/apply/length.js
+++ b/test/built-ins/Reflect/apply/length.js
@@ -5,6 +5,7 @@ es6id: 26.1.1
 description: >
   Reflect.apply.length value and property descriptor
 includes: [propertyHelper.js]
+features: [Reflect]
 ---*/
 
 assert.sameValue(
diff --git a/test/built-ins/Reflect/apply/name.js b/test/built-ins/Reflect/apply/name.js
index f3fa7f70aecca822f80883223ad6a9bb1a254dc9..7d71677f767526026039e051f53f745c1bf941f1 100644
--- a/test/built-ins/Reflect/apply/name.js
+++ b/test/built-ins/Reflect/apply/name.js
@@ -10,6 +10,7 @@ info: |
   17 ECMAScript Standard Built-in Objects
 
 includes: [propertyHelper.js]
+features: [Reflect]
 ---*/
 
 assert.sameValue(
diff --git a/test/built-ins/Reflect/apply/return-target-call-result.js b/test/built-ins/Reflect/apply/return-target-call-result.js
index b506a8091ecae059dd2eff6ee097c86366104e90..ee4c802bbf6efb56f32e9ade637d8873175a047f 100644
--- a/test/built-ins/Reflect/apply/return-target-call-result.js
+++ b/test/built-ins/Reflect/apply/return-target-call-result.js
@@ -10,6 +10,7 @@ info: |
   ...
   4. Perform PrepareForTailCall().
   5. Return Call(target, thisArgument, args).
+features: [Reflect]
 ---*/
 
 var o = {};
diff --git a/test/built-ins/Reflect/apply/target-is-not-callable-throws.js b/test/built-ins/Reflect/apply/target-is-not-callable-throws.js
index 42b7768b7cbc3a1c29087721374b6b45ae5861e1..15a175799d66b3f206a9283f6bd7f048cba52841 100644
--- a/test/built-ins/Reflect/apply/target-is-not-callable-throws.js
+++ b/test/built-ins/Reflect/apply/target-is-not-callable-throws.js
@@ -16,6 +16,7 @@ info: |
   2. If Type(argument) is not Object, return false.
   3. If argument has a [[Call]] internal method, return true.
   4. Return false.
+features: [Reflect]
 ---*/
 
 assert.throws(TypeError, function() {
diff --git a/test/built-ins/Reflect/construct/arguments-list-is-not-array-like.js b/test/built-ins/Reflect/construct/arguments-list-is-not-array-like.js
index 12eeac436173d4e7cc2c966b9e7db1b73b9b7871..fa6235b7bba9817fff3bf5eda250859478c9fe4b 100644
--- a/test/built-ins/Reflect/construct/arguments-list-is-not-array-like.js
+++ b/test/built-ins/Reflect/construct/arguments-list-is-not-array-like.js
@@ -19,6 +19,7 @@ info: |
   4. Let len be ToLength(Get(obj, "length")).
   5. ReturnIfAbrupt(len).
   ...
+features: [Reflect, Reflect.construct]
 ---*/
 
 function fn() {}
diff --git a/test/built-ins/Reflect/construct/construct.js b/test/built-ins/Reflect/construct/construct.js
index 38b4a277e073d88ffd67ac9979c8f71fc6a57537..ffe05462601d706e6753ea4a944dac806bfce5ab 100644
--- a/test/built-ins/Reflect/construct/construct.js
+++ b/test/built-ins/Reflect/construct/construct.js
@@ -10,6 +10,7 @@ info: |
   17 ECMAScript Standard Built-in Objects
 
 includes: [propertyHelper.js]
+features: [Reflect]
 ---*/
 
 verifyNotEnumerable(Reflect, 'construct');
diff --git a/test/built-ins/Reflect/construct/length.js b/test/built-ins/Reflect/construct/length.js
index 6891f0f0f0b804c390ed4ea50d21ceca543a506e..eec78e35d8143293d77640775efb098dd95425b6 100644
--- a/test/built-ins/Reflect/construct/length.js
+++ b/test/built-ins/Reflect/construct/length.js
@@ -9,6 +9,7 @@ info: |
 
   The length property of the construct function is 2.
 includes: [propertyHelper.js]
+features: [Reflect, Reflect.construct]
 ---*/
 
 assert.sameValue(
diff --git a/test/built-ins/Reflect/construct/name.js b/test/built-ins/Reflect/construct/name.js
index 1dd353df37d6600da5681dfb5902c51102714b1b..56b8b7651f2dcf3f8c5843b51066049620ed300d 100644
--- a/test/built-ins/Reflect/construct/name.js
+++ b/test/built-ins/Reflect/construct/name.js
@@ -10,6 +10,7 @@ info: |
   17 ECMAScript Standard Built-in Objects
 
 includes: [propertyHelper.js]
+features: [Reflect, Reflect.construct]
 ---*/
 
 assert.sameValue(
diff --git a/test/built-ins/Reflect/construct/newtarget-is-not-constructor-throws.js b/test/built-ins/Reflect/construct/newtarget-is-not-constructor-throws.js
index bd302806764e408aa1c46122ee591090e4907866..4b8a3357a8cf84afc3aa3c4b4553aa9009ddec64 100644
--- a/test/built-ins/Reflect/construct/newtarget-is-not-constructor-throws.js
+++ b/test/built-ins/Reflect/construct/newtarget-is-not-constructor-throws.js
@@ -11,6 +11,7 @@ info: |
   2. If newTarget is not present, let newTarget be target.
   3. Else, if IsConstructor(newTarget) is false, throw a TypeError exception.
   ...
+features: [Reflect, Reflect.construct]
 ---*/
 
 assert.throws(TypeError, function() {
diff --git a/test/built-ins/Reflect/construct/return-with-newtarget-argument.js b/test/built-ins/Reflect/construct/return-with-newtarget-argument.js
index 90f816297e9b5e82f25967613863b80298431930..ffffd2065abd6b71e18c3b0fefbed016653e0b3a 100644
--- a/test/built-ins/Reflect/construct/return-with-newtarget-argument.js
+++ b/test/built-ins/Reflect/construct/return-with-newtarget-argument.js
@@ -11,6 +11,7 @@ info: |
   2. If newTarget is not present, let newTarget be target.
   ...
   6. Return Construct(target, args, newTarget).
+features: [Reflect, Reflect.construct]
 ---*/
 
 var o = {};
diff --git a/test/built-ins/Reflect/construct/return-without-newtarget-argument.js b/test/built-ins/Reflect/construct/return-without-newtarget-argument.js
index db88a02a27ce2e50497d5e6371f68f19ee8cdf01..655263c5303f340aec5b54e3e234ce08c7fd85ae 100644
--- a/test/built-ins/Reflect/construct/return-without-newtarget-argument.js
+++ b/test/built-ins/Reflect/construct/return-without-newtarget-argument.js
@@ -11,6 +11,7 @@ info: |
   2. If newTarget is not present, let newTarget be target.
   ...
   6. Return Construct(target, args, newTarget).
+features: [Reflect, Reflect.construct]
 ---*/
 
 var o = {};
diff --git a/test/built-ins/Reflect/construct/target-is-not-constructor-throws.js b/test/built-ins/Reflect/construct/target-is-not-constructor-throws.js
index ddc01e3d19ab56099812af060816c246edcdb9f2..ce9bdb8dc030ac92e09bc07786019fe5076782df 100644
--- a/test/built-ins/Reflect/construct/target-is-not-constructor-throws.js
+++ b/test/built-ins/Reflect/construct/target-is-not-constructor-throws.js
@@ -8,6 +8,7 @@ info: |
   26.1.2 Reflect.construct ( target, argumentsList [, newTarget] )
 
   1. If IsConstructor(target) is false, throw a TypeError exception.
+features: [Reflect, Reflect.construct]
 ---*/
 
 assert.throws(TypeError, function() {
diff --git a/test/built-ins/Reflect/construct/use-arguments-list.js b/test/built-ins/Reflect/construct/use-arguments-list.js
index fd4a2f63628aca4410bfc0e25c7867bfb0f9b44f..8de17ad24370f71ec6af8835e86a180358ec664e 100644
--- a/test/built-ins/Reflect/construct/use-arguments-list.js
+++ b/test/built-ins/Reflect/construct/use-arguments-list.js
@@ -11,6 +11,7 @@ info: |
   2. If newTarget is not present, let newTarget be target.
   ...
   6. Return Construct(target, args, newTarget).
+features: [Reflect, Reflect.construct]
 ---*/
 
 function fn() {
diff --git a/test/built-ins/Reflect/defineProperty/define-properties.js b/test/built-ins/Reflect/defineProperty/define-properties.js
index a960a2defb46ee4802969d6ca00aca7bb7da9b77..03ad44e5803556e46c679f2c2f5ccd9ffb2e77ba 100644
--- a/test/built-ins/Reflect/defineProperty/define-properties.js
+++ b/test/built-ins/Reflect/defineProperty/define-properties.js
@@ -10,6 +10,7 @@ info: |
   ...
   6. Return target.[[DefineOwnProperty]](key, desc).
 includes: [propertyHelper.js]
+features: [Reflect]
 ---*/
 
 var o = {};
diff --git a/test/built-ins/Reflect/defineProperty/define-symbol-properties.js b/test/built-ins/Reflect/defineProperty/define-symbol-properties.js
index 0979130a062d0b78e0547513f092db6148cfb2fc..cc89e0de34b206ffc74b1e7da4c454c857c7b4cf 100644
--- a/test/built-ins/Reflect/defineProperty/define-symbol-properties.js
+++ b/test/built-ins/Reflect/defineProperty/define-symbol-properties.js
@@ -17,7 +17,7 @@ info: |
   3. If Type(key) is Symbol, then
     a. Return key.
   ...
-features: [Symbol]
+features: [Reflect, Symbol]
 ---*/
 
 var o = {};
diff --git a/test/built-ins/Reflect/defineProperty/defineProperty.js b/test/built-ins/Reflect/defineProperty/defineProperty.js
index 194fd0481ac3792fc15e85a08b3c91a5efa3fba3..cac9a76680fb1b23d7f24a2be2fc7bfd9e13eb1d 100644
--- a/test/built-ins/Reflect/defineProperty/defineProperty.js
+++ b/test/built-ins/Reflect/defineProperty/defineProperty.js
@@ -10,6 +10,7 @@ info: |
   17 ECMAScript Standard Built-in Objects
 
 includes: [propertyHelper.js]
+features: [Reflect]
 ---*/
 
 verifyNotEnumerable(Reflect, 'defineProperty');
diff --git a/test/built-ins/Reflect/defineProperty/length.js b/test/built-ins/Reflect/defineProperty/length.js
index 02005b2e2412fde2e471557f022eb125bdc4c14c..e5f137a6d997f6507c44011b2b0752e55ac89ba5 100644
--- a/test/built-ins/Reflect/defineProperty/length.js
+++ b/test/built-ins/Reflect/defineProperty/length.js
@@ -5,6 +5,7 @@ es6id: 26.1.3
 description: >
   Reflect.defineProperty.length value and property descriptor
 includes: [propertyHelper.js]
+features: [Reflect]
 ---*/
 
 assert.sameValue(
diff --git a/test/built-ins/Reflect/defineProperty/name.js b/test/built-ins/Reflect/defineProperty/name.js
index d2d16fd80c145dbc01d4b2e0da852fe78d2f26f9..59793358062a4a97f84518e7be96c873f5109aea 100644
--- a/test/built-ins/Reflect/defineProperty/name.js
+++ b/test/built-ins/Reflect/defineProperty/name.js
@@ -10,6 +10,7 @@ info: |
   17 ECMAScript Standard Built-in Objects
 
 includes: [propertyHelper.js]
+features: [Reflect]
 ---*/
 
 assert.sameValue(
diff --git a/test/built-ins/Reflect/defineProperty/return-abrupt-from-attributes.js b/test/built-ins/Reflect/defineProperty/return-abrupt-from-attributes.js
index 3f1254ff6b8eae33c6fb3b166d8b0d2a31c16c5a..458afc2ddaea670989acfa16bbe8a9af648e185d 100644
--- a/test/built-ins/Reflect/defineProperty/return-abrupt-from-attributes.js
+++ b/test/built-ins/Reflect/defineProperty/return-abrupt-from-attributes.js
@@ -11,6 +11,7 @@ info: |
   4. Let desc be ToPropertyDescriptor(attributes).
   5. ReturnIfAbrupt(desc).
   ...
+features: [Reflect]
 ---*/
 
 var attributes = {};
diff --git a/test/built-ins/Reflect/defineProperty/return-abrupt-from-property-key.js b/test/built-ins/Reflect/defineProperty/return-abrupt-from-property-key.js
index b08af58655252aa71defdfde0aab88656ed532f0..392d3aa0f154ed791bde7437bfe0029fb8b502b1 100644
--- a/test/built-ins/Reflect/defineProperty/return-abrupt-from-property-key.js
+++ b/test/built-ins/Reflect/defineProperty/return-abrupt-from-property-key.js
@@ -11,6 +11,7 @@ info: |
   2. Let key be ToPropertyKey(propertyKey).
   3. ReturnIfAbrupt(key).
   ...
+features: [Reflect]
 ---*/
 
 var p = {
diff --git a/test/built-ins/Reflect/defineProperty/return-abrupt-from-result.js b/test/built-ins/Reflect/defineProperty/return-abrupt-from-result.js
index 66f685f0f6c4171944df1e0e4c0e63fafad85b63..ee2aa7e85cafb75a2d82b3416e5c569a662fb151 100644
--- a/test/built-ins/Reflect/defineProperty/return-abrupt-from-result.js
+++ b/test/built-ins/Reflect/defineProperty/return-abrupt-from-result.js
@@ -16,7 +16,7 @@ info: |
   1. Let current be O.[[GetOwnProperty]](P).
   2. ReturnIfAbrupt(current).
   ...
-features: [Proxy]
+features: [Proxy, Reflect]
 ---*/
 
 var o = {};
diff --git a/test/built-ins/Reflect/defineProperty/return-boolean.js b/test/built-ins/Reflect/defineProperty/return-boolean.js
index 78a069ae5d1bf8c62a134ecf47e9367f471dbfaf..4e0ba306a72a1cc577df727c1bb592f719f8e058 100644
--- a/test/built-ins/Reflect/defineProperty/return-boolean.js
+++ b/test/built-ins/Reflect/defineProperty/return-boolean.js
@@ -9,6 +9,7 @@ info: |
 
   ...
   6. Return target.[[DefineOwnProperty]](key, desc).
+features: [Reflect]
 ---*/
 
 var o = {};
diff --git a/test/built-ins/Reflect/defineProperty/target-is-not-object-throws.js b/test/built-ins/Reflect/defineProperty/target-is-not-object-throws.js
index a250caa3651daede144af7b7c7c9cbd2a41e0486..3df6f8c11eae511a45dc261b67490fe47555c6f3 100644
--- a/test/built-ins/Reflect/defineProperty/target-is-not-object-throws.js
+++ b/test/built-ins/Reflect/defineProperty/target-is-not-object-throws.js
@@ -9,6 +9,7 @@ info: |
 
   1. If Type(target) is not Object, throw a TypeError exception.
   ...
+features: [Reflect]
 ---*/
 
 assert.throws(TypeError, function() {
diff --git a/test/built-ins/Reflect/defineProperty/target-is-symbol-throws.js b/test/built-ins/Reflect/defineProperty/target-is-symbol-throws.js
index 3ec8031212db2efc45c694d2a3028b5cbaa063ea..44615016d5331c1a2d3682472c4723ce979c0128 100644
--- a/test/built-ins/Reflect/defineProperty/target-is-symbol-throws.js
+++ b/test/built-ins/Reflect/defineProperty/target-is-symbol-throws.js
@@ -9,7 +9,7 @@ info: |
 
   1. If Type(target) is not Object, throw a TypeError exception.
   ...
-features: [Symbol]
+features: [Reflect, Symbol]
 ---*/
 
 assert.throws(TypeError, function() {
diff --git a/test/built-ins/Reflect/deleteProperty/delete-properties.js b/test/built-ins/Reflect/deleteProperty/delete-properties.js
index a9baea84a78ebb63506ffeb4c78786be205708d9..816f00d66fc5e95dee4aa4a257cceb1af661f50b 100644
--- a/test/built-ins/Reflect/deleteProperty/delete-properties.js
+++ b/test/built-ins/Reflect/deleteProperty/delete-properties.js
@@ -9,6 +9,7 @@ info: |
 
   ...
   4. Return target.[[Delete]](key).
+features: [Reflect]
 ---*/
 
 var o = {
diff --git a/test/built-ins/Reflect/deleteProperty/delete-symbol-properties.js b/test/built-ins/Reflect/deleteProperty/delete-symbol-properties.js
index fc1bca06955abf2c18f5cfa54fcd61f740b58fc7..da17bf36f8a85c0c7e4f957bd5e45ee867a77439 100644
--- a/test/built-ins/Reflect/deleteProperty/delete-symbol-properties.js
+++ b/test/built-ins/Reflect/deleteProperty/delete-symbol-properties.js
@@ -17,7 +17,7 @@ info: |
   3. If Type(key) is Symbol, then
     a. Return key.
   ...
-features: [Symbol]
+features: [Reflect, Symbol]
 ---*/
 
 var s = Symbol('1');
diff --git a/test/built-ins/Reflect/deleteProperty/deleteProperty.js b/test/built-ins/Reflect/deleteProperty/deleteProperty.js
index 5198eb424d5ecadd82adb1f9460bcc0eb7e874c7..86d44d7fa85dc29615b9ef733fd14665007e16f4 100644
--- a/test/built-ins/Reflect/deleteProperty/deleteProperty.js
+++ b/test/built-ins/Reflect/deleteProperty/deleteProperty.js
@@ -10,6 +10,7 @@ info: |
   17 ECMAScript Standard Built-in Objects
 
 includes: [propertyHelper.js]
+features: [Reflect]
 ---*/
 
 verifyNotEnumerable(Reflect, 'deleteProperty');
diff --git a/test/built-ins/Reflect/deleteProperty/length.js b/test/built-ins/Reflect/deleteProperty/length.js
index aa79904dc363cfbf97a63bc45f98edc78dbc7b81..2a0be6e69bf71a841b4765b0e444f2b67a7c41c7 100644
--- a/test/built-ins/Reflect/deleteProperty/length.js
+++ b/test/built-ins/Reflect/deleteProperty/length.js
@@ -5,6 +5,7 @@ es6id: 26.1.4
 description: >
   Reflect.deleteProperty.length value and property descriptor
 includes: [propertyHelper.js]
+features: [Reflect]
 ---*/
 
 assert.sameValue(
diff --git a/test/built-ins/Reflect/deleteProperty/name.js b/test/built-ins/Reflect/deleteProperty/name.js
index 3fd6e78cb46bd08f440cb1d7f22557a55ac6d4b9..dd8e15580216b305041d5dd64e3e7f39044e6dbf 100644
--- a/test/built-ins/Reflect/deleteProperty/name.js
+++ b/test/built-ins/Reflect/deleteProperty/name.js
@@ -10,6 +10,7 @@ info: |
   17 ECMAScript Standard Built-in Objects
 
 includes: [propertyHelper.js]
+features: [Reflect]
 ---*/
 
 assert.sameValue(
diff --git a/test/built-ins/Reflect/deleteProperty/return-abrupt-from-property-key.js b/test/built-ins/Reflect/deleteProperty/return-abrupt-from-property-key.js
index 4f34a6753b9b88cf1cf09b0e58b66221f4731162..695f8aff7dbc677f4d3d69db30c195c0119d162a 100644
--- a/test/built-ins/Reflect/deleteProperty/return-abrupt-from-property-key.js
+++ b/test/built-ins/Reflect/deleteProperty/return-abrupt-from-property-key.js
@@ -11,6 +11,7 @@ info: |
   2. Let key be ToPropertyKey(propertyKey).
   3. ReturnIfAbrupt(key).
   ...
+features: [Reflect]
 ---*/
 
 var p = {
diff --git a/test/built-ins/Reflect/deleteProperty/return-abrupt-from-result.js b/test/built-ins/Reflect/deleteProperty/return-abrupt-from-result.js
index e1098f0f0eb68cc061cbae557614e2d9d285e2ea..e7692065f5d42f8e82b34be83d3d424a7b665a7b 100644
--- a/test/built-ins/Reflect/deleteProperty/return-abrupt-from-result.js
+++ b/test/built-ins/Reflect/deleteProperty/return-abrupt-from-result.js
@@ -10,7 +10,7 @@ info: |
   ...
   6. Return target.[[DefineOwnProperty]](key, desc).
   ...
-features: [Proxy]
+features: [Proxy, Reflect]
 ---*/
 
 var o = {};
diff --git a/test/built-ins/Reflect/deleteProperty/return-boolean.js b/test/built-ins/Reflect/deleteProperty/return-boolean.js
index 4dc8e3eec06d2eee1847549c3078f6c467d51da3..60ddff6b8a684f38bfabf1115a08bdff7cadd164 100644
--- a/test/built-ins/Reflect/deleteProperty/return-boolean.js
+++ b/test/built-ins/Reflect/deleteProperty/return-boolean.js
@@ -9,6 +9,7 @@ info: |
 
   ...
   4. Return target.[[Delete]](key).
+features: [Reflect]
 ---*/
 
 var o = {};
diff --git a/test/built-ins/Reflect/deleteProperty/target-is-not-object-throws.js b/test/built-ins/Reflect/deleteProperty/target-is-not-object-throws.js
index 5d3373ff4be29db477475f39a1a7041050706e16..3c17c080302017e0bf7c8f8103af354887f95c73 100644
--- a/test/built-ins/Reflect/deleteProperty/target-is-not-object-throws.js
+++ b/test/built-ins/Reflect/deleteProperty/target-is-not-object-throws.js
@@ -9,6 +9,7 @@ info: |
 
   1. If Type(target) is not Object, throw a TypeError exception.
   ...
+features: [Reflect]
 ---*/
 
 assert.throws(TypeError, function() {
diff --git a/test/built-ins/Reflect/deleteProperty/target-is-symbol-throws.js b/test/built-ins/Reflect/deleteProperty/target-is-symbol-throws.js
index 9081895d572934dab45f5ec387429c900d77b774..1b732a2fa0ecabd71eac985fee33762fbf8951d5 100644
--- a/test/built-ins/Reflect/deleteProperty/target-is-symbol-throws.js
+++ b/test/built-ins/Reflect/deleteProperty/target-is-symbol-throws.js
@@ -9,7 +9,7 @@ info: |
 
   1. If Type(target) is not Object, throw a TypeError exception.
   ...
-features: [Symbol]
+features: [Reflect, Symbol]
 ---*/
 
 assert.throws(TypeError, function() {
diff --git a/test/built-ins/Reflect/enumerate/undefined.js b/test/built-ins/Reflect/enumerate/undefined.js
index e981cf70302eec237b18767f33490006d9ecfb26..f17547ffe343475a24fb55fa571e9a0bef70eade 100644
--- a/test/built-ins/Reflect/enumerate/undefined.js
+++ b/test/built-ins/Reflect/enumerate/undefined.js
@@ -4,6 +4,7 @@
 esid: sec-reflect-object
 description: >
   Reflect.enumerate was removed and it's not a function anymore
+features: [Reflect]
 ---*/
 
 assert.sameValue(Reflect.hasOwnProperty("enumerate"), false);
diff --git a/test/built-ins/Reflect/get/get.js b/test/built-ins/Reflect/get/get.js
index 05020eaaf67106b6865fd6901b4cc8bb1f10a9ee..c6dd68a3fd98df4a999cc3eac4af856c6df937f2 100644
--- a/test/built-ins/Reflect/get/get.js
+++ b/test/built-ins/Reflect/get/get.js
@@ -10,6 +10,7 @@ info: |
   17 ECMAScript Standard Built-in Objects
 
 includes: [propertyHelper.js]
+features: [Reflect]
 ---*/
 
 verifyNotEnumerable(Reflect, 'get');
diff --git a/test/built-ins/Reflect/get/length.js b/test/built-ins/Reflect/get/length.js
index 30a2e94156cfd6b7d82e7d9f8db27689e0738616..957d0bff80367856d881d1f56e7e67c5f80cc59e 100644
--- a/test/built-ins/Reflect/get/length.js
+++ b/test/built-ins/Reflect/get/length.js
@@ -9,6 +9,7 @@ info: |
 
   The length property of the get function is 2.
 includes: [propertyHelper.js]
+features: [Reflect]
 ---*/
 
 assert.sameValue(
diff --git a/test/built-ins/Reflect/get/name.js b/test/built-ins/Reflect/get/name.js
index 4c760390dbd4660fe616ea96e150c84778ab4b02..0913bfdd77c586247e8f5bbc2722db49639e4a0b 100644
--- a/test/built-ins/Reflect/get/name.js
+++ b/test/built-ins/Reflect/get/name.js
@@ -10,6 +10,7 @@ info: |
   17 ECMAScript Standard Built-in Objects
 
 includes: [propertyHelper.js]
+features: [Reflect]
 ---*/
 
 assert.sameValue(
diff --git a/test/built-ins/Reflect/get/return-abrupt-from-property-key.js b/test/built-ins/Reflect/get/return-abrupt-from-property-key.js
index 444b9e78c00f88ec165f142605f61abd863c0cd3..1e8d7e2e16cc98e3b4a7ad5d75c06adc10952060 100644
--- a/test/built-ins/Reflect/get/return-abrupt-from-property-key.js
+++ b/test/built-ins/Reflect/get/return-abrupt-from-property-key.js
@@ -11,6 +11,7 @@ info: |
   2. Let key be ToPropertyKey(propertyKey).
   3. ReturnIfAbrupt(key).
   ...
+features: [Reflect]
 ---*/
 
 var p = {
diff --git a/test/built-ins/Reflect/get/return-abrupt-from-result.js b/test/built-ins/Reflect/get/return-abrupt-from-result.js
index 6d6a93e9fefb7a19100df6ae5e47b0725954e47e..98077799cc3517d66f7c06e19a53adc3c6ec4b74 100644
--- a/test/built-ins/Reflect/get/return-abrupt-from-result.js
+++ b/test/built-ins/Reflect/get/return-abrupt-from-result.js
@@ -9,6 +9,7 @@ info: |
 
   ...
   5. Return target.[[Get]](key, receiver).
+features: [Reflect]
 ---*/
 
 var o1 = {};
diff --git a/test/built-ins/Reflect/get/return-value-from-receiver.js b/test/built-ins/Reflect/get/return-value-from-receiver.js
index 6d05b6e55849f1dd62e21ab339e4e5ca2a9cf8c0..06315b42d901f876e603a95de75f8fc01f88bdb7 100644
--- a/test/built-ins/Reflect/get/return-value-from-receiver.js
+++ b/test/built-ins/Reflect/get/return-value-from-receiver.js
@@ -27,6 +27,7 @@ info: |
   desc.[[Get]].
   7. If getter is undefined, return undefined.
   8. Return Call(getter, Receiver).
+features: [Reflect]
 ---*/
 
 var o1 = {};
diff --git a/test/built-ins/Reflect/get/return-value-from-symbol-key.js b/test/built-ins/Reflect/get/return-value-from-symbol-key.js
index b3c419b7210e7266649a1497b35314c1b6fbb257..52e88b8f767abee8fc43a732dd62104453f76c86 100644
--- a/test/built-ins/Reflect/get/return-value-from-symbol-key.js
+++ b/test/built-ins/Reflect/get/return-value-from-symbol-key.js
@@ -17,7 +17,7 @@ info: |
   3. If Type(key) is Symbol, then
     a. Return key.
   ...
-features: [Symbol]
+features: [Reflect, Symbol]
 ---*/
 
 var o = {};
diff --git a/test/built-ins/Reflect/get/return-value.js b/test/built-ins/Reflect/get/return-value.js
index c000d52c530564787e02c3a88723a348c0f69d48..ebfa33b800606096bed3e303580602a35eb9086c 100644
--- a/test/built-ins/Reflect/get/return-value.js
+++ b/test/built-ins/Reflect/get/return-value.js
@@ -27,6 +27,7 @@ info: |
   desc.[[Get]].
   7. If getter is undefined, return undefined.
   8. Return Call(getter, Receiver).
+features: [Reflect]
 ---*/
 
 var o = {};
diff --git a/test/built-ins/Reflect/get/target-is-not-object-throws.js b/test/built-ins/Reflect/get/target-is-not-object-throws.js
index 4d578a8de65c7bd67916e0fdbe398374612d71ff..f4a91722adc640cacb505f00d8aaa8d74f848120 100644
--- a/test/built-ins/Reflect/get/target-is-not-object-throws.js
+++ b/test/built-ins/Reflect/get/target-is-not-object-throws.js
@@ -9,6 +9,7 @@ info: |
 
   1. If Type(target) is not Object, throw a TypeError exception.
   ...
+features: [Reflect]
 ---*/
 
 assert.throws(TypeError, function() {
diff --git a/test/built-ins/Reflect/get/target-is-symbol-throws.js b/test/built-ins/Reflect/get/target-is-symbol-throws.js
index f503032d23a9d0061e849d7b597060f425c94ad5..859907e9284ec931b827f85d099f248c8d4e94bd 100644
--- a/test/built-ins/Reflect/get/target-is-symbol-throws.js
+++ b/test/built-ins/Reflect/get/target-is-symbol-throws.js
@@ -9,7 +9,7 @@ info: |
 
   1. If Type(target) is not Object, throw a TypeError exception.
   ...
-features: [Symbol]
+features: [Reflect, Symbol]
 ---*/
 
 assert.throws(TypeError, function() {
diff --git a/test/built-ins/Reflect/getOwnPropertyDescriptor/getOwnPropertyDescriptor.js b/test/built-ins/Reflect/getOwnPropertyDescriptor/getOwnPropertyDescriptor.js
index c5e2bd47b6ec46d1ed5c22b335da3fdf94303f4a..1f0f6274a1f76f36966847a4091a4fb6143486f9 100644
--- a/test/built-ins/Reflect/getOwnPropertyDescriptor/getOwnPropertyDescriptor.js
+++ b/test/built-ins/Reflect/getOwnPropertyDescriptor/getOwnPropertyDescriptor.js
@@ -10,6 +10,7 @@ info: |
   17 ECMAScript Standard Built-in Objects
 
 includes: [propertyHelper.js]
+features: [Reflect]
 ---*/
 
 verifyNotEnumerable(Reflect, 'getOwnPropertyDescriptor');
diff --git a/test/built-ins/Reflect/getOwnPropertyDescriptor/length.js b/test/built-ins/Reflect/getOwnPropertyDescriptor/length.js
index 6335bf455ad5cbad27477c26dd51b6b5d15fd289..a5eb0a1144767cf70c2ff41766d34d082f314795 100644
--- a/test/built-ins/Reflect/getOwnPropertyDescriptor/length.js
+++ b/test/built-ins/Reflect/getOwnPropertyDescriptor/length.js
@@ -5,6 +5,7 @@ es6id: 26.1.7
 description: >
   Reflect.getOwnPropertyDescriptor.length value and property descriptor
 includes: [propertyHelper.js]
+features: [Reflect]
 ---*/
 
 assert.sameValue(
diff --git a/test/built-ins/Reflect/getOwnPropertyDescriptor/name.js b/test/built-ins/Reflect/getOwnPropertyDescriptor/name.js
index 721c68857eac0f21fd6352eff2bf01fbff6934de..6d487eeafb4fe3f003da80ef565c799c5edc85a5 100644
--- a/test/built-ins/Reflect/getOwnPropertyDescriptor/name.js
+++ b/test/built-ins/Reflect/getOwnPropertyDescriptor/name.js
@@ -10,6 +10,7 @@ info: |
   17 ECMAScript Standard Built-in Objects
 
 includes: [propertyHelper.js]
+features: [Reflect]
 ---*/
 
 assert.sameValue(
diff --git a/test/built-ins/Reflect/getOwnPropertyDescriptor/return-abrupt-from-property-key.js b/test/built-ins/Reflect/getOwnPropertyDescriptor/return-abrupt-from-property-key.js
index 3012ed523cd50696e877e6de93385ee21bec7d21..9df239485812ebeb4015d79e055a3ad9167dc3b8 100644
--- a/test/built-ins/Reflect/getOwnPropertyDescriptor/return-abrupt-from-property-key.js
+++ b/test/built-ins/Reflect/getOwnPropertyDescriptor/return-abrupt-from-property-key.js
@@ -11,6 +11,7 @@ info: |
   2. Let key be ToPropertyKey(propertyKey).
   3. ReturnIfAbrupt(key).
   ...
+features: [Reflect]
 ---*/
 
 var p = {
diff --git a/test/built-ins/Reflect/getOwnPropertyDescriptor/return-abrupt-from-result.js b/test/built-ins/Reflect/getOwnPropertyDescriptor/return-abrupt-from-result.js
index 4d7243298b68d283e011f4b4aa8550d5d20feab6..7a6171d7342010bffd931c70f58c6d1e1e42d743 100644
--- a/test/built-ins/Reflect/getOwnPropertyDescriptor/return-abrupt-from-result.js
+++ b/test/built-ins/Reflect/getOwnPropertyDescriptor/return-abrupt-from-result.js
@@ -11,7 +11,7 @@ info: |
   4. Let desc be target.[[GetOwnProperty]](key).
   5. ReturnIfAbrupt(desc).
   ...
-features: [Proxy]
+features: [Proxy, Reflect]
 ---*/
 
 var o1 = {};
diff --git a/test/built-ins/Reflect/getOwnPropertyDescriptor/return-from-accessor-descriptor.js b/test/built-ins/Reflect/getOwnPropertyDescriptor/return-from-accessor-descriptor.js
index 4168de3ec1e6bce59b46474ff4f16a0d5d11521e..0435b769ec6942b771e83c303d252120ca8a06c0 100644
--- a/test/built-ins/Reflect/getOwnPropertyDescriptor/return-from-accessor-descriptor.js
+++ b/test/built-ins/Reflect/getOwnPropertyDescriptor/return-from-accessor-descriptor.js
@@ -33,6 +33,7 @@ info: |
   11. Return obj.
 
 includes: [compareArray.js]
+features: [Reflect]
 ---*/
 
 var o1 = {};
diff --git a/test/built-ins/Reflect/getOwnPropertyDescriptor/return-from-data-descriptor.js b/test/built-ins/Reflect/getOwnPropertyDescriptor/return-from-data-descriptor.js
index 79694d89abe83947a6d3c8f0bf55412ae1a15205..0b852a0653f55ec23e7e883d3ce368771208aca3 100644
--- a/test/built-ins/Reflect/getOwnPropertyDescriptor/return-from-data-descriptor.js
+++ b/test/built-ins/Reflect/getOwnPropertyDescriptor/return-from-data-descriptor.js
@@ -12,6 +12,7 @@ info: |
   5. ReturnIfAbrupt(desc).
   6. Return FromPropertyDescriptor(desc).
 includes: [compareArray.js]
+features: [Reflect]
 ---*/
 
 var o1 = {
diff --git a/test/built-ins/Reflect/getOwnPropertyDescriptor/symbol-property.js b/test/built-ins/Reflect/getOwnPropertyDescriptor/symbol-property.js
index 4967736134389bdd2c1cb8d4c06aebc375b48d38..d6a3b5ea3fabb176f4e9a0499b71ddc98a2f830d 100644
--- a/test/built-ins/Reflect/getOwnPropertyDescriptor/symbol-property.js
+++ b/test/built-ins/Reflect/getOwnPropertyDescriptor/symbol-property.js
@@ -18,7 +18,7 @@ info: |
     a. Return key.
   ...
 includes: [compareArray.js]
-features: [Symbol]
+features: [Reflect, Symbol]
 ---*/
 
 var o = {};
diff --git a/test/built-ins/Reflect/getOwnPropertyDescriptor/target-is-not-object-throws.js b/test/built-ins/Reflect/getOwnPropertyDescriptor/target-is-not-object-throws.js
index 4cc0617f7bbda9ccc8f23def3e1da983f59a00f6..ff73c24760c6ae2f28832a6b575cc795b1096181 100644
--- a/test/built-ins/Reflect/getOwnPropertyDescriptor/target-is-not-object-throws.js
+++ b/test/built-ins/Reflect/getOwnPropertyDescriptor/target-is-not-object-throws.js
@@ -9,6 +9,7 @@ info: |
 
   1. If Type(target) is not Object, throw a TypeError exception.
   ...
+features: [Reflect]
 ---*/
 
 assert.throws(TypeError, function() {
diff --git a/test/built-ins/Reflect/getOwnPropertyDescriptor/target-is-symbol-throws.js b/test/built-ins/Reflect/getOwnPropertyDescriptor/target-is-symbol-throws.js
index 631a111e8b0c11ecfb8c573bf18de29297e52b59..db9c68ddcabafe8d3630cf7376e242d70393ac19 100644
--- a/test/built-ins/Reflect/getOwnPropertyDescriptor/target-is-symbol-throws.js
+++ b/test/built-ins/Reflect/getOwnPropertyDescriptor/target-is-symbol-throws.js
@@ -9,7 +9,7 @@ info: |
 
   1. If Type(target) is not Object, throw a TypeError exception.
   ...
-features: [Symbol]
+features: [Reflect, Symbol]
 ---*/
 
 assert.throws(TypeError, function() {
diff --git a/test/built-ins/Reflect/getOwnPropertyDescriptor/undefined-own-property.js b/test/built-ins/Reflect/getOwnPropertyDescriptor/undefined-own-property.js
index 0f97d52c54e615a05cd2736928d7d45e69d71657..01a94cc8aa0505a380a31264a5d10bf08e25afea 100644
--- a/test/built-ins/Reflect/getOwnPropertyDescriptor/undefined-own-property.js
+++ b/test/built-ins/Reflect/getOwnPropertyDescriptor/undefined-own-property.js
@@ -15,6 +15,7 @@ info: |
   6.2.4.4 FromPropertyDescriptor ( Desc )
 
   1. If Desc is undefined, return undefined.
+features: [Reflect]
 ---*/
 
 var o = Object.create({
diff --git a/test/built-ins/Reflect/getOwnPropertyDescriptor/undefined-property.js b/test/built-ins/Reflect/getOwnPropertyDescriptor/undefined-property.js
index fc97057b601136fbf45f7eeb5ac49a14635f31d7..0efaab91be86943e7a0a9eff06339bf80cad3fd5 100644
--- a/test/built-ins/Reflect/getOwnPropertyDescriptor/undefined-property.js
+++ b/test/built-ins/Reflect/getOwnPropertyDescriptor/undefined-property.js
@@ -15,6 +15,7 @@ info: |
   6.2.4.4 FromPropertyDescriptor ( Desc )
 
   1. If Desc is undefined, return undefined.
+features: [Reflect]
 ---*/
 
 var result = Reflect.getOwnPropertyDescriptor({}, undefined);
diff --git a/test/built-ins/Reflect/getPrototypeOf/getPrototypeOf.js b/test/built-ins/Reflect/getPrototypeOf/getPrototypeOf.js
index 79eb77756636a7418463dc500a3860d0600b789b..aa02dcbd64d77fd333406b65625464e8ca7cf5d1 100644
--- a/test/built-ins/Reflect/getPrototypeOf/getPrototypeOf.js
+++ b/test/built-ins/Reflect/getPrototypeOf/getPrototypeOf.js
@@ -10,6 +10,7 @@ info: |
   17 ECMAScript Standard Built-in Objects
 
 includes: [propertyHelper.js]
+features: [Reflect]
 ---*/
 
 verifyNotEnumerable(Reflect, 'getPrototypeOf');
diff --git a/test/built-ins/Reflect/getPrototypeOf/length.js b/test/built-ins/Reflect/getPrototypeOf/length.js
index e57b7a8932b26710b462f5c2ccce1e714769809e..2c9335e8ca23929aa280a0da74efe527363165ab 100644
--- a/test/built-ins/Reflect/getPrototypeOf/length.js
+++ b/test/built-ins/Reflect/getPrototypeOf/length.js
@@ -5,6 +5,7 @@ es6id: 26.1.8
 description: >
   Reflect.getPrototypeOf.length value and property descriptor
 includes: [propertyHelper.js]
+features: [Reflect]
 ---*/
 
 assert.sameValue(
diff --git a/test/built-ins/Reflect/getPrototypeOf/name.js b/test/built-ins/Reflect/getPrototypeOf/name.js
index 9b40da4328016b8eeea3504276f8a3b8de282c27..49c5d033a13d273f563aa3d419acaeded19d3dae 100644
--- a/test/built-ins/Reflect/getPrototypeOf/name.js
+++ b/test/built-ins/Reflect/getPrototypeOf/name.js
@@ -10,6 +10,7 @@ info: |
   17 ECMAScript Standard Built-in Objects
 
 includes: [propertyHelper.js]
+features: [Reflect]
 ---*/
 
 assert.sameValue(
diff --git a/test/built-ins/Reflect/getPrototypeOf/null-prototype.js b/test/built-ins/Reflect/getPrototypeOf/null-prototype.js
index 71ba4efcd650b25a238100fdf452dd077a7df8f1..5098134316d6ea91d0274609700da6d5538b04e1 100644
--- a/test/built-ins/Reflect/getPrototypeOf/null-prototype.js
+++ b/test/built-ins/Reflect/getPrototypeOf/null-prototype.js
@@ -9,6 +9,7 @@ info: |
 
   ...
   2. Return target.[[GetPrototypeOf]]().
+features: [Reflect]
 ---*/
 
 var o = Object.create(null);
diff --git a/test/built-ins/Reflect/getPrototypeOf/return-abrupt-from-result.js b/test/built-ins/Reflect/getPrototypeOf/return-abrupt-from-result.js
index 15eae3176bbe0d503d0a3ce4cbf5dca6c8cf9658..c83ac5445aea3ef13a5ba6e4702f909f83541165 100644
--- a/test/built-ins/Reflect/getPrototypeOf/return-abrupt-from-result.js
+++ b/test/built-ins/Reflect/getPrototypeOf/return-abrupt-from-result.js
@@ -10,7 +10,7 @@ info: |
   ...
   2. Return target.[[GetPrototypeOf]]().
   ...
-features: [Proxy]
+features: [Proxy, Reflect]
 ---*/
 
 var o1 = {};
diff --git a/test/built-ins/Reflect/getPrototypeOf/return-prototype.js b/test/built-ins/Reflect/getPrototypeOf/return-prototype.js
index e561f60478c388c1a627cab2dfb7259188de0bec..e94c16a55e36aebbc958896eb2e9fc43ba399899 100644
--- a/test/built-ins/Reflect/getPrototypeOf/return-prototype.js
+++ b/test/built-ins/Reflect/getPrototypeOf/return-prototype.js
@@ -9,6 +9,7 @@ info: |
 
   ...
   2. Return target.[[GetPrototypeOf]]().
+features: [Reflect]
 ---*/
 
 var o = {};
diff --git a/test/built-ins/Reflect/getPrototypeOf/skip-own-properties.js b/test/built-ins/Reflect/getPrototypeOf/skip-own-properties.js
index f035cb328d1c2644d5b3dcdc597cbe3a85e923ef..e60679410e9286d62b2d0c407db73ebcb1ddca3b 100644
--- a/test/built-ins/Reflect/getPrototypeOf/skip-own-properties.js
+++ b/test/built-ins/Reflect/getPrototypeOf/skip-own-properties.js
@@ -9,6 +9,7 @@ info: |
 
   ...
   2. Return target.[[GetPrototypeOf]]().
+features: [Reflect]
 ---*/
 
 var valid = {};
diff --git a/test/built-ins/Reflect/getPrototypeOf/target-is-not-object-throws.js b/test/built-ins/Reflect/getPrototypeOf/target-is-not-object-throws.js
index 65b0733894d846005662839b0a355937da08214f..7b4c79ad5aacee0bfd791ef5012dc02ebe983b15 100644
--- a/test/built-ins/Reflect/getPrototypeOf/target-is-not-object-throws.js
+++ b/test/built-ins/Reflect/getPrototypeOf/target-is-not-object-throws.js
@@ -9,6 +9,7 @@ info: |
 
   1. If Type(target) is not Object, throw a TypeError exception.
   ...
+features: [Reflect]
 ---*/
 
 assert.throws(TypeError, function() {
diff --git a/test/built-ins/Reflect/getPrototypeOf/target-is-symbol-throws.js b/test/built-ins/Reflect/getPrototypeOf/target-is-symbol-throws.js
index 9e94198e4f205b8edec9bdb0a482400b1f8caf76..41f6c12b1a5f841e2f42574766abac7bc283ef7a 100644
--- a/test/built-ins/Reflect/getPrototypeOf/target-is-symbol-throws.js
+++ b/test/built-ins/Reflect/getPrototypeOf/target-is-symbol-throws.js
@@ -9,7 +9,7 @@ info: |
 
   1. If Type(target) is not Object, throw a TypeError exception.
   ...
-features: [Symbol]
+features: [Reflect, Symbol]
 ---*/
 
 assert.throws(TypeError, function() {
diff --git a/test/built-ins/Reflect/has/has.js b/test/built-ins/Reflect/has/has.js
index 8da8b4e61d5ab2579a2eb4b5727b3d56f4c1dee7..e5e6e76b074a716940b0a969dc2c2e005eab3676 100644
--- a/test/built-ins/Reflect/has/has.js
+++ b/test/built-ins/Reflect/has/has.js
@@ -10,6 +10,7 @@ info: |
   17 ECMAScript Standard Built-in Objects
 
 includes: [propertyHelper.js]
+features: [Reflect]
 ---*/
 
 verifyNotEnumerable(Reflect, 'has');
diff --git a/test/built-ins/Reflect/has/length.js b/test/built-ins/Reflect/has/length.js
index 9d9123899ff91c2270cbd8fb7ace5f9892ec1aad..aaa7f74613ccc7a83d06f8e6f56d8f055e354be9 100644
--- a/test/built-ins/Reflect/has/length.js
+++ b/test/built-ins/Reflect/has/length.js
@@ -5,6 +5,7 @@ es6id: 26.1.9
 description: >
   Reflect.has.length value and property descriptor
 includes: [propertyHelper.js]
+features: [Reflect]
 ---*/
 
 assert.sameValue(
diff --git a/test/built-ins/Reflect/has/name.js b/test/built-ins/Reflect/has/name.js
index cd7834283e02ed611eae81451d5c5d284dcce679..c735a600f68a18c84c67025fc634cc12986ad6ee 100644
--- a/test/built-ins/Reflect/has/name.js
+++ b/test/built-ins/Reflect/has/name.js
@@ -10,6 +10,7 @@ info: |
   17 ECMAScript Standard Built-in Objects
 
 includes: [propertyHelper.js]
+features: [Reflect]
 ---*/
 
 assert.sameValue(
diff --git a/test/built-ins/Reflect/has/return-abrupt-from-property-key.js b/test/built-ins/Reflect/has/return-abrupt-from-property-key.js
index c1ef87b4ac64cc5d345f1dc63df0d67618dc82b4..bacf39f4908e98a6c436452212ebaab3d8dc0fc1 100644
--- a/test/built-ins/Reflect/has/return-abrupt-from-property-key.js
+++ b/test/built-ins/Reflect/has/return-abrupt-from-property-key.js
@@ -11,6 +11,7 @@ info: |
   2. Let key be ToPropertyKey(propertyKey).
   3. ReturnIfAbrupt(key).
   ...
+features: [Reflect]
 ---*/
 
 var p = {
diff --git a/test/built-ins/Reflect/has/return-abrupt-from-result.js b/test/built-ins/Reflect/has/return-abrupt-from-result.js
index b74f1db5a0dae7598e0a993ad12b8b48787bcca6..5f9ac9c5efc3c4c5b2cf03ee7182c01934c7cd63 100644
--- a/test/built-ins/Reflect/has/return-abrupt-from-result.js
+++ b/test/built-ins/Reflect/has/return-abrupt-from-result.js
@@ -9,7 +9,7 @@ info: |
 
   ...
   4. Return target.[[HasProperty]](key).
-features: [Proxy]
+features: [Proxy, Reflect]
 ---*/
 
 var o = {};
diff --git a/test/built-ins/Reflect/has/return-boolean.js b/test/built-ins/Reflect/has/return-boolean.js
index 6b74da5f578713ed708228d225629c914d19a875..b53450ad78b646cd08de6e0ba9efb4d33fc60456 100644
--- a/test/built-ins/Reflect/has/return-boolean.js
+++ b/test/built-ins/Reflect/has/return-boolean.js
@@ -21,6 +21,7 @@ info: |
   6. If parent is not null, then
     a. Return parent.[[HasProperty]](P).
   7. Return false.
+features: [Reflect]
 ---*/
 
 var o1 = {
diff --git a/test/built-ins/Reflect/has/symbol-property.js b/test/built-ins/Reflect/has/symbol-property.js
index a706f6b84d564dd698e8fa2a4cf922dd2cd417b2..8b50b771f8fbdc61b393703764a03eec9ba99aea 100644
--- a/test/built-ins/Reflect/has/symbol-property.js
+++ b/test/built-ins/Reflect/has/symbol-property.js
@@ -17,7 +17,7 @@ info: |
   3. If Type(key) is Symbol, then
     a. Return key.
   ...
-features: [Symbol]
+features: [Reflect, Symbol]
 ---*/
 
 var o = {};
diff --git a/test/built-ins/Reflect/has/target-is-not-object-throws.js b/test/built-ins/Reflect/has/target-is-not-object-throws.js
index d3806d9e72e4793acd1f7589ab4f88c858037221..ba52a0c249a13d9d1c064ade526f5eea80d756a4 100644
--- a/test/built-ins/Reflect/has/target-is-not-object-throws.js
+++ b/test/built-ins/Reflect/has/target-is-not-object-throws.js
@@ -9,6 +9,7 @@ info: |
 
   1. If Type(target) is not Object, throw a TypeError exception.
   ...
+features: [Reflect]
 ---*/
 
 assert.throws(TypeError, function() {
diff --git a/test/built-ins/Reflect/has/target-is-symbol-throws.js b/test/built-ins/Reflect/has/target-is-symbol-throws.js
index 3cd7fe4523e50e9645ab99cb451675035aa9a5ea..936f08b1a8d1a9121f05d25167bcf1c7c096e893 100644
--- a/test/built-ins/Reflect/has/target-is-symbol-throws.js
+++ b/test/built-ins/Reflect/has/target-is-symbol-throws.js
@@ -9,7 +9,7 @@ info: |
 
   1. If Type(target) is not Object, throw a TypeError exception.
   ...
-features: [Symbol]
+features: [Reflect, Symbol]
 ---*/
 
 assert.throws(TypeError, function() {
diff --git a/test/built-ins/Reflect/isExtensible/isExtensible.js b/test/built-ins/Reflect/isExtensible/isExtensible.js
index ebea7585a1848691987e62cd0286695a42d77e1e..3f201582f845bcda6745479f587ce25d1284b090 100644
--- a/test/built-ins/Reflect/isExtensible/isExtensible.js
+++ b/test/built-ins/Reflect/isExtensible/isExtensible.js
@@ -10,6 +10,7 @@ info: |
   17 ECMAScript Standard Built-in Objects
 
 includes: [propertyHelper.js]
+features: [Reflect]
 ---*/
 
 verifyNotEnumerable(Reflect, 'isExtensible');
diff --git a/test/built-ins/Reflect/isExtensible/length.js b/test/built-ins/Reflect/isExtensible/length.js
index ac0e2b335c1599859e0059225dab11ac8647c4f1..5b8d6e1e1c21f8a6a0dc52ebd2b0ba9ad5b7d5bb 100644
--- a/test/built-ins/Reflect/isExtensible/length.js
+++ b/test/built-ins/Reflect/isExtensible/length.js
@@ -5,6 +5,7 @@ es6id: 26.1.10
 description: >
   Reflect.isExtensible.length value and property descriptor
 includes: [propertyHelper.js]
+features: [Reflect]
 ---*/
 
 assert.sameValue(
diff --git a/test/built-ins/Reflect/isExtensible/name.js b/test/built-ins/Reflect/isExtensible/name.js
index 69ebf346ecf4a02fbe23fb629d6bf70de64bb366..f1d4cf62aeeead9b1ddb57931ec29d13e0a95879 100644
--- a/test/built-ins/Reflect/isExtensible/name.js
+++ b/test/built-ins/Reflect/isExtensible/name.js
@@ -10,6 +10,7 @@ info: |
   17 ECMAScript Standard Built-in Objects
 
 includes: [propertyHelper.js]
+features: [Reflect]
 ---*/
 
 assert.sameValue(
diff --git a/test/built-ins/Reflect/isExtensible/return-abrupt-from-result.js b/test/built-ins/Reflect/isExtensible/return-abrupt-from-result.js
index bab524ca7b6b77ea44ad93921354fd1d5d9f1302..b546a44132fca0c05602b9c4d8d3acc492197e3f 100644
--- a/test/built-ins/Reflect/isExtensible/return-abrupt-from-result.js
+++ b/test/built-ins/Reflect/isExtensible/return-abrupt-from-result.js
@@ -9,7 +9,7 @@ info: |
 
   ...
   2. Return target.[[IsExtensible]]().
-features: [Proxy]
+features: [Proxy, Reflect]
 ---*/
 
 var o1 = {};
diff --git a/test/built-ins/Reflect/isExtensible/return-boolean.js b/test/built-ins/Reflect/isExtensible/return-boolean.js
index f32c981a41e19ec019c7499a4eab71431ade81cb..4dba4ac3f025e74463cd5c56831f0d73dff83de7 100644
--- a/test/built-ins/Reflect/isExtensible/return-boolean.js
+++ b/test/built-ins/Reflect/isExtensible/return-boolean.js
@@ -9,6 +9,7 @@ info: |
 
   ...
   2. Return target.[[IsExtensible]]().
+features: [Reflect]
 ---*/
 
 var o = {};
diff --git a/test/built-ins/Reflect/isExtensible/target-is-not-object-throws.js b/test/built-ins/Reflect/isExtensible/target-is-not-object-throws.js
index 35e6130e01cef298e357ab00765970e954f401b0..89f81fdd1bf3e5622019d080ccdfbf901e3d49d7 100644
--- a/test/built-ins/Reflect/isExtensible/target-is-not-object-throws.js
+++ b/test/built-ins/Reflect/isExtensible/target-is-not-object-throws.js
@@ -9,6 +9,7 @@ info: |
 
   1. If Type(target) is not Object, throw a TypeError exception.
   ...
+features: [Reflect]
 ---*/
 
 assert.throws(TypeError, function() {
diff --git a/test/built-ins/Reflect/isExtensible/target-is-symbol-throws.js b/test/built-ins/Reflect/isExtensible/target-is-symbol-throws.js
index f339977de1fb24d50d6291a10141433234a293ab..0c6a73ca85d65177575b1c6205f1b33d203fbd4e 100644
--- a/test/built-ins/Reflect/isExtensible/target-is-symbol-throws.js
+++ b/test/built-ins/Reflect/isExtensible/target-is-symbol-throws.js
@@ -9,7 +9,7 @@ info: |
 
   1. If Type(target) is not Object, throw a TypeError exception.
   ...
-features: [Symbol]
+features: [Reflect, Symbol]
 ---*/
 
 assert.throws(TypeError, function() {
diff --git a/test/built-ins/Reflect/object-prototype.js b/test/built-ins/Reflect/object-prototype.js
index 845498151b1e6e69f6cf4f2be21ff84020c456b5..0f2e87df5104038170a02d2c69617ea4b680441a 100644
--- a/test/built-ins/Reflect/object-prototype.js
+++ b/test/built-ins/Reflect/object-prototype.js
@@ -5,6 +5,7 @@ es6id: 26.1
 description: >
   The value of the [[Prototype]] internal slot of the Reflect object
   is the intrinsic object %ObjectPrototype% (19.1.3).
+features: [Reflect]
 ---*/
 
 assert.sameValue(
diff --git a/test/built-ins/Reflect/ownKeys/length.js b/test/built-ins/Reflect/ownKeys/length.js
index b0abccab772cfd6135e38ccdb317a4d250b3879d..51b8877fb0c0ad406fac4ed0fb143a07654f27e9 100644
--- a/test/built-ins/Reflect/ownKeys/length.js
+++ b/test/built-ins/Reflect/ownKeys/length.js
@@ -5,6 +5,7 @@ es6id: 26.1.11
 description: >
   Reflect.ownKeys.length value and property descriptor
 includes: [propertyHelper.js]
+features: [Reflect]
 ---*/
 
 assert.sameValue(
diff --git a/test/built-ins/Reflect/ownKeys/name.js b/test/built-ins/Reflect/ownKeys/name.js
index 6f0785bfb0888abef42b0f6821b6b9519a6aade4..0bf2efd66d20fefbfc2e68e5f749477f43082831 100644
--- a/test/built-ins/Reflect/ownKeys/name.js
+++ b/test/built-ins/Reflect/ownKeys/name.js
@@ -10,6 +10,7 @@ info: |
   17 ECMAScript Standard Built-in Objects
 
 includes: [propertyHelper.js]
+features: [Reflect]
 ---*/
 
 assert.sameValue(
diff --git a/test/built-ins/Reflect/ownKeys/ownKeys.js b/test/built-ins/Reflect/ownKeys/ownKeys.js
index 8f72009244bb029ffa3d88c983fe0a99acf26dad..5f7271d3458166d468a242e5dc0c3c61e7ee06a0 100644
--- a/test/built-ins/Reflect/ownKeys/ownKeys.js
+++ b/test/built-ins/Reflect/ownKeys/ownKeys.js
@@ -10,6 +10,7 @@ info: |
   17 ECMAScript Standard Built-in Objects
 
 includes: [propertyHelper.js]
+features: [Reflect]
 ---*/
 
 verifyNotEnumerable(Reflect, 'ownKeys');
diff --git a/test/built-ins/Reflect/ownKeys/return-abrupt-from-result.js b/test/built-ins/Reflect/ownKeys/return-abrupt-from-result.js
index e7a5560ddcd68c350523f191f02384eccaf4a543..ed93c17b035e89fb3289030e81f9ced183973703 100644
--- a/test/built-ins/Reflect/ownKeys/return-abrupt-from-result.js
+++ b/test/built-ins/Reflect/ownKeys/return-abrupt-from-result.js
@@ -11,7 +11,7 @@ info: |
   2. Let keys be target.[[OwnPropertyKeys]]().
   3. ReturnIfAbrupt(keys).
   ...
-features: [Proxy]
+features: [Proxy, Reflect]
 ---*/
 
 var o = {};
diff --git a/test/built-ins/Reflect/ownKeys/return-array-with-own-keys-only.js b/test/built-ins/Reflect/ownKeys/return-array-with-own-keys-only.js
index f479f4e005c2d86db9daaa491e05a2aeb9eb60aa..2d97d8bbcb98d5e1787f5fd825f8506682b634b8 100644
--- a/test/built-ins/Reflect/ownKeys/return-array-with-own-keys-only.js
+++ b/test/built-ins/Reflect/ownKeys/return-array-with-own-keys-only.js
@@ -12,6 +12,7 @@ info: |
   3. ReturnIfAbrupt(keys).
   4. Return CreateArrayFromList(keys).
 includes: [compareArray.js]
+features: [Reflect]
 ---*/
 
 var proto = {
diff --git a/test/built-ins/Reflect/ownKeys/return-empty-array.js b/test/built-ins/Reflect/ownKeys/return-empty-array.js
index 103875e680b430e94d8df73eddf8997ce0e782b5..8107981ef3a60eef3d4380404cb27c68e7d66df9 100644
--- a/test/built-ins/Reflect/ownKeys/return-empty-array.js
+++ b/test/built-ins/Reflect/ownKeys/return-empty-array.js
@@ -12,6 +12,7 @@ info: |
   3. ReturnIfAbrupt(keys).
   4. Return CreateArrayFromList(keys).
 includes: [compareArray.js]
+features: [Reflect]
 ---*/
 
 assert(compareArray(Reflect.ownKeys({}), []));
diff --git a/test/built-ins/Reflect/ownKeys/return-non-enumerable-keys.js b/test/built-ins/Reflect/ownKeys/return-non-enumerable-keys.js
index 282b90baae4f6f66db7202be3909914575dab5b1..115a9a15d238be86a8b9f2678fdf6aa59ec367e1 100644
--- a/test/built-ins/Reflect/ownKeys/return-non-enumerable-keys.js
+++ b/test/built-ins/Reflect/ownKeys/return-non-enumerable-keys.js
@@ -12,6 +12,7 @@ info: |
   3. ReturnIfAbrupt(keys).
   4. Return CreateArrayFromList(keys).
 includes: [compareArray.js]
+features: [Reflect]
 ---*/
 
 assert(
diff --git a/test/built-ins/Reflect/ownKeys/return-on-corresponding-order-large-index.js b/test/built-ins/Reflect/ownKeys/return-on-corresponding-order-large-index.js
index 802646d13be4fd0f63605f3d790fe2d8c10ecb4e..899737ea86f109aa85c8478beed02f6cc1c949cc 100644
--- a/test/built-ins/Reflect/ownKeys/return-on-corresponding-order-large-index.js
+++ b/test/built-ins/Reflect/ownKeys/return-on-corresponding-order-large-index.js
@@ -25,7 +25,7 @@ info: |
   order
     a. Add P as the last element of keys.
   5. Return keys.
-features: [Reflect,Symbol]
+features: [computed-property-names, Reflect, Symbol]
 ---*/
 
 var o1 = {
diff --git a/test/built-ins/Reflect/ownKeys/return-on-corresponding-order.js b/test/built-ins/Reflect/ownKeys/return-on-corresponding-order.js
index 92287bdfb782019c7106bfd0210bf1a142ebf7d0..b6e6b3ec761ddb4335654367f7b5ee2d756e74ab 100644
--- a/test/built-ins/Reflect/ownKeys/return-on-corresponding-order.js
+++ b/test/built-ins/Reflect/ownKeys/return-on-corresponding-order.js
@@ -25,7 +25,7 @@ info: |
   order
     a. Add P as the last element of keys.
   5. Return keys.
-features: [Symbol]
+features: [Reflect, Symbol]
 ---*/
 
 
diff --git a/test/built-ins/Reflect/ownKeys/target-is-not-object-throws.js b/test/built-ins/Reflect/ownKeys/target-is-not-object-throws.js
index c766833b91e1d7788f9c6f00fe80593571564eb4..f3328957a5b16d3c7a4d0dc3cdac15b017147f30 100644
--- a/test/built-ins/Reflect/ownKeys/target-is-not-object-throws.js
+++ b/test/built-ins/Reflect/ownKeys/target-is-not-object-throws.js
@@ -9,6 +9,7 @@ info: |
 
   1. If Type(target) is not Object, throw a TypeError exception.
   ...
+features: [Reflect]
 ---*/
 
 assert.throws(TypeError, function() {
diff --git a/test/built-ins/Reflect/ownKeys/target-is-symbol-throws.js b/test/built-ins/Reflect/ownKeys/target-is-symbol-throws.js
index 1d6e24c256ce2c73a5b30fe663bd65690e9cd62f..56e4b81d9a3680c161a1aadc374a354a674e0c35 100644
--- a/test/built-ins/Reflect/ownKeys/target-is-symbol-throws.js
+++ b/test/built-ins/Reflect/ownKeys/target-is-symbol-throws.js
@@ -9,7 +9,7 @@ info: |
 
   1. If Type(target) is not Object, throw a TypeError exception.
   ...
-features: [Symbol]
+features: [Reflect, Symbol]
 ---*/
 
 assert.throws(TypeError, function() {
diff --git a/test/built-ins/Reflect/preventExtensions/always-return-true-from-ordinary-object.js b/test/built-ins/Reflect/preventExtensions/always-return-true-from-ordinary-object.js
index 78a22737eaced5715787f987b1d5ca908cc36a9e..5d775df7db0a420dc8e38cddd1f7f2a8eea480a0 100644
--- a/test/built-ins/Reflect/preventExtensions/always-return-true-from-ordinary-object.js
+++ b/test/built-ins/Reflect/preventExtensions/always-return-true-from-ordinary-object.js
@@ -14,6 +14,7 @@ info: |
 
   1. Set the value of the [[Extensible]] internal slot of O to false.
   2. Return true.
+features: [Reflect]
 ---*/
 
 var o = {};
diff --git a/test/built-ins/Reflect/preventExtensions/length.js b/test/built-ins/Reflect/preventExtensions/length.js
index a2ca5f6f8f9331438b51aa61275948676f0c3fe4..6d26c92e85edbc585fc84798df48c30faddaf392 100644
--- a/test/built-ins/Reflect/preventExtensions/length.js
+++ b/test/built-ins/Reflect/preventExtensions/length.js
@@ -5,6 +5,7 @@ es6id: 26.1.12
 description: >
   Reflect.preventExtensions.length value and property descriptor
 includes: [propertyHelper.js]
+features: [Reflect]
 ---*/
 
 assert.sameValue(
diff --git a/test/built-ins/Reflect/preventExtensions/name.js b/test/built-ins/Reflect/preventExtensions/name.js
index 494b7a8acb4296308eb98074bbd58e1fcad1241d..2a93f7de952d0900eb8cee851db72fa6223fd774 100644
--- a/test/built-ins/Reflect/preventExtensions/name.js
+++ b/test/built-ins/Reflect/preventExtensions/name.js
@@ -10,6 +10,7 @@ info: |
   17 ECMAScript Standard Built-in Objects
 
 includes: [propertyHelper.js]
+features: [Reflect]
 ---*/
 
 assert.sameValue(
diff --git a/test/built-ins/Reflect/preventExtensions/prevent-extensions.js b/test/built-ins/Reflect/preventExtensions/prevent-extensions.js
index e5d7bc2bdf3642b8009bb3d0225e44643c199ce8..cf8942fb391a3a20b25755f828a4f5c1dfdbe490 100644
--- a/test/built-ins/Reflect/preventExtensions/prevent-extensions.js
+++ b/test/built-ins/Reflect/preventExtensions/prevent-extensions.js
@@ -14,6 +14,7 @@ info: |
 
   1. Set the value of the [[Extensible]] internal slot of O to false.
   ...
+features: [Reflect]
 ---*/
 
 var o = {};
diff --git a/test/built-ins/Reflect/preventExtensions/preventExtensions.js b/test/built-ins/Reflect/preventExtensions/preventExtensions.js
index 56d6ccdc893d7fdbece8625207bb7de146de598e..ef870092fceb9c3d86b52c40243ed6477b200029 100644
--- a/test/built-ins/Reflect/preventExtensions/preventExtensions.js
+++ b/test/built-ins/Reflect/preventExtensions/preventExtensions.js
@@ -10,6 +10,7 @@ info: |
   17 ECMAScript Standard Built-in Objects
 
 includes: [propertyHelper.js]
+features: [Reflect]
 ---*/
 
 verifyNotEnumerable(Reflect, 'preventExtensions');
diff --git a/test/built-ins/Reflect/preventExtensions/return-abrupt-from-result.js b/test/built-ins/Reflect/preventExtensions/return-abrupt-from-result.js
index 7bec988e862ebc318b98af534ef1f0ddb7ba4c8b..fab453364342e9b9220a7ab08cc2f72bd6f93486 100644
--- a/test/built-ins/Reflect/preventExtensions/return-abrupt-from-result.js
+++ b/test/built-ins/Reflect/preventExtensions/return-abrupt-from-result.js
@@ -9,7 +9,7 @@ info: |
 
   ...
   2. Return target.[[PreventExtensions]]().
-features: [Proxy]
+features: [Proxy, Reflect]
 ---*/
 
 var o1 = {};
diff --git a/test/built-ins/Reflect/preventExtensions/return-boolean-from-proxy-object.js b/test/built-ins/Reflect/preventExtensions/return-boolean-from-proxy-object.js
index a5043352e193d805dbee68d5fd713650a009b4b0..f7f4ba0bbf5e2724981d0c47d082b7b129481f24 100644
--- a/test/built-ins/Reflect/preventExtensions/return-boolean-from-proxy-object.js
+++ b/test/built-ins/Reflect/preventExtensions/return-boolean-from-proxy-object.js
@@ -19,7 +19,7 @@ info: |
     b. ReturnIfAbrupt(targetIsExtensible).
     c. If targetIsExtensible is true, throw a TypeError exception.
   11. Return booleanTrapResult.
-features: [Proxy]
+features: [Proxy, Reflect]
 ---*/
 
 var p1 = new Proxy({}, {
diff --git a/test/built-ins/Reflect/preventExtensions/target-is-not-object-throws.js b/test/built-ins/Reflect/preventExtensions/target-is-not-object-throws.js
index 35e6130e01cef298e357ab00765970e954f401b0..89f81fdd1bf3e5622019d080ccdfbf901e3d49d7 100644
--- a/test/built-ins/Reflect/preventExtensions/target-is-not-object-throws.js
+++ b/test/built-ins/Reflect/preventExtensions/target-is-not-object-throws.js
@@ -9,6 +9,7 @@ info: |
 
   1. If Type(target) is not Object, throw a TypeError exception.
   ...
+features: [Reflect]
 ---*/
 
 assert.throws(TypeError, function() {
diff --git a/test/built-ins/Reflect/preventExtensions/target-is-symbol-throws.js b/test/built-ins/Reflect/preventExtensions/target-is-symbol-throws.js
index f339977de1fb24d50d6291a10141433234a293ab..0c6a73ca85d65177575b1c6205f1b33d203fbd4e 100644
--- a/test/built-ins/Reflect/preventExtensions/target-is-symbol-throws.js
+++ b/test/built-ins/Reflect/preventExtensions/target-is-symbol-throws.js
@@ -9,7 +9,7 @@ info: |
 
   1. If Type(target) is not Object, throw a TypeError exception.
   ...
-features: [Symbol]
+features: [Reflect, Symbol]
 ---*/
 
 assert.throws(TypeError, function() {
diff --git a/test/built-ins/Reflect/prop-desc.js b/test/built-ins/Reflect/prop-desc.js
index 72fee3c151c0c01403a21c4fd2b15789c9080f96..ce54ad7dae50764f46882785952776dad7e56790 100644
--- a/test/built-ins/Reflect/prop-desc.js
+++ b/test/built-ins/Reflect/prop-desc.js
@@ -21,6 +21,7 @@ info: |
   has the attributes { [[Writable]]: true, [[Enumerable]]: false,
   [[Configurable]]: true } unless otherwise specified.
 includes: [propertyHelper.js]
+features: [Reflect]
 ---*/
 
 assert.sameValue(typeof Reflect, "object");
diff --git a/test/built-ins/Reflect/set/call-prototype-property-set.js b/test/built-ins/Reflect/set/call-prototype-property-set.js
index 87fd4e76b09632036255a5f38cd6937e47aa33e7..f11f8ac6eaf223a9ae01e98ef170f008fe52b0a7 100644
--- a/test/built-ins/Reflect/set/call-prototype-property-set.js
+++ b/test/built-ins/Reflect/set/call-prototype-property-set.js
@@ -22,6 +22,7 @@ info: |
       i. Return parent.[[Set]](P, V, Receiver).
   ...
   11. Return true.
+features: [Reflect, Reflect.set]
 ---*/
 
 var args;
diff --git a/test/built-ins/Reflect/set/creates-a-data-descriptor.js b/test/built-ins/Reflect/set/creates-a-data-descriptor.js
index 8b99a236b142b6eed680318dd81a419c02bf2486..f937514120f3ac41012d85bd93939ed220aa037c 100644
--- a/test/built-ins/Reflect/set/creates-a-data-descriptor.js
+++ b/test/built-ins/Reflect/set/creates-a-data-descriptor.js
@@ -41,6 +41,7 @@ info: |
   ...
   11. Return true.
 includes: [propertyHelper.js]
+features: [Reflect, Reflect.set]
 ---*/
 
 var o1 = {};
diff --git a/test/built-ins/Reflect/set/different-property-descriptors.js b/test/built-ins/Reflect/set/different-property-descriptors.js
index fab96a084e22ec6aebd3a68f2465479cfd614ce9..6cff059b8ac92ab636dadab771a2e8663c49f2fc 100644
--- a/test/built-ins/Reflect/set/different-property-descriptors.js
+++ b/test/built-ins/Reflect/set/different-property-descriptors.js
@@ -32,6 +32,7 @@ info: |
     e. If existingDescriptor is not undefined, then
       i. If IsAccessorDescriptor(existingDescriptor) is true, return false.
   ...
+features: [Reflect, Reflect.set]
 ---*/
 
 var receiver = {};
diff --git a/test/built-ins/Reflect/set/length.js b/test/built-ins/Reflect/set/length.js
index 0ede00ac2d60e512bc6534c470c1ce2c0ddcedc0..7efa3e4ae7849bd3f58f1998fc49eb27f7e361f0 100644
--- a/test/built-ins/Reflect/set/length.js
+++ b/test/built-ins/Reflect/set/length.js
@@ -9,6 +9,7 @@ info: |
 
   The length property of the set function is 3.
 includes: [propertyHelper.js]
+features: [Reflect, Reflect.set]
 ---*/
 
 assert.sameValue(
diff --git a/test/built-ins/Reflect/set/name.js b/test/built-ins/Reflect/set/name.js
index 614827c43a6b50608aeb39dfe6c6e2a46d1acadc..eea8c69399e6fa231709fdbd52ba98281f164608 100644
--- a/test/built-ins/Reflect/set/name.js
+++ b/test/built-ins/Reflect/set/name.js
@@ -10,6 +10,7 @@ info: |
   17 ECMAScript Standard Built-in Objects
 
 includes: [propertyHelper.js]
+features: [Reflect, Reflect.set]
 ---*/
 
 assert.sameValue(
diff --git a/test/built-ins/Reflect/set/receiver-is-not-object.js b/test/built-ins/Reflect/set/receiver-is-not-object.js
index bbabeddb3c742df667550eec4095101dc142743f..2abb7db565ad8d0a186e3ab49719eb9c698023a2 100644
--- a/test/built-ins/Reflect/set/receiver-is-not-object.js
+++ b/test/built-ins/Reflect/set/receiver-is-not-object.js
@@ -27,6 +27,7 @@ info: |
     a. If ownDesc.[[Writable]] is false, return false.
     b. If Type(Receiver) is not Object, return false.
   ...
+features: [Reflect, Reflect.set]
 ---*/
 
 var o1 = {
diff --git a/test/built-ins/Reflect/set/return-abrupt-from-property-key.js b/test/built-ins/Reflect/set/return-abrupt-from-property-key.js
index 23a882414c69bc49908b4fcf26957c14d51558c8..49a6e77438cbf423bc89201a84ae60e10c53d0be 100644
--- a/test/built-ins/Reflect/set/return-abrupt-from-property-key.js
+++ b/test/built-ins/Reflect/set/return-abrupt-from-property-key.js
@@ -11,6 +11,7 @@ info: |
   2. Let key be ToPropertyKey(propertyKey).
   3. ReturnIfAbrupt(key).
   ...
+features: [Reflect, Reflect.set]
 ---*/
 
 var p = {
diff --git a/test/built-ins/Reflect/set/return-abrupt-from-result.js b/test/built-ins/Reflect/set/return-abrupt-from-result.js
index fd7a07709f81dea9d775d9ea8438312c47a5b8cf..55e87ca1ed9104ba561d7693227a4c2d7b6f4953 100644
--- a/test/built-ins/Reflect/set/return-abrupt-from-result.js
+++ b/test/built-ins/Reflect/set/return-abrupt-from-result.js
@@ -9,6 +9,7 @@ info: |
 
   ...
   5. Return target.[[Set]](key, V, receiver).
+features: [Reflect, Reflect.set]
 ---*/
 
 var o1 = {};
diff --git a/test/built-ins/Reflect/set/return-false-if-receiver-is-not-writable.js b/test/built-ins/Reflect/set/return-false-if-receiver-is-not-writable.js
index b272ab1c491427d36f5c5dea3ca8f1b3a604bc79..9e656e529c84f8aa8a1e5c710b749f635ccd5ffa 100644
--- a/test/built-ins/Reflect/set/return-false-if-receiver-is-not-writable.js
+++ b/test/built-ins/Reflect/set/return-false-if-receiver-is-not-writable.js
@@ -18,6 +18,7 @@ info: |
   5. If IsDataDescriptor(ownDesc) is true, then
     a. If ownDesc.[[Writable]] is false, return false.
   ...
+features: [Reflect, Reflect.set]
 ---*/
 
 var o1 = {};
diff --git a/test/built-ins/Reflect/set/return-false-if-target-is-not-writable.js b/test/built-ins/Reflect/set/return-false-if-target-is-not-writable.js
index 072eea1108056e35566033e32152dd58667325a9..4f8f105cbd4b60c0047216dc2beb41d48bc4be86 100644
--- a/test/built-ins/Reflect/set/return-false-if-target-is-not-writable.js
+++ b/test/built-ins/Reflect/set/return-false-if-target-is-not-writable.js
@@ -24,6 +24,7 @@ info: |
       i. If IsAccessorDescriptor(existingDescriptor) is true, return false.
       ii. If existingDescriptor.[[Writable]] is false, return false.
   ...
+features: [Reflect, Reflect.set]
 ---*/
 
 var o1 = {};
diff --git a/test/built-ins/Reflect/set/set-value-on-accessor-descriptor-with-receiver.js b/test/built-ins/Reflect/set/set-value-on-accessor-descriptor-with-receiver.js
index 534177d59ba9a7028a9533d8dcf0ae9260bdd9ea..1a98b3e4b9937810e56e77c8d36c2a978f57266d 100644
--- a/test/built-ins/Reflect/set/set-value-on-accessor-descriptor-with-receiver.js
+++ b/test/built-ins/Reflect/set/set-value-on-accessor-descriptor-with-receiver.js
@@ -21,6 +21,7 @@ info: |
   9. Let setterResult be Call(setter, Receiver, «V»).
   10. ReturnIfAbrupt(setterResult).
   11. Return true.
+features: [Reflect, Reflect.set]
 ---*/
 
 var args;
diff --git a/test/built-ins/Reflect/set/set-value-on-accessor-descriptor.js b/test/built-ins/Reflect/set/set-value-on-accessor-descriptor.js
index 9f484da63127b33ab5824e745e16c9df4ef730e8..8385981784a9d3b56764266fe0d0eb2ed20c6799 100644
--- a/test/built-ins/Reflect/set/set-value-on-accessor-descriptor.js
+++ b/test/built-ins/Reflect/set/set-value-on-accessor-descriptor.js
@@ -21,6 +21,7 @@ info: |
   9. Let setterResult be Call(setter, Receiver, «V»).
   10. ReturnIfAbrupt(setterResult).
   11. Return true.
+features: [Reflect, Reflect.set]
 ---*/
 
 var args;
diff --git a/test/built-ins/Reflect/set/set-value-on-data-descriptor.js b/test/built-ins/Reflect/set/set-value-on-data-descriptor.js
index 6aeaaa2f44f98a7c9ea44aec938d1f813ef1bd01..1a534f4928ed701c4c12278447344321164ce964 100644
--- a/test/built-ins/Reflect/set/set-value-on-data-descriptor.js
+++ b/test/built-ins/Reflect/set/set-value-on-data-descriptor.js
@@ -28,6 +28,7 @@ info: |
     f. Else Receiver does not currently have a property P,
       i. Return CreateDataProperty(Receiver, P, V).
   ...
+features: [Reflect, Reflect.set]
 ---*/
 
 var o1 = {
diff --git a/test/built-ins/Reflect/set/set.js b/test/built-ins/Reflect/set/set.js
index deb79912d0f0e2275ab2b0e621ef029e18106f24..84f8b4b339e80c25b389eac8ca668746c63cdbc7 100644
--- a/test/built-ins/Reflect/set/set.js
+++ b/test/built-ins/Reflect/set/set.js
@@ -10,6 +10,7 @@ info: |
   17 ECMAScript Standard Built-in Objects
 
 includes: [propertyHelper.js]
+features: [Reflect]
 ---*/
 
 verifyNotEnumerable(Reflect, 'set');
diff --git a/test/built-ins/Reflect/set/symbol-property.js b/test/built-ins/Reflect/set/symbol-property.js
index c319f83154ba0a3752f4eaf2893f11a25881bc6c..9c354e7883a3c416870da9425f9208a916b91560 100644
--- a/test/built-ins/Reflect/set/symbol-property.js
+++ b/test/built-ins/Reflect/set/symbol-property.js
@@ -17,7 +17,7 @@ info: |
   3. If Type(key) is Symbol, then
     a. Return key.
   ...
-features: [Symbol]
+features: [Reflect, Reflect.set, Symbol]
 ---*/
 
 var o1 = {};
diff --git a/test/built-ins/Reflect/set/target-is-not-object-throws.js b/test/built-ins/Reflect/set/target-is-not-object-throws.js
index 697808e8c792ed64d7648d8afad3a6087e61f64e..e8618b4f122d1077c3d5569f2932e8b6d70d6b4a 100644
--- a/test/built-ins/Reflect/set/target-is-not-object-throws.js
+++ b/test/built-ins/Reflect/set/target-is-not-object-throws.js
@@ -9,6 +9,7 @@ info: |
 
   1. If Type(target) is not Object, throw a TypeError exception.
   ...
+features: [Reflect, Reflect.set]
 ---*/
 
 assert.throws(TypeError, function() {
diff --git a/test/built-ins/Reflect/set/target-is-symbol-throws.js b/test/built-ins/Reflect/set/target-is-symbol-throws.js
index d4e5cf6e3cdc312fb63e514541e8ed510cc8c71b..edbe2ad4a88326c1b6a03cdb85c0fb1bbb815cdc 100644
--- a/test/built-ins/Reflect/set/target-is-symbol-throws.js
+++ b/test/built-ins/Reflect/set/target-is-symbol-throws.js
@@ -9,7 +9,7 @@ info: |
 
   1. If Type(target) is not Object, throw a TypeError exception.
   ...
-features: [Symbol]
+features: [Reflect, Reflect.set, Symbol]
 ---*/
 
 assert.throws(TypeError, function() {
diff --git a/test/built-ins/Reflect/setPrototypeOf/length.js b/test/built-ins/Reflect/setPrototypeOf/length.js
index bcb8d164c60e0f09f6dc914e987862c8e650d046..d7c2b0ec477554dca04c2fd042a47043b2205f66 100644
--- a/test/built-ins/Reflect/setPrototypeOf/length.js
+++ b/test/built-ins/Reflect/setPrototypeOf/length.js
@@ -5,6 +5,7 @@ es6id: 26.1.14
 description: >
   Reflect.setPrototypeOf.length value and property descriptor
 includes: [propertyHelper.js]
+features: [Reflect, Reflect.setPrototypeOf]
 ---*/
 
 assert.sameValue(
diff --git a/test/built-ins/Reflect/setPrototypeOf/name.js b/test/built-ins/Reflect/setPrototypeOf/name.js
index f26653c4adbbe97364d0ffaa4c756d7d4e54993b..6adf0183178bb31d3e5220d9e20fb16cb7f95fa6 100644
--- a/test/built-ins/Reflect/setPrototypeOf/name.js
+++ b/test/built-ins/Reflect/setPrototypeOf/name.js
@@ -9,6 +9,7 @@ info: |
 
   17 ECMAScript Standard Built-in Objects
 includes: [propertyHelper.js]
+features: [Reflect, Reflect.setPrototypeOf]
 ---*/
 
 assert.sameValue(
diff --git a/test/built-ins/Reflect/setPrototypeOf/proto-is-not-object-and-not-null-throws.js b/test/built-ins/Reflect/setPrototypeOf/proto-is-not-object-and-not-null-throws.js
index 36700f3124a71b8c8f64e964a58cc3de29190767..b04b2be275c0eca1f846f022d94e415ec077e207 100644
--- a/test/built-ins/Reflect/setPrototypeOf/proto-is-not-object-and-not-null-throws.js
+++ b/test/built-ins/Reflect/setPrototypeOf/proto-is-not-object-and-not-null-throws.js
@@ -11,6 +11,7 @@ info: |
   2. If Type(proto) is not Object and proto is not null, throw a TypeError
   exception
   ...
+features: [Reflect, Reflect.setPrototypeOf]
 ---*/
 
 assert.throws(TypeError, function() {
diff --git a/test/built-ins/Reflect/setPrototypeOf/proto-is-symbol-throws.js b/test/built-ins/Reflect/setPrototypeOf/proto-is-symbol-throws.js
index 9c4c9067a3302cc8ef707e671d3b06a1c3bfed15..a88657cc4d3ad7742a8850c7f56e1121ed141c8e 100644
--- a/test/built-ins/Reflect/setPrototypeOf/proto-is-symbol-throws.js
+++ b/test/built-ins/Reflect/setPrototypeOf/proto-is-symbol-throws.js
@@ -11,7 +11,7 @@ info: |
   2. If Type(proto) is not Object and proto is not null, throw a TypeError
   exception
   ...
-features: [Symbol]
+features: [Reflect, Reflect.setPrototypeOf, Symbol]
 ---*/
 
 var s = Symbol(1);
diff --git a/test/built-ins/Reflect/setPrototypeOf/return-abrupt-from-result.js b/test/built-ins/Reflect/setPrototypeOf/return-abrupt-from-result.js
index 1839dbb4b353b08138c640e738d0cd51202bc7c9..0eb36fa6ae2d880ba8962d5d0f1621303f08eb36 100644
--- a/test/built-ins/Reflect/setPrototypeOf/return-abrupt-from-result.js
+++ b/test/built-ins/Reflect/setPrototypeOf/return-abrupt-from-result.js
@@ -9,7 +9,7 @@ info: |
 
   ...
   3. Return target.[[SetPrototypeOf]](proto).
-features: [Proxy]
+features: [Proxy, Reflect, Reflect.setPrototypeOf]
 ---*/
 
 var target = {};
diff --git a/test/built-ins/Reflect/setPrototypeOf/return-false-if-target-and-proto-are-the-same.js b/test/built-ins/Reflect/setPrototypeOf/return-false-if-target-and-proto-are-the-same.js
index 990c1e055221c3368ceeee1354341c75a337b361..0b7cfea91f6b1a9adbe35dc8f9a4c57db30de35c 100644
--- a/test/built-ins/Reflect/setPrototypeOf/return-false-if-target-and-proto-are-the-same.js
+++ b/test/built-ins/Reflect/setPrototypeOf/return-false-if-target-and-proto-are-the-same.js
@@ -17,6 +17,7 @@ info: |
     a. If p is null, let done be true.
     b. Else, if SameValue(p, O) is true, return false.
   ...
+features: [Reflect, Reflect.setPrototypeOf]
 ---*/
 
 var o1 = {};
diff --git a/test/built-ins/Reflect/setPrototypeOf/return-false-if-target-is-not-extensible.js b/test/built-ins/Reflect/setPrototypeOf/return-false-if-target-is-not-extensible.js
index c1a59e33dd65d97214ea52c80d63e091381b30ef..926ddb293433bbbdc3c7554dbc50b863941262f0 100644
--- a/test/built-ins/Reflect/setPrototypeOf/return-false-if-target-is-not-extensible.js
+++ b/test/built-ins/Reflect/setPrototypeOf/return-false-if-target-is-not-extensible.js
@@ -15,6 +15,7 @@ info: |
   ...
   5. If extensible is false, return false.
   ...
+features: [Reflect, Reflect.setPrototypeOf]
 ---*/
 
 var o1 = {};
diff --git a/test/built-ins/Reflect/setPrototypeOf/return-false-if-target-is-prototype-of-proto.js b/test/built-ins/Reflect/setPrototypeOf/return-false-if-target-is-prototype-of-proto.js
index 0339db3cbdea1698abd8d0116b5f210d15b8d9a2..77be9c99750ea22e2005642143dfd0e72673afb2 100644
--- a/test/built-ins/Reflect/setPrototypeOf/return-false-if-target-is-prototype-of-proto.js
+++ b/test/built-ins/Reflect/setPrototypeOf/return-false-if-target-is-prototype-of-proto.js
@@ -21,6 +21,7 @@ info: |
       object internal method defined in 9.1.1, let done be true.
       ii. Else, let p be the value of p’s [[Prototype]] internal slot.
   ...
+features: [Reflect, Reflect.setPrototypeOf]
 ---*/
 
 var target = {};
diff --git a/test/built-ins/Reflect/setPrototypeOf/return-true-if-new-prototype-is-set.js b/test/built-ins/Reflect/setPrototypeOf/return-true-if-new-prototype-is-set.js
index 6c1707027e359e8b3647fbe475e5088ff1ddc826..774ad4abf2efdcb6f3ac658d97a8ee75fff3bd7b 100644
--- a/test/built-ins/Reflect/setPrototypeOf/return-true-if-new-prototype-is-set.js
+++ b/test/built-ins/Reflect/setPrototypeOf/return-true-if-new-prototype-is-set.js
@@ -16,6 +16,7 @@ info: |
   9. Set the value of the [[Prototype]] internal slot of O to V.
   10. Return true.
   ...
+features: [Reflect, Reflect.setPrototypeOf]
 ---*/
 
 var o1 = {};
diff --git a/test/built-ins/Reflect/setPrototypeOf/return-true-if-proto-is-current.js b/test/built-ins/Reflect/setPrototypeOf/return-true-if-proto-is-current.js
index 4370c5d7f5c472f018ae06e329c6db3e00b88f6f..50521058f46038c9426f433d6ab630eba8c525f8 100644
--- a/test/built-ins/Reflect/setPrototypeOf/return-true-if-proto-is-current.js
+++ b/test/built-ins/Reflect/setPrototypeOf/return-true-if-proto-is-current.js
@@ -15,6 +15,7 @@ info: |
   ...
   4. If SameValue(V, current), return true.
   ...
+features: [Reflect, Reflect.setPrototypeOf]
 ---*/
 
 var o1 = {};
diff --git a/test/built-ins/Reflect/setPrototypeOf/setPrototypeOf.js b/test/built-ins/Reflect/setPrototypeOf/setPrototypeOf.js
index 2377d437d92d86c26ce8d4e655a0cfb1e0dc31b4..4d21ea181781b64c6f77dbffcfbd0b2ef37082f9 100644
--- a/test/built-ins/Reflect/setPrototypeOf/setPrototypeOf.js
+++ b/test/built-ins/Reflect/setPrototypeOf/setPrototypeOf.js
@@ -10,6 +10,7 @@ info: |
   17 ECMAScript Standard Built-in Objects
 
 includes: [propertyHelper.js]
+features: [Reflect]
 ---*/
 
 verifyNotEnumerable(Reflect, 'setPrototypeOf');
diff --git a/test/built-ins/Reflect/setPrototypeOf/target-is-not-object-throws.js b/test/built-ins/Reflect/setPrototypeOf/target-is-not-object-throws.js
index b451b59977124fb0dd0ece975ce3765a13b7b6e7..bde1ed0455f8c8dbc99b85a53c6d23379c0081ce 100644
--- a/test/built-ins/Reflect/setPrototypeOf/target-is-not-object-throws.js
+++ b/test/built-ins/Reflect/setPrototypeOf/target-is-not-object-throws.js
@@ -9,6 +9,7 @@ info: |
 
   1. If Type(target) is not Object, throw a TypeError exception.
   ...
+features: [Reflect, Reflect.setPrototypeOf]
 ---*/
 
 assert.throws(TypeError, function() {
diff --git a/test/built-ins/Reflect/setPrototypeOf/target-is-symbol-throws.js b/test/built-ins/Reflect/setPrototypeOf/target-is-symbol-throws.js
index 57c5c9e4786c25a201382dfb4113cb86d8c50df2..d7e1d1b4113b052a01bfbe3d27cc23c3a20d9477 100644
--- a/test/built-ins/Reflect/setPrototypeOf/target-is-symbol-throws.js
+++ b/test/built-ins/Reflect/setPrototypeOf/target-is-symbol-throws.js
@@ -9,7 +9,7 @@ info: |
 
   1. If Type(target) is not Object, throw a TypeError exception.
   ...
-features: [Symbol]
+features: [Reflect, Reflect.setPrototypeOf, Symbol]
 ---*/
 
 assert.throws(TypeError, function() {