mirror of
https://github.com/servo/servo.git
synced 2025-06-06 16:45:39 +00:00
Auto merge of #24757 - Akash-Pateria:async-wasm-compilation-subsequent, r=jdm
Async wasm compilation event loop integration The PR contains changes related to binding the runnable dispatching in script_runtime and is part of the Asynchronous WebAssembly Compilation fix. This is the first step in the subsequent steps mentioned in the [wiki](https://github.com/servo/servo/wiki/Asynchronous-WebAssembly-compilation-project). --- <!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: --> - [X] `./mach build -d` does not report any errors - [X] `./mach test-tidy` does not report any errors - [X] These changes are part of #21476 fix
This commit is contained in:
commit
dc22a78cc2
68 changed files with 162 additions and 427 deletions
|
@ -32,6 +32,7 @@ use crate::script_runtime::{
|
|||
new_child_runtime, CommonScriptMsg, JSContext as SafeJSContext, Runtime, ScriptChan, ScriptPort,
|
||||
};
|
||||
use crate::task_queue::{QueuedTask, QueuedTaskConversion, TaskQueue};
|
||||
use crate::task_source::networking::NetworkingTaskSource;
|
||||
use crate::task_source::TaskSourceName;
|
||||
use crossbeam_channel::{unbounded, Receiver, Sender};
|
||||
use devtools_traits::DevtoolScriptControlMsg;
|
||||
|
@ -344,7 +345,16 @@ impl DedicatedWorkerGlobalScope {
|
|||
.referrer_policy(referrer_policy)
|
||||
.origin(origin);
|
||||
|
||||
let runtime = unsafe { new_child_runtime(parent) };
|
||||
let runtime = unsafe {
|
||||
if let Some(pipeline_id) = pipeline_id {
|
||||
new_child_runtime(
|
||||
parent,
|
||||
Some(NetworkingTaskSource(parent_sender.clone(), pipeline_id)),
|
||||
)
|
||||
} else {
|
||||
new_child_runtime(parent, None)
|
||||
}
|
||||
};
|
||||
|
||||
let (devtools_mpsc_chan, devtools_mpsc_port) = unbounded();
|
||||
ROUTER.route_ipc_receiver_to_crossbeam_sender(
|
||||
|
|
|
@ -315,7 +315,7 @@ impl ServiceWorkerGlobalScope {
|
|||
},
|
||||
};
|
||||
|
||||
let runtime = new_rt_and_cx();
|
||||
let runtime = new_rt_and_cx(None);
|
||||
|
||||
let (devtools_mpsc_chan, devtools_mpsc_port) = unbounded();
|
||||
ROUTER
|
||||
|
|
|
@ -477,7 +477,7 @@ impl WorkletThread {
|
|||
global_init: init.global_init,
|
||||
global_scopes: HashMap::new(),
|
||||
control_buffer: None,
|
||||
runtime: new_rt_and_cx(),
|
||||
runtime: new_rt_and_cx(None),
|
||||
should_gc: false,
|
||||
gc_threshold: MIN_GC_THRESHOLD,
|
||||
});
|
||||
|
|
|
@ -32,17 +32,20 @@ use crate::dom::response::Response;
|
|||
use crate::microtask::{EnqueuedPromiseCallback, Microtask, MicrotaskQueue};
|
||||
use crate::script_thread::trace_thread;
|
||||
use crate::task::TaskBox;
|
||||
use crate::task_source::networking::NetworkingTaskSource;
|
||||
use crate::task_source::{TaskSource, TaskSourceName};
|
||||
use js::glue::{CollectServoSizes, CreateJobQueue, DeleteJobQueue, JobQueueTraps, SetBuildId};
|
||||
use js::glue::{RUST_js_GetErrorMessage, StreamConsumerConsumeChunk, StreamConsumerStreamEnd};
|
||||
use js::glue::{StreamConsumerNoteResponseURLs, StreamConsumerStreamError};
|
||||
use js::glue::{CollectServoSizes, CreateJobQueue, DeleteJobQueue, DispatchableRun};
|
||||
use js::glue::{JobQueueTraps, RUST_js_GetErrorMessage, SetBuildId, StreamConsumerConsumeChunk};
|
||||
use js::glue::{
|
||||
StreamConsumerNoteResponseURLs, StreamConsumerStreamEnd, StreamConsumerStreamError,
|
||||
};
|
||||
use js::jsapi::ContextOptionsRef;
|
||||
use js::jsapi::Dispatchable;
|
||||
use js::jsapi::InitConsumeStreamCallback;
|
||||
use js::jsapi::InitDispatchToEventLoop;
|
||||
use js::jsapi::MimeType;
|
||||
use js::jsapi::StreamConsumer as JSStreamConsumer;
|
||||
use js::jsapi::{BuildIdCharVector, DisableIncrementalGC, GCDescription, GCProgress};
|
||||
use js::jsapi::{Dispatchable as JSRunnable, Dispatchable_MaybeShuttingDown};
|
||||
use js::jsapi::{HandleObject, Heap, JobQueue};
|
||||
use js::jsapi::{JSContext as RawJSContext, JSTracer, SetDOMCallbacks, SetGCSliceCallback};
|
||||
use js::jsapi::{JSGCInvocationKind, JSGCStatus, JS_AddExtraGCRootsTracer, JS_SetGCCallback};
|
||||
|
@ -397,17 +400,23 @@ lazy_static! {
|
|||
}
|
||||
|
||||
#[allow(unsafe_code)]
|
||||
pub unsafe fn new_child_runtime(parent: ParentRuntime) -> Runtime {
|
||||
new_rt_and_cx_with_parent(Some(parent))
|
||||
pub unsafe fn new_child_runtime(
|
||||
parent: ParentRuntime,
|
||||
networking_task_source: Option<NetworkingTaskSource>,
|
||||
) -> Runtime {
|
||||
new_rt_and_cx_with_parent(Some(parent), networking_task_source)
|
||||
}
|
||||
|
||||
#[allow(unsafe_code)]
|
||||
pub fn new_rt_and_cx() -> Runtime {
|
||||
unsafe { new_rt_and_cx_with_parent(None) }
|
||||
pub fn new_rt_and_cx(networking_task_source: Option<NetworkingTaskSource>) -> Runtime {
|
||||
unsafe { new_rt_and_cx_with_parent(None, networking_task_source) }
|
||||
}
|
||||
|
||||
#[allow(unsafe_code)]
|
||||
unsafe fn new_rt_and_cx_with_parent(parent: Option<ParentRuntime>) -> Runtime {
|
||||
unsafe fn new_rt_and_cx_with_parent(
|
||||
parent: Option<ParentRuntime>,
|
||||
networking_task_source: Option<NetworkingTaskSource>,
|
||||
) -> Runtime {
|
||||
LiveDOMReferences::initialize();
|
||||
let runtime = if let Some(parent) = parent {
|
||||
RustRuntime::create_with_parent(parent)
|
||||
|
@ -436,12 +445,26 @@ unsafe fn new_rt_and_cx_with_parent(parent: Option<ParentRuntime>) -> Runtime {
|
|||
DisableIncrementalGC(cx);
|
||||
|
||||
unsafe extern "C" fn dispatch_to_event_loop(
|
||||
_closure: *mut c_void,
|
||||
_dispatchable: *mut Dispatchable,
|
||||
closure: *mut c_void,
|
||||
dispatchable: *mut JSRunnable,
|
||||
) -> bool {
|
||||
false
|
||||
let networking_task_src: &NetworkingTaskSource = &*(closure as *mut NetworkingTaskSource);
|
||||
let runnable = Runnable(dispatchable);
|
||||
let task = task!(dispatch_to_event_loop_message: move || {
|
||||
runnable.run(RustRuntime::get(), Dispatchable_MaybeShuttingDown::NotShuttingDown);
|
||||
});
|
||||
|
||||
networking_task_src.queue_unconditionally(task).is_ok()
|
||||
}
|
||||
|
||||
if let Some(source) = networking_task_source {
|
||||
let networking_task_src = Box::new(source);
|
||||
InitDispatchToEventLoop(
|
||||
cx,
|
||||
Some(dispatch_to_event_loop),
|
||||
Box::into_raw(networking_task_src) as *mut c_void,
|
||||
);
|
||||
}
|
||||
InitDispatchToEventLoop(cx, Some(dispatch_to_event_loop), ptr::null_mut());
|
||||
|
||||
InitConsumeStreamCallback(cx, Some(consume_stream), Some(report_stream_error));
|
||||
|
||||
|
@ -939,3 +962,19 @@ unsafe extern "C" fn report_stream_error(_cx: *mut RawJSContext, error_code: usi
|
|||
RUST_js_GetErrorMessage(ptr::null_mut(), error_code as u32)
|
||||
);
|
||||
}
|
||||
|
||||
pub struct Runnable(*mut JSRunnable);
|
||||
|
||||
#[allow(unsafe_code)]
|
||||
unsafe impl Sync for Runnable {}
|
||||
#[allow(unsafe_code)]
|
||||
unsafe impl Send for Runnable {}
|
||||
|
||||
#[allow(unsafe_code)]
|
||||
impl Runnable {
|
||||
fn run(&self, cx: *mut RawJSContext, maybe_shutting_down: Dispatchable_MaybeShuttingDown) {
|
||||
unsafe {
|
||||
DispatchableRun(cx, self.0, maybe_shutting_down);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1244,7 +1244,12 @@ impl ScriptThread {
|
|||
replace_surrogates: bool,
|
||||
user_agent: Cow<'static, str>,
|
||||
) -> ScriptThread {
|
||||
let runtime = new_rt_and_cx();
|
||||
let boxed_script_sender = Box::new(MainThreadScriptChan(chan.clone()));
|
||||
|
||||
let runtime = new_rt_and_cx(Some(NetworkingTaskSource(
|
||||
boxed_script_sender.clone(),
|
||||
state.id,
|
||||
)));
|
||||
let cx = runtime.cx();
|
||||
|
||||
unsafe {
|
||||
|
@ -1262,8 +1267,6 @@ impl ScriptThread {
|
|||
// Ask the router to proxy IPC messages from the control port to us.
|
||||
let control_port = ROUTER.route_ipc_receiver_to_new_crossbeam_receiver(state.control_port);
|
||||
|
||||
let boxed_script_sender = Box::new(MainThreadScriptChan(chan.clone()));
|
||||
|
||||
let (image_cache_channel, image_cache_port) = unbounded();
|
||||
|
||||
let task_queue = TaskQueue::new(port, chan.clone());
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
expected: FAIL
|
||||
|
||||
[Opening a blob URL in a new window immediately before revoking it works.]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[Opening a blob URL in a noopener about:blank window immediately before revoking it works.]
|
||||
expected: FAIL
|
||||
|
|
|
@ -7,3 +7,6 @@
|
|||
[Revoke blob URL after creating Request, will fetch]
|
||||
expected: FAIL
|
||||
|
||||
[Revoke blob URL after calling fetch, fetch should succeed]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,2 +0,0 @@
|
|||
[floats-in-table-caption-001.html]
|
||||
expected: FAIL
|
|
@ -5,9 +5,9 @@
|
|||
[[data-expected-height\] 7]
|
||||
expected: FAIL
|
||||
|
||||
[[data-expected-height\] 1]
|
||||
[[data-expected-height\] 3]
|
||||
expected: FAIL
|
||||
|
||||
[[data-expected-height\] 2]
|
||||
[[data-expected-height\] 4]
|
||||
expected: FAIL
|
||||
|
||||
|
|
2
tests/wpt/metadata/css/CSS2/text/white-space-002.xht.ini
Normal file
2
tests/wpt/metadata/css/CSS2/text/white-space-002.xht.ini
Normal file
|
@ -0,0 +1,2 @@
|
|||
[white-space-002.xht]
|
||||
expected: FAIL
|
2
tests/wpt/metadata/css/CSS2/text/white-space-003.xht.ini
Normal file
2
tests/wpt/metadata/css/CSS2/text/white-space-003.xht.ini
Normal file
|
@ -0,0 +1,2 @@
|
|||
[white-space-003.xht]
|
||||
expected: FAIL
|
|
@ -0,0 +1,2 @@
|
|||
[line-height-204.html]
|
||||
expected: FAIL
|
|
@ -0,0 +1,2 @@
|
|||
[background-repeat-round-roundup.xht]
|
||||
expected: FAIL
|
|
@ -293,9 +293,6 @@
|
|||
[Matching font-stretch: '100%' should prefer '110% 120%' over '115% 116%']
|
||||
expected: FAIL
|
||||
|
||||
[Matching font-stretch: '110%' should prefer '105%' over '100%']
|
||||
expected: FAIL
|
||||
|
||||
[Matching font-weight: '400' should prefer '351 398' over '501 550']
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,2 +0,0 @@
|
|||
[hyphens-out-of-flow-001.html]
|
||||
expected: FAIL
|
|
@ -1,2 +0,0 @@
|
|||
[line-break-normal-018.xht]
|
||||
expected: FAIL
|
|
@ -1,2 +0,0 @@
|
|||
[line-break-strict-018.xht]
|
||||
expected: FAIL
|
|
@ -1,2 +0,0 @@
|
|||
[text-transform-full-size-kana-001.html]
|
||||
expected: FAIL
|
|
@ -1,2 +0,0 @@
|
|||
[text-transform-full-size-kana-002.html]
|
||||
expected: FAIL
|
|
@ -1,2 +0,0 @@
|
|||
[text-transform-full-size-kana-003.html]
|
||||
expected: FAIL
|
|
@ -1,2 +0,0 @@
|
|||
[text-transform-full-size-kana-004.html]
|
||||
expected: FAIL
|
|
@ -1,2 +0,0 @@
|
|||
[trailing-ideographic-space-004.html]
|
||||
expected: FAIL
|
|
@ -0,0 +1,2 @@
|
|||
[word-break-break-all-007.html]
|
||||
expected: FAIL
|
|
@ -0,0 +1,2 @@
|
|||
[word-break-keep-all-006.html]
|
||||
expected: FAIL
|
|
@ -1,5 +1,5 @@
|
|||
[perspective-interpolation.html]
|
||||
expected: CRASH
|
||||
expected: ERROR
|
||||
[ perspective interpolation]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
[css-transforms-3d-on-anonymous-block-001.html]
|
||||
expected: FAIL
|
|
@ -1,2 +1,2 @@
|
|||
[no-transition-from-ua-to-blocking-stylesheet.html]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
|
|
@ -1,2 +0,0 @@
|
|||
[matchMedia-display-none-iframe.html]
|
||||
expected: ERROR
|
|
@ -0,0 +1,7 @@
|
|||
[offsetTopLeft-border-box.html]
|
||||
[container: 1]
|
||||
expected: FAIL
|
||||
|
||||
[container: 0]
|
||||
expected: FAIL
|
||||
|
|
@ -3,6 +3,3 @@
|
|||
[scroll-behavior: smooth on DIV element]
|
||||
expected: FAIL
|
||||
|
||||
[Instant scrolling while doing history navigation.]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,2 +0,0 @@
|
|||
[HTMLMediaElement.html]
|
||||
expected: CRASH
|
|
@ -1,2 +0,0 @@
|
|||
[contenttype_html.html]
|
||||
expected: CRASH
|
|
@ -1,2 +0,0 @@
|
|||
[contenttype_xml.html]
|
||||
expected: CRASH
|
|
@ -2,7 +2,6 @@
|
|||
type: testharness
|
||||
|
||||
[single-byte-decoder.html?document]
|
||||
expected: TIMEOUT
|
||||
[ISO-8859-4: iso_8859-4:1988 (document.characterSet and document.inputEncoding)]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -117,9 +117,6 @@
|
|||
[Response: combined response Content-Type: text/html text/plain]
|
||||
expected: TIMEOUT
|
||||
|
||||
[fetch(): separate response Content-Type: text/plain ]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/plain;charset=gbk text/plain]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -315,12 +312,15 @@
|
|||
[<iframe>: combined response Content-Type: text/html;" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html */*;charset=gbk]
|
||||
[<iframe>: combined response Content-Type: */* text/html]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html;x=" text/plain]
|
||||
[<iframe>: combined response Content-Type: text/html */*]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html;" \\" text/plain]
|
||||
[<iframe>: separate response Content-Type: text/html;" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/plain */*;charset=gbk]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -56,9 +56,6 @@
|
|||
[separate text/javascript x/x]
|
||||
expected: FAIL
|
||||
|
||||
[separate text/javascript error]
|
||||
expected: FAIL
|
||||
|
||||
[separate text/javascript;charset=windows-1252 text/javascript]
|
||||
[separate text/javascript;charset=windows-1252 error text/javascript]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -11,3 +11,6 @@
|
|||
[X-Content-Type-Options%3A%20nosniff%0C]
|
||||
expected: FAIL
|
||||
|
||||
[X-Content-Type-Options%3A%20%40%23%24%23%25%25%26%5E%26%5E*()()11!%2Cnosniff]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -8,12 +8,9 @@
|
|||
expected: FAIL
|
||||
|
||||
[Embedded credentials are treated as network errors in new windows.]
|
||||
expected: FAIL
|
||||
|
||||
[Embedded credentials matching the top-level are treated as network errors for cross-origin URLs.]
|
||||
expected: TIMEOUT
|
||||
|
||||
[Embedded credentials matching the top-level are not treated as network errors for same-origin URLs.]
|
||||
[Embedded credentials matching the top-level are treated as network errors for cross-origin URLs.]
|
||||
expected: TIMEOUT
|
||||
|
||||
[Embedded credentials matching the top-level are not treated as network errors for relative URLs.]
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
[traverse_the_history_1.html]
|
||||
[Multiple history traversals from the same task]
|
||||
expected: FAIL
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
[traverse_the_history_5.html]
|
||||
[traverse_the_history_4.html]
|
||||
[Multiple history traversals, last would be aborted]
|
||||
expected: FAIL
|
||||
|
|
@ -18,3 +18,6 @@
|
|||
[Set HTTP URL frame location.protocol to x]
|
||||
expected: FAIL
|
||||
|
||||
[Set data URL frame location.protocol to http+x]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
[document_domain_access_details.sub.html]
|
||||
expected: TIMEOUT
|
||||
[Access allowed if same-origin with no 'document.domain' modification. (Sanity check)]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
[Access is revoked to Window object when we stop being same effective script origin due to document.domain.]
|
||||
expected: NOTRUN
|
||||
|
@ -13,7 +13,7 @@
|
|||
expected: NOTRUN
|
||||
|
||||
[Access not allowed if different-origin with no 'document.domain' modification. (Sanity check)]
|
||||
expected: FAIL
|
||||
expected: NOTRUN
|
||||
|
||||
[Access disallowed again if same-origin, both set document-domain to existing value, then one sets to parent.]
|
||||
expected: NOTRUN
|
||||
|
@ -28,7 +28,7 @@
|
|||
expected: NOTRUN
|
||||
|
||||
[Access disallowed if same-origin but only one sets document.domain.]
|
||||
expected: TIMEOUT
|
||||
expected: NOTRUN
|
||||
|
||||
[Access evolves correctly for cross-origin objects when we join up via document.domain and then diverge again.]
|
||||
expected: NOTRUN
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
[embedded-opener-remove-frame.html]
|
||||
expected: TIMEOUT
|
||||
[opener and "removed" embedded documents]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -7,5 +6,5 @@
|
|||
expected: FAIL
|
||||
|
||||
[opener of discarded auxiliary browsing context]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,20 +1,16 @@
|
|||
[supported-elements.html]
|
||||
expected: TIMEOUT
|
||||
[Contenteditable element should support autofocus]
|
||||
expected: FAIL
|
||||
|
||||
[Element with tabindex should support autofocus]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[Host element with delegatesFocus including no focusable descendants should be skipped]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[Area element should support autofocus]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[Host element with delegatesFocus should support autofocus]
|
||||
expected: NOTRUN
|
||||
|
||||
[Non-HTMLElement should not support autofocus]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
[iframe_sandbox_popups_escaping-1.html]
|
||||
type: testharness
|
||||
expected: CRASH
|
||||
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
[iframe_sandbox_popups_escaping-3.html]
|
||||
type: testharness
|
||||
expected: TIMEOUT
|
||||
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
[iframe_sandbox_popups_nonescaping-3.html]
|
||||
type: testharness
|
||||
expected: TIMEOUT
|
||||
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
||||
expected: FAIL
|
||||
expected: NOTRUN
|
||||
|
||||
|
|
|
@ -1,10 +0,0 @@
|
|||
[non-active-document.html]
|
||||
[DOMParser]
|
||||
expected: FAIL
|
||||
|
||||
[createHTMLDocument]
|
||||
expected: FAIL
|
||||
|
||||
[<template>]
|
||||
expected: FAIL
|
||||
|
|
@ -13,6 +13,3 @@
|
|||
[Check that targeting of rel=noopener with a given name reuses an existing window with that name]
|
||||
expected: NOTRUN
|
||||
|
||||
[Check that rel=noopener with target=_self does a normal load]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
[resource_timing_buffer_full_eventually.html]
|
||||
expected: CRASH
|
|
@ -1,5 +1,5 @@
|
|||
[compile.any.worker.html]
|
||||
expected: TIMEOUT
|
||||
expected: CRASH
|
||||
[Invalid code]
|
||||
expected: NOTRUN
|
||||
|
||||
|
@ -20,22 +20,3 @@
|
|||
|
||||
|
||||
[compile.any.html]
|
||||
expected: TIMEOUT
|
||||
[Invalid code]
|
||||
expected: NOTRUN
|
||||
|
||||
[Branding]
|
||||
expected: TIMEOUT
|
||||
|
||||
[Result type]
|
||||
expected: NOTRUN
|
||||
|
||||
[Changing the buffer]
|
||||
expected: NOTRUN
|
||||
|
||||
[Stray argument]
|
||||
expected: NOTRUN
|
||||
|
||||
[Empty buffer]
|
||||
expected: NOTRUN
|
||||
|
||||
|
|
|
@ -1,173 +1,7 @@
|
|||
[instantiate-bad-imports.any.html]
|
||||
expected: TIMEOUT
|
||||
[WebAssembly.instantiate(buffer): Imports argument with missing property: wrong property]
|
||||
expected: NOTRUN
|
||||
|
||||
[WebAssembly.instantiate(buffer): Importing memory with an incorrectly-typed value: 1]
|
||||
expected: NOTRUN
|
||||
|
||||
[WebAssembly.instantiate(buffer): Importing memory with an incorrectly-typed value: undefined]
|
||||
expected: NOTRUN
|
||||
|
||||
[WebAssembly.instantiate(buffer): Importing a function with an incorrectly-typed value: true]
|
||||
expected: NOTRUN
|
||||
|
||||
[WebAssembly.instantiate(buffer): Importing memory with an incorrectly-typed value: ""]
|
||||
expected: NOTRUN
|
||||
|
||||
[WebAssembly.instantiate(buffer): Importing an i64 global]
|
||||
expected: NOTRUN
|
||||
|
||||
[WebAssembly.instantiate(buffer): Importing a function with an incorrectly-typed value: NaN]
|
||||
expected: NOTRUN
|
||||
|
||||
[WebAssembly.instantiate(buffer): Non-object module: 1]
|
||||
expected: NOTRUN
|
||||
|
||||
[WebAssembly.instantiate(buffer): Importing a global with an incorrectly-typed value: symbol "Symbol()"]
|
||||
expected: NOTRUN
|
||||
|
||||
[WebAssembly.instantiate(buffer): Importing memory with an incorrectly-typed value: WebAssembly.Memory.prototype]
|
||||
expected: NOTRUN
|
||||
|
||||
[WebAssembly.instantiate(buffer): Importing a function with an incorrectly-typed value: 0.1]
|
||||
expected: NOTRUN
|
||||
|
||||
[WebAssembly.instantiate(buffer): Importing a function with an incorrectly-typed value: object "[object Object\]"]
|
||||
expected: NOTRUN
|
||||
|
||||
[WebAssembly.instantiate(buffer): Importing a global with an incorrectly-typed value: WebAssembly.Global.prototype]
|
||||
expected: NOTRUN
|
||||
|
||||
[WebAssembly.instantiate(buffer): Importing memory with an incorrectly-typed value: symbol "Symbol()"]
|
||||
expected: NOTRUN
|
||||
|
||||
[WebAssembly.instantiate(buffer): Importing table with an incorrectly-typed value: 0.1]
|
||||
expected: NOTRUN
|
||||
|
||||
[WebAssembly.instantiate(buffer): Importing table with an incorrectly-typed value: true]
|
||||
expected: NOTRUN
|
||||
|
||||
[WebAssembly.instantiate(buffer): Imports argument with missing property: undefined]
|
||||
expected: NOTRUN
|
||||
|
||||
[WebAssembly.instantiate(buffer): Importing table with an incorrectly-typed value: ""]
|
||||
expected: NOTRUN
|
||||
|
||||
[WebAssembly.instantiate(buffer): Importing a function with an incorrectly-typed value: symbol "Symbol()"]
|
||||
expected: NOTRUN
|
||||
|
||||
[WebAssembly.instantiate(buffer): Imports argument with missing property: empty object]
|
||||
expected: NOTRUN
|
||||
|
||||
[WebAssembly.instantiate(buffer): Non-object module: 0.1]
|
||||
expected: NOTRUN
|
||||
|
||||
[WebAssembly.instantiate(buffer): Importing a global with an incorrectly-typed value: true]
|
||||
expected: NOTRUN
|
||||
|
||||
[WebAssembly.instantiate(buffer): Non-object module: NaN]
|
||||
expected: NOTRUN
|
||||
|
||||
[WebAssembly.instantiate(buffer): Non-object module: true]
|
||||
expected: NOTRUN
|
||||
|
||||
[WebAssembly.instantiate(buffer): Importing a global with an incorrectly-typed value: null]
|
||||
expected: NOTRUN
|
||||
|
||||
[WebAssembly.instantiate(buffer): Importing a global with an incorrectly-typed value: Object.create(WebAssembly.Global.prototype)]
|
||||
expected: NOTRUN
|
||||
|
||||
[WebAssembly.instantiate(buffer): Importing a function with an incorrectly-typed value: undefined]
|
||||
expected: NOTRUN
|
||||
|
||||
[WebAssembly.instantiate(buffer): Missing imports argument]
|
||||
expected: NOTRUN
|
||||
|
||||
[WebAssembly.instantiate(buffer): Importing memory with an incorrectly-typed value: null]
|
||||
expected: NOTRUN
|
||||
|
||||
[WebAssembly.instantiate(buffer): Importing table with an incorrectly-typed value: Object.create(WebAssembly.Table.prototype)]
|
||||
expected: NOTRUN
|
||||
|
||||
[WebAssembly.instantiate(buffer): Non-object module: undefined]
|
||||
expected: TIMEOUT
|
||||
|
||||
[WebAssembly.instantiate(buffer): Importing table with an incorrectly-typed value: WebAssembly.Table]
|
||||
expected: NOTRUN
|
||||
|
||||
[WebAssembly.instantiate(buffer): Non-object module: ""]
|
||||
expected: NOTRUN
|
||||
|
||||
[WebAssembly.instantiate(buffer): Importing a function with an incorrectly-typed value: ""]
|
||||
expected: NOTRUN
|
||||
|
||||
[WebAssembly.instantiate(buffer): Importing table with an incorrectly-typed value: plain object]
|
||||
expected: NOTRUN
|
||||
|
||||
[WebAssembly.instantiate(buffer): Importing a global with an incorrectly-typed value: plain object]
|
||||
expected: NOTRUN
|
||||
|
||||
[WebAssembly.instantiate(buffer): Importing a function with an incorrectly-typed value: 1]
|
||||
expected: NOTRUN
|
||||
|
||||
[WebAssembly.instantiate(buffer): Importing table with an incorrectly-typed value: null]
|
||||
expected: NOTRUN
|
||||
|
||||
[WebAssembly.instantiate(buffer): Importing table with an incorrectly-typed value: undefined]
|
||||
expected: NOTRUN
|
||||
|
||||
[WebAssembly.instantiate(buffer): Importing table with an incorrectly-typed value: 1]
|
||||
expected: NOTRUN
|
||||
|
||||
[WebAssembly.instantiate(buffer): Importing table with an incorrectly-typed value: WebAssembly.Table.prototype]
|
||||
expected: NOTRUN
|
||||
|
||||
[WebAssembly.instantiate(buffer): Importing memory with an incorrectly-typed value: Object.create(WebAssembly.Memory.prototype)]
|
||||
expected: NOTRUN
|
||||
|
||||
[WebAssembly.instantiate(buffer): Importing memory with an incorrectly-typed value: 0.1]
|
||||
expected: NOTRUN
|
||||
|
||||
[WebAssembly.instantiate(buffer): Importing memory with an incorrectly-typed value: true]
|
||||
expected: NOTRUN
|
||||
|
||||
[WebAssembly.instantiate(buffer): Importing a global with an incorrectly-typed value: WebAssembly.Global]
|
||||
expected: NOTRUN
|
||||
|
||||
[WebAssembly.instantiate(buffer): Non-object module: symbol "Symbol()"]
|
||||
expected: NOTRUN
|
||||
|
||||
[WebAssembly.instantiate(buffer): Importing memory with an incorrectly-typed value: NaN]
|
||||
expected: NOTRUN
|
||||
|
||||
[WebAssembly.instantiate(buffer): Importing a global with an incorrectly-typed value: ""]
|
||||
expected: NOTRUN
|
||||
|
||||
[WebAssembly.instantiate(buffer): Importing a global with an incorrectly-typed value: undefined]
|
||||
expected: NOTRUN
|
||||
|
||||
[WebAssembly.instantiate(buffer): Importing table with an incorrectly-typed value: NaN]
|
||||
expected: NOTRUN
|
||||
|
||||
[WebAssembly.instantiate(buffer): Importing a function with an incorrectly-typed value: null]
|
||||
expected: NOTRUN
|
||||
|
||||
[WebAssembly.instantiate(buffer): Non-object module: null]
|
||||
expected: NOTRUN
|
||||
|
||||
[WebAssembly.instantiate(buffer): Importing memory with an incorrectly-typed value: plain object]
|
||||
expected: NOTRUN
|
||||
|
||||
[WebAssembly.instantiate(buffer): Importing table with an incorrectly-typed value: symbol "Symbol()"]
|
||||
expected: NOTRUN
|
||||
|
||||
[WebAssembly.instantiate(buffer): Importing memory with an incorrectly-typed value: WebAssembly.Memory]
|
||||
expected: NOTRUN
|
||||
|
||||
|
||||
[instantiate-bad-imports.any.worker.html]
|
||||
expected: TIMEOUT
|
||||
expected: CRASH
|
||||
[WebAssembly.instantiate(buffer): Imports argument with missing property: wrong property]
|
||||
expected: NOTRUN
|
||||
|
||||
|
|
|
@ -1,86 +1,16 @@
|
|||
[instantiate.any.html]
|
||||
expected: TIMEOUT
|
||||
[Invalid arguments]
|
||||
expected: NOTRUN
|
||||
|
||||
[exports and imports: buffer argument]
|
||||
expected: FAIL
|
||||
|
||||
[Invalid code]
|
||||
expected: NOTRUN
|
||||
|
||||
[BufferSource argument]
|
||||
expected: FAIL
|
||||
|
||||
[Branding]
|
||||
expected: TIMEOUT
|
||||
|
||||
[exports and imports: Module argument]
|
||||
expected: NOTRUN
|
||||
|
||||
[Module argument]
|
||||
expected: FAIL
|
||||
|
||||
[Changing the buffer]
|
||||
expected: NOTRUN
|
||||
|
||||
[Empty module with undefined imports argument: BufferSource argument]
|
||||
expected: NOTRUN
|
||||
|
||||
[getter order for imports object: BufferSource argument]
|
||||
expected: NOTRUN
|
||||
|
||||
[Empty module without imports argument: BufferSource argument]
|
||||
expected: NOTRUN
|
||||
|
||||
[Empty module with empty imports argument: BufferSource argument]
|
||||
expected: NOTRUN
|
||||
|
||||
[No imports: Module argument]
|
||||
expected: NOTRUN
|
||||
|
||||
[Empty module with undefined imports argument: Module argument]
|
||||
expected: NOTRUN
|
||||
|
||||
[exports and imports: BufferSource argument]
|
||||
expected: NOTRUN
|
||||
|
||||
[imports: Module argument]
|
||||
expected: NOTRUN
|
||||
|
||||
[Empty module without imports argument: Module argument]
|
||||
expected: NOTRUN
|
||||
|
||||
[No imports: BufferSource argument]
|
||||
expected: NOTRUN
|
||||
|
||||
[Empty module with empty imports argument: Module argument]
|
||||
expected: NOTRUN
|
||||
|
||||
[imports: BufferSource argument]
|
||||
expected: NOTRUN
|
||||
|
||||
[getter order for imports object: Module argument]
|
||||
expected: NOTRUN
|
||||
|
||||
[stray argument: BufferSource argument]
|
||||
expected: NOTRUN
|
||||
|
||||
[stray argument: Module argument]
|
||||
expected: NOTRUN
|
||||
|
||||
[Empty buffer]
|
||||
expected: NOTRUN
|
||||
|
||||
[Synchronous options handling: Module argument]
|
||||
expected: NOTRUN
|
||||
|
||||
[Synchronous options handling: Buffer argument]
|
||||
expected: NOTRUN
|
||||
|
||||
|
||||
[instantiate.any.worker.html]
|
||||
expected: TIMEOUT
|
||||
expected: CRASH
|
||||
[Invalid arguments]
|
||||
expected: NOTRUN
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[multi-value.any.worker.html]
|
||||
expected: TIMEOUT
|
||||
expected: CRASH
|
||||
[multiple return values from wasm to js]
|
||||
expected: TIMEOUT
|
||||
|
||||
|
@ -11,13 +11,12 @@
|
|||
|
||||
|
||||
[multi-value.any.html]
|
||||
expected: TIMEOUT
|
||||
[multiple return values from wasm to js]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[multiple return values inside wasm]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[multiple return values from js to wasm]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[idlharness.any.worker.html]
|
||||
expected: TIMEOUT
|
||||
expected: CRASH
|
||||
[Instance must be primary interface of instance]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -47,49 +47,12 @@
|
|||
|
||||
|
||||
[idlharness.any.html]
|
||||
expected: TIMEOUT
|
||||
[Instance must be primary interface of instance]
|
||||
expected: FAIL
|
||||
|
||||
[Stringification of mod]
|
||||
expected: FAIL
|
||||
|
||||
[Module interface: mod must inherit property "imports(Module)" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[Stringification of instance]
|
||||
expected: FAIL
|
||||
|
||||
[Module interface: calling customSections(Module, USVString) on mod with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[Module interface: calling imports(Module) on mod with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[Module interface: mod must inherit property "exports(Module)" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[Module interface: operation customSections(Module, USVString)]
|
||||
expected: FAIL
|
||||
|
||||
[Module interface: mod must inherit property "customSections(Module, USVString)" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[Instance interface: instance must inherit property "exports" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[Module interface: calling exports(Module) on mod with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[Module must be primary interface of mod]
|
||||
expected: FAIL
|
||||
|
||||
[Module interface: calling customSections(Module, DOMString) on mod with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[Module interface: mod must inherit property "customSections(Module, DOMString)" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[wasm-js-api interfaces.]
|
||||
expected: TIMEOUT
|
||||
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
[broadcastchannel-success.html]
|
||||
expected: TIMEOUT
|
||||
[Structured cloning of WebAssembly.Module: BroadcastChannel within the same agent cluster]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[identity-not-preserved.html]
|
||||
expected: TIMEOUT
|
||||
expected: ERROR
|
||||
[postMessaging to this window does not give back the same WebAssembly.Module]
|
||||
expected: TIMEOUT
|
||||
|
||||
|
@ -7,5 +7,5 @@
|
|||
expected: TIMEOUT
|
||||
|
||||
[postMessaging to an iframe and back does not give back the same WebAssembly.Module]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
|
||||
|
||||
[nested-worker-success.any.worker.html]
|
||||
expected: TIMEOUT
|
||||
expected: CRASH
|
||||
[postMessaging to a dedicated sub-worker allows them to see each others' modifications]
|
||||
expected: TIMEOUT
|
||||
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
[window-domain-success.sub.html]
|
||||
expected: TIMEOUT
|
||||
[postMessaging to a same-origin-domain (but not same-origin) iframe allows them to instantiate]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
[window-messagechannel-success.html]
|
||||
expected: TIMEOUT
|
||||
[postMessaging to a dedicated worker via MessageChannel allows them to instantiate]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
[window-similar-but-cross-origin-success.sub.html]
|
||||
expected: TIMEOUT
|
||||
[postMessaging to a not same-origin-domain, but similar origin, iframe allows them to instantiate]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,14 +1,13 @@
|
|||
[window-simple-success.html]
|
||||
expected: TIMEOUT
|
||||
[postMessaging to a same-origin opened window allows them to instantiate]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[postMessaging to a same-origin deeply-nested iframe allows them to instantiate]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[postMessaging to a dedicated worker allows them to instantiate]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[postMessaging to a same-origin iframe allows them to instantiate]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
[017.html]
|
||||
expected: TIMEOUT
|
||||
[origin of the script that invoked the method, about:blank]
|
||||
expected: TIMEOUT
|
||||
|
|
@ -1,5 +1,4 @@
|
|||
[import-in-moduleworker.html]
|
||||
expected: ERROR
|
||||
[Base URL in module dedicated workers: import]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
[Worker-constructor.html]
|
||||
expected: ERROR
|
|
@ -1,5 +1,4 @@
|
|||
[005.html]
|
||||
expected: ERROR
|
||||
[dedicated worker in shared worker in dedicated worker]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,2 +0,0 @@
|
|||
[transition_calc_implicit.html]
|
||||
expected: TIMEOUT
|
|
@ -0,0 +1,6 @@
|
|||
[task_queue_throttling.any.worker.html]
|
||||
[Throttling the performance timeline task queue.]
|
||||
expected: FAIL
|
||||
|
||||
|
||||
[task_queue_throttling.any.html]
|
Loading…
Add table
Add a link
Reference in a new issue