diff --git a/Cargo.lock b/Cargo.lock index e4c617c4b4e..5545a73432e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3808,7 +3808,7 @@ dependencies = [ [[package]] name = "mozjs" version = "0.14.1" -source = "git+https://github.com/servo/rust-mozjs#fe738cca3320ffcbc4c520ced79c2141ceabf42d" +source = "git+https://github.com/servo/rust-mozjs#a8b688ad32a852172536443d77baa844f59a23fa" dependencies = [ "cc", "lazy_static", diff --git a/components/script/dom/bindings/codegen/CodegenRust.py b/components/script/dom/bindings/codegen/CodegenRust.py index 1f7a43ba831..353e690baaf 100644 --- a/components/script/dom/bindings/codegen/CodegenRust.py +++ b/components/script/dom/bindings/codegen/CodegenRust.py @@ -3477,6 +3477,9 @@ let traps = ProxyTraps { delete_: Some(%(delete)s), enumerate: None, getPrototypeIfOrdinary: Some(proxyhandler::get_prototype_if_ordinary), + getPrototype: None, + setPrototype: None, + setImmutablePrototype: None, preventExtensions: Some(proxyhandler::prevent_extensions), isExtensible: Some(proxyhandler::is_extensible), has: None, diff --git a/components/script/dom/windowproxy.rs b/components/script/dom/windowproxy.rs index 0f92e4b3367..244b42dc8a5 100644 --- a/components/script/dom/windowproxy.rs +++ b/components/script/dom/windowproxy.rs @@ -1040,6 +1040,8 @@ unsafe extern "C" fn get_prototype_if_ordinary( } static PROXY_HANDLER: ProxyTraps = ProxyTraps { + // TODO: These traps should change their behavior depending on + // `IsPlatformObjectSameOrigin(this.[[Window]])` enter: None, getOwnPropertyDescriptor: Some(getOwnPropertyDescriptor), defineProperty: Some(defineProperty), @@ -1047,6 +1049,9 @@ static PROXY_HANDLER: ProxyTraps = ProxyTraps { delete_: None, enumerate: None, getPrototypeIfOrdinary: Some(get_prototype_if_ordinary), + getPrototype: None, // TODO: return `null` if cross origin-domain + setPrototype: None, + setImmutablePrototype: None, preventExtensions: None, isExtensible: None, has: Some(has), @@ -1189,6 +1194,9 @@ static XORIGIN_PROXY_HANDLER: ProxyTraps = ProxyTraps { delete_: Some(delete_xorigin), enumerate: None, getPrototypeIfOrdinary: None, + getPrototype: None, + setPrototype: None, + setImmutablePrototype: None, preventExtensions: Some(preventExtensions_xorigin), isExtensible: None, has: Some(has_xorigin),