aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--components/script/dom/bindings/codegen/CodegenRust.py7
-rw-r--r--components/script/dom/bindings/proxyhandler.rs12
-rw-r--r--components/script/dom/browsercontext.rs6
-rw-r--r--components/servo/Cargo.lock2
-rw-r--r--ports/cef/Cargo.lock2
-rw-r--r--ports/gonk/Cargo.lock2
-rw-r--r--tests/wpt/metadata/dom/nodes/Document-getElementsByTagName.html.ini7
-rw-r--r--tests/wpt/metadata/dom/nodes/Element-children.html.ini4
-rw-r--r--tests/wpt/metadata/dom/nodes/Element-getElementsByTagName.html.ini7
-rw-r--r--tests/wpt/metadata/html/dom/documents/dom-tree-accessors/document.forms.html.ini10
-rw-r--r--tests/wpt/metadata/html/dom/elements/global-attributes/dataset-enumeration.html.ini7
-rw-r--r--tests/wpt/metadata/html/dom/elements/global-attributes/dataset-get.html.ini4
12 files changed, 55 insertions, 15 deletions
diff --git a/components/script/dom/bindings/codegen/CodegenRust.py b/components/script/dom/bindings/codegen/CodegenRust.py
index 03efd2b59f5..e3a455d63c8 100644
--- a/components/script/dom/bindings/codegen/CodegenRust.py
+++ b/components/script/dom/bindings/codegen/CodegenRust.py
@@ -2094,15 +2094,15 @@ let traps = ProxyTraps {
getPropertyDescriptor: Some(getPropertyDescriptor),
getOwnPropertyDescriptor: Some(getOwnPropertyDescriptor),
defineProperty: Some(%s),
- getOwnPropertyNames: ptr::null(),
+ getOwnPropertyNames: Some(getOwnPropertyNames_),
delete_: Some(delete_),
- enumerate: ptr::null(),
+ enumerate: Some(enumerate_),
has: None,
hasOwn: Some(hasOwn),
get: Some(get),
set: None,
- keys: ptr::null(),
+ keys: None,
iterate: None,
call: None,
@@ -4532,6 +4532,7 @@ class CGBindingRoot(CGThing):
'dom::bindings::proxyhandler::{_obj_toString, defineProperty_}',
'dom::bindings::proxyhandler::{FillPropertyDescriptor, GetExpandoObject}',
'dom::bindings::proxyhandler::{delete_, getPropertyDescriptor}',
+ 'dom::bindings::proxyhandler::{getOwnPropertyNames_, enumerate_}',
'dom::bindings::str::ByteString',
'page::JSPageInfo',
'libc',
diff --git a/components/script/dom/bindings/proxyhandler.rs b/components/script/dom/bindings/proxyhandler.rs
index bbfb7118b76..0d77ff63cdd 100644
--- a/components/script/dom/bindings/proxyhandler.rs
+++ b/components/script/dom/bindings/proxyhandler.rs
@@ -16,6 +16,7 @@ use js::glue::GetProxyExtra;
use js::glue::{GetObjectProto, GetObjectParent, SetProxyExtra, GetProxyHandler};
use js::glue::InvokeGetOwnPropertyDescriptor;
use js::glue::RUST_js_GetErrorMessage;
+use js::glue::AutoIdVector;
use js::{JSPROP_GETTER, JSPROP_ENUMERATE, JSPROP_READONLY, JSRESOLVE_QUALIFIED};
use libc;
@@ -130,3 +131,14 @@ pub fn FillPropertyDescriptor(desc: &mut JSPropertyDescriptor, obj: *mut JSObjec
desc.setter = None;
desc.shortid = 0;
}
+
+pub unsafe extern fn getOwnPropertyNames_(_cx: *mut JSContext,
+ _obj: *mut JSObject,
+ _v: *mut AutoIdVector) -> bool {
+ true
+}
+
+pub unsafe extern fn enumerate_(_cx: *mut JSContext, _obj: *mut JSObject,
+ _v: *mut AutoIdVector) -> bool {
+ true
+}
diff --git a/components/script/dom/browsercontext.rs b/components/script/dom/browsercontext.rs
index 3391da89fea..ed987f3a687 100644
--- a/components/script/dom/browsercontext.rs
+++ b/components/script/dom/browsercontext.rs
@@ -84,15 +84,15 @@ static PROXY_HANDLER: ProxyTraps = ProxyTraps {
getPropertyDescriptor: None,
getOwnPropertyDescriptor: None,
defineProperty: None,
- getOwnPropertyNames: 0 as *const u8,
+ getOwnPropertyNames: None,
delete_: None,
- enumerate: 0 as *const u8,
+ enumerate: None,
has: None,
hasOwn: None,
get: None,
set: None,
- keys: 0 as *const u8,
+ keys: None,
iterate: None,
call: None,
diff --git a/components/servo/Cargo.lock b/components/servo/Cargo.lock
index b5831595e21..e8d3e054878 100644
--- a/components/servo/Cargo.lock
+++ b/components/servo/Cargo.lock
@@ -412,7 +412,7 @@ dependencies = [
[[package]]
name = "js"
version = "0.1.0"
-source = "git+https://github.com/servo/rust-mozjs#e04e7307a3e52f46bc9ba3d5682188285110bc67"
+source = "git+https://github.com/servo/rust-mozjs#2d86d6fb7ece49ff2f469c391e15e13f2b02af42"
dependencies = [
"mozjs-sys 0.0.0 (git+https://github.com/servo/mozjs)",
]
diff --git a/ports/cef/Cargo.lock b/ports/cef/Cargo.lock
index 094429f5fc6..6ce8d45851c 100644
--- a/ports/cef/Cargo.lock
+++ b/ports/cef/Cargo.lock
@@ -380,7 +380,7 @@ dependencies = [
[[package]]
name = "js"
version = "0.1.0"
-source = "git+https://github.com/servo/rust-mozjs#e04e7307a3e52f46bc9ba3d5682188285110bc67"
+source = "git+https://github.com/servo/rust-mozjs#2d86d6fb7ece49ff2f469c391e15e13f2b02af42"
dependencies = [
"mozjs-sys 0.0.0 (git+https://github.com/servo/mozjs)",
]
diff --git a/ports/gonk/Cargo.lock b/ports/gonk/Cargo.lock
index ef041bfc22d..1cb190136c8 100644
--- a/ports/gonk/Cargo.lock
+++ b/ports/gonk/Cargo.lock
@@ -334,7 +334,7 @@ dependencies = [
[[package]]
name = "js"
version = "0.1.0"
-source = "git+https://github.com/servo/rust-mozjs#e04e7307a3e52f46bc9ba3d5682188285110bc67"
+source = "git+https://github.com/servo/rust-mozjs#2d86d6fb7ece49ff2f469c391e15e13f2b02af42"
dependencies = [
"mozjs-sys 0.0.0 (git+https://github.com/servo/mozjs)",
]
diff --git a/tests/wpt/metadata/dom/nodes/Document-getElementsByTagName.html.ini b/tests/wpt/metadata/dom/nodes/Document-getElementsByTagName.html.ini
index 292b75271e0..5b48891daad 100644
--- a/tests/wpt/metadata/dom/nodes/Document-getElementsByTagName.html.ini
+++ b/tests/wpt/metadata/dom/nodes/Document-getElementsByTagName.html.ini
@@ -1,3 +1,8 @@
[Document-getElementsByTagName.html]
type: testharness
- expected: CRASH
+ [Shouldn\'t be able to set unsigned properties on a HTMLCollection (strict mode)]
+ expected: FAIL
+
+ [hasOwnProperty, getOwnPropertyDescriptor, getOwnPropertyNames]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/dom/nodes/Element-children.html.ini b/tests/wpt/metadata/dom/nodes/Element-children.html.ini
index 3a571e8e438..5cab09c0321 100644
--- a/tests/wpt/metadata/dom/nodes/Element-children.html.ini
+++ b/tests/wpt/metadata/dom/nodes/Element-children.html.ini
@@ -1,3 +1,5 @@
[Element-children.html]
type: testharness
- expected: CRASH
+ [HTMLCollection edge cases 1]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/dom/nodes/Element-getElementsByTagName.html.ini b/tests/wpt/metadata/dom/nodes/Element-getElementsByTagName.html.ini
index d1240410583..b5154c2e985 100644
--- a/tests/wpt/metadata/dom/nodes/Element-getElementsByTagName.html.ini
+++ b/tests/wpt/metadata/dom/nodes/Element-getElementsByTagName.html.ini
@@ -1,3 +1,8 @@
[Element-getElementsByTagName.html]
type: testharness
- expected: CRASH
+ [Shouldn\'t be able to set unsigned properties on a HTMLCollection (strict mode)]
+ expected: FAIL
+
+ [hasOwnProperty, getOwnPropertyDescriptor, getOwnPropertyNames]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/html/dom/documents/dom-tree-accessors/document.forms.html.ini b/tests/wpt/metadata/html/dom/documents/dom-tree-accessors/document.forms.html.ini
index 1d1cad91e2e..e91f95fe3df 100644
--- a/tests/wpt/metadata/html/dom/documents/dom-tree-accessors/document.forms.html.ini
+++ b/tests/wpt/metadata/html/dom/documents/dom-tree-accessors/document.forms.html.ini
@@ -1,3 +1,11 @@
[document.forms.html]
type: testharness
- expected: CRASH
+ [document.forms]
+ expected: FAIL
+
+ [document.forms iteration]
+ expected: FAIL
+
+ [document.forms getOwnPropertyNames]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/html/dom/elements/global-attributes/dataset-enumeration.html.ini b/tests/wpt/metadata/html/dom/elements/global-attributes/dataset-enumeration.html.ini
index 4dd8405e31c..7b228c9e6ea 100644
--- a/tests/wpt/metadata/html/dom/elements/global-attributes/dataset-enumeration.html.ini
+++ b/tests/wpt/metadata/html/dom/elements/global-attributes/dataset-enumeration.html.ini
@@ -1,3 +1,8 @@
[dataset-enumeration.html]
type: testharness
- expected: CRASH
+ [A dataset should be enumeratable.]
+ expected: FAIL
+
+ [Only attributes who qualify as dataset properties should be enumeratable in the dataset.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/html/dom/elements/global-attributes/dataset-get.html.ini b/tests/wpt/metadata/html/dom/elements/global-attributes/dataset-get.html.ini
index f6649ae7398..8294873d2ff 100644
--- a/tests/wpt/metadata/html/dom/elements/global-attributes/dataset-get.html.ini
+++ b/tests/wpt/metadata/html/dom/elements/global-attributes/dataset-get.html.ini
@@ -1,3 +1,5 @@
[dataset-get.html]
type: testharness
- expected: CRASH
+ [Getting element.dataset[\'toString\'\] should return the value of element.getAttribute(\'data-to-string\')\']
+ expected: FAIL
+