From 7cbbe512166f95db1a6638d3b866bf40dab17321 Mon Sep 17 00:00:00 2001
From: Leo Balter <leonardo.balter@gmail.com>
Date: Fri, 22 Sep 2017 14:14:06 -0400
Subject: [PATCH] Add cross-realm feature

---
 features.txt                                                    | 1 +
 test/built-ins/Array/from/proto-from-ctor-realm.js              | 1 +
 .../Array/length/define-own-prop-length-overflow-realm.js       | 1 +
 test/built-ins/Array/of/proto-from-ctor-realm.js                | 1 +
 test/built-ins/Array/proto-from-ctor-realm.js                   | 2 +-
 .../prototype/concat/create-proto-from-ctor-realm-array.js      | 2 +-
 .../prototype/concat/create-proto-from-ctor-realm-non-array.js  | 2 +-
 .../prototype/filter/create-proto-from-ctor-realm-array.js      | 2 +-
 .../prototype/filter/create-proto-from-ctor-realm-non-array.js  | 2 +-
 .../Array/prototype/map/create-proto-from-ctor-realm-array.js   | 2 +-
 .../prototype/map/create-proto-from-ctor-realm-non-array.js     | 2 +-
 .../Array/prototype/slice/create-proto-from-ctor-realm-array.js | 2 +-
 .../prototype/slice/create-proto-from-ctor-realm-non-array.js   | 2 +-
 .../prototype/splice/create-proto-from-ctor-realm-array.js      | 2 +-
 .../prototype/splice/create-proto-from-ctor-realm-non-array.js  | 2 +-
 test/built-ins/ArrayBuffer/proto-from-ctor-realm.js             | 2 +-
 test/built-ins/Boolean/proto-from-ctor-realm.js                 | 2 +-
 test/built-ins/DataView/proto-from-ctor-realm-sab.js            | 2 +-
 test/built-ins/DataView/proto-from-ctor-realm.js                | 2 +-
 test/built-ins/Date/proto-from-ctor-realm-one.js                | 2 +-
 test/built-ins/Date/proto-from-ctor-realm-two.js                | 2 +-
 test/built-ins/Date/proto-from-ctor-realm-zero.js               | 2 +-
 test/built-ins/Error/proto-from-ctor-realm.js                   | 2 +-
 test/built-ins/Function/call-bind-this-realm-undef.js           | 1 +
 test/built-ins/Function/call-bind-this-realm-value.js           | 1 +
 test/built-ins/Function/internals/Call/class-ctor-realm.js      | 2 +-
 .../internals/Construct/base-ctor-revoked-proxy-realm.js        | 2 +-
 .../Function/internals/Construct/derived-return-val-realm.js    | 2 +-
 .../internals/Construct/derived-this-uninitialized-realm.js     | 2 +-
 test/built-ins/Function/proto-from-ctor-realm.js                | 2 +-
 test/built-ins/Function/prototype/bind/get-fn-realm.js          | 1 +
 test/built-ins/Function/prototype/bind/proto-from-ctor-realm.js | 2 +-
 test/built-ins/GeneratorFunction/proto-from-ctor-realm.js       | 2 +-
 test/built-ins/Map/proto-from-ctor-realm.js                     | 2 +-
 test/built-ins/Number/proto-from-ctor-realm.js                  | 2 +-
 test/built-ins/Object/proto-from-ctor.js                        | 2 +-
 test/built-ins/Promise/proto-from-ctor-realm.js                 | 2 +-
 test/built-ins/Proxy/apply/arguments-realm.js                   | 1 +
 test/built-ins/Proxy/apply/trap-is-not-callable-realm.js        | 1 +
 test/built-ins/Proxy/construct/arguments-realm.js               | 1 +
 test/built-ins/Proxy/construct/trap-is-not-callable-realm.js    | 1 +
 .../Proxy/construct/trap-is-undefined-proto-from-ctor-realm.js  | 2 +-
 test/built-ins/Proxy/defineProperty/desc-realm.js               | 1 +
 test/built-ins/Proxy/defineProperty/null-handler-realm.js       | 1 +
 .../targetdesc-configurable-desc-not-configurable-realm.js      | 1 +
 ...c-not-compatible-descriptor-not-configurable-target-realm.js | 1 +
 .../targetdesc-not-compatible-descriptor-realm.js               | 1 +
 .../targetdesc-undefined-not-configurable-descriptor-realm.js   | 1 +
 .../targetdesc-undefined-target-is-not-extensible-realm.js      | 1 +
 .../Proxy/defineProperty/trap-is-not-callable-realm.js          | 1 +
 .../Proxy/deleteProperty/trap-is-not-callable-realm.js          | 1 +
 test/built-ins/Proxy/get-fn-realm.js                            | 1 +
 test/built-ins/Proxy/get/trap-is-not-callable-realm.js          | 1 +
 .../result-type-is-not-object-nor-undefined-realm.js            | 1 +
 .../getOwnPropertyDescriptor/trap-is-not-callable-realm.js      | 1 +
 .../Proxy/getPrototypeOf/trap-is-not-callable-realm.js          | 1 +
 test/built-ins/Proxy/has/trap-is-not-callable-realm.js          | 1 +
 test/built-ins/Proxy/isExtensible/trap-is-not-callable-realm.js | 1 +
 .../Proxy/ownKeys/return-not-list-object-throws-realm.js        | 2 +-
 test/built-ins/Proxy/ownKeys/trap-is-not-callable-realm.js      | 1 +
 .../Proxy/preventExtensions/trap-is-not-callable-realm.js       | 1 +
 test/built-ins/Proxy/set/trap-is-not-callable-realm.js          | 1 +
 .../Proxy/setPrototypeOf/trap-is-not-callable-realm.js          | 1 +
 test/built-ins/RegExp/proto-from-ctor-realm.js                  | 2 +-
 .../prototype/Symbol.split/splitter-proto-from-ctor-realm.js    | 2 +-
 test/built-ins/Set/proto-from-ctor-realm.js                     | 2 +-
 test/built-ins/SharedArrayBuffer/proto-from-ctor-realm.js       | 2 +-
 test/built-ins/String/proto-from-ctor-realm.js                  | 2 +-
 test/built-ins/Symbol/for/cross-realm.js                        | 2 +-
 test/built-ins/Symbol/hasInstance/cross-realm.js                | 2 +-
 test/built-ins/Symbol/isConcatSpreadable/cross-realm.js         | 2 +-
 test/built-ins/Symbol/iterator/cross-realm.js                   | 2 +-
 test/built-ins/Symbol/keyFor/cross-realm.js                     | 2 +-
 test/built-ins/Symbol/match/cross-realm.js                      | 2 +-
 test/built-ins/Symbol/replace/cross-realm.js                    | 2 +-
 test/built-ins/Symbol/search/cross-realm.js                     | 2 +-
 test/built-ins/Symbol/species/cross-realm.js                    | 2 +-
 test/built-ins/Symbol/split/cross-realm.js                      | 2 +-
 test/built-ins/Symbol/toPrimitive/cross-realm.js                | 2 +-
 test/built-ins/Symbol/toStringTag/cross-realm.js                | 2 +-
 test/built-ins/Symbol/unscopables/cross-realm.js                | 2 +-
 test/built-ins/ThrowTypeError/distinct-cross-realm.js           | 1 +
 .../TypedArrays/buffer-arg-proto-from-ctor-realm-sab.js         | 2 +-
 test/built-ins/TypedArrays/buffer-arg-proto-from-ctor-realm.js  | 2 +-
 .../internals/DefineOwnProperty/detached-buffer-realm.js        | 2 +-
 .../TypedArrays/internals/Get/detached-buffer-realm.js          | 2 +-
 .../internals/GetOwnProperty/detached-buffer-realm.js           | 2 +-
 .../TypedArrays/internals/HasProperty/detached-buffer-realm.js  | 2 +-
 .../TypedArrays/internals/Set/detached-buffer-realm.js          | 2 +-
 test/built-ins/TypedArrays/length-arg-proto-from-ctor-realm.js  | 2 +-
 test/built-ins/TypedArrays/no-args-proto-from-ctor-realm.js     | 2 +-
 test/built-ins/TypedArrays/object-arg-proto-from-ctor-realm.js  | 2 +-
 ...her-ctor-buffer-ctor-custom-species-proto-from-ctor-realm.js | 2 +-
 .../TypedArrays/typedarray-arg-proto-from-ctor-realm.js         | 2 +-
 ...ame-ctor-buffer-ctor-species-custom-proto-from-ctor-realm.js | 2 +-
 test/built-ins/WeakMap/proto-from-ctor-realm.js                 | 2 +-
 test/built-ins/WeakSet/proto-from-ctor-realm.js                 | 2 +-
 test/language/eval-code/indirect/realm.js                       | 1 +
 test/language/expressions/call/eval-realm-indirect.js           | 1 +
 test/language/expressions/generators/eval-body-proto-realm.js   | 1 +
 test/language/expressions/new/non-ctor-err-realm.js             | 1 +
 test/language/expressions/super/realm.js                        | 2 +-
 test/language/expressions/tagged-template/cache-realm.js        | 1 +
 .../types/reference/get-value-prop-base-primitive-realm.js      | 2 +-
 .../types/reference/put-value-prop-base-primitive-realm.js      | 2 +-
 105 files changed, 105 insertions(+), 68 deletions(-)

diff --git a/features.txt b/features.txt
index b5ae0bd0ac..4b4c524bd0 100644
--- a/features.txt
+++ b/features.txt
@@ -69,6 +69,7 @@ caller
 class
 computed-property-names
 const
+cross-realm
 DataView
 DataView.prototype.getFloat32
 DataView.prototype.getFloat64
diff --git a/test/built-ins/Array/from/proto-from-ctor-realm.js b/test/built-ins/Array/from/proto-from-ctor-realm.js
index 20915985cc..4439b49646 100644
--- a/test/built-ins/Array/from/proto-from-ctor-realm.js
+++ b/test/built-ins/Array/from/proto-from-ctor-realm.js
@@ -19,6 +19,7 @@ info: |
        a. Let realm be ? GetFunctionRealm(constructor).
        b. Let proto be realm's intrinsic object named intrinsicDefaultProto.
     [...]
+features: [cross-realm]
 ---*/
 
 var other = $262.createRealm().global;
diff --git a/test/built-ins/Array/length/define-own-prop-length-overflow-realm.js b/test/built-ins/Array/length/define-own-prop-length-overflow-realm.js
index 5510bcd6b0..8b962629f3 100644
--- a/test/built-ins/Array/length/define-own-prop-length-overflow-realm.js
+++ b/test/built-ins/Array/length/define-own-prop-length-overflow-realm.js
@@ -10,6 +10,7 @@ info: |
   [...]
   2. If P is "length", then
      a. Return ? ArraySetLength(A, Desc).
+features: [cross-realm]
 ---*/
 
 var OArray = $262.createRealm().global.Array;
diff --git a/test/built-ins/Array/of/proto-from-ctor-realm.js b/test/built-ins/Array/of/proto-from-ctor-realm.js
index 09eb4a0b1c..ba9ea4680d 100644
--- a/test/built-ins/Array/of/proto-from-ctor-realm.js
+++ b/test/built-ins/Array/of/proto-from-ctor-realm.js
@@ -18,6 +18,7 @@ info: |
        a. Let realm be ? GetFunctionRealm(constructor).
        b. Let proto be realm's intrinsic object named intrinsicDefaultProto.
     [...]
+features: [cross-realm]
 ---*/
 
 var other = $262.createRealm().global;
diff --git a/test/built-ins/Array/proto-from-ctor-realm.js b/test/built-ins/Array/proto-from-ctor-realm.js
index 8549b3c0cb..2cb0045d1f 100644
--- a/test/built-ins/Array/proto-from-ctor-realm.js
+++ b/test/built-ins/Array/proto-from-ctor-realm.js
@@ -18,7 +18,7 @@ info: |
        a. Let realm be ? GetFunctionRealm(constructor).
        b. Let proto be realm's intrinsic object named intrinsicDefaultProto.
     [...]
-features: [Reflect]
+features: [cross-realm, Reflect]
 ---*/
 
 var other = $262.createRealm().global;
diff --git a/test/built-ins/Array/prototype/concat/create-proto-from-ctor-realm-array.js b/test/built-ins/Array/prototype/concat/create-proto-from-ctor-realm-array.js
index dec6e74216..863bff2c1d 100644
--- a/test/built-ins/Array/prototype/concat/create-proto-from-ctor-realm-array.js
+++ b/test/built-ins/Array/prototype/concat/create-proto-from-ctor-realm-array.js
@@ -20,7 +20,7 @@ info: |
           i. If SameValue(C, realmC.[[Intrinsics]].[[%Array%]]) is true, let C
              be undefined.
     [...]
-features: [Symbol.species]
+features: [cross-realm, Symbol.species]
 ---*/
 
 var array = [];
diff --git a/test/built-ins/Array/prototype/concat/create-proto-from-ctor-realm-non-array.js b/test/built-ins/Array/prototype/concat/create-proto-from-ctor-realm-non-array.js
index 60195ea85b..3a0f9a1966 100644
--- a/test/built-ins/Array/prototype/concat/create-proto-from-ctor-realm-non-array.js
+++ b/test/built-ins/Array/prototype/concat/create-proto-from-ctor-realm-non-array.js
@@ -20,7 +20,7 @@ info: |
           i. If SameValue(C, realmC.[[Intrinsics]].[[%Array%]]) is true, let C
              be undefined.
     [...]
-features: [Symbol.species]
+features: [cross-realm, Symbol.species]
 ---*/
 
 var array = [];
diff --git a/test/built-ins/Array/prototype/filter/create-proto-from-ctor-realm-array.js b/test/built-ins/Array/prototype/filter/create-proto-from-ctor-realm-array.js
index 580f67b232..c83236ae91 100644
--- a/test/built-ins/Array/prototype/filter/create-proto-from-ctor-realm-array.js
+++ b/test/built-ins/Array/prototype/filter/create-proto-from-ctor-realm-array.js
@@ -21,7 +21,7 @@ info: |
           i. If SameValue(C, realmC.[[Intrinsics]].[[%Array%]]) is true, let C
              be undefined.
     [...]
-features: [Symbol.species]
+features: [cross-realm, Symbol.species]
 ---*/
 
 var array = [];
diff --git a/test/built-ins/Array/prototype/filter/create-proto-from-ctor-realm-non-array.js b/test/built-ins/Array/prototype/filter/create-proto-from-ctor-realm-non-array.js
index c5b29e5758..e13edacf3e 100644
--- a/test/built-ins/Array/prototype/filter/create-proto-from-ctor-realm-non-array.js
+++ b/test/built-ins/Array/prototype/filter/create-proto-from-ctor-realm-non-array.js
@@ -21,7 +21,7 @@ info: |
           i. If SameValue(C, realmC.[[Intrinsics]].[[%Array%]]) is true, let C
              be undefined.
     [...]
-features: [Symbol.species]
+features: [cross-realm, Symbol.species]
 ---*/
 
 var array = [];
diff --git a/test/built-ins/Array/prototype/map/create-proto-from-ctor-realm-array.js b/test/built-ins/Array/prototype/map/create-proto-from-ctor-realm-array.js
index 9c0bb98e3d..ef39366024 100644
--- a/test/built-ins/Array/prototype/map/create-proto-from-ctor-realm-array.js
+++ b/test/built-ins/Array/prototype/map/create-proto-from-ctor-realm-array.js
@@ -21,7 +21,7 @@ info: |
           i. If SameValue(C, realmC.[[Intrinsics]].[[%Array%]]) is true, let C
              be undefined.
     [...]
-features: [Symbol.species]
+features: [cross-realm, Symbol.species]
 ---*/
 
 var array = [];
diff --git a/test/built-ins/Array/prototype/map/create-proto-from-ctor-realm-non-array.js b/test/built-ins/Array/prototype/map/create-proto-from-ctor-realm-non-array.js
index b33ae4e523..967a76f816 100644
--- a/test/built-ins/Array/prototype/map/create-proto-from-ctor-realm-non-array.js
+++ b/test/built-ins/Array/prototype/map/create-proto-from-ctor-realm-non-array.js
@@ -21,7 +21,7 @@ info: |
           i. If SameValue(C, realmC.[[Intrinsics]].[[%Array%]]) is true, let C
              be undefined.
     [...]
-features: [Symbol.species]
+features: [cross-realm, Symbol.species]
 ---*/
 
 var array = [];
diff --git a/test/built-ins/Array/prototype/slice/create-proto-from-ctor-realm-array.js b/test/built-ins/Array/prototype/slice/create-proto-from-ctor-realm-array.js
index 667416f855..db415e073b 100644
--- a/test/built-ins/Array/prototype/slice/create-proto-from-ctor-realm-array.js
+++ b/test/built-ins/Array/prototype/slice/create-proto-from-ctor-realm-array.js
@@ -21,7 +21,7 @@ info: |
           i. If SameValue(C, realmC.[[Intrinsics]].[[%Array%]]) is true, let C
              be undefined.
     [...]
-features: [Symbol.species]
+features: [cross-realm, Symbol.species]
 ---*/
 
 var array = [];
diff --git a/test/built-ins/Array/prototype/slice/create-proto-from-ctor-realm-non-array.js b/test/built-ins/Array/prototype/slice/create-proto-from-ctor-realm-non-array.js
index 00721218e0..6305730c04 100644
--- a/test/built-ins/Array/prototype/slice/create-proto-from-ctor-realm-non-array.js
+++ b/test/built-ins/Array/prototype/slice/create-proto-from-ctor-realm-non-array.js
@@ -21,7 +21,7 @@ info: |
           i. If SameValue(C, realmC.[[Intrinsics]].[[%Array%]]) is true, let C
              be undefined.
     [...]
-features: [Symbol.species]
+features: [cross-realm, Symbol.species]
 ---*/
 
 var array = [];
diff --git a/test/built-ins/Array/prototype/splice/create-proto-from-ctor-realm-array.js b/test/built-ins/Array/prototype/splice/create-proto-from-ctor-realm-array.js
index e80e79bd3b..baec4557bf 100644
--- a/test/built-ins/Array/prototype/splice/create-proto-from-ctor-realm-array.js
+++ b/test/built-ins/Array/prototype/splice/create-proto-from-ctor-realm-array.js
@@ -21,7 +21,7 @@ info: |
           i. If SameValue(C, realmC.[[Intrinsics]].[[%Array%]]) is true, let C
              be undefined.
     [...]
-features: [Symbol.species]
+features: [cross-realm, Symbol.species]
 ---*/
 
 var array = [];
diff --git a/test/built-ins/Array/prototype/splice/create-proto-from-ctor-realm-non-array.js b/test/built-ins/Array/prototype/splice/create-proto-from-ctor-realm-non-array.js
index 009a316792..86888038ca 100644
--- a/test/built-ins/Array/prototype/splice/create-proto-from-ctor-realm-non-array.js
+++ b/test/built-ins/Array/prototype/splice/create-proto-from-ctor-realm-non-array.js
@@ -21,7 +21,7 @@ info: |
           i. If SameValue(C, realmC.[[Intrinsics]].[[%Array%]]) is true, let C
              be undefined.
     [...]
-features: [Symbol.species]
+features: [cross-realm, Symbol.species]
 ---*/
 
 var array = [];
diff --git a/test/built-ins/ArrayBuffer/proto-from-ctor-realm.js b/test/built-ins/ArrayBuffer/proto-from-ctor-realm.js
index 4038c9b365..a168d1bcb0 100644
--- a/test/built-ins/ArrayBuffer/proto-from-ctor-realm.js
+++ b/test/built-ins/ArrayBuffer/proto-from-ctor-realm.js
@@ -16,7 +16,7 @@ info: |
        a. Let realm be ? GetFunctionRealm(constructor).
        b. Let proto be realm's intrinsic object named intrinsicDefaultProto.
     [...]
-features: [Reflect]
+features: [cross-realm, Reflect]
 ---*/
 
 var other = $262.createRealm().global;
diff --git a/test/built-ins/Boolean/proto-from-ctor-realm.js b/test/built-ins/Boolean/proto-from-ctor-realm.js
index f7ada674cd..e25652568e 100644
--- a/test/built-ins/Boolean/proto-from-ctor-realm.js
+++ b/test/built-ins/Boolean/proto-from-ctor-realm.js
@@ -18,7 +18,7 @@ info: |
        a. Let realm be ? GetFunctionRealm(constructor).
        b. Let proto be realm's intrinsic object named intrinsicDefaultProto.
     [...]
-features: [Reflect]
+features: [cross-realm, Reflect]
 ---*/
 
 var other = $262.createRealm().global;
diff --git a/test/built-ins/DataView/proto-from-ctor-realm-sab.js b/test/built-ins/DataView/proto-from-ctor-realm-sab.js
index f161a30581..9caf877f2b 100644
--- a/test/built-ins/DataView/proto-from-ctor-realm-sab.js
+++ b/test/built-ins/DataView/proto-from-ctor-realm-sab.js
@@ -20,7 +20,7 @@ info: |
        a. Let realm be ? GetFunctionRealm(constructor).
        b. Let proto be realm's intrinsic object named intrinsicDefaultProto.
     [...]
-features: [Reflect, SharedArrayBuffer]
+features: [cross-realm, Reflect, SharedArrayBuffer]
 ---*/
 
 var other = $262.createRealm().global;
diff --git a/test/built-ins/DataView/proto-from-ctor-realm.js b/test/built-ins/DataView/proto-from-ctor-realm.js
index 95d1b3db88..d5f9e5c0e9 100644
--- a/test/built-ins/DataView/proto-from-ctor-realm.js
+++ b/test/built-ins/DataView/proto-from-ctor-realm.js
@@ -19,7 +19,7 @@ info: |
        a. Let realm be ? GetFunctionRealm(constructor).
        b. Let proto be realm's intrinsic object named intrinsicDefaultProto.
     [...]
-features: [Reflect]
+features: [cross-realm, Reflect]
 ---*/
 
 var other = $262.createRealm().global;
diff --git a/test/built-ins/Date/proto-from-ctor-realm-one.js b/test/built-ins/Date/proto-from-ctor-realm-one.js
index d1200f6ad3..d741da68eb 100644
--- a/test/built-ins/Date/proto-from-ctor-realm-one.js
+++ b/test/built-ins/Date/proto-from-ctor-realm-one.js
@@ -20,7 +20,7 @@ info: |
        a. Let realm be ? GetFunctionRealm(constructor).
        b. Let proto be realm's intrinsic object named intrinsicDefaultProto.
     [...]
-features: [Reflect]
+features: [cross-realm, Reflect]
 ---*/
 
 var other = $262.createRealm().global;
diff --git a/test/built-ins/Date/proto-from-ctor-realm-two.js b/test/built-ins/Date/proto-from-ctor-realm-two.js
index a04e27f8c4..472fbe8058 100644
--- a/test/built-ins/Date/proto-from-ctor-realm-two.js
+++ b/test/built-ins/Date/proto-from-ctor-realm-two.js
@@ -20,7 +20,7 @@ info: |
        a. Let realm be ? GetFunctionRealm(constructor).
        b. Let proto be realm's intrinsic object named intrinsicDefaultProto.
     [...]
-features: [Reflect]
+features: [cross-realm, Reflect]
 ---*/
 
 var other = $262.createRealm().global;
diff --git a/test/built-ins/Date/proto-from-ctor-realm-zero.js b/test/built-ins/Date/proto-from-ctor-realm-zero.js
index c48161fa4c..c56e3ae0b3 100644
--- a/test/built-ins/Date/proto-from-ctor-realm-zero.js
+++ b/test/built-ins/Date/proto-from-ctor-realm-zero.js
@@ -19,7 +19,7 @@ info: |
        a. Let realm be ? GetFunctionRealm(constructor).
        b. Let proto be realm's intrinsic object named intrinsicDefaultProto.
     [...]
-features: [Reflect]
+features: [cross-realm, Reflect]
 ---*/
 
 var other = $262.createRealm().global;
diff --git a/test/built-ins/Error/proto-from-ctor-realm.js b/test/built-ins/Error/proto-from-ctor-realm.js
index d4d641fcb7..beda3c2d7b 100644
--- a/test/built-ins/Error/proto-from-ctor-realm.js
+++ b/test/built-ins/Error/proto-from-ctor-realm.js
@@ -18,7 +18,7 @@ info: |
        a. Let realm be ? GetFunctionRealm(constructor).
        b. Let proto be realm's intrinsic object named intrinsicDefaultProto.
     [...]
-features: [Reflect]
+features: [cross-realm, Reflect]
 ---*/
 
 var other = $262.createRealm().global;
diff --git a/test/built-ins/Function/call-bind-this-realm-undef.js b/test/built-ins/Function/call-bind-this-realm-undef.js
index 1df54747f5..0a087993d3 100644
--- a/test/built-ins/Function/call-bind-this-realm-undef.js
+++ b/test/built-ins/Function/call-bind-this-realm-undef.js
@@ -19,6 +19,7 @@ info: >
         ii. Let globalEnvRec be globalEnv's EnvironmentRecord.
         iii. Let thisValue be globalEnvRec.[[GlobalThisValue]].
   [...]
+features: [cross-realm]
 ---*/
 
 var other = $262.createRealm().global;
diff --git a/test/built-ins/Function/call-bind-this-realm-value.js b/test/built-ins/Function/call-bind-this-realm-value.js
index 11aa62b744..32d794e371 100644
--- a/test/built-ins/Function/call-bind-this-realm-value.js
+++ b/test/built-ins/Function/call-bind-this-realm-value.js
@@ -20,6 +20,7 @@ info: >
         i. Let thisValue be ! ToObject(thisArgument).
         ii. NOTE ToObject produces wrapper objects using calleeRealm.
   [...]
+features: [cross-realm]
 ---*/
 
 var other = $262.createRealm().global;
diff --git a/test/built-ins/Function/internals/Call/class-ctor-realm.js b/test/built-ins/Function/internals/Call/class-ctor-realm.js
index 1433e5e425..bfbfee4044 100644
--- a/test/built-ins/Function/internals/Call/class-ctor-realm.js
+++ b/test/built-ins/Function/internals/Call/class-ctor-realm.js
@@ -10,7 +10,7 @@ info: |
   [...]
   2. If F's [[FunctionKind]] internal slot is "classConstructor", throw a
      TypeError exception.
-features: [class]
+features: [cross-realm, class]
 ---*/
 
 var C = $262.createRealm().global.eval('0, class {}');
diff --git a/test/built-ins/Function/internals/Construct/base-ctor-revoked-proxy-realm.js b/test/built-ins/Function/internals/Construct/base-ctor-revoked-proxy-realm.js
index 87bff8a5ec..0099ed9363 100644
--- a/test/built-ins/Function/internals/Construct/base-ctor-revoked-proxy-realm.js
+++ b/test/built-ins/Function/internals/Construct/base-ctor-revoked-proxy-realm.js
@@ -37,7 +37,7 @@ info: |
   4. If obj is a Proxy exotic object, then
      a. If the value of the [[ProxyHandler]] internal slot of obj is null,
         throw a TypeError exception.
-features: [Proxy]
+features: [cross-realm, Proxy]
 ---*/
 
 var other = $262.createRealm().global;
diff --git a/test/built-ins/Function/internals/Construct/derived-return-val-realm.js b/test/built-ins/Function/internals/Construct/derived-return-val-realm.js
index 52e9c69e24..96dc57d808 100644
--- a/test/built-ins/Function/internals/Construct/derived-return-val-realm.js
+++ b/test/built-ins/Function/internals/Construct/derived-return-val-realm.js
@@ -14,7 +14,7 @@ info: |
       b. If kind is "base", return NormalCompletion(thisArgument).
       c. If result.[[Value]] is not undefined, throw a TypeError exception.
   [...]
-features: [class]
+features: [cross-realm, class]
 ---*/
 
 var C = $262.createRealm().global.eval(
diff --git a/test/built-ins/Function/internals/Construct/derived-this-uninitialized-realm.js b/test/built-ins/Function/internals/Construct/derived-this-uninitialized-realm.js
index 4c9484659b..f1fdf5f449 100644
--- a/test/built-ins/Function/internals/Construct/derived-this-uninitialized-realm.js
+++ b/test/built-ins/Function/internals/Construct/derived-this-uninitialized-realm.js
@@ -15,7 +15,7 @@ info: |
   [...]
   3. If envRec.[[ThisBindingStatus]] is "uninitialized", throw a ReferenceError
      exception.
-features: [class]
+features: [cross-realm, class]
 ---*/
 
 var C = $262.createRealm().global.eval(
diff --git a/test/built-ins/Function/proto-from-ctor-realm.js b/test/built-ins/Function/proto-from-ctor-realm.js
index 1313568593..5628f4dd67 100644
--- a/test/built-ins/Function/proto-from-ctor-realm.js
+++ b/test/built-ins/Function/proto-from-ctor-realm.js
@@ -26,7 +26,7 @@ info: |
        a. Let realm be ? GetFunctionRealm(constructor).
        b. Let proto be realm's intrinsic object named intrinsicDefaultProto.
     [...]
-features: [Reflect]
+features: [cross-realm, Reflect]
 ---*/
 
 var other = $262.createRealm().global;
diff --git a/test/built-ins/Function/prototype/bind/get-fn-realm.js b/test/built-ins/Function/prototype/bind/get-fn-realm.js
index 40d1153906..104aac2eab 100644
--- a/test/built-ins/Function/prototype/bind/get-fn-realm.js
+++ b/test/built-ins/Function/prototype/bind/get-fn-realm.js
@@ -13,6 +13,7 @@ info: |
     3. If obj is a Bound Function exotic object, then
        a. Let target be obj's [[BoundTargetFunction]] internal slot.
        b. Return ? GetFunctionRealm(target).
+features: [cross-realm]
 ---*/
 
 var other = $262.createRealm().global;
diff --git a/test/built-ins/Function/prototype/bind/proto-from-ctor-realm.js b/test/built-ins/Function/prototype/bind/proto-from-ctor-realm.js
index ed6b03795c..76e163d465 100644
--- a/test/built-ins/Function/prototype/bind/proto-from-ctor-realm.js
+++ b/test/built-ins/Function/prototype/bind/proto-from-ctor-realm.js
@@ -16,7 +16,7 @@ info: |
        a. Let realm be ? GetFunctionRealm(constructor).
        b. Let proto be realm's intrinsic object named intrinsicDefaultProto.
     [...]
-features: [Reflect]
+features: [cross-realm, Reflect]
 ---*/
 
 var other = $262.createRealm().global;
diff --git a/test/built-ins/GeneratorFunction/proto-from-ctor-realm.js b/test/built-ins/GeneratorFunction/proto-from-ctor-realm.js
index 5a485ef12d..6e1bc5fb9a 100644
--- a/test/built-ins/GeneratorFunction/proto-from-ctor-realm.js
+++ b/test/built-ins/GeneratorFunction/proto-from-ctor-realm.js
@@ -26,7 +26,7 @@ info: |
        a. Let realm be ? GetFunctionRealm(constructor).
        b. Let proto be realm's intrinsic object named intrinsicDefaultProto.
     [...]
-features: [Reflect]
+features: [cross-realm, Reflect]
 ---*/
 
 var GeneratorFunction = Object.getPrototypeOf(function* () {}).constructor;
diff --git a/test/built-ins/Map/proto-from-ctor-realm.js b/test/built-ins/Map/proto-from-ctor-realm.js
index 737408a32f..291dec6fc8 100644
--- a/test/built-ins/Map/proto-from-ctor-realm.js
+++ b/test/built-ins/Map/proto-from-ctor-realm.js
@@ -18,7 +18,7 @@ info: |
        a. Let realm be ? GetFunctionRealm(constructor).
        b. Let proto be realm's intrinsic object named intrinsicDefaultProto.
     [...]
-features: [Reflect]
+features: [cross-realm, Reflect]
 ---*/
 
 var other = $262.createRealm().global;
diff --git a/test/built-ins/Number/proto-from-ctor-realm.js b/test/built-ins/Number/proto-from-ctor-realm.js
index dad5208bb3..a1a8729c9c 100644
--- a/test/built-ins/Number/proto-from-ctor-realm.js
+++ b/test/built-ins/Number/proto-from-ctor-realm.js
@@ -18,7 +18,7 @@ info: |
        a. Let realm be ? GetFunctionRealm(constructor).
        b. Let proto be realm's intrinsic object named intrinsicDefaultProto.
     [...]
-features: [Reflect]
+features: [cross-realm, Reflect]
 ---*/
 
 var other = $262.createRealm().global;
diff --git a/test/built-ins/Object/proto-from-ctor.js b/test/built-ins/Object/proto-from-ctor.js
index 70e8b29b99..387a1d2464 100644
--- a/test/built-ins/Object/proto-from-ctor.js
+++ b/test/built-ins/Object/proto-from-ctor.js
@@ -16,7 +16,7 @@ info: |
        a. Let realm be ? GetFunctionRealm(constructor).
        b. Let proto be realm's intrinsic object named intrinsicDefaultProto.
     [...]
-features: [Reflect]
+features: [cross-realm, Reflect]
 ---*/
 
 var other = $262.createRealm().global;
diff --git a/test/built-ins/Promise/proto-from-ctor-realm.js b/test/built-ins/Promise/proto-from-ctor-realm.js
index b7092136fe..d2eedddd24 100644
--- a/test/built-ins/Promise/proto-from-ctor-realm.js
+++ b/test/built-ins/Promise/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: [Reflect]
+features: [cross-realm, Reflect]
 ---*/
 
 var other = $262.createRealm().global;
diff --git a/test/built-ins/Proxy/apply/arguments-realm.js b/test/built-ins/Proxy/apply/arguments-realm.js
index b47d5966e4..4fb3c3e0bc 100644
--- a/test/built-ins/Proxy/apply/arguments-realm.js
+++ b/test/built-ins/Proxy/apply/arguments-realm.js
@@ -9,6 +9,7 @@ info: |
   [...]
   7. Let argArray be CreateArrayFromList(argumentsList).
   8. Return ? Call(trap, handler, « target, thisArgument, argArray »).
+features: [cross-realm]
 ---*/
 
 var f = $262.createRealm().global.eval(
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 a88845b4d5..e9298ce27a 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,6 +6,7 @@ es6id: 9.5.13
 description: >
   Throws if trap is not callable (honoring the Realm of the current execution
   context)
+features: [cross-realm]
 ---*/
 
 var OProxy = $262.createRealm().global.Proxy;
diff --git a/test/built-ins/Proxy/construct/arguments-realm.js b/test/built-ins/Proxy/construct/arguments-realm.js
index fe22d9c8a0..b0a92a7ab4 100644
--- a/test/built-ins/Proxy/construct/arguments-realm.js
+++ b/test/built-ins/Proxy/construct/arguments-realm.js
@@ -10,6 +10,7 @@ info: |
   7. Let argArray be CreateArrayFromList(argumentsList).
   8. Let newObj be ? Call(trap, handler, « target, argArray, newTarget »).
   [...]
+features: [cross-realm]
 ---*/
 
 var C = $262.createRealm().global.eval(
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 c556ce2ea9..ea02b140a7 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,6 +6,7 @@ es6id: 9.5.14
 description: >
   Throws if trap is not callable (honoring the Realm of the current execution
   context)
+features: [cross-realm]
 ---*/
 
 var OProxy = $262.createRealm().global.Proxy;
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 56433dc7b0..0fd99fc0f4 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: [Reflect.construct]
+features: [cross-realm, Reflect.construct]
 ---*/
 
 var other = $262.createRealm().global;
diff --git a/test/built-ins/Proxy/defineProperty/desc-realm.js b/test/built-ins/Proxy/defineProperty/desc-realm.js
index 7bee5d9af3..609ed7e146 100644
--- a/test/built-ins/Proxy/defineProperty/desc-realm.js
+++ b/test/built-ins/Proxy/defineProperty/desc-realm.js
@@ -21,6 +21,7 @@ info: |
   2. Let obj be ObjectCreate(%ObjectPrototype%).
   ...
   11. Return obj.
+features: [cross-realm]
 ---*/
 
 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 22039b300c..746dea5399 100644
--- a/test/built-ins/Proxy/defineProperty/null-handler-realm.js
+++ b/test/built-ins/Proxy/defineProperty/null-handler-realm.js
@@ -10,6 +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]
 ---*/
 
 var OProxy = $262.createRealm().global.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 747158e43f..b87cfbfe5d 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,6 +15,7 @@ info: |
         b. If settingConfigFalse is true and targetDesc.[[Configurable]] is
         true, throw a TypeError exception.
     ...
+features: [cross-realm]
 ---*/
 
 var OProxy = $262.createRealm().global.Proxy;
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 0b1e118eda..4d62b68c96 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,6 +14,7 @@ info: |
         a. If IsCompatiblePropertyDescriptor(extensibleTarget, Desc ,
         targetDesc) is false, throw a TypeError exception.
     ...
+features: [cross-realm]
 ---*/
 
 var OProxy = $262.createRealm().global.Proxy;
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 dcdf892968..7469989277 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,6 +15,7 @@ info: |
         a. If IsCompatiblePropertyDescriptor(extensibleTarget, Desc ,
         targetDesc) is false, throw a TypeError exception.
     ...
+features: [cross-realm]
 ---*/
 
 var OProxy = $262.createRealm().global.Proxy;
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 a1d99efe84..b1f5b831e0 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,6 +15,7 @@ info: |
         ...
         b. If settingConfigFalse is true, throw a TypeError exception.
     ...
+features: [cross-realm]
 ---*/
 
 var OProxy = $262.createRealm().global.Proxy;
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 9fdfa2fad3..9471abc137 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,6 +14,7 @@ info: |
     19. If targetDesc is undefined, then
         a. If extensibleTarget is false, throw a TypeError exception.
     ...
+features: [cross-realm]
 ---*/
 
 var OProxy = $262.createRealm().global.Proxy;
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 ee22faec42..2542dcf056 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,6 +17,7 @@ info: |
         2. Let func be GetV(O, P).
         5. If IsCallable(func) is false, throw a TypeError exception.
         ...
+features: [cross-realm]
 ---*/
 
 var OProxy = $262.createRealm().global.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 34891d251e..b1f1a1713c 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,6 +15,7 @@ info: |
     7.3.9 GetMethod (O, P)
 
     5. If IsCallable(func) is false, throw a TypeError exception.
+features: [cross-realm]
 ---*/
 
 var OProxy = $262.createRealm().global.Proxy;
diff --git a/test/built-ins/Proxy/get-fn-realm.js b/test/built-ins/Proxy/get-fn-realm.js
index a2fa4d5eeb..08968ff920 100644
--- a/test/built-ins/Proxy/get-fn-realm.js
+++ b/test/built-ins/Proxy/get-fn-realm.js
@@ -16,6 +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]
 ---*/
 
 var other = $262.createRealm().global;
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 18a7f88e04..1d3cfade35 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,6 +15,7 @@ info: |
     7.3.9 GetMethod (O, P)
 
     5. If IsCallable(func) is false, throw a TypeError exception.
+features: [cross-realm]
 ---*/
 
 var OProxy = $262.createRealm().global.Proxy;
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 92a5003bc5..d27054cf46 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,6 +10,7 @@ info: |
   [...]
   9. If Type(trapResultObj) is neither Object nor Undefined, throw a TypeError
      exception.
+features: [cross-realm]
 ---*/
 
 var OProxy = $262.createRealm().global.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 e66ad8e74b..f5740c8ed7 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,6 +20,7 @@ info: |
         2. Let func be GetV(O, P).
         5. If IsCallable(func) is false, throw a TypeError exception.
         ...
+features: [cross-realm]
 ---*/
 
 var OProxy = $262.createRealm().global.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 d05748afdf..4a0f1a0bc1 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,6 +6,7 @@ es6id: 9.5.1
 description: >
   Throws if trap is not callable (honoring the Realm of the current execution
   context)
+features: [cross-realm]
 ---*/
 
 var OProxy = $262.createRealm().global.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 2f95e8eda1..d36bfe4bb5 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,6 +17,7 @@ info: |
         2. Let func be GetV(O, P).
         5. If IsCallable(func) is false, throw a TypeError exception.
         ...
+features: [cross-realm]
 ---*/
 
 var OProxy = $262.createRealm().global.Proxy;
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 db771baa3b..9c4e957956 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,6 +19,7 @@ info: |
         2. Let func be GetV(O, P).
         5. If IsCallable(func) is false, throw a TypeError exception.
         ...
+features: [cross-realm]
 ---*/
 
 var OProxy = $262.createRealm().global.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 ba45959711..58d211c2f1 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: [Symbol]
+features: [cross-realm, Symbol]
 ---*/
 
 var other = $262.createRealm().global;
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 1cc6c5d6e5..030d6b5e80 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,6 +15,7 @@ info: |
     7.3.9 GetMethod (O, P)
 
     4. If IsCallable(func) is false, throw a TypeError exception.
+features: [cross-realm]
 ---*/
 
 var OProxy = $262.createRealm().global.Proxy;
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 aeec54ad69..f4806c4700 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,6 +19,7 @@ info: |
         2. Let func be GetV(O, P).
         5. If IsCallable(func) is false, throw a TypeError exception.
         ...
+features: [cross-realm]
 ---*/
 
 var OProxy = $262.createRealm().global.Proxy;
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 528f1171fb..b6338c67fb 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,6 +15,7 @@ info: |
     7.3.9 GetMethod (O, P)
 
     5. If IsCallable(func) is false, throw a TypeError exception.
+features: [cross-realm]
 ---*/
 
 var OProxy = $262.createRealm().global.Proxy;
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 50982f25bd..bb0e9cf4b2 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,6 +20,7 @@ info: |
         2. Let func be GetV(O, P).
         5. If IsCallable(func) is false, throw a TypeError exception.
         ...
+features: [cross-realm]
 ---*/
 
 var OProxy = $262.createRealm().global.Proxy;
diff --git a/test/built-ins/RegExp/proto-from-ctor-realm.js b/test/built-ins/RegExp/proto-from-ctor-realm.js
index 4bc082e8b1..09531d2de3 100644
--- a/test/built-ins/RegExp/proto-from-ctor-realm.js
+++ b/test/built-ins/RegExp/proto-from-ctor-realm.js
@@ -19,7 +19,7 @@ info: |
        a. Let realm be ? GetFunctionRealm(constructor).
        b. Let proto be realm's intrinsic object named intrinsicDefaultProto.
     [...]
-features: [Reflect]
+features: [cross-realm, Reflect]
 ---*/
 
 var other = $262.createRealm().global;
diff --git a/test/built-ins/RegExp/prototype/Symbol.split/splitter-proto-from-ctor-realm.js b/test/built-ins/RegExp/prototype/Symbol.split/splitter-proto-from-ctor-realm.js
index 9dafabbf9a..5769416706 100644
--- a/test/built-ins/RegExp/prototype/Symbol.split/splitter-proto-from-ctor-realm.js
+++ b/test/built-ins/RegExp/prototype/Symbol.split/splitter-proto-from-ctor-realm.js
@@ -15,7 +15,7 @@ info: >
        a. Let realm be ? GetFunctionRealm(constructor).
        b. Let proto be realm's intrinsic object named intrinsicDefaultProto.
     [...]
-features: [Symbol.species, Symbol.split]
+features: [cross-realm, Symbol.species, Symbol.split]
 ---*/
 
 var other = $262.createRealm().global;
diff --git a/test/built-ins/Set/proto-from-ctor-realm.js b/test/built-ins/Set/proto-from-ctor-realm.js
index 6e58b81a02..c5bf95d28e 100644
--- a/test/built-ins/Set/proto-from-ctor-realm.js
+++ b/test/built-ins/Set/proto-from-ctor-realm.js
@@ -18,7 +18,7 @@ info: |
        a. Let realm be ? GetFunctionRealm(constructor).
        b. Let proto be realm's intrinsic object named intrinsicDefaultProto.
     [...]
-features: [Reflect]
+features: [cross-realm, Reflect]
 ---*/
 
 var other = $262.createRealm().global;
diff --git a/test/built-ins/SharedArrayBuffer/proto-from-ctor-realm.js b/test/built-ins/SharedArrayBuffer/proto-from-ctor-realm.js
index 72ad0e4b71..7350ab82d6 100644
--- a/test/built-ins/SharedArrayBuffer/proto-from-ctor-realm.js
+++ b/test/built-ins/SharedArrayBuffer/proto-from-ctor-realm.js
@@ -17,7 +17,7 @@ info: |
        a. Let realm be ? GetFunctionRealm(constructor).
        b. Let proto be realm's intrinsic object named intrinsicDefaultProto.
     [...]
-features: [Reflect]
+features: [cross-realm, Reflect]
 ---*/
 
 var other = $262.createRealm().global;
diff --git a/test/built-ins/String/proto-from-ctor-realm.js b/test/built-ins/String/proto-from-ctor-realm.js
index c8278a3907..16200238bd 100644
--- a/test/built-ins/String/proto-from-ctor-realm.js
+++ b/test/built-ins/String/proto-from-ctor-realm.js
@@ -17,7 +17,7 @@ info: |
        a. Let realm be ? GetFunctionRealm(constructor).
        b. Let proto be realm's intrinsic object named intrinsicDefaultProto.
     [...]
-features: [Reflect]
+features: [cross-realm, Reflect]
 ---*/
 
 var other = $262.createRealm().global;
diff --git a/test/built-ins/Symbol/for/cross-realm.js b/test/built-ins/Symbol/for/cross-realm.js
index 9b8dbec9dc..34f639fc1a 100644
--- a/test/built-ins/Symbol/for/cross-realm.js
+++ b/test/built-ins/Symbol/for/cross-realm.js
@@ -8,7 +8,7 @@ info: >
     The GlobalSymbolRegistry is a List that is globally available. It is shared
     by all realms. Prior to the evaluation of any ECMAScript code it is
     initialized as a new empty List.
-features: [Symbol]
+features: [cross-realm, Symbol]
 ---*/
 
 var OSymbol = $262.createRealm().global.Symbol;
diff --git a/test/built-ins/Symbol/hasInstance/cross-realm.js b/test/built-ins/Symbol/hasInstance/cross-realm.js
index 8068a8100d..2a507baba5 100644
--- a/test/built-ins/Symbol/hasInstance/cross-realm.js
+++ b/test/built-ins/Symbol/hasInstance/cross-realm.js
@@ -7,7 +7,7 @@ description: Value shared by all realms
 info: >
   Unless otherwise specified, well-known symbols values are shared by all
   realms.
-features: [Symbol.hasInstance]
+features: [cross-realm, Symbol.hasInstance]
 ---*/
 
 var OSymbol = $262.createRealm().global.Symbol;
diff --git a/test/built-ins/Symbol/isConcatSpreadable/cross-realm.js b/test/built-ins/Symbol/isConcatSpreadable/cross-realm.js
index bc2e9c5b02..6c4df311d1 100644
--- a/test/built-ins/Symbol/isConcatSpreadable/cross-realm.js
+++ b/test/built-ins/Symbol/isConcatSpreadable/cross-realm.js
@@ -7,7 +7,7 @@ description: Value shared by all realms
 info: >
   Unless otherwise specified, well-known symbols values are shared by all
   realms.
-features: [Symbol.isConcatSpreadable]
+features: [cross-realm, Symbol.isConcatSpreadable]
 ---*/
 
 var OSymbol = $262.createRealm().global.Symbol;
diff --git a/test/built-ins/Symbol/iterator/cross-realm.js b/test/built-ins/Symbol/iterator/cross-realm.js
index 371fb80a24..eb122dde3a 100644
--- a/test/built-ins/Symbol/iterator/cross-realm.js
+++ b/test/built-ins/Symbol/iterator/cross-realm.js
@@ -7,7 +7,7 @@ description: Value shared by all realms
 info: >
   Unless otherwise specified, well-known symbols values are shared by all
   realms.
-features: [Symbol.iterator]
+features: [cross-realm, Symbol.iterator]
 ---*/
 
 var OSymbol = $262.createRealm().global.Symbol;
diff --git a/test/built-ins/Symbol/keyFor/cross-realm.js b/test/built-ins/Symbol/keyFor/cross-realm.js
index d700b28eac..3b8ed1107f 100644
--- a/test/built-ins/Symbol/keyFor/cross-realm.js
+++ b/test/built-ins/Symbol/keyFor/cross-realm.js
@@ -8,7 +8,7 @@ info: >
     The GlobalSymbolRegistry is a List that is globally available. It is shared
     by all realms. Prior to the evaluation of any ECMAScript code it is
     initialized as a new empty List.
-features: [Symbol]
+features: [cross-realm, Symbol]
 ---*/
 
 var OSymbol = $262.createRealm().global.Symbol;
diff --git a/test/built-ins/Symbol/match/cross-realm.js b/test/built-ins/Symbol/match/cross-realm.js
index 687e8b2fd1..a79c2e2143 100644
--- a/test/built-ins/Symbol/match/cross-realm.js
+++ b/test/built-ins/Symbol/match/cross-realm.js
@@ -7,7 +7,7 @@ description: Value shared by all realms
 info: >
   Unless otherwise specified, well-known symbols values are shared by all
   realms.
-features: [Symbol.match]
+features: [cross-realm, Symbol.match]
 ---*/
 
 var OSymbol = $262.createRealm().global.Symbol;
diff --git a/test/built-ins/Symbol/replace/cross-realm.js b/test/built-ins/Symbol/replace/cross-realm.js
index 5e0f49d995..51acca3301 100644
--- a/test/built-ins/Symbol/replace/cross-realm.js
+++ b/test/built-ins/Symbol/replace/cross-realm.js
@@ -7,7 +7,7 @@ description: Value shared by all realms
 info: >
   Unless otherwise specified, well-known symbols values are shared by all
   realms.
-features: [Symbol.replace]
+features: [cross-realm, Symbol.replace]
 ---*/
 
 var OSymbol = $262.createRealm().global.Symbol;
diff --git a/test/built-ins/Symbol/search/cross-realm.js b/test/built-ins/Symbol/search/cross-realm.js
index cb747613f8..342b75dfc8 100644
--- a/test/built-ins/Symbol/search/cross-realm.js
+++ b/test/built-ins/Symbol/search/cross-realm.js
@@ -7,7 +7,7 @@ description: Value shared by all realms
 info: >
   Unless otherwise specified, well-known symbols values are shared by all
   realms.
-features: [Symbol.search]
+features: [cross-realm, Symbol.search]
 ---*/
 
 var OSymbol = $262.createRealm().global.Symbol;
diff --git a/test/built-ins/Symbol/species/cross-realm.js b/test/built-ins/Symbol/species/cross-realm.js
index 55323ee1a3..17623e421d 100644
--- a/test/built-ins/Symbol/species/cross-realm.js
+++ b/test/built-ins/Symbol/species/cross-realm.js
@@ -7,7 +7,7 @@ description: Value shared by all realms
 info: >
   Unless otherwise specified, well-known symbols values are shared by all
   realms.
-features: [Symbol.species]
+features: [cross-realm, Symbol.species]
 ---*/
 
 var OSymbol = $262.createRealm().global.Symbol;
diff --git a/test/built-ins/Symbol/split/cross-realm.js b/test/built-ins/Symbol/split/cross-realm.js
index f3d910697c..cfeb173d63 100644
--- a/test/built-ins/Symbol/split/cross-realm.js
+++ b/test/built-ins/Symbol/split/cross-realm.js
@@ -7,7 +7,7 @@ description: Value shared by all realms
 info: >
   Unless otherwise specified, well-known symbols values are shared by all
   realms.
-features: [Symbol.split]
+features: [cross-realm, Symbol.split]
 ---*/
 
 var OSymbol = $262.createRealm().global.Symbol;
diff --git a/test/built-ins/Symbol/toPrimitive/cross-realm.js b/test/built-ins/Symbol/toPrimitive/cross-realm.js
index beab93b996..0ebf44fbb5 100644
--- a/test/built-ins/Symbol/toPrimitive/cross-realm.js
+++ b/test/built-ins/Symbol/toPrimitive/cross-realm.js
@@ -7,7 +7,7 @@ description: Value shared by all realms
 info: >
   Unless otherwise specified, well-known symbols values are shared by all
   realms.
-features: [Symbol.split]
+features: [cross-realm, Symbol.split]
 ---*/
 
 var OSymbol = $262.createRealm().global.Symbol;
diff --git a/test/built-ins/Symbol/toStringTag/cross-realm.js b/test/built-ins/Symbol/toStringTag/cross-realm.js
index f98706273f..e3f45f95da 100644
--- a/test/built-ins/Symbol/toStringTag/cross-realm.js
+++ b/test/built-ins/Symbol/toStringTag/cross-realm.js
@@ -7,7 +7,7 @@ description: Value shared by all realms
 info: >
   Unless otherwise specified, well-known symbols values are shared by all
   realms.
-features: [Symbol.toStringTag]
+features: [cross-realm, Symbol.toStringTag]
 ---*/
 
 var OSymbol = $262.createRealm().global.Symbol;
diff --git a/test/built-ins/Symbol/unscopables/cross-realm.js b/test/built-ins/Symbol/unscopables/cross-realm.js
index 42805a940b..39a18dc7bd 100644
--- a/test/built-ins/Symbol/unscopables/cross-realm.js
+++ b/test/built-ins/Symbol/unscopables/cross-realm.js
@@ -7,7 +7,7 @@ description: Value shared by all realms
 info: >
   Unless otherwise specified, well-known symbols values are shared by all
   realms.
-features: [Symbol.unscopables]
+features: [cross-realm, Symbol.unscopables]
 ---*/
 
 var OSymbol = $262.createRealm().global.Symbol;
diff --git a/test/built-ins/ThrowTypeError/distinct-cross-realm.js b/test/built-ins/ThrowTypeError/distinct-cross-realm.js
index fe9fd31d13..22d9a37119 100644
--- a/test/built-ins/ThrowTypeError/distinct-cross-realm.js
+++ b/test/built-ins/ThrowTypeError/distinct-cross-realm.js
@@ -9,6 +9,7 @@ info: >
 
   The %ThrowTypeError% intrinsic is an anonymous built-in function
   object that is defined once for each realm.
+features: [cross-realm]
 ---*/
 
 var other = $262.createRealm().global;
diff --git a/test/built-ins/TypedArrays/buffer-arg-proto-from-ctor-realm-sab.js b/test/built-ins/TypedArrays/buffer-arg-proto-from-ctor-realm-sab.js
index 75bf939958..9cab95b473 100644
--- a/test/built-ins/TypedArrays/buffer-arg-proto-from-ctor-realm-sab.js
+++ b/test/built-ins/TypedArrays/buffer-arg-proto-from-ctor-realm-sab.js
@@ -24,7 +24,7 @@ info: |
        b. Let proto be realm's intrinsic object named intrinsicDefaultProto.
     5. Return proto.
 includes: [testTypedArray.js]
-features: [SharedArrayBuffer, Reflect, TypedArray]
+features: [cross-realm, SharedArrayBuffer, Reflect, TypedArray]
 ---*/
 
 var other = $262.createRealm().global;
diff --git a/test/built-ins/TypedArrays/buffer-arg-proto-from-ctor-realm.js b/test/built-ins/TypedArrays/buffer-arg-proto-from-ctor-realm.js
index bf7449b533..d93538db46 100644
--- a/test/built-ins/TypedArrays/buffer-arg-proto-from-ctor-realm.js
+++ b/test/built-ins/TypedArrays/buffer-arg-proto-from-ctor-realm.js
@@ -23,7 +23,7 @@ info: |
        b. Let proto be realm's intrinsic object named intrinsicDefaultProto.
     5. Return proto.
 includes: [testTypedArray.js]
-features: [Reflect, TypedArray]
+features: [cross-realm, Reflect, TypedArray]
 ---*/
 
 var other = $262.createRealm().global;
diff --git a/test/built-ins/TypedArrays/internals/DefineOwnProperty/detached-buffer-realm.js b/test/built-ins/TypedArrays/internals/DefineOwnProperty/detached-buffer-realm.js
index 32fc13f352..f5d57aedba 100644
--- a/test/built-ins/TypedArrays/internals/DefineOwnProperty/detached-buffer-realm.js
+++ b/test/built-ins/TypedArrays/internals/DefineOwnProperty/detached-buffer-realm.js
@@ -24,7 +24,7 @@ info: >
   5. If IsDetachedBuffer(buffer) is true, throw a TypeError exception.
   ...
 includes: [testTypedArray.js, detachArrayBuffer.js]
-features: [Reflect, TypedArray]
+features: [cross-realm, Reflect, TypedArray]
 ---*/
 
 var other = $262.createRealm().global;
diff --git a/test/built-ins/TypedArrays/internals/Get/detached-buffer-realm.js b/test/built-ins/TypedArrays/internals/Get/detached-buffer-realm.js
index 7e30672b28..60af64c033 100644
--- a/test/built-ins/TypedArrays/internals/Get/detached-buffer-realm.js
+++ b/test/built-ins/TypedArrays/internals/Get/detached-buffer-realm.js
@@ -15,7 +15,7 @@ info: >
       i. Return ? IntegerIndexedElementGet(O, numericIndex).
   ...
 includes: [testTypedArray.js, detachArrayBuffer.js]
-features: [TypedArray]
+features: [cross-realm, TypedArray]
 ---*/
 
 var other = $262.createRealm().global;
diff --git a/test/built-ins/TypedArrays/internals/GetOwnProperty/detached-buffer-realm.js b/test/built-ins/TypedArrays/internals/GetOwnProperty/detached-buffer-realm.js
index 11e82effa0..fae14e19c8 100644
--- a/test/built-ins/TypedArrays/internals/GetOwnProperty/detached-buffer-realm.js
+++ b/test/built-ins/TypedArrays/internals/GetOwnProperty/detached-buffer-realm.js
@@ -22,7 +22,7 @@ info: >
   4. If IsDetachedBuffer(buffer) is true, throw a TypeError exception.
   ...
 includes: [testTypedArray.js, detachArrayBuffer.js]
-features: [TypedArray]
+features: [cross-realm, TypedArray]
 ---*/
 
 var other = $262.createRealm().global;
diff --git a/test/built-ins/TypedArrays/internals/HasProperty/detached-buffer-realm.js b/test/built-ins/TypedArrays/internals/HasProperty/detached-buffer-realm.js
index fbb7629a6e..bf376f9552 100644
--- a/test/built-ins/TypedArrays/internals/HasProperty/detached-buffer-realm.js
+++ b/test/built-ins/TypedArrays/internals/HasProperty/detached-buffer-realm.js
@@ -16,7 +16,7 @@ info: >
       ii. If IsDetachedBuffer(buffer) is true, throw a TypeError exception.
   ...
 includes: [testTypedArray.js, detachArrayBuffer.js]
-features: [Reflect, TypedArray]
+features: [cross-realm, Reflect, TypedArray]
 ---*/
 
 var other = $262.createRealm().global;
diff --git a/test/built-ins/TypedArrays/internals/Set/detached-buffer-realm.js b/test/built-ins/TypedArrays/internals/Set/detached-buffer-realm.js
index f19222dc93..999702327d 100644
--- a/test/built-ins/TypedArrays/internals/Set/detached-buffer-realm.js
+++ b/test/built-ins/TypedArrays/internals/Set/detached-buffer-realm.js
@@ -23,7 +23,7 @@ info: >
   5. If IsDetachedBuffer(buffer) is true, throw a TypeError exception.
   ...
 includes: [testTypedArray.js, detachArrayBuffer.js]
-features: [TypedArray]
+features: [cross-realm, TypedArray]
 ---*/
 
 var other = $262.createRealm().global;
diff --git a/test/built-ins/TypedArrays/length-arg-proto-from-ctor-realm.js b/test/built-ins/TypedArrays/length-arg-proto-from-ctor-realm.js
index 1c6f8c934c..77cef26162 100644
--- a/test/built-ins/TypedArrays/length-arg-proto-from-ctor-realm.js
+++ b/test/built-ins/TypedArrays/length-arg-proto-from-ctor-realm.js
@@ -22,7 +22,7 @@ info: |
        b. Let proto be realm's intrinsic object named intrinsicDefaultProto.
     5. Return proto.
 includes: [testTypedArray.js]
-features: [Reflect, TypedArray]
+features: [cross-realm, Reflect, TypedArray]
 ---*/
 
 var other = $262.createRealm().global;
diff --git a/test/built-ins/TypedArrays/no-args-proto-from-ctor-realm.js b/test/built-ins/TypedArrays/no-args-proto-from-ctor-realm.js
index 4cf0ca4964..c699221854 100644
--- a/test/built-ins/TypedArrays/no-args-proto-from-ctor-realm.js
+++ b/test/built-ins/TypedArrays/no-args-proto-from-ctor-realm.js
@@ -22,7 +22,7 @@ info: |
        b. Let proto be realm's intrinsic object named intrinsicDefaultProto.
     5. Return proto.
 includes: [testTypedArray.js]
-features: [Reflect, TypedArray]
+features: [cross-realm, Reflect, TypedArray]
 ---*/
 
 var other = $262.createRealm().global;
diff --git a/test/built-ins/TypedArrays/object-arg-proto-from-ctor-realm.js b/test/built-ins/TypedArrays/object-arg-proto-from-ctor-realm.js
index c55eed46d1..a92ceee001 100644
--- a/test/built-ins/TypedArrays/object-arg-proto-from-ctor-realm.js
+++ b/test/built-ins/TypedArrays/object-arg-proto-from-ctor-realm.js
@@ -23,7 +23,7 @@ info: |
        b. Let proto be realm's intrinsic object named intrinsicDefaultProto.
     5. Return proto.
 includes: [testTypedArray.js]
-features: [Reflect, TypedArray]
+features: [cross-realm, Reflect, TypedArray]
 ---*/
 
 var other = $262.createRealm().global;
diff --git a/test/built-ins/TypedArrays/typedarray-arg-other-ctor-buffer-ctor-custom-species-proto-from-ctor-realm.js b/test/built-ins/TypedArrays/typedarray-arg-other-ctor-buffer-ctor-custom-species-proto-from-ctor-realm.js
index a666ff9428..867095c64c 100644
--- a/test/built-ins/TypedArrays/typedarray-arg-other-ctor-buffer-ctor-custom-species-proto-from-ctor-realm.js
+++ b/test/built-ins/TypedArrays/typedarray-arg-other-ctor-buffer-ctor-custom-species-proto-from-ctor-realm.js
@@ -34,7 +34,7 @@ info: >
      b. Let proto be realm's intrinsic object named intrinsicDefaultProto.
   ...
 includes: [testTypedArray.js]
-features: [Symbol.species, TypedArray]
+features: [cross-realm, Symbol.species, TypedArray]
 ---*/
 
 var sample1 = new Int8Array();
diff --git a/test/built-ins/TypedArrays/typedarray-arg-proto-from-ctor-realm.js b/test/built-ins/TypedArrays/typedarray-arg-proto-from-ctor-realm.js
index cf6e5e66da..6e58746cd6 100644
--- a/test/built-ins/TypedArrays/typedarray-arg-proto-from-ctor-realm.js
+++ b/test/built-ins/TypedArrays/typedarray-arg-proto-from-ctor-realm.js
@@ -23,7 +23,7 @@ info: |
        b. Let proto be realm's intrinsic object named intrinsicDefaultProto.
     5. Return proto.
 includes: [testTypedArray.js]
-features: [Reflect, TypedArray]
+features: [cross-realm, Reflect, TypedArray]
 ---*/
 
 var other = $262.createRealm().global;
diff --git a/test/built-ins/TypedArrays/typedarray-arg-same-ctor-buffer-ctor-species-custom-proto-from-ctor-realm.js b/test/built-ins/TypedArrays/typedarray-arg-same-ctor-buffer-ctor-species-custom-proto-from-ctor-realm.js
index f9687957dc..830d5fabd6 100644
--- a/test/built-ins/TypedArrays/typedarray-arg-same-ctor-buffer-ctor-species-custom-proto-from-ctor-realm.js
+++ b/test/built-ins/TypedArrays/typedarray-arg-same-ctor-buffer-ctor-species-custom-proto-from-ctor-realm.js
@@ -46,7 +46,7 @@ info: >
      b. Let proto be realm's intrinsic object named intrinsicDefaultProto.
   ...
 includes: [testTypedArray.js]
-features: [Symbol.species, TypedArray]
+features: [cross-realm, Symbol.species, TypedArray]
 ---*/
 
 var other = $262.createRealm().global;
diff --git a/test/built-ins/WeakMap/proto-from-ctor-realm.js b/test/built-ins/WeakMap/proto-from-ctor-realm.js
index 4188f56865..e37b4201b6 100644
--- a/test/built-ins/WeakMap/proto-from-ctor-realm.js
+++ b/test/built-ins/WeakMap/proto-from-ctor-realm.js
@@ -18,7 +18,7 @@ info: |
        a. Let realm be ? GetFunctionRealm(constructor).
        b. Let proto be realm's intrinsic object named intrinsicDefaultProto.
     [...]
-features: [Reflect]
+features: [cross-realm, Reflect]
 ---*/
 
 var other = $262.createRealm().global;
diff --git a/test/built-ins/WeakSet/proto-from-ctor-realm.js b/test/built-ins/WeakSet/proto-from-ctor-realm.js
index 504ca0c8ff..8764e4a89b 100644
--- a/test/built-ins/WeakSet/proto-from-ctor-realm.js
+++ b/test/built-ins/WeakSet/proto-from-ctor-realm.js
@@ -18,7 +18,7 @@ info: |
        a. Let realm be ? GetFunctionRealm(constructor).
        b. Let proto be realm's intrinsic object named intrinsicDefaultProto.
     [...]
-features: [Reflect]
+features: [cross-realm, Reflect]
 ---*/
 
 var other = $262.createRealm().global;
diff --git a/test/language/eval-code/indirect/realm.js b/test/language/eval-code/indirect/realm.js
index d23a397a71..8216e08c2a 100644
--- a/test/language/eval-code/indirect/realm.js
+++ b/test/language/eval-code/indirect/realm.js
@@ -23,6 +23,7 @@ info: |
   [...]
   24. Let result be EvalDeclarationInstantiation(body, varEnv, lexEnv,
       strictEval).
+features: [cross-realm]
 ---*/
 
 var other = $262.createRealm().global;
diff --git a/test/language/expressions/call/eval-realm-indirect.js b/test/language/expressions/call/eval-realm-indirect.js
index 96c4857087..77360831c1 100644
--- a/test/language/expressions/call/eval-realm-indirect.js
+++ b/test/language/expressions/call/eval-realm-indirect.js
@@ -11,6 +11,7 @@ info: |
        a. If SameValue(func, %eval%) is true, then
           [...]
 flags: [noStrict]
+features: [cross-realm]
 ---*/
 
 var x = 'outside';
diff --git a/test/language/expressions/generators/eval-body-proto-realm.js b/test/language/expressions/generators/eval-body-proto-realm.js
index 62bdc5d2ca..3e809387c1 100644
--- a/test/language/expressions/generators/eval-body-proto-realm.js
+++ b/test/language/expressions/generators/eval-body-proto-realm.js
@@ -18,6 +18,7 @@ info: >
        a. Let realm be ? GetFunctionRealm(constructor).
        b. Let proto be realm's intrinsic object named intrinsicDefaultProto.
     [...]
+features: [cross-realm]
 ---*/
 
 var other = $262.createRealm().global;
diff --git a/test/language/expressions/new/non-ctor-err-realm.js b/test/language/expressions/new/non-ctor-err-realm.js
index bf1434b928..6281ff32e8 100644
--- a/test/language/expressions/new/non-ctor-err-realm.js
+++ b/test/language/expressions/new/non-ctor-err-realm.js
@@ -16,6 +16,7 @@ info: |
   12.3.3.1.1 Runtime Semantics: EvaluateNew
 
   7. If IsConstructor(constructor) is false, throw a TypeError exception.
+features: [cross-realm]
 ---*/
 
 var otherParseInt = $262.createRealm().global.parseInt;
diff --git a/test/language/expressions/super/realm.js b/test/language/expressions/super/realm.js
index 3929474de2..622ebbb954 100644
--- a/test/language/expressions/super/realm.js
+++ b/test/language/expressions/super/realm.js
@@ -19,7 +19,7 @@ info: >
        a. Let realm be ? GetFunctionRealm(constructor).
        b. Let proto be realm's intrinsic object named intrinsicDefaultProto.
     [...]
-features: [Reflect]
+features: [cross-realm, Reflect]
 ---*/
 
 var other = $262.createRealm().global;
diff --git a/test/language/expressions/tagged-template/cache-realm.js b/test/language/expressions/tagged-template/cache-realm.js
index 9d76e194df..039d9ba171 100644
--- a/test/language/expressions/tagged-template/cache-realm.js
+++ b/test/language/expressions/tagged-template/cache-realm.js
@@ -28,6 +28,7 @@ info: |
         a, If e.[[Strings]] and rawStrings contain the same values in the same
            order, then
            i. Return e.[[Array]].
+features: [cross-realm]
 ---*/
 
 var other = $262.createRealm().global;
diff --git a/test/language/types/reference/get-value-prop-base-primitive-realm.js b/test/language/types/reference/get-value-prop-base-primitive-realm.js
index c2480f2ad7..1341383518 100644
--- a/test/language/types/reference/get-value-prop-base-primitive-realm.js
+++ b/test/language/types/reference/get-value-prop-base-primitive-realm.js
@@ -14,7 +14,7 @@ info: >
         i. Assert: In this case, base will never be null or undefined.
         ii. Let base be ToObject(base).
      b. Return ? base.[[Get]](GetReferencedName(V), GetThisValue(V)).
-features: [Symbol]
+features: [cross-realm, Symbol]
 ---*/
 
 var other = $262.createRealm().global;
diff --git a/test/language/types/reference/put-value-prop-base-primitive-realm.js b/test/language/types/reference/put-value-prop-base-primitive-realm.js
index 039f62761f..b45afaed66 100644
--- a/test/language/types/reference/put-value-prop-base-primitive-realm.js
+++ b/test/language/types/reference/put-value-prop-base-primitive-realm.js
@@ -18,7 +18,7 @@ info: >
      c. If succeeded is false and IsStrictReference(V) is true, throw a
         TypeError exception.
      d. Return.
-features: [Symbol, Proxy]
+features: [cross-realm, Symbol, Proxy]
 ---*/
 
 var other = $262.createRealm().global;
-- 
GitLab