mirror of
https://github.com/servo/servo.git
synced 2025-06-06 16:45:39 +00:00
Initial structuredClone implementation (#32960)
* Initial structuredClone implementation Signed-off-by: Bentaimia Haddadi <haddadi.taym@gmail.com> * Rename PostMessageOptions to StructuredSerializeOptions Signed-off-by: Bentaimia Haddadi <haddadi.taym@gmail.com> * Update wpt test 2020 layout result Signed-off-by: Bentaimia Haddadi <haddadi.taym@gmail.com> * Remove dublicated StructuredClone implementation Signed-off-by: Bentaimia Haddadi <haddadi.taym@gmail.com> * Remove comment from StructuredSerializeOptions webidl Signed-off-by: Taym Haddadi <haddadi.taym@gmail.com> --------- Signed-off-by: Bentaimia Haddadi <haddadi.taym@gmail.com> Signed-off-by: Taym Haddadi <haddadi.taym@gmail.com>
This commit is contained in:
parent
f989d3776e
commit
08eb4faf4d
20 changed files with 74 additions and 862 deletions
|
@ -34,7 +34,7 @@ use crate::dom::abstractworkerglobalscope::{
|
|||
use crate::dom::bindings::cell::DomRefCell;
|
||||
use crate::dom::bindings::codegen::Bindings::DedicatedWorkerGlobalScopeBinding;
|
||||
use crate::dom::bindings::codegen::Bindings::DedicatedWorkerGlobalScopeBinding::DedicatedWorkerGlobalScopeMethods;
|
||||
use crate::dom::bindings::codegen::Bindings::MessagePortBinding::PostMessageOptions;
|
||||
use crate::dom::bindings::codegen::Bindings::MessagePortBinding::StructuredSerializeOptions;
|
||||
use crate::dom::bindings::codegen::Bindings::WorkerBinding::WorkerType;
|
||||
use crate::dom::bindings::error::{ErrorInfo, ErrorResult};
|
||||
use crate::dom::bindings::inheritance::Castable;
|
||||
|
@ -659,7 +659,7 @@ impl DedicatedWorkerGlobalScopeMethods for DedicatedWorkerGlobalScope {
|
|||
&self,
|
||||
cx: SafeJSContext,
|
||||
message: HandleValue,
|
||||
options: RootedTraceableBox<PostMessageOptions>,
|
||||
options: RootedTraceableBox<StructuredSerializeOptions>,
|
||||
) -> ErrorResult {
|
||||
let mut rooted = CustomAutoRooter::new(
|
||||
options
|
||||
|
|
|
@ -36,7 +36,8 @@ use js::panic::maybe_resume_unwind;
|
|||
use js::rust::wrappers::{JS_ExecuteScript, JS_GetScriptPrivate};
|
||||
use js::rust::{
|
||||
describe_scripted_caller, get_object_class, transform_str_to_source_text,
|
||||
CompileOptionsWrapper, HandleValue, MutableHandleValue, ParentRuntime, Runtime,
|
||||
CompileOptionsWrapper, CustomAutoRooter, CustomAutoRooterGuard, HandleValue,
|
||||
MutableHandleValue, ParentRuntime, Runtime,
|
||||
};
|
||||
use js::{JSCLASS_IS_DOMJSCLASS, JSCLASS_IS_GLOBAL};
|
||||
use net_traits::blob_url_store::{get_blob_origin, BlobBuf};
|
||||
|
@ -59,8 +60,10 @@ use servo_url::{ImmutableOrigin, MutableOrigin, ServoUrl};
|
|||
use uuid::Uuid;
|
||||
use webgpu::{DeviceLostReason, WebGPUDevice};
|
||||
|
||||
use super::bindings::codegen::Bindings::MessagePortBinding::StructuredSerializeOptions;
|
||||
use super::bindings::codegen::Bindings::WebGPUBinding::GPUDeviceLostReason;
|
||||
use super::bindings::trace::HashMapTracedValues;
|
||||
use super::bindings::error::Fallible;
|
||||
use super::bindings::trace::{HashMapTracedValues, RootedTraceableBox};
|
||||
use crate::dom::bindings::cell::{DomRefCell, RefMut};
|
||||
use crate::dom::bindings::codegen::Bindings::BroadcastChannelBinding::BroadcastChannelMethods;
|
||||
use crate::dom::bindings::codegen::Bindings::EventSourceBinding::EventSource_Binding::EventSourceMethods;
|
||||
|
@ -3354,6 +3357,31 @@ impl GlobalScope {
|
|||
pub(crate) fn dynamic_module_list(&self) -> RefMut<DynamicModuleList> {
|
||||
self.dynamic_modules.borrow_mut()
|
||||
}
|
||||
|
||||
pub(crate) fn structured_clone(
|
||||
&self,
|
||||
cx: SafeJSContext,
|
||||
value: HandleValue,
|
||||
options: RootedTraceableBox<StructuredSerializeOptions>,
|
||||
) -> Fallible<js::jsval::JSVal> {
|
||||
let mut rooted = CustomAutoRooter::new(
|
||||
options
|
||||
.transfer
|
||||
.iter()
|
||||
.map(|js: &RootedTraceableBox<Heap<*mut JSObject>>| js.get())
|
||||
.collect(),
|
||||
);
|
||||
let guard = CustomAutoRooterGuard::new(*cx, &mut rooted);
|
||||
|
||||
let data = structuredclone::write(cx, value, Some(guard))?;
|
||||
|
||||
rooted!(in(*cx) let mut message_clone = UndefinedValue());
|
||||
|
||||
structuredclone::read(self, data, message_clone.handle_mut())
|
||||
.map_err(|_| Error::DataClone)?;
|
||||
|
||||
Ok(message_clone.get())
|
||||
}
|
||||
}
|
||||
|
||||
/// Returns the Rust global scope from a JS global object.
|
||||
|
|
|
@ -16,7 +16,7 @@ use script_traits::PortMessageTask;
|
|||
|
||||
use crate::dom::bindings::codegen::Bindings::EventHandlerBinding::EventHandlerNonNull;
|
||||
use crate::dom::bindings::codegen::Bindings::MessagePortBinding::{
|
||||
MessagePortMethods, PostMessageOptions,
|
||||
MessagePortMethods, StructuredSerializeOptions,
|
||||
};
|
||||
use crate::dom::bindings::conversions::root_from_object;
|
||||
use crate::dom::bindings::error::{Error, ErrorResult};
|
||||
|
@ -288,7 +288,7 @@ impl MessagePortMethods for MessagePort {
|
|||
&self,
|
||||
cx: SafeJSContext,
|
||||
message: HandleValue,
|
||||
options: RootedTraceableBox<PostMessageOptions>,
|
||||
options: RootedTraceableBox<StructuredSerializeOptions>,
|
||||
) -> ErrorResult {
|
||||
if self.detached.get() {
|
||||
return Ok(());
|
||||
|
|
|
@ -13,7 +13,7 @@ use servo_url::ServoUrl;
|
|||
|
||||
use crate::dom::abstractworker::SimpleWorkerErrorHandler;
|
||||
use crate::dom::bindings::cell::DomRefCell;
|
||||
use crate::dom::bindings::codegen::Bindings::MessagePortBinding::PostMessageOptions;
|
||||
use crate::dom::bindings::codegen::Bindings::MessagePortBinding::StructuredSerializeOptions;
|
||||
use crate::dom::bindings::codegen::Bindings::ServiceWorkerBinding::{
|
||||
ServiceWorkerMethods, ServiceWorkerState,
|
||||
};
|
||||
|
@ -144,7 +144,7 @@ impl ServiceWorkerMethods for ServiceWorker {
|
|||
&self,
|
||||
cx: JSContext,
|
||||
message: HandleValue,
|
||||
options: RootedTraceableBox<PostMessageOptions>,
|
||||
options: RootedTraceableBox<StructuredSerializeOptions>,
|
||||
) -> ErrorResult {
|
||||
let mut rooted = CustomAutoRooter::new(
|
||||
options
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
[Global=(Worker,DedicatedWorker), Exposed=DedicatedWorker]
|
||||
/*sealed*/ interface DedicatedWorkerGlobalScope : WorkerGlobalScope {
|
||||
[Throws] undefined postMessage(any message, sequence<object> transfer);
|
||||
[Throws] undefined postMessage(any message, optional PostMessageOptions options = {});
|
||||
[Throws] undefined postMessage(any message, optional StructuredSerializeOptions options = {});
|
||||
attribute EventHandler onmessage;
|
||||
|
||||
undefined close();
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
[Exposed=(Window,Worker)]
|
||||
interface MessagePort : EventTarget {
|
||||
[Throws] undefined postMessage(any message, sequence<object> transfer);
|
||||
[Throws] undefined postMessage(any message, optional PostMessageOptions options = {});
|
||||
[Throws] undefined postMessage(any message, optional StructuredSerializeOptions options = {});
|
||||
undefined start();
|
||||
undefined close();
|
||||
|
||||
|
@ -18,6 +18,6 @@ interface MessagePort : EventTarget {
|
|||
attribute EventHandler onmessageerror;
|
||||
};
|
||||
|
||||
dictionary PostMessageOptions {
|
||||
dictionary StructuredSerializeOptions {
|
||||
sequence<object> transfer = [];
|
||||
};
|
||||
|
|
|
@ -8,7 +8,7 @@ interface ServiceWorker : EventTarget {
|
|||
readonly attribute USVString scriptURL;
|
||||
readonly attribute ServiceWorkerState state;
|
||||
[Throws] undefined postMessage(any message, sequence<object> transfer);
|
||||
[Throws] undefined postMessage(any message, optional PostMessageOptions options = {});
|
||||
[Throws] undefined postMessage(any message, optional StructuredSerializeOptions options = {});
|
||||
|
||||
// event
|
||||
attribute EventHandler onstatechange;
|
||||
|
|
|
@ -188,6 +188,6 @@ partial interface Window {
|
|||
[Replaceable] readonly attribute any event; // historical
|
||||
};
|
||||
|
||||
dictionary WindowPostMessageOptions : PostMessageOptions {
|
||||
dictionary WindowPostMessageOptions : StructuredSerializeOptions {
|
||||
USVString targetOrigin = "/";
|
||||
};
|
||||
|
|
|
@ -28,6 +28,10 @@ interface mixin WindowOrWorkerGlobalScope {
|
|||
Promise<ImageBitmap> createImageBitmap(ImageBitmapSource image, optional ImageBitmapOptions options = {});
|
||||
// Promise<ImageBitmap> createImageBitmap(
|
||||
// ImageBitmapSource image, long sx, long sy, long sw, long sh, optional ImageBitmapOptions options);
|
||||
|
||||
// structured cloning
|
||||
[Throws]
|
||||
any structuredClone(any value, optional StructuredSerializeOptions options = {});
|
||||
};
|
||||
|
||||
// https://w3c.github.io/hr-time/#the-performance-attribute
|
||||
|
|
|
@ -15,7 +15,7 @@ interface Worker : EventTarget {
|
|||
undefined terminate();
|
||||
|
||||
[Throws] undefined postMessage(any message, sequence<object> transfer);
|
||||
[Throws] undefined postMessage(any message, optional PostMessageOptions options = {});
|
||||
[Throws] undefined postMessage(any message, optional StructuredSerializeOptions options = {});
|
||||
attribute EventHandler onmessage;
|
||||
attribute EventHandler onmessageerror;
|
||||
};
|
||||
|
|
|
@ -77,6 +77,7 @@ use webrender_api::units::{DeviceIntPoint, DeviceIntSize, LayoutPixel};
|
|||
use webrender_api::{DocumentId, ExternalScrollId};
|
||||
use webrender_traits::WebRenderScriptApi;
|
||||
|
||||
use super::bindings::codegen::Bindings::MessagePortBinding::StructuredSerializeOptions;
|
||||
use super::bindings::trace::HashMapTracedValues;
|
||||
use crate::dom::bindings::cell::{DomRefCell, Ref};
|
||||
use crate::dom::bindings::codegen::Bindings::DocumentBinding::{
|
||||
|
@ -1560,6 +1561,17 @@ impl WindowMethods for Window {
|
|||
.map(|(k, _v)| DOMString::from(&***k))
|
||||
.collect()
|
||||
}
|
||||
|
||||
/// <https://html.spec.whatwg.org/multipage/#dom-structuredclone>
|
||||
fn StructuredClone(
|
||||
&self,
|
||||
cx: JSContext,
|
||||
value: HandleValue,
|
||||
options: RootedTraceableBox<StructuredSerializeOptions>,
|
||||
) -> Fallible<js::jsval::JSVal> {
|
||||
self.upcast::<GlobalScope>()
|
||||
.structured_clone(cx, value, options)
|
||||
}
|
||||
}
|
||||
|
||||
impl Window {
|
||||
|
|
|
@ -18,7 +18,7 @@ use uuid::Uuid;
|
|||
|
||||
use crate::dom::abstractworker::{SimpleWorkerErrorHandler, WorkerScriptMsg};
|
||||
use crate::dom::bindings::cell::DomRefCell;
|
||||
use crate::dom::bindings::codegen::Bindings::MessagePortBinding::PostMessageOptions;
|
||||
use crate::dom::bindings::codegen::Bindings::MessagePortBinding::StructuredSerializeOptions;
|
||||
use crate::dom::bindings::codegen::Bindings::WorkerBinding::{WorkerMethods, WorkerOptions};
|
||||
use crate::dom::bindings::error::{Error, ErrorResult, Fallible};
|
||||
use crate::dom::bindings::inheritance::Castable;
|
||||
|
@ -243,7 +243,7 @@ impl WorkerMethods for Worker {
|
|||
&self,
|
||||
cx: JSContext,
|
||||
message: HandleValue,
|
||||
options: RootedTraceableBox<PostMessageOptions>,
|
||||
options: RootedTraceableBox<StructuredSerializeOptions>,
|
||||
) -> ErrorResult {
|
||||
let mut rooted = CustomAutoRooter::new(
|
||||
options
|
||||
|
|
|
@ -24,6 +24,7 @@ use servo_url::{MutableOrigin, ServoUrl};
|
|||
use time::precise_time_ns;
|
||||
use uuid::Uuid;
|
||||
|
||||
use super::bindings::codegen::Bindings::MessagePortBinding::StructuredSerializeOptions;
|
||||
use crate::dom::bindings::cell::{DomRefCell, Ref};
|
||||
use crate::dom::bindings::codegen::Bindings::ImageBitmapBinding::{
|
||||
ImageBitmapOptions, ImageBitmapSource,
|
||||
|
@ -431,6 +432,17 @@ impl WorkerGlobalScopeMethods for WorkerGlobalScope {
|
|||
fn IsSecureContext(&self) -> bool {
|
||||
self.upcast::<GlobalScope>().is_secure_context()
|
||||
}
|
||||
|
||||
/// <https://html.spec.whatwg.org/multipage/#dom-structuredclone>
|
||||
fn StructuredClone(
|
||||
&self,
|
||||
cx: JSContext,
|
||||
value: HandleValue,
|
||||
options: RootedTraceableBox<StructuredSerializeOptions>,
|
||||
) -> Fallible<js::jsval::JSVal> {
|
||||
self.upcast::<GlobalScope>()
|
||||
.structured_clone(cx, value, options)
|
||||
}
|
||||
}
|
||||
|
||||
impl WorkerGlobalScope {
|
||||
|
|
|
@ -1,14 +0,0 @@
|
|||
[historical.any.html]
|
||||
[URL: no structured serialize/deserialize support]
|
||||
expected: FAIL
|
||||
|
||||
[URLSearchParams: no structured serialize/deserialize support]
|
||||
expected: FAIL
|
||||
|
||||
|
||||
[historical.any.worker.html]
|
||||
[URL: no structured serialize/deserialize support]
|
||||
expected: FAIL
|
||||
|
||||
[URLSearchParams: no structured serialize/deserialize support]
|
||||
expected: FAIL
|
|
@ -2379,9 +2379,6 @@
|
|||
[Window interface: operation reportError(any)]
|
||||
expected: FAIL
|
||||
|
||||
[Window interface: operation structuredClone(any, optional StructuredSerializeOptions)]
|
||||
expected: FAIL
|
||||
|
||||
[Window interface: window must inherit property "clientInformation" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -2397,12 +2394,6 @@
|
|||
[Window interface: calling reportError(any) on window with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[Window interface: window must inherit property "structuredClone(any, optional StructuredSerializeOptions)" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[Window interface: calling structuredClone(any, optional StructuredSerializeOptions) on window with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[Document interface: attribute onvisibilitychange]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -548,21 +548,12 @@
|
|||
[WorkerGlobalScope interface: operation reportError(any)]
|
||||
expected: FAIL
|
||||
|
||||
[WorkerGlobalScope interface: operation structuredClone(any, optional StructuredSerializeOptions)]
|
||||
expected: FAIL
|
||||
|
||||
[WorkerGlobalScope interface: self must inherit property "reportError(any)" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[WorkerGlobalScope interface: calling reportError(any) on self with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[WorkerGlobalScope interface: self must inherit property "structuredClone(any, optional StructuredSerializeOptions)" with the proper type]
|
||||
expected: FAIL
|
||||
|
||||
[WorkerGlobalScope interface: calling structuredClone(any, optional StructuredSerializeOptions) on self with too few arguments must throw TypeError]
|
||||
expected: FAIL
|
||||
|
||||
[Path2D interface: operation roundRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double, optional (unrestricted double or DOMPointInit or sequence<(unrestricted double or DOMPointInit)>))]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,10 +1,4 @@
|
|||
[structured-cloning-error-stack-optional.sub.window.html]
|
||||
[page-created Error (structuredClone())]
|
||||
expected: FAIL
|
||||
|
||||
[JS-engine-created TypeError (structuredClone())]
|
||||
expected: FAIL
|
||||
|
||||
[web API-created TypeError (structuredClone())]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,12 +0,0 @@
|
|||
[structured-clone-cross-realm-method.html]
|
||||
[Object instance]
|
||||
expected: FAIL
|
||||
|
||||
[Array instance]
|
||||
expected: FAIL
|
||||
|
||||
[Date instance]
|
||||
expected: FAIL
|
||||
|
||||
[RegExp instance]
|
||||
expected: FAIL
|
|
@ -1,687 +1,21 @@
|
|||
[structured-clone.any.worker.html]
|
||||
[primitive undefined]
|
||||
expected: FAIL
|
||||
|
||||
[primitive null]
|
||||
expected: FAIL
|
||||
|
||||
[primitive true]
|
||||
expected: FAIL
|
||||
|
||||
[primitive false]
|
||||
expected: FAIL
|
||||
|
||||
[primitive string, empty string]
|
||||
expected: FAIL
|
||||
|
||||
[primitive string, lone high surrogate]
|
||||
expected: FAIL
|
||||
|
||||
[primitive string, lone low surrogate]
|
||||
expected: FAIL
|
||||
|
||||
[primitive string, NUL]
|
||||
expected: FAIL
|
||||
|
||||
[primitive string, astral character]
|
||||
expected: FAIL
|
||||
|
||||
[primitive number, 0.2]
|
||||
expected: FAIL
|
||||
|
||||
[primitive number, 0]
|
||||
expected: FAIL
|
||||
|
||||
[primitive number, -0]
|
||||
expected: FAIL
|
||||
|
||||
[primitive number, NaN]
|
||||
expected: FAIL
|
||||
|
||||
[primitive number, Infinity]
|
||||
expected: FAIL
|
||||
|
||||
[primitive number, -Infinity]
|
||||
expected: FAIL
|
||||
|
||||
[primitive number, 9007199254740992]
|
||||
expected: FAIL
|
||||
|
||||
[primitive number, -9007199254740992]
|
||||
expected: FAIL
|
||||
|
||||
[primitive number, 9007199254740994]
|
||||
expected: FAIL
|
||||
|
||||
[primitive number, -9007199254740994]
|
||||
expected: FAIL
|
||||
|
||||
[primitive BigInt, 0n]
|
||||
expected: FAIL
|
||||
|
||||
[primitive BigInt, -0n]
|
||||
expected: FAIL
|
||||
|
||||
[primitive BigInt, -9007199254740994000n]
|
||||
expected: FAIL
|
||||
|
||||
[primitive BigInt, -9007199254740994000900719925474099400090071992547409940009007199254740994000n]
|
||||
expected: FAIL
|
||||
|
||||
[Array primitives]
|
||||
expected: FAIL
|
||||
|
||||
[Object primitives]
|
||||
expected: FAIL
|
||||
|
||||
[Boolean true]
|
||||
expected: FAIL
|
||||
|
||||
[Boolean false]
|
||||
expected: FAIL
|
||||
|
||||
[Array Boolean objects]
|
||||
expected: FAIL
|
||||
|
||||
[Object Boolean objects]
|
||||
expected: FAIL
|
||||
|
||||
[String empty string]
|
||||
expected: FAIL
|
||||
|
||||
[String lone high surrogate]
|
||||
expected: FAIL
|
||||
|
||||
[String lone low surrogate]
|
||||
expected: FAIL
|
||||
|
||||
[String NUL]
|
||||
expected: FAIL
|
||||
|
||||
[String astral character]
|
||||
expected: FAIL
|
||||
|
||||
[Array String objects]
|
||||
expected: FAIL
|
||||
|
||||
[Object String objects]
|
||||
expected: FAIL
|
||||
|
||||
[Number 0.2]
|
||||
expected: FAIL
|
||||
|
||||
[Number 0]
|
||||
expected: FAIL
|
||||
|
||||
[Number -0]
|
||||
expected: FAIL
|
||||
|
||||
[Number NaN]
|
||||
expected: FAIL
|
||||
|
||||
[Number Infinity]
|
||||
expected: FAIL
|
||||
|
||||
[Number -Infinity]
|
||||
expected: FAIL
|
||||
|
||||
[Number 9007199254740992]
|
||||
expected: FAIL
|
||||
|
||||
[Number -9007199254740992]
|
||||
expected: FAIL
|
||||
|
||||
[Number 9007199254740994]
|
||||
expected: FAIL
|
||||
|
||||
[Number -9007199254740994]
|
||||
expected: FAIL
|
||||
|
||||
[BigInt -9007199254740994n]
|
||||
expected: FAIL
|
||||
|
||||
[Array Number objects]
|
||||
expected: FAIL
|
||||
|
||||
[Object Number objects]
|
||||
expected: FAIL
|
||||
|
||||
[Date 0]
|
||||
expected: FAIL
|
||||
|
||||
[Date -0]
|
||||
expected: FAIL
|
||||
|
||||
[Date -8.64e15]
|
||||
expected: FAIL
|
||||
|
||||
[Date 8.64e15]
|
||||
expected: FAIL
|
||||
|
||||
[Array Date objects]
|
||||
expected: FAIL
|
||||
|
||||
[Object Date objects]
|
||||
expected: FAIL
|
||||
|
||||
[RegExp flags and lastIndex]
|
||||
expected: FAIL
|
||||
|
||||
[RegExp sticky flag]
|
||||
expected: FAIL
|
||||
|
||||
[RegExp unicode flag]
|
||||
expected: FAIL
|
||||
|
||||
[RegExp empty]
|
||||
expected: FAIL
|
||||
|
||||
[RegExp slash]
|
||||
expected: FAIL
|
||||
|
||||
[RegExp new line]
|
||||
expected: FAIL
|
||||
|
||||
[Array RegExp object, RegExp flags and lastIndex]
|
||||
expected: FAIL
|
||||
|
||||
[Array RegExp object, RegExp sticky flag]
|
||||
expected: FAIL
|
||||
|
||||
[Array RegExp object, RegExp unicode flag]
|
||||
expected: FAIL
|
||||
|
||||
[Array RegExp object, RegExp empty]
|
||||
expected: FAIL
|
||||
|
||||
[Array RegExp object, RegExp slash]
|
||||
expected: FAIL
|
||||
|
||||
[Array RegExp object, RegExp new line]
|
||||
expected: FAIL
|
||||
|
||||
[Object RegExp object, RegExp flags and lastIndex]
|
||||
expected: FAIL
|
||||
|
||||
[Object RegExp object, RegExp sticky flag]
|
||||
expected: FAIL
|
||||
|
||||
[Object RegExp object, RegExp unicode flag]
|
||||
expected: FAIL
|
||||
|
||||
[Object RegExp object, RegExp empty]
|
||||
expected: FAIL
|
||||
|
||||
[Object RegExp object, RegExp slash]
|
||||
expected: FAIL
|
||||
|
||||
[Object RegExp object, RegExp new line]
|
||||
expected: FAIL
|
||||
|
||||
[Blob basic]
|
||||
expected: FAIL
|
||||
|
||||
[Blob unpaired high surrogate (invalid utf-8)]
|
||||
expected: FAIL
|
||||
|
||||
[Blob unpaired low surrogate (invalid utf-8)]
|
||||
expected: FAIL
|
||||
|
||||
[Blob paired surrogates (invalid utf-8)]
|
||||
expected: FAIL
|
||||
|
||||
[Blob empty]
|
||||
expected: FAIL
|
||||
|
||||
[Blob NUL]
|
||||
expected: FAIL
|
||||
|
||||
[Array Blob object, Blob basic]
|
||||
expected: FAIL
|
||||
|
||||
[Array Blob object, Blob unpaired high surrogate (invalid utf-8)]
|
||||
expected: FAIL
|
||||
|
||||
[Array Blob object, Blob unpaired low surrogate (invalid utf-8)]
|
||||
expected: FAIL
|
||||
|
||||
[Array Blob object, Blob paired surrogates (invalid utf-8)]
|
||||
expected: FAIL
|
||||
|
||||
[Array Blob object, Blob empty]
|
||||
expected: FAIL
|
||||
|
||||
[Array Blob object, Blob NUL]
|
||||
expected: FAIL
|
||||
|
||||
[Array Blob object, two Blobs]
|
||||
expected: FAIL
|
||||
|
||||
[Object Blob object, Blob basic]
|
||||
expected: FAIL
|
||||
|
||||
[Object Blob object, Blob unpaired high surrogate (invalid utf-8)]
|
||||
expected: FAIL
|
||||
|
||||
[Object Blob object, Blob unpaired low surrogate (invalid utf-8)]
|
||||
expected: FAIL
|
||||
|
||||
[Object Blob object, Blob paired surrogates (invalid utf-8)]
|
||||
expected: FAIL
|
||||
|
||||
[Object Blob object, Blob empty]
|
||||
expected: FAIL
|
||||
|
||||
[Object Blob object, Blob NUL]
|
||||
expected: FAIL
|
||||
|
||||
[File basic]
|
||||
expected: FAIL
|
||||
|
||||
[Array sparse]
|
||||
expected: FAIL
|
||||
|
||||
[Array with non-index property]
|
||||
expected: FAIL
|
||||
|
||||
[Object with index property and length]
|
||||
expected: FAIL
|
||||
|
||||
[Array with circular reference]
|
||||
expected: FAIL
|
||||
|
||||
[Object with circular reference]
|
||||
expected: FAIL
|
||||
|
||||
[Array with identical property values]
|
||||
expected: FAIL
|
||||
|
||||
[Object with identical property values]
|
||||
expected: FAIL
|
||||
|
||||
[Object with property on prototype]
|
||||
expected: FAIL
|
||||
|
||||
[Object with non-enumerable property]
|
||||
expected: FAIL
|
||||
|
||||
[Object with non-writable property]
|
||||
expected: FAIL
|
||||
|
||||
[Object with non-configurable property]
|
||||
expected: FAIL
|
||||
|
||||
[ObjectPrototype must lose its exotic-ness when cloned]
|
||||
expected: FAIL
|
||||
|
||||
[ArrayBuffer]
|
||||
expected: FAIL
|
||||
|
||||
[MessagePort]
|
||||
expected: FAIL
|
||||
|
||||
[Serializing a non-serializable platform object fails]
|
||||
expected: FAIL
|
||||
|
||||
[An object whose interface is deleted from the global must still deserialize]
|
||||
expected: FAIL
|
||||
|
||||
[A subclass instance will deserialize as its closest serializable superclass]
|
||||
expected: FAIL
|
||||
|
||||
[A detached ArrayBuffer cannot be transferred]
|
||||
expected: FAIL
|
||||
|
||||
[A detached platform object cannot be transferred]
|
||||
expected: FAIL
|
||||
|
||||
[Transferring a non-transferable platform object fails]
|
||||
expected: FAIL
|
||||
|
||||
[An object whose interface is deleted from the global object must still be received]
|
||||
expected: FAIL
|
||||
|
||||
[A subclass instance will be received as its closest transferable superclass]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Error object]
|
||||
expected: FAIL
|
||||
|
||||
[Error object]
|
||||
expected: FAIL
|
||||
|
||||
[EvalError object]
|
||||
expected: FAIL
|
||||
|
||||
[RangeError object]
|
||||
expected: FAIL
|
||||
|
||||
[ReferenceError object]
|
||||
expected: FAIL
|
||||
|
||||
[SyntaxError object]
|
||||
expected: FAIL
|
||||
|
||||
[TypeError object]
|
||||
expected: FAIL
|
||||
|
||||
[URIError object]
|
||||
expected: FAIL
|
||||
expected: PRECONDITION_FAILED
|
||||
|
||||
[Object with a getter that throws]
|
||||
expected: FAIL
|
||||
|
||||
[Resizable ArrayBuffer]
|
||||
expected: FAIL
|
||||
|
||||
[Growable SharedArrayBuffer]
|
||||
expected: FAIL
|
||||
|
||||
[Length-tracking TypedArray]
|
||||
expected: FAIL
|
||||
|
||||
[Length-tracking DataView]
|
||||
expected: FAIL
|
||||
|
||||
[Serializing OOB TypedArray throws]
|
||||
expected: FAIL
|
||||
|
||||
[Serializing OOB DataView throws]
|
||||
expected: FAIL
|
||||
|
||||
[Resizable ArrayBuffer is transferable]
|
||||
expected: FAIL
|
||||
|
||||
[Length-tracking TypedArray is transferable]
|
||||
expected: FAIL
|
||||
|
||||
[Length-tracking DataView is transferable]
|
||||
expected: FAIL
|
||||
|
||||
[Transferring OOB TypedArray throws]
|
||||
expected: FAIL
|
||||
|
||||
[Transferring OOB DataView throws]
|
||||
expected: FAIL
|
||||
|
||||
|
||||
[structured-clone.any.html]
|
||||
[primitive undefined]
|
||||
expected: FAIL
|
||||
|
||||
[primitive null]
|
||||
expected: FAIL
|
||||
|
||||
[primitive true]
|
||||
expected: FAIL
|
||||
|
||||
[primitive false]
|
||||
expected: FAIL
|
||||
|
||||
[primitive string, empty string]
|
||||
expected: FAIL
|
||||
|
||||
[primitive string, lone high surrogate]
|
||||
expected: FAIL
|
||||
|
||||
[primitive string, lone low surrogate]
|
||||
expected: FAIL
|
||||
|
||||
[primitive string, NUL]
|
||||
expected: FAIL
|
||||
|
||||
[primitive string, astral character]
|
||||
expected: FAIL
|
||||
|
||||
[primitive number, 0.2]
|
||||
expected: FAIL
|
||||
|
||||
[primitive number, 0]
|
||||
expected: FAIL
|
||||
|
||||
[primitive number, -0]
|
||||
expected: FAIL
|
||||
|
||||
[primitive number, NaN]
|
||||
expected: FAIL
|
||||
|
||||
[primitive number, Infinity]
|
||||
expected: FAIL
|
||||
|
||||
[primitive number, -Infinity]
|
||||
expected: FAIL
|
||||
|
||||
[primitive number, 9007199254740992]
|
||||
expected: FAIL
|
||||
|
||||
[primitive number, -9007199254740992]
|
||||
expected: FAIL
|
||||
|
||||
[primitive number, 9007199254740994]
|
||||
expected: FAIL
|
||||
|
||||
[primitive number, -9007199254740994]
|
||||
expected: FAIL
|
||||
|
||||
[primitive BigInt, 0n]
|
||||
expected: FAIL
|
||||
|
||||
[primitive BigInt, -0n]
|
||||
expected: FAIL
|
||||
|
||||
[primitive BigInt, -9007199254740994000n]
|
||||
expected: FAIL
|
||||
|
||||
[primitive BigInt, -9007199254740994000900719925474099400090071992547409940009007199254740994000n]
|
||||
expected: FAIL
|
||||
|
||||
[Array primitives]
|
||||
expected: FAIL
|
||||
|
||||
[Object primitives]
|
||||
expected: FAIL
|
||||
|
||||
[Boolean true]
|
||||
expected: FAIL
|
||||
|
||||
[Boolean false]
|
||||
expected: FAIL
|
||||
|
||||
[Array Boolean objects]
|
||||
expected: FAIL
|
||||
|
||||
[Object Boolean objects]
|
||||
expected: FAIL
|
||||
|
||||
[String empty string]
|
||||
expected: FAIL
|
||||
|
||||
[String lone high surrogate]
|
||||
expected: FAIL
|
||||
|
||||
[String lone low surrogate]
|
||||
expected: FAIL
|
||||
|
||||
[String NUL]
|
||||
expected: FAIL
|
||||
|
||||
[String astral character]
|
||||
expected: FAIL
|
||||
|
||||
[Array String objects]
|
||||
expected: FAIL
|
||||
|
||||
[Object String objects]
|
||||
expected: FAIL
|
||||
|
||||
[Number 0.2]
|
||||
expected: FAIL
|
||||
|
||||
[Number 0]
|
||||
expected: FAIL
|
||||
|
||||
[Number -0]
|
||||
expected: FAIL
|
||||
|
||||
[Number NaN]
|
||||
expected: FAIL
|
||||
|
||||
[Number Infinity]
|
||||
expected: FAIL
|
||||
|
||||
[Number -Infinity]
|
||||
expected: FAIL
|
||||
|
||||
[Number 9007199254740992]
|
||||
expected: FAIL
|
||||
|
||||
[Number -9007199254740992]
|
||||
expected: FAIL
|
||||
|
||||
[Number 9007199254740994]
|
||||
expected: FAIL
|
||||
|
||||
[Number -9007199254740994]
|
||||
expected: FAIL
|
||||
|
||||
[BigInt -9007199254740994n]
|
||||
expected: FAIL
|
||||
|
||||
[Array Number objects]
|
||||
expected: FAIL
|
||||
|
||||
[Object Number objects]
|
||||
expected: FAIL
|
||||
|
||||
[Date 0]
|
||||
expected: FAIL
|
||||
|
||||
[Date -0]
|
||||
expected: FAIL
|
||||
|
||||
[Date -8.64e15]
|
||||
expected: FAIL
|
||||
|
||||
[Date 8.64e15]
|
||||
expected: FAIL
|
||||
|
||||
[Array Date objects]
|
||||
expected: FAIL
|
||||
|
||||
[Object Date objects]
|
||||
expected: FAIL
|
||||
|
||||
[RegExp flags and lastIndex]
|
||||
expected: FAIL
|
||||
|
||||
[RegExp sticky flag]
|
||||
expected: FAIL
|
||||
|
||||
[RegExp unicode flag]
|
||||
expected: FAIL
|
||||
|
||||
[RegExp empty]
|
||||
expected: FAIL
|
||||
|
||||
[RegExp slash]
|
||||
expected: FAIL
|
||||
|
||||
[RegExp new line]
|
||||
expected: FAIL
|
||||
|
||||
[Array RegExp object, RegExp flags and lastIndex]
|
||||
expected: FAIL
|
||||
|
||||
[Array RegExp object, RegExp sticky flag]
|
||||
expected: FAIL
|
||||
|
||||
[Array RegExp object, RegExp unicode flag]
|
||||
expected: FAIL
|
||||
|
||||
[Array RegExp object, RegExp empty]
|
||||
expected: FAIL
|
||||
|
||||
[Array RegExp object, RegExp slash]
|
||||
expected: FAIL
|
||||
|
||||
[Array RegExp object, RegExp new line]
|
||||
expected: FAIL
|
||||
|
||||
[Object RegExp object, RegExp flags and lastIndex]
|
||||
expected: FAIL
|
||||
|
||||
[Object RegExp object, RegExp sticky flag]
|
||||
expected: FAIL
|
||||
|
||||
[Object RegExp object, RegExp unicode flag]
|
||||
expected: FAIL
|
||||
|
||||
[Object RegExp object, RegExp empty]
|
||||
expected: FAIL
|
||||
|
||||
[Object RegExp object, RegExp slash]
|
||||
expected: FAIL
|
||||
|
||||
[Object RegExp object, RegExp new line]
|
||||
expected: FAIL
|
||||
|
||||
[Blob basic]
|
||||
expected: FAIL
|
||||
|
||||
[Blob unpaired high surrogate (invalid utf-8)]
|
||||
expected: FAIL
|
||||
|
||||
[Blob unpaired low surrogate (invalid utf-8)]
|
||||
expected: FAIL
|
||||
|
||||
[Blob paired surrogates (invalid utf-8)]
|
||||
expected: FAIL
|
||||
|
||||
[Blob empty]
|
||||
expected: FAIL
|
||||
|
||||
[Blob NUL]
|
||||
expected: FAIL
|
||||
|
||||
[Array Blob object, Blob basic]
|
||||
expected: FAIL
|
||||
|
||||
[Array Blob object, Blob unpaired high surrogate (invalid utf-8)]
|
||||
expected: FAIL
|
||||
|
||||
[Array Blob object, Blob unpaired low surrogate (invalid utf-8)]
|
||||
expected: FAIL
|
||||
|
||||
[Array Blob object, Blob paired surrogates (invalid utf-8)]
|
||||
expected: FAIL
|
||||
|
||||
[Array Blob object, Blob empty]
|
||||
expected: FAIL
|
||||
|
||||
[Array Blob object, Blob NUL]
|
||||
expected: FAIL
|
||||
|
||||
[Array Blob object, two Blobs]
|
||||
expected: FAIL
|
||||
|
||||
[Object Blob object, Blob basic]
|
||||
expected: FAIL
|
||||
|
||||
[Object Blob object, Blob unpaired high surrogate (invalid utf-8)]
|
||||
expected: FAIL
|
||||
|
||||
[Object Blob object, Blob unpaired low surrogate (invalid utf-8)]
|
||||
expected: FAIL
|
||||
|
||||
[Object Blob object, Blob paired surrogates (invalid utf-8)]
|
||||
expected: FAIL
|
||||
|
||||
[Object Blob object, Blob empty]
|
||||
expected: FAIL
|
||||
|
||||
[Object Blob object, Blob NUL]
|
||||
expected: FAIL
|
||||
|
||||
[File basic]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -712,39 +46,6 @@
|
|||
[Object ImageData object, ImageData 1x1 non-transparent non-black]
|
||||
expected: FAIL
|
||||
|
||||
[Array sparse]
|
||||
expected: FAIL
|
||||
|
||||
[Array with non-index property]
|
||||
expected: FAIL
|
||||
|
||||
[Object with index property and length]
|
||||
expected: FAIL
|
||||
|
||||
[Array with circular reference]
|
||||
expected: FAIL
|
||||
|
||||
[Object with circular reference]
|
||||
expected: FAIL
|
||||
|
||||
[Array with identical property values]
|
||||
expected: FAIL
|
||||
|
||||
[Object with identical property values]
|
||||
expected: FAIL
|
||||
|
||||
[Object with property on prototype]
|
||||
expected: FAIL
|
||||
|
||||
[Object with non-enumerable property]
|
||||
expected: FAIL
|
||||
|
||||
[Object with non-writable property]
|
||||
expected: FAIL
|
||||
|
||||
[Object with non-configurable property]
|
||||
expected: FAIL
|
||||
|
||||
[ImageBitmap 1x1 transparent black]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -763,95 +64,14 @@
|
|||
[Object ImageBitmap object, ImageBitmap 1x1 transparent non-black]
|
||||
expected: FAIL
|
||||
|
||||
[ObjectPrototype must lose its exotic-ness when cloned]
|
||||
expected: FAIL
|
||||
|
||||
[ArrayBuffer]
|
||||
expected: FAIL
|
||||
|
||||
[MessagePort]
|
||||
expected: FAIL
|
||||
|
||||
[Serializing a non-serializable platform object fails]
|
||||
expected: FAIL
|
||||
|
||||
[An object whose interface is deleted from the global must still deserialize]
|
||||
expected: FAIL
|
||||
|
||||
[A subclass instance will deserialize as its closest serializable superclass]
|
||||
expected: FAIL
|
||||
|
||||
[A detached ArrayBuffer cannot be transferred]
|
||||
expected: FAIL
|
||||
|
||||
[A detached platform object cannot be transferred]
|
||||
expected: FAIL
|
||||
|
||||
[Transferring a non-transferable platform object fails]
|
||||
expected: FAIL
|
||||
|
||||
[An object whose interface is deleted from the global object must still be received]
|
||||
expected: FAIL
|
||||
|
||||
[A subclass instance will be received as its closest transferable superclass]
|
||||
expected: FAIL
|
||||
|
||||
[Empty Error object]
|
||||
expected: FAIL
|
||||
|
||||
[Error object]
|
||||
expected: FAIL
|
||||
|
||||
[EvalError object]
|
||||
expected: FAIL
|
||||
|
||||
[RangeError object]
|
||||
expected: FAIL
|
||||
|
||||
[ReferenceError object]
|
||||
expected: FAIL
|
||||
|
||||
[SyntaxError object]
|
||||
expected: FAIL
|
||||
|
||||
[TypeError object]
|
||||
expected: FAIL
|
||||
|
||||
[URIError object]
|
||||
expected: FAIL
|
||||
expected: PRECONDITION_FAILED
|
||||
|
||||
[Object with a getter that throws]
|
||||
expected: FAIL
|
||||
|
||||
[Resizable ArrayBuffer]
|
||||
expected: FAIL
|
||||
|
||||
[Growable SharedArrayBuffer]
|
||||
expected: FAIL
|
||||
|
||||
[Length-tracking TypedArray]
|
||||
expected: FAIL
|
||||
|
||||
[Length-tracking DataView]
|
||||
expected: FAIL
|
||||
|
||||
[Serializing OOB TypedArray throws]
|
||||
expected: FAIL
|
||||
|
||||
[Serializing OOB DataView throws]
|
||||
expected: FAIL
|
||||
|
||||
[Resizable ArrayBuffer is transferable]
|
||||
expected: FAIL
|
||||
|
||||
[Length-tracking TypedArray is transferable]
|
||||
expected: FAIL
|
||||
|
||||
[Length-tracking DataView is transferable]
|
||||
expected: FAIL
|
||||
|
||||
[Transferring OOB TypedArray throws]
|
||||
expected: FAIL
|
||||
|
||||
[Transferring OOB DataView throws]
|
||||
expected: FAIL
|
||||
|
|
14
tests/wpt/meta/url/historical.any.js.ini
vendored
14
tests/wpt/meta/url/historical.any.js.ini
vendored
|
@ -1,14 +0,0 @@
|
|||
[historical.any.worker.html]
|
||||
[URL: no structured serialize/deserialize support]
|
||||
expected: FAIL
|
||||
|
||||
[URLSearchParams: no structured serialize/deserialize support]
|
||||
expected: FAIL
|
||||
|
||||
|
||||
[historical.any.html]
|
||||
[URL: no structured serialize/deserialize support]
|
||||
expected: FAIL
|
||||
|
||||
[URLSearchParams: no structured serialize/deserialize support]
|
||||
expected: FAIL
|
Loading…
Add table
Add a link
Reference in a new issue