diff options
author | Simon Wülker <simon.wuelker@arcor.de> | 2025-05-24 18:02:08 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-05-24 16:02:08 +0000 |
commit | 4ae72ecb8ea9af2d1e8a6be537f7616e7ecaf8ab (patch) | |
tree | 59fcd6457d21b54657a49f7aab3b9fb86d41bd07 | |
parent | 60eb7c923dbb0da826e348ff0765076c7546c8f3 (diff) | |
download | servo-4ae72ecb8ea9af2d1e8a6be537f7616e7ecaf8ab.tar.gz servo-4ae72ecb8ea9af2d1e8a6be537f7616e7ecaf8ab.zip |
Make unscopable objects writable and enumerable (#37119)
Testing: Covered by existing web platform tests
Fixes: https://github.com/servo/servo/issues/37118
---------
Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
-rw-r--r-- | components/script_bindings/interface.rs | 8 | ||||
-rw-r--r-- | tests/wpt/meta/dom/idlharness.window.js.ini | 69 |
2 files changed, 4 insertions, 73 deletions
diff --git a/components/script_bindings/interface.rs b/components/script_bindings/interface.rs index 08ee0a4f420..2491924d0c0 100644 --- a/components/script_bindings/interface.rs +++ b/components/script_bindings/interface.rs @@ -18,9 +18,9 @@ use js::jsapi::{ JS_AtomizeAndPinString, JS_GetFunctionObject, JS_GetProperty, JS_IterateCompartments, JS_NewFunction, JS_NewGlobalObject, JS_NewObject, JS_NewPlainObject, JS_NewStringCopyN, JS_SetReservedSlot, JS_WrapObject, JSAutoRealm, JSClass, JSClassOps, JSContext, - JSFUN_CONSTRUCTOR, JSFunctionSpec, JSObject, JSPROP_PERMANENT, JSPROP_READONLY, - JSPROP_RESOLVING, JSPropertySpec, JSString, JSTracer, ObjectOps, OnNewGlobalHookOption, - SymbolCode, TrueHandleValue, Value, jsid, + JSFUN_CONSTRUCTOR, JSFunctionSpec, JSObject, JSPROP_ENUMERATE, JSPROP_PERMANENT, + JSPROP_READONLY, JSPROP_RESOLVING, JSPropertySpec, JSString, JSTracer, ObjectOps, + OnNewGlobalHookOption, SymbolCode, TrueHandleValue, Value, jsid, }; use js::jsval::{JSVal, NullValue, PrivateValue}; use js::rust::wrappers::{ @@ -481,7 +481,7 @@ fn create_unscopable_object(cx: SafeJSContext, names: &[&CStr], mut rval: Mutabl rval.handle(), name.as_ptr(), HandleValue::from_raw(TrueHandleValue), - JSPROP_READONLY as u32, + JSPROP_ENUMERATE as u32, )); } } diff --git a/tests/wpt/meta/dom/idlharness.window.js.ini b/tests/wpt/meta/dom/idlharness.window.js.ini index f66b84985ad..3ad37c3770f 100644 --- a/tests/wpt/meta/dom/idlharness.window.js.ini +++ b/tests/wpt/meta/dom/idlharness.window.js.ini @@ -1,10 +1,4 @@ [idlharness.window.html?exclude=Node] - [Element interface: operation replaceWith((Node or DOMString)...)] - expected: FAIL - - [Document interface: operation prepend((Node or DOMString)...)] - expected: FAIL - [AbortSignal must be primary interface of new AbortController().signal] expected: FAIL @@ -35,54 +29,30 @@ [AbortController interface: operation abort()] expected: FAIL - [Element interface: operation prepend((Node or DOMString)...)] - expected: FAIL - [AbortController interface: attribute signal] expected: FAIL - [CharacterData interface: operation before((Node or DOMString)...)] - expected: FAIL - [AbortSignal interface: attribute aborted] expected: FAIL - [Element interface: operation after((Node or DOMString)...)] - expected: FAIL - [CharacterData interface: existence and properties of interface prototype object's @@unscopables property] expected: FAIL - [CharacterData interface: operation remove()] - expected: FAIL - [AbortController interface: new AbortController() must inherit property "signal" with the proper type] expected: FAIL [AbortController interface: new AbortController() must inherit property "abort()" with the proper type] expected: FAIL - [Element interface: attribute slot] - expected: FAIL - [DocumentType interface: existence and properties of interface prototype object's @@unscopables property] expected: FAIL - [CharacterData interface: operation replaceWith((Node or DOMString)...)] - expected: FAIL - - [DocumentType interface: operation replaceWith((Node or DOMString)...)] - expected: FAIL - [EventTarget interface: calling dispatchEvent(Event) on new AbortController().signal with too few arguments must throw TypeError] expected: FAIL [DocumentFragment interface: existence and properties of interface prototype object's @@unscopables property] expected: FAIL - [DocumentType interface: operation before((Node or DOMString)...)] - expected: FAIL - [AbortSignal interface: new AbortController().signal must inherit property "aborted" with the proper type] expected: FAIL @@ -104,51 +74,15 @@ [AbortSignal interface: existence and properties of interface prototype object] expected: FAIL - [Element interface: operation remove()] - expected: FAIL - - [DocumentFragment interface: operation replaceChildren((Node or DOMString)...)] - expected: FAIL - [NodeFilter interface: existence and properties of interface object] expected: FAIL [Stringification of new AbortController().signal] expected: FAIL - [CharacterData interface: operation after((Node or DOMString)...)] - expected: FAIL - - [Element interface: operation replaceChildren((Node or DOMString)...)] - expected: FAIL - - [DocumentFragment interface: operation prepend((Node or DOMString)...)] - expected: FAIL - - [Document interface: operation replaceChildren((Node or DOMString)...)] - expected: FAIL - - [Document interface: operation append((Node or DOMString)...)] - expected: FAIL - - [DocumentType interface: operation remove()] - expected: FAIL - - [DocumentType interface: operation after((Node or DOMString)...)] - expected: FAIL - [Element interface: existence and properties of interface prototype object's @@unscopables property] expected: FAIL - [DocumentFragment interface: operation append((Node or DOMString)...)] - expected: FAIL - - [Element interface: operation append((Node or DOMString)...)] - expected: FAIL - - [Element interface: operation before((Node or DOMString)...)] - expected: FAIL - [XPathNSResolver interface: document.createNSResolver(document.body) must inherit property "lookupNamespaceURI(DOMString?)" with the proper type] expected: FAIL @@ -454,6 +388,3 @@ [Element interface: element must inherit property "customElementRegistry" with the proper type] expected: FAIL - - -[idlharness.window.html?include=Node] |