diff --git a/features.txt b/features.txt
index b5ae0bd0acafa36f2ee10bd9fff6941e81b57277..4b4c524bd0b8a057aedd85d01bcc7447a8984db0 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 20915985cc3d3bef9d97a31a3edd54009b42d472..4439b49646460ae5a40239bac8c3b59296ce0854 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 5510bcd6b00a420388569412073e72e9f3e1253a..8b962629f3b0a6d3d7e86b5f7bd2ebbed1808e2e 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 09eb4a0b1caa149b282f07f50680274f4c3b6f53..ba9ea4680ddf6ad218b5529b80ac1801c1c66281 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 8549b3c0cb2f24618f1f21051f9bd2a11249c9cc..2cb0045d1f10b02fadbf6ed02e0742001ffb0592 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 dec6e7421654f6e75ebe1582d6dc78c034d3ff98..863bff2c1d88183b987db1aa4131d88e4242959d 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 60195ea85b3cc08762412f97a4cacc3899b33aee..3a0f9a196637858b5873ca665a82d92d8925ff8d 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 580f67b23299a7ee83e7bd9b7af73d6a8cbde782..c83236ae918abe27685c8f3f702f468af082b477 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 c5b29e575834bfb961f6e1cb43b271306876ae25..e13edacf3e80c2108fcf425527f4774f23f9d6bb 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 9c0bb98e3d0da39ddbd3e072d9d06cc929149873..ef393660248cd5ba85adcf13507d0c3137f8b855 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 b33ae4e523cbf066e11042bf8533c38b3ef542c9..967a76f8169f1ab5e2fcb41e8f2417b238fb2803 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 667416f85563da917f00f43fe967ae46a2985dfe..db415e073b0466a6071aaa8426cbd8e147111c6b 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 00721218e098a7ffa74bfd177e2cfc8a26575d01..6305730c043071c378b8ca216619f04dc384e97e 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 e80e79bd3b3e11d39d1f9cbe1193895bf6c56222..baec4557bf508fba7feb759f20878e9dea795097 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 009a316792b9036e2823c5b5eaf419228556a325..86888038ca92d17098a0770aa2df30ae1f68c0a9 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 4038c9b365f705d3c4f16e55f24103ddc493cd02..a168d1bcb0e50496549dee44f507586ecf06a2c6 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 f7ada674cdec46437bf15ebfc8404579353f5644..e25652568e41db9597dfb94a2cbaadddde66b4e5 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 f161a305818a5980d3f527e09578c55e92cd6fd4..9caf877f2b4432c30a3da62fb52921ce3b416095 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 95d1b3db886099982f128df4315202944ce9f0bd..d5f9e5c0e90eb8c73da8fcc69f82fcc784e98179 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 d1200f6ad3be46acf3df48eeb0d9ff7b85479939..d741da68eb88662541cf0b29a9ffc83daadb9d0d 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 a04e27f8c484a9e4edcd6d94aef9b0203b2e5564..472fbe80585d800eeaf2b6b6134c8cef32088299 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 c48161fa4c0bd5c334a5f68913c27713c23e28b7..c56e3ae0b359352a7107d1d59273865723ea5f19 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 d4d641fcb7ca5af2f6074e9e75b794d36aaf6af7..beda3c2d7b928eddf713bd9a4decb1c3b942c3b1 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 1df54747f5aace0784eaf551a59fce982a9bdfbc..0a087993d39981178f9fe0abaf4f6669fdce32cb 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 11aa62b744dedd2407582cfd01533ce43340bed5..32d794e3716df885fa6c3f5b78735a8002f25a60 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 1433e5e425283cb3c0a4465e5a5c6f358febca5e..bfbfee40440598273788318d6991681570f5cdbb 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 87bff8a5ec0528f9dd87c8c799e845a633e7b127..0099ed9363b4fae1487522538ac1c4f7164469d7 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 52e9c69e241eda2226cf3908c8251a7818a248cf..96dc57d808c301fb8dd8282a1c31bc89a61b286c 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 4c9484659bf129f85f0a9861ee0b2f3d7959dc5c..f1fdf5f4498a794c5c41a2761c91d97fbf7ef04f 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 13135685938f2e8589f5740b52bb2fb0c394e3e0..5628f4dd6795f25a8f2a35521df6e7c7c4a4eae5 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 40d11539060337b0790af987b47227bef038fd1c..104aac2eabf43acf2aecd2323334e0a804769c41 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 ed6b03795c107be65816b18482475c484b3332ad..76e163d465c0f357a52ed8b6f1732834b19aae6a 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 5a485ef12da34bb05ea513af1f53b615156ffaed..6e1bc5fb9ac9c94036c984674c263ed732fc1b2a 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 737408a32f5c23ad79f9ac403176ac1f98acb181..291dec6fc8e546e0152805e29b420a2362a21099 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 dad5208bb3fdf796587158da0a4ecf04c25ee6c3..a1a8729c9cf17519784e53aa7d890ddc4b20c60c 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 70e8b29b997c6785b05646e4fc843ac44fd98faf..387a1d2464788f59ae9dc03b017e84615721ce14 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 b7092136fe128fbe04db2f34ffdfb87b0363af78..d2eedddd244a981d98790f75a8401870a9727f54 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 b47d5966e4f2e184999176c92f07744bdf526389..4fb3c3e0bc7febbff1eee848ebebbdb0a3828916 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 a88845b4d5a960558f61a7786cea6b876a2749b1..e9298ce27a7538700d69b3f12b50d070746ae231 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 fe22d9c8a0f3b74b509b3cbd376b94fcd0cb820b..b0a92a7ab4fd1e469ee88c18693e6c8452f881f4 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 c556ce2ea9be06ed8fa7a44dab6726657c5c64c9..ea02b140a7d922d464d5f4015813ecb090ffa27a 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 56433dc7b0f0c73e0e0df3308f919ac288bc1404..0fd99fc0f48df1c2a8b766743d5e64be14b43ec2 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 7bee5d9af3342a523d70a6f8766f06301aa3df36..609ed7e14667f542c38080df3aab91ab96066934 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 22039b300cc3c42c17ae411cfdb424ffadcc3566..746dea53996068f96b0b27b78f65756a0a9ea4c9 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 747158e43fa89c1d694bcb7d8083f94c7ebd1f5c..b87cfbfe5dca97ce947aa52086aaed4cb65c5e6a 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 0b1e118eda7670c3f19a1bf50cb77c4899d6264c..4d62b68c968860aef0d5a462ef515a9c52192fae 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 dcdf8929684b138d7fa5e7adf4714d5ed38a4f22..7469989277b49f17453e8cc0f053d421421bbde9 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 a1d99efe844dfbdc48c66a17f15da5e1228a4da4..b1f5b831e01fba89db166878f1c9497bbbdd1a5c 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 9fdfa2fad39984819c700b86902ab8a3fb4aa4bd..9471abc13771b0a213f435ecf2b0136119947c4f 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 ee22faec42d6ab6849aec98d6a588eedeaae4236..2542dcf056c64e49254d235ab9863b72e71f9f60 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 34891d251ef73943228964cf78a56fef22f5337d..b1f1a1713c97905753fc8dde92b9af0197c87eb7 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 a2fa4d5eeb533dbc90c8cd9e7a8a40be8adbee5e..08968ff9207d1d05159cd2ffc3e60995ca2b7dcd 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 18a7f88e04f247b74259e0e2d010a80c8eaaf3c7..1d3cfade35fec75530b7e2d385f01118633fc211 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 92a5003bc56282f7df5debfa3b45c54c240a7794..d27054cf46662ce946fbeac63ebdf4e906c7c217 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 e66ad8e74b02682b1f4b7aa5e63fd0632ea10b66..f5740c8ed7967f3ebf8de227b0d54d95a2dcba6c 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 d05748afdf848b1681bc4d517564889d7050a2fb..4a0f1a0bc18d839ec82f255e3d079e1dc38f18fa 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 2f95e8eda1d94289cb1871d9e486b2d20cffacad..d36bfe4bb51f85a458c62227212c0fa3221031b1 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 db771baa3b22233b3479f7bed2adf3e208083bb7..9c4e95795612ff8b7ea8560a466be956b6405b8f 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 ba459597118d1edd353f4f9ecb39bbd1142ec179..58d211c2f16c7f6196f3ab542496af914e98222f 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 1cc6c5d6e5575398e99245355e7e27af36865dd5..030d6b5e80bd692d57b5f69fd4816ce71f1c7ef7 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 aeec54ad691af875272f96c72b1ee7bfc47c7b1c..f4806c47002d04e936ba5b85a268014412353f85 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 528f1171fbd5dd7fbf24c980f1d4391e277ceb88..b6338c67fb317ad9643c5168fda6d1bb7ce24c97 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 50982f25bddc1c4f745dc0073a22f4cac757f2ff..bb0e9cf4b2df55bb41767f4b35c0bbc1d2dfd6a3 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 4bc082e8b18bf400964b04d9c20187db327fcbe8..09531d2de3504570536bcfbc1e33d74277d19813 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 9dafabbf9a48d73f67cacae032313a54dcdf09c7..57694167060b4243c1f8e986a2e723947197124c 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 6e58b81a021279d10e5bf384bd269feefb8cd6f2..c5bf95d28ecf24428119c850e7951b4b5ce8248e 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 72ad0e4b718f23064e5f030304eab05b0d1a340b..7350ab82d6edeba8c605c5a2a89a84457f310bfa 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 c8278a3907e201489b24861f88556acb63a4349a..16200238bd4b9f7f818ba6dcce8abc5798f3b56b 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 9b8dbec9dcb6a3fbb1cbcc290683e479fee2ffaa..34f639fc1a13b9c95e8fe83709ac67f9ef28cab6 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 8068a8100dbf361a411bfe30a4e87e44a9186dae..2a507baba53478cec0de4007c219bc35e83038ce 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 bc2e9c5b025ead0146cee44dcc9e0acced3fe28d..6c4df311d1ae7281d041041b8fd80e8f27814715 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 371fb80a24f86c0df3357b556d6f7cb9a5d09eb5..eb122dde3ad774e60e9d60261ca7b134246aed8a 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 d700b28eac22c73427b2ea79892b6db7ff595517..3b8ed1107fe5d3a7274e029ec3ad62992052fb65 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 687e8b2fd1847617aa360a4b4774dd4319c537d0..a79c2e2143bff450340aa11405a23d7cd3bc6a82 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 5e0f49d995d1bfff65cc0336645ee59b6796210a..51acca33015561885487e59e4b2164ff8d71042e 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 cb747613f816bf2702552eb7a52caa6bc792624b..342b75dfc88a3613e88f5fe444768a406ac8beb9 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 55323ee1a3c056b5b28357dce7591ca95bc14855..17623e421def3b97dc5ca44c72817ef4f0e81361 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 f3d910697c1a623493e04dd7b595eddf70e65a39..cfeb173d638d3b8efcd063825153e2e171be3b7d 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 beab93b99609b16f52a50ec0d9cc659146598e5c..0ebf44fbb543c79f067c5ee03f0b3201036c9f19 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 f98706273f20db8708832d329fb899250f6296f1..e3f45f95da128f30fb8a665c1ec21190558f19d8 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 42805a940b6941932cb14369f04e0550db85047a..39a18dc7bd801c3fa5bc67aa3c5129f7348ac5ef 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 fe9fd31d1326a1fe5f143e5f088d3066457f6d95..22d9a37119d1c1ead0ca9b004e07631fd7d2ca54 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 75bf939958cf1becf415994729c7ab8ddb0f913b..9cab95b47380affd647901274a64b0c35cee6a45 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 bf7449b5331ff8fe236d6e8024a441c14ad11f77..d93538db460cbd0ebfb7a8687fedf148549d8a4a 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 32fc13f352f564667c7535bfedaa7ec9f0dddc03..f5d57aedba942651e2d454512aa08f629f360a05 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 7e30672b28927a4c88d1fec85a3a7cc83c038d15..60af64c0338dc0ed6a2add07129f0692df6d5424 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 11e82effa0dc9b2b100cdf05f09cd41c7cbabd71..fae14e19c8fa1ca1c31976f9ee73aeff07932c2b 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 fbb7629a6e1be2b1356752a15cc9c52e4ea2cf1f..bf376f955213d3b0a4d3703c3ca34f52f8987c9f 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 f19222dc93bdc40ba5a710c7be0abe7f0ab6c84d..999702327dd0f4b957063be6603d4ac5e5e6f325 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 1c6f8c934c6a288078c8038c1c0819dec7baeb20..77cef261627bc415d84998af7aeef55d608ec6eb 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 4cf0ca49646b32ba2e2b286ba08a2ba0931dc709..c699221854caac901403e083c1033b46868af5b1 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 c55eed46d107a9fe9e9cb7e7639af0262c816809..a92ceee00143ddef3d030ab1033b2ae82f640a98 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 a666ff94284fc950e67a0a1a5c69439c892fd2c1..867095c64cba2d085670ca5291d25932d420942b 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 cf6e5e66da47635debde8b52495b894ca4e3fdbd..6e58746cd697c99868701e78bf726b3e57fc5951 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 f9687957dc368cd17af217f4630dc75fa7b615da..830d5fabd61dd03e00ef2ac68fc6b7b21c0cbce2 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 4188f56865dc693d35cfd95bbcb5e16d651fdc00..e37b4201b69d35e1b16a8110eca0d8c1d8e1eb5c 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 504ca0c8ffe053815d78e96dd8e481b3b8676a78..8764e4a89b6d38a0c78146bef1ac0f6a8564bf9c 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 d23a397a71201ae75071b61120c538f018a7be1d..8216e08c2aec89ad774acba1d52b68b23a76ad49 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 96c485708712c8ef647930b200e5326322814961..77360831c184a0d39542b5a0b7edc5347d3d9421 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 62bdc5d2cad62da2ce07fd3fb6a18c1ac2e8c003..3e809387c1263dec9cfab39bb28978e4b696d143 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 bf1434b9285cfa43a12eee57bb60e6425c46cee5..6281ff32e8610af080cc4b18e6a3133184bcc412 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 3929474de21dac73dff4251748e2fe4fc8cb3e85..622ebbb9542b52e544932cea618f4d947c915edc 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 9d76e194dff978eb4dec92843c958ab03a657274..039d9ba171efd6e34249a1ceb494db3ba9ee76ef 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 c2480f2ad76a8601a4f632384d0aca54f05538ad..13413835187173991d8a9b7c6b218c009820353c 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 039f62761fa6a9dd1abeae7b8079bcafcd6b9e98..b45afaed66263002de19fa63f311fd445d11db61 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;