Auto merge of #26875 - servo:jdm-patch-44, r=gterzian

Don't pretend we support SharedArrayBuffer.

Fixes #26874.
This commit is contained in:
bors-servo 2020-06-16 17:27:07 -04:00 committed by GitHub
commit 596e9105c5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
14 changed files with 75 additions and 18 deletions

View file

@ -137,7 +137,7 @@ pub unsafe fn create_global_object(
let mut options = RealmOptions::default(); let mut options = RealmOptions::default();
options.creationOptions_.traceGlobal_ = Some(trace); options.creationOptions_.traceGlobal_ = Some(trace);
options.creationOptions_.sharedMemoryAndAtomics_ = true; options.creationOptions_.sharedMemoryAndAtomics_ = false;
options.creationOptions_.streams_ = true; options.creationOptions_.streams_ = true;
rval.set(JS_NewGlobalObject( rval.set(JS_NewGlobalObject(

View file

@ -45,7 +45,6 @@ use js::jsapi::ContextOptionsRef;
use js::jsapi::GetPromiseUserInputEventHandlingState; use js::jsapi::GetPromiseUserInputEventHandlingState;
use js::jsapi::InitConsumeStreamCallback; use js::jsapi::InitConsumeStreamCallback;
use js::jsapi::InitDispatchToEventLoop; use js::jsapi::InitDispatchToEventLoop;
use js::jsapi::JS_SetFutexCanWait;
use js::jsapi::MimeType; use js::jsapi::MimeType;
use js::jsapi::PromiseUserInputEventHandlingState; use js::jsapi::PromiseUserInputEventHandlingState;
use js::jsapi::StreamConsumer as JSStreamConsumer; use js::jsapi::StreamConsumer as JSStreamConsumer;
@ -451,14 +450,6 @@ unsafe fn new_rt_and_cx_with_parent(
let (cx, runtime) = if let Some(parent) = parent { let (cx, runtime) = if let Some(parent) = parent {
let runtime = RustRuntime::create_with_parent(parent); let runtime = RustRuntime::create_with_parent(parent);
let cx = runtime.cx(); let cx = runtime.cx();
// Note: this enables blocking on an Atomics.wait,
// which should only be enabled for an agent whose [[CanBlock]] is true.
// Currently only a dedicated worker agent uses a parent,
// and this agent can block.
// See https://html.spec.whatwg.org/multipage/#integration-with-the-javascript-agent-cluster-formalism
JS_SetFutexCanWait(cx);
(cx, runtime) (cx, runtime)
} else { } else {
let runtime = RustRuntime::new(JS_ENGINE.lock().unwrap().as_ref().unwrap().clone()); let runtime = RustRuntime::new(JS_ENGINE.lock().unwrap().as_ref().unwrap().clone());

View file

@ -91,6 +91,12 @@ skip: true
skip: true skip: true
[cross-origin-opener-policy] [cross-origin-opener-policy]
skip: true skip: true
[infrastructure]
skip: false
[safe-passing-of-structured-data]
skip: false
[shared-array-buffers]
skip: true
[semantics] [semantics]
skip: false skip: false
[document-metadata] [document-metadata]

View file

@ -1,4 +1,5 @@
[encodeInto.any.html] [encodeInto.any.html]
expected: ERROR
[encodeInto() with 𝌆A and destination length 3, offset 4, filler 128] [encodeInto() with 𝌆A and destination length 3, offset 4, filler 128]
expected: FAIL expected: FAIL
@ -565,6 +566,7 @@
[encodeInto.any.worker.html] [encodeInto.any.worker.html]
expected: ERROR
[encodeInto() with 𝌆A and destination length 3, offset 4, filler 128] [encodeInto() with 𝌆A and destination length 3, offset 4, filler 128]
expected: FAIL expected: FAIL

View file

@ -11,6 +11,7 @@
[decode-utf8.any.html] [decode-utf8.any.html]
expected: ERROR
[decoding one UTF-8 chunk should give one output string] [decoding one UTF-8 chunk should give one output string]
expected: FAIL expected: FAIL
@ -55,6 +56,7 @@
[decode-utf8.any.worker.html] [decode-utf8.any.worker.html]
expected: ERROR
[decoding one UTF-8 chunk should give one output string] [decoding one UTF-8 chunk should give one output string]
expected: FAIL expected: FAIL

View file

@ -1,9 +1,11 @@
[textdecoder-copy.any.html] [textdecoder-copy.any.html]
expected: ERROR
[Modify buffer after passing it in (SharedArrayBuffer)] [Modify buffer after passing it in (SharedArrayBuffer)]
expected: FAIL expected: FAIL
[textdecoder-copy.any.worker.html] [textdecoder-copy.any.worker.html]
expected: ERROR
[Modify buffer after passing it in (SharedArrayBuffer)] [Modify buffer after passing it in (SharedArrayBuffer)]
expected: FAIL expected: FAIL

View file

@ -1,8 +1,8 @@
[textdecoder-streaming.any.worker.html] [textdecoder-streaming.any.worker.html]
expected: CRASH expected: ERROR
[textdecoder-streaming.any.html] [textdecoder-streaming.any.html]
expected: CRASH expected: ERROR
[textdecoder-streaming.any.sharedworker.html] [textdecoder-streaming.any.sharedworker.html]
expected: ERROR expected: ERROR

View file

@ -1,4 +1,6 @@
[requires-failure.https.any.html] [requires-failure.https.any.html]
[[[CanBlock\]\] in a Window]
expected: FAIL
[requires-failure.https.any.serviceworker.html] [requires-failure.https.any.serviceworker.html]
expected: ERROR expected: ERROR

View file

@ -1,3 +1,7 @@
[requires-success.any.worker.html]
[[[CanBlock\]\] in a DedicatedWorkerGlobalScope]
expected: FAIL
[requires-success.any.sharedworker.html] [requires-success.any.sharedworker.html]
expected: ERROR expected: ERROR
[requires-success] [requires-success]

View file

@ -1,9 +1,12 @@
[constructor-shared.tentative.any.worker.html] [constructor-shared.tentative.any.worker.html]
[Shared memory] [Shared memory]
expected: FAIL expected: FAIL
[Order of evaluation for descriptor (with shared)]
expected: FAIL
[constructor-shared.tentative.any.html] [constructor-shared.tentative.any.html]
[Shared memory] [Shared memory]
expected: FAIL expected: FAIL
[Order of evaluation for descriptor (with shared)]
expected: FAIL

View file

@ -26,3 +26,8 @@
[X 5: buffer.copyFromChannel(x, 0, -1) incorrectly threw IndexSizeError: "The index is not in the allowed range.".] [X 5: buffer.copyFromChannel(x, 0, -1) incorrectly threw IndexSizeError: "The index is not in the allowed range.".]
expected: FAIL expected: FAIL
[Executing "copyFrom-exceptions"]
expected: FAIL
[Executing "copyTo-exceptions"]
expected: FAIL

View file

@ -1,5 +1,47 @@
[send-data-sharedarraybuffer.any.html] [send-data-sharedarraybuffer.any.html]
expected: CRASH [sending a SharedArrayBuffer]
expected: FAIL
[sending a Int8Array backed by a SharedArrayBuffer]
expected: FAIL
[sending a Uint8Array backed by a SharedArrayBuffer]
expected: FAIL
[sending a Uint8ClampedArray backed by a SharedArrayBuffer]
expected: FAIL
[sending a Int16Array backed by a SharedArrayBuffer]
expected: FAIL
[sending a Uint16Array backed by a SharedArrayBuffer]
expected: FAIL
[sending a Int32Array backed by a SharedArrayBuffer]
expected: FAIL
[sending a Uint32Array backed by a SharedArrayBuffer]
expected: FAIL
[sending a Float32Array backed by a SharedArrayBuffer]
expected: FAIL
[sending a Float64Array backed by a SharedArrayBuffer]
expected: FAIL
[sending a DataView backed by a SharedArrayBuffer]
expected: FAIL
[send-data-sharedarraybuffer.any.worker.html] [send-data-sharedarraybuffer.any.worker.html]
expected: CRASH [sending a SharedArrayBuffer]
expected: FAIL
[sending a Int8Array backed by a SharedArrayBuffer]
expected: FAIL
[sending a Uint8Array backed by a SharedArrayBuffer]
expected: FAIL
[sending a Uint8ClampedArray backed by a SharedArrayBuffer]
expected: FAIL
[sending a Int16Array backed by a SharedArrayBuffer]
expected: FAIL
[sending a Uint16Array backed by a SharedArrayBuffer]
expected: FAIL
[sending a Int32Array backed by a SharedArrayBuffer]
expected: FAIL
[sending a Uint32Array backed by a SharedArrayBuffer]
expected: FAIL
[sending a Float32Array backed by a SharedArrayBuffer]
expected: FAIL
[sending a Float64Array backed by a SharedArrayBuffer]
expected: FAIL
[sending a DataView backed by a SharedArrayBuffer]
expected: FAIL

View file

@ -11005,7 +11005,7 @@
[] []
], ],
"interfaces.js": [ "interfaces.js": [
"253dd124cebe9b7d3aa4fc5ff8c9137e7aeb2f66", "7a105e791dd80bd42d80055a64746bbe5fece41e",
[] []
], ],
"nested_asap_script.js": [ "nested_asap_script.js": [

View file

@ -5,7 +5,6 @@ function test_interfaces(interfaceNamesInGlobalScope) {
var ecmaGlobals = [ var ecmaGlobals = [
"Array", "Array",
"ArrayBuffer", "ArrayBuffer",
"Atomics",
"BigInt", "BigInt",
"BigInt64Array", "BigInt64Array",
"BigUint64Array", "BigUint64Array",
@ -43,7 +42,6 @@ function test_interfaces(interfaceNamesInGlobalScope) {
"Reflect", "Reflect",
"RegExp", "RegExp",
"Set", "Set",
"SharedArrayBuffer",
"String", "String",
"Symbol", "Symbol",
"SyntaxError", "SyntaxError",