Bug 1423225 - Disable javascript.options.shared_memory. r=lth, r=jgraham, a=lizzard
authorLars T Hansen <lhansen@mozilla.com>
Wed, 08 Nov 2017 11:44:53 +0100
changeset 443084 df3efa640b0f443abe5309d7655275da0017f5e1
parent 443083 fac8211263aa07c4a4b7792f824c8d605e1f3229
child 443085 26b83e9df2019cf9c62b0db6c70edba642de51ac
push id8470
push userryanvm@gmail.com
push dateWed, 03 Jan 2018 23:06:55 +0000
treeherdermozilla-beta@26b83e9df201 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewerslth, jgraham, lizzard
bugs1423225
milestone58.0
Bug 1423225 - Disable javascript.options.shared_memory. r=lth, r=jgraham, a=lizzard
dom/tests/mochitest/general/test_interfaces.js
dom/workers/test/serviceworkers/test_serviceworker_interfaces.js
dom/workers/test/test_worker_interfaces.js
js/src/shell/js.cpp
js/src/tests/jstests.list
js/xpconnect/tests/chrome/test_xrayToJS.xul
modules/libpref/init/all.js
testing/web-platform/meta/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/identity-not-preserved.html.ini
testing/web-platform/meta/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/nested-worker-success-dedicatedworker.html.ini
testing/web-platform/meta/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/nested-worker-success-sharedworker.html.ini
testing/web-platform/meta/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/no-transferring.html.ini
testing/web-platform/meta/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-domain-success.sub.html.ini
testing/web-platform/meta/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-similar-but-cross-origin-success.sub.html.ini
testing/web-platform/meta/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-simple-success.html.ini
testing/web-platform/meta/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/canblock-dedicatedworker.html.ini
testing/web-platform/meta/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/canblock-serviceworker.https.html.ini
testing/web-platform/meta/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/canblock-sharedworker.html.ini
testing/web-platform/meta/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/canblock-window.html.ini
--- a/dom/tests/mochitest/general/test_interfaces.js
+++ b/dom/tests/mochitest/general/test_interfaces.js
@@ -22,17 +22,17 @@
 // See createInterfaceMap() below for a complete list of properties.
 
 // IMPORTANT: Do not change this list without review from
 //            a JavaScript Engine peer!
 var ecmaGlobals =
   [
     "Array",
     "ArrayBuffer",
-    "Atomics",
+    {name: "Atomics", disabled: true},
     "Boolean",
     {name: "ByteLengthQueuingStrategy", disabled: !SpecialPowers.Cu.getJSTestingFunctions().streamsAreEnabled()},
     {name: "CountQueuingStrategy", disabled: !SpecialPowers.Cu.getJSTestingFunctions().streamsAreEnabled()},
     "DataView",
     "Date",
     "Error",
     "EvalError",
     "Float32Array",
@@ -56,17 +56,17 @@ var ecmaGlobals =
     "Promise",
     "Proxy",
     "RangeError",
     {name: "ReadableStream", disabled: !SpecialPowers.Cu.getJSTestingFunctions().streamsAreEnabled()},
     "ReferenceError",
     "Reflect",
     "RegExp",
     "Set",
-    "SharedArrayBuffer",
+    {name: "SharedArrayBuffer", disabled: true},
     {name: "SIMD", nightly: true},
     "String",
     "Symbol",
     "SyntaxError",
     {name: "TypedObject", nightly: true},
     "TypeError",
     "Uint16Array",
     "Uint32Array",
--- a/dom/workers/test/serviceworkers/test_serviceworker_interfaces.js
+++ b/dom/workers/test/serviceworkers/test_serviceworker_interfaces.js
@@ -20,17 +20,17 @@
 // See createInterfaceMap() below for a complete list of properties.
 
 // IMPORTANT: Do not change this list without review from
 //            a JavaScript Engine peer!
 var ecmaGlobals =
   [
     "Array",
     "ArrayBuffer",
-    "Atomics",
+    {name: "Atomics", disabled: true},
     "Boolean",
     {name: "ByteLengthQueuingStrategy", optional: true},
     {name: "CountQueuingStrategy", optional: true},
     "DataView",
     "Date",
     "Error",
     "EvalError",
     "Float32Array",
@@ -51,17 +51,17 @@ var ecmaGlobals =
     "Promise",
     "Proxy",
     "RangeError",
     {name: "ReadableStream", optional: true},
     "ReferenceError",
     "Reflect",
     "RegExp",
     "Set",
-    "SharedArrayBuffer",
+    {name: "SharedArrayBuffer", disabled: true},
     {name: "SIMD", nightly: true},
     "String",
     "Symbol",
     "SyntaxError",
     {name: "TypedObject", nightly: true},
     "TypeError",
     "Uint16Array",
     "Uint32Array",
@@ -251,17 +251,18 @@ function createInterfaceMap(version, use
         interfaceMap[entry] = true;
       } else {
         ok(!("pref" in entry), "Bogus pref annotation for " + entry.name);
         if ((entry.nightly === !isNightly) ||
             (entry.nightlyAndroid === !(isAndroid && isNightly) && isAndroid) ||
             (entry.nonReleaseAndroid === !(isAndroid && !isRelease) && isAndroid) ||
             (entry.desktop === !isDesktop) ||
             (entry.android === !isAndroid && !entry.nonReleaseAndroid && !entry.nightlyAndroid) ||
-            (entry.release === !isRelease)) {
+            (entry.release === !isRelease) ||
+            entry.disabled) {
           interfaceMap[entry.name] = false;
         } else if (entry.optional) {
           interfaceMap[entry.name] = "optional";
         } else {
           interfaceMap[entry.name] = true;
         }
       }
     }
--- a/dom/workers/test/test_worker_interfaces.js
+++ b/dom/workers/test/test_worker_interfaces.js
@@ -20,17 +20,17 @@
 // See createInterfaceMap() below for a complete list of properties.
 
 // IMPORTANT: Do not change this list without review from
 //            a JavaScript Engine peer!
 var ecmaGlobals =
   [
     "Array",
     "ArrayBuffer",
-    "Atomics",
+    {name: "Atomics", disabled: true},
     "Boolean",
     {name: "ByteLengthQueuingStrategy", optional: true},
     {name: "CountQueuingStrategy", optional: true},
     "DataView",
     "Date",
     "Error",
     "EvalError",
     "Float32Array",
@@ -51,17 +51,17 @@ var ecmaGlobals =
     "Promise",
     "Proxy",
     "RangeError",
     {name: "ReadableStream", optional: true},
     "ReferenceError",
     "Reflect",
     "RegExp",
     "Set",
-    "SharedArrayBuffer",
+    {name: "SharedArrayBuffer", disabled: true},
     {name: "SIMD", nightly: true},
     "String",
     "Symbol",
     "SyntaxError",
     {name: "TypedObject", nightly: true},
     "TypeError",
     "Uint16Array",
     "Uint32Array",
--- a/js/src/shell/js.cpp
+++ b/js/src/shell/js.cpp
@@ -147,17 +147,17 @@ static const size_t gMaxStackSize = 128 
 #endif
 
 /*
  * Limit the timeout to 30 minutes to prevent an overflow on platfoms
  * that represent the time internally in microseconds using 32-bit int.
  */
 static const double MAX_TIMEOUT_SECONDS = 1800.0;
 
-// SharedArrayBuffer and Atomics are enabled by default (tracking Firefox).
+// Not necessarily in sync with the browser
 #define SHARED_MEMORY_DEFAULT 1
 
 // Code to support GCOV code coverage measurements on standalone shell
 #ifdef MOZ_CODE_COVERAGE
 #if defined(__GNUC__) && !defined(__clang__)
 extern "C" void __gcov_dump();
 extern "C" void __gcov_reset();
 
--- a/js/src/tests/jstests.list
+++ b/js/src/tests/jstests.list
@@ -480,8 +480,331 @@ skip script test262/harness/detachArrayB
 
 
 ####################################################
 # Tests disabled due to invalid test expectations  #
 ####################################################
 
 # https://github.com/tc39/test262/issues/1312
 skip script test262/built-ins/BigInt/prototype/toString/string-is-code-units-of-decimal-digits-only.js
+
+#############################################
+# Tests disabled when properties are absent #
+#############################################
+
+# https://bugzilla.mozilla.org/show_bug.cgi?id=1415303
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/DataView/toindex-bytelength-sab.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/DataView/return-abrupt-tonumber-bytelength-sab.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/DataView/byteoffset-is-negative-throws-sab.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/DataView/negative-byteoffset-throws-sab.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/DataView/return-instance-sab.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/DataView/defined-byteoffset-undefined-bytelength-sab.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/DataView/buffer-does-not-have-arraybuffer-data-throws-sab.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/DataView/proto-from-ctor-realm-sab.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/DataView/return-abrupt-tonumber-byteoffset-sab.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/DataView/newtarget-undefined-throws-sab.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/DataView/negative-bytelength-throws-sab.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/DataView/excessive-bytelength-throws-sab.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/DataView/prototype/byteOffset/this-has-no-dataview-internal-sab.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/DataView/prototype/byteOffset/return-byteoffset-sab.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/DataView/prototype/buffer/this-has-no-dataview-internal-sab.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/DataView/prototype/buffer/return-buffer-sab.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/DataView/prototype/byteLength/return-bytelength-sab.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/DataView/prototype/byteLength/this-has-no-dataview-internal-sab.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/DataView/prototype/getInt32/negative-byteoffset-throws-sab.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/DataView/prototype/getInt32/this-has-no-dataview-internal-sab.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/DataView/prototype/getInt32/return-value-clean-arraybuffer-sab.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/DataView/prototype/getInt32/index-is-out-of-range-sab.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/DataView/prototype/getInt32/return-values-sab.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/DataView/prototype/getInt32/return-values-custom-offset-sab.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/DataView/prototype/getInt32/to-boolean-littleendian-sab.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/DataView/prototype/getInt32/return-abrupt-from-tonumber-byteoffset-symbol-sab.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/DataView/prototype/getInt32/toindex-byteoffset-sab.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/DataView/prototype/getInt32/return-abrupt-from-tonumber-byteoffset-sab.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/DataView/return-abrupt-tonumber-byteoffset-symbol-sab.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/DataView/defined-bytelength-and-byteoffset-sab.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/DataView/custom-proto-if-not-object-fallbacks-to-default-prototype-sab.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/DataView/excessive-byteoffset-throws-sab.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/DataView/custom-proto-if-object-is-used-sab.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/DataView/return-abrupt-tonumber-bytelength-symbol-sab.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/DataView/toindex-byteoffset-sab.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/DataView/instance-extensibility-sab.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/DataView/defined-byteoffset-sab.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/DataView/custom-proto-access-throws-sab.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/DataView/buffer-reference-sab.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/TypedArray/prototype/set/typedarray-arg-set-values-diff-buffer-other-type-sab.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/TypedArray/prototype/set/typedarray-arg-set-values-diff-buffer-other-type-conversions-sab.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/TypedArray/prototype/set/typedarray-arg-set-values-same-buffer-same-type-sab.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/TypedArray/prototype/set/typedarray-arg-set-values-diff-buffer-same-type-sab.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/init-zero.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/prototype-from-newtarget.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/undefined-newtarget-throws.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/negative-length-throws.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/zero-length.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/allocation-limit.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/length-is-absent.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/toindex-length.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/length-is-too-large-throws.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/prototype/Symbol.toStringTag.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/prototype/constructor.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/prototype/byteLength/length.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/prototype/byteLength/this-is-arraybuffer.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/prototype/byteLength/return-bytelength.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/prototype/byteLength/this-has-no-typedarrayname-internal.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/prototype/byteLength/invoked-as-func.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/prototype/byteLength/this-is-not-object.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/prototype/byteLength/prop-desc.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/prototype/byteLength/invoked-as-accessor.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/prototype/byteLength/name.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/prototype/slice/species-is-null.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/prototype/slice/context-is-not-arraybuffer-object.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/prototype/slice/descriptor.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/prototype/slice/tointeger-conversion-end.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/prototype/slice/length.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/prototype/slice/start-exceeds-end.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/prototype/slice/species-returns-same-arraybuffer.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/prototype/slice/negative-end.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/prototype/slice/this-is-arraybuffer.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/prototype/slice/species-is-not-constructor.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/prototype/slice/start-default-if-undefined.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/prototype/slice/context-is-not-object.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/prototype/slice/extensible.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/prototype/slice/start-exceeds-length.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/prototype/slice/species-constructor-is-undefined.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/prototype/slice/tointeger-conversion-start.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/prototype/slice/species-returns-smaller-arraybuffer.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/prototype/slice/species-constructor-is-not-object.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/prototype/slice/end-default-if-undefined.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/prototype/slice/number-conversion.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/prototype/slice/negative-start.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/prototype/slice/nonconstructor.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/prototype/slice/species-returns-not-arraybuffer.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/prototype/slice/end-exceeds-length.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/prototype/slice/start-default-if-absent.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/prototype/slice/species.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/prototype/slice/end-default-if-absent.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/prototype/slice/species-returns-larger-arraybuffer.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/prototype/slice/species-is-not-object.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/prototype/slice/species-is-undefined.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/prototype/slice/name.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/return-abrupt-from-length.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/return-abrupt-from-length-symbol.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/data-allocation-after-object-creation.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/proto-from-ctor-realm.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/SharedArrayBuffer/newtarget-prototype-is-not-object.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/ArrayBuffer/prototype/byteLength/this-is-sharedarraybuffer.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/ArrayBuffer/prototype/slice/this-is-sharedarraybuffer.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/exchange/shell.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/exchange/good-views.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/exchange/bad-range.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/exchange/shared-nonint-views.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/exchange/non-views.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/load/shell.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/load/good-views.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/load/bad-range.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/load/shared-nonint-views.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/load/non-views.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/compareExchange/shell.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/compareExchange/good-views.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/compareExchange/bad-range.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/compareExchange/shared-nonint-views.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/compareExchange/non-views.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/sub/shell.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/sub/good-views.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/sub/bad-range.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/sub/shared-nonint-views.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/sub/non-views.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/xor/shell.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/xor/good-views.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/xor/bad-range.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/xor/shared-nonint-views.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/xor/non-views.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/and/shell.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/and/good-views.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/and/bad-range.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/and/shared-nonint-views.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/and/non-views.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/add/shell.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/add/good-views.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/add/bad-range.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/add/shared-nonint-views.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/add/non-views.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/wait/shell.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/wait/good-views.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/wait/was-woken.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/wait/no-spurious-wakeup.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/wait/bad-range.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/wait/shared-nonint-views.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/wait/negative-timeout.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/wait/non-views.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/wait/did-timeout.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/wait/nan-timeout.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/wake/shell.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/wake/good-views.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/wake/wake-zero.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/wake/wake-all-on-loc.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/wake/bad-range.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/wake/shared-nonint-views.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/wake/wake-in-order.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/wake/counts.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/wake/wake-one.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/wake/non-views.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/wake/wake-nan.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/wake/wake-all.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/wake/wake-negative.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/wake/wake-two.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/or/shell.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/or/good-views.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/or/bad-range.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/or/shared-nonint-views.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/or/non-views.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/store/shell.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/store/good-views.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/store/bad-range.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/store/shared-nonint-views.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/Atomics/store/non-views.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/TypedArrays/buffer-arg-typedarray-backed-by-sharedarraybuffer.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/TypedArrays/buffer-arg-use-default-proto-if-custom-proto-is-not-object-sab.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/TypedArrays/buffer-arg-excessive-offset-throws-sab.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/TypedArrays/buffer-arg-byteoffset-is-symbol-throws-sab.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/TypedArrays/buffer-arg-length-is-symbol-throws-sab.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/TypedArrays/buffer-arg-defined-length-sab.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/TypedArrays/buffer-arg-invoked-with-undefined-newtarget-sab.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/TypedArrays/buffer-arg-bufferbyteoffset-throws-from-modulo-element-size-sab.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/TypedArrays/buffer-arg-length-access-throws-sab.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/TypedArrays/buffer-arg-use-custom-proto-if-object-sab.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/TypedArrays/buffer-arg-defined-negative-length-sab.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/TypedArrays/buffer-arg-toindex-bytelength-sab.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/TypedArrays/buffer-arg-byteoffset-is-negative-throws-sab.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/TypedArrays/internals/Get/indexed-value-sab.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/TypedArrays/buffer-arg-is-referenced-sab.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/TypedArrays/buffer-arg-defined-length-and-offset-sab.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/TypedArrays/buffer-arg-byteoffset-throws-from-modulo-element-size-sab.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/TypedArrays/buffer-arg-defined-offset-sab.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/TypedArrays/buffer-arg-proto-from-ctor-realm-sab.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/TypedArrays/buffer-arg-toindex-byteoffset-sab.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/TypedArrays/buffer-arg-new-instance-extensibility-sab.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/TypedArrays/buffer-arg-excessive-length-throws-sab.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/TypedArrays/buffer-arg-returns-new-instance-sab.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/TypedArrays/buffer-arg-custom-proto-access-throws-sab.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/TypedArrays/buffer-arg-byteoffset-to-number-throws-sab.js
+skip-if(!this.hasOwnProperty("SharedArrayBuffer")) script test262/built-ins/TypedArrays/buffer-arg-byteoffset-is-negative-zero-sab.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/Symbol.toStringTag.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/exchange/shell.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/exchange/good-views.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/exchange/descriptor.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/exchange/length.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/exchange/bad-range.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/exchange/shared-nonint-views.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/exchange/non-views.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/exchange/nonshared-int-views.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/exchange/name.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/load/shell.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/load/good-views.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/load/descriptor.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/load/length.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/load/bad-range.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/load/shared-nonint-views.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/load/non-views.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/load/nonshared-int-views.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/load/name.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/compareExchange/shell.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/compareExchange/good-views.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/compareExchange/descriptor.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/compareExchange/length.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/compareExchange/bad-range.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/compareExchange/shared-nonint-views.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/compareExchange/non-views.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/compareExchange/nonshared-int-views.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/compareExchange/name.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/sub/shell.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/sub/good-views.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/sub/descriptor.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/sub/length.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/sub/bad-range.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/sub/shared-nonint-views.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/sub/non-views.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/sub/nonshared-int-views.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/sub/name.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/xor/shell.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/xor/good-views.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/xor/descriptor.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/xor/length.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/xor/bad-range.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/xor/shared-nonint-views.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/xor/non-views.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/xor/nonshared-int-views.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/xor/name.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/and/shell.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/and/good-views.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/and/descriptor.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/and/length.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/and/bad-range.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/and/shared-nonint-views.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/and/non-views.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/and/nonshared-int-views.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/and/name.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/add/shell.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/add/good-views.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/add/descriptor.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/add/length.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/add/bad-range.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/add/shared-nonint-views.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/add/non-views.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/add/nonshared-int-views.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/add/name.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/wait/shell.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/wait/good-views.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/wait/descriptor.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/wait/length.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/wait/was-woken.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/wait/no-spurious-wakeup.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/wait/bad-range.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/wait/shared-nonint-views.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/wait/negative-timeout.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/wait/non-views.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/wait/nonshared-int-views.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/wait/did-timeout.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/wait/nan-timeout.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/wait/name.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/isLockFree/value.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/isLockFree/descriptor.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/isLockFree/length.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/isLockFree/corner-cases.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/isLockFree/name.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/prop-desc.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/wake/shell.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/wake/good-views.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/wake/descriptor.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/wake/length.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/wake/wake-zero.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/wake/wake-all-on-loc.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/wake/bad-range.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/wake/shared-nonint-views.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/wake/wake-in-order.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/wake/counts.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/wake/wake-one.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/wake/non-views.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/wake/nonshared-int-views.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/wake/wake-nan.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/wake/wake-all.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/wake/wake-negative.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/wake/wake-two.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/wake/name.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/or/shell.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/or/good-views.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/or/descriptor.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/or/length.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/or/bad-range.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/or/shared-nonint-views.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/or/non-views.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/or/nonshared-int-views.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/or/name.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/proto.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/store/shell.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/store/good-views.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/store/descriptor.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/store/length.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/store/bad-range.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/store/shared-nonint-views.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/store/non-views.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/store/nonshared-int-views.js
+skip-if(!this.hasOwnProperty("Atomics")) script test262/built-ins/Atomics/store/name.js
--- a/js/xpconnect/tests/chrome/test_xrayToJS.xul
+++ b/js/xpconnect/tests/chrome/test_xrayToJS.xul
@@ -253,18 +253,17 @@ https://bugzilla.mozilla.org/show_bug.cg
   gConstructorProperties['Promise'] =
     constructorProps(["resolve", "reject", "all", "race", Symbol.species]);
 
   gPrototypeProperties['ArrayBuffer'] =
     ["constructor", "byteLength", "slice", Symbol.toStringTag];
   gConstructorProperties['ArrayBuffer'] =
     constructorProps(["isView", Symbol.species]);
 
-  gPrototypeProperties['SharedArrayBuffer'] = ["constructor", "slice", "byteLength", Symbol.toStringTag];
-  gConstructorProperties['SharedArrayBuffer'] = constructorProps([Symbol.species]);
+  is(typeof SharedArrayBuffer, "undefined", "Enable tests!");
 
   gPrototypeProperties['Map'] =
     ["constructor", "size", Symbol.toStringTag, "get", "has", "set", "delete",
      "keys", "values", "clear", "forEach", "entries", Symbol.iterator];
   gConstructorProperties['Map'] =
     constructorProps([Symbol.species]);
 
   gPrototypeProperties['Set'] =
@@ -913,17 +912,17 @@ for (var prop of props) {
     is(Cu.getGlobalForObject(pr.wrappedJSObject.catch), iwin, "Underlying global is correct");
 
     isnot(pr.then, Cu.unwaiveXrays(pr.wrappedJSObject.then), "Different function identities");
     is(Cu.getGlobalForObject(pr.then), window, "Xray global is correct");
     is(Cu.getGlobalForObject(pr.wrappedJSObject.then), iwin, "Underlying global is correct");
   }
 
   function testArrayBuffer() {
-    let constructors = ['ArrayBuffer', 'SharedArrayBuffer'];
+    let constructors = ['ArrayBuffer'];
 
     for (const c of constructors) {
       testXray(c, new iwin[c](0), new iwin[c](12));
 
       var t = new iwin[c](12);
       is(t.byteLength, 12, `${c} byteLength is correct`);
 
       is(t.slice(4).byteLength, 8, `${c} byteLength is correct after slicing`);
--- a/modules/libpref/init/all.js
+++ b/modules/libpref/init/all.js
@@ -1548,17 +1548,17 @@ pref("javascript.options.mem.gc_allocati
 // JSGC_MIN_EMPTY_CHUNK_COUNT
 pref("javascript.options.mem.gc_min_empty_chunk_count", 1);
 
 // JSGC_MAX_EMPTY_CHUNK_COUNT
 pref("javascript.options.mem.gc_max_empty_chunk_count", 30);
 
 pref("javascript.options.showInConsole", false);
 
-pref("javascript.options.shared_memory", true);
+pref("javascript.options.shared_memory", false);
 
 pref("javascript.options.throw_on_debuggee_would_run", false);
 pref("javascript.options.dump_stack_on_debuggee_would_run", false);
 
 // Streams API
 pref("javascript.options.streams", false);
 
 // advanced prefs
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/identity-not-preserved.html.ini
@@ -0,0 +1,11 @@
+[identity-not-preserved.html]
+  type: testharness
+
+  [postMessaging to this window does not give back the same SharedArrayBuffer (but does use the same backing block)]
+    expected: FAIL
+
+  [postMessaging to a worker and back does not give back the same SharedArrayBuffer]
+    expected: FAIL
+
+  [postMessaging to an iframe and back does not give back the same SharedArrayBuffer]
+    expected: FAIL
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/nested-worker-success-dedicatedworker.html.ini
@@ -0,0 +1,5 @@
+[nested-worker-success-dedicatedworker.html]
+  type: testharness
+
+  [postMessaging to a dedicated sub-worker allows them to see each others' modifications]
+    expected: FAIL
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/nested-worker-success-sharedworker.html.ini
@@ -0,0 +1,5 @@
+[nested-worker-success-sharedworker.html]
+  type: testharness
+
+  [postMessaging to a dedicated sub-worker allows them to see each others' modifications]
+    expected: FAIL
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/no-transferring.html.ini
@@ -0,0 +1,11 @@
+[no-transferring.html]
+  type: testharness
+
+  [Trying to transfer a SharedArrayBuffer to this window throws]
+    expected: FAIL
+
+  [Trying to transfer a SharedArrayBuffer to a worker throws]
+    expected: FAIL
+
+  [Trying to transfer a SharedArrayBuffer through a MessagePort throws]
+    expected: FAIL
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-domain-success.sub.html.ini
@@ -0,0 +1,5 @@
+[window-domain-success.sub.html]
+  type: testharness
+
+  [postMessaging to a same-origin-domain (but not same-origin) iframe allows them to see each others' modifications]
+    expected: FAIL
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-similar-but-cross-origin-success.sub.html.ini
@@ -0,0 +1,5 @@
+[window-similar-but-cross-origin-success.sub.html]
+  type: testharness
+
+  [postMessaging to a not same-origin-domain, but similar origin, iframe allows them to see each others' modifications]
+    expected: FAIL
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-simple-success.html.ini
@@ -0,0 +1,41 @@
+[window-simple-success.html]
+  type: testharness
+
+  [postMessaging to a dedicated worker allows them to see each others' modifications with DataView]
+    expected: FAIL
+
+  [postMessaging to a dedicated worker allows them to see each others' modifications with Int8Array]
+    expected: FAIL
+
+  [postMessaging to a dedicated worker allows them to see each others' modifications with Uint8Array]
+    expected: FAIL
+
+  [postMessaging to a dedicated worker allows them to see each others' modifications with Uint8ClampedArray]
+    expected: FAIL
+
+  [postMessaging to a dedicated worker allows them to see each others' modifications with Int16Array]
+    expected: FAIL
+
+  [postMessaging to a dedicated worker allows them to see each others' modifications with Uint16Array]
+    expected: FAIL
+
+  [postMessaging to a dedicated worker allows them to see each others' modifications with Int32Array]
+    expected: FAIL
+
+  [postMessaging to a dedicated worker allows them to see each others' modifications with Uint32Array]
+    expected: FAIL
+
+  [postMessaging to a dedicated worker allows them to see each others' modifications with Float32Array]
+    expected: FAIL
+
+  [postMessaging to a dedicated worker allows them to see each others' modifications with Float64Array]
+    expected: FAIL
+
+  [postMessaging to a same-origin iframe allows them to see each others' modifications]
+    expected: FAIL
+
+  [postMessaging to a same-origin deeply-nested iframe allows them to see each others' modifications]
+    expected: FAIL
+
+  [postMessaging to a same-origin opened window allows them to see each others' modifications]
+    expected: FAIL
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/canblock-dedicatedworker.html.ini
@@ -0,0 +1,5 @@
+[canblock-dedicatedworker.html]
+  type: testharness
+
+  [[[CanBlock\]\] in a DedicatedWorkerGlobalScope]
+    expected: FAIL
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/canblock-serviceworker.https.html.ini
@@ -0,0 +1,5 @@
+[canblock-serviceworker.https.html]
+  type: testharness
+
+  [[[CanBlock\]\] in a ServiceWorkerGlobalScope]
+    expected: FAIL
--- a/testing/web-platform/meta/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/canblock-sharedworker.html.ini
+++ b/testing/web-platform/meta/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/canblock-sharedworker.html.ini
@@ -1,5 +1,6 @@
 [canblock-sharedworker.html]
   type: testharness
+
   [[[CanBlock\]\] in a SharedWorkerGlobalScope]
     expected: FAIL
 
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/canblock-window.html.ini
@@ -0,0 +1,5 @@
+[canblock-window.html]
+  type: testharness
+
+  [[[CanBlock\]\] in a similar-origin window agent]
+    expected: FAIL