aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbors-servo <release+servo@mozilla.com>2014-04-08 11:13:12 -0400
committerbors-servo <release+servo@mozilla.com>2014-04-08 11:13:12 -0400
commitaa36ae62cd8f881e901f3657cb228dc2e4480e1f (patch)
tree9ea2a95c457c2c09d7f0fdbf9678392123e40649
parent51ff762bc5bf36a9f12448d222281ce39cf9a357 (diff)
parentb87d351fee1813dd4c8e644b066848d0839a2a95 (diff)
downloadservo-aa36ae62cd8f881e901f3657cb228dc2e4480e1f.tar.gz
servo-aa36ae62cd8f881e901f3657cb228dc2e4480e1f.zip
auto merge of #2058 : jdm/servo/rmcrust, r=Ms2ger
-rw-r--r--src/components/script/dom/bindings/codegen/CodegenRust.py94
-rw-r--r--src/components/script/dom/bindings/proxyhandler.rs7
-rw-r--r--src/components/script/dom/window.rs11
m---------src/support/spidermonkey/rust-mozjs0
4 files changed, 56 insertions, 56 deletions
diff --git a/src/components/script/dom/bindings/codegen/CodegenRust.py b/src/components/script/dom/bindings/codegen/CodegenRust.py
index d319ebe909e..7c6b7bed88a 100644
--- a/src/components/script/dom/bindings/codegen/CodegenRust.py
+++ b/src/components/script/dom/bindings/codegen/CodegenRust.py
@@ -1361,13 +1361,13 @@ class MethodDefiner(PropertyDefiner):
if any(m.isGetter() and m.isIndexed() for m in methods):
self.chrome.append({"name": 'iterator',
"methodInfo": False,
- "nativeName": "crust::JS_ArrayIterator",
+ "nativeName": "JS_ArrayIterator",
"length": 0,
"flags": "JSPROP_ENUMERATE",
"pref": None })
self.regular.append({"name": 'iterator',
"methodInfo": False,
- "nativeName": "crust::JS_ArrayIterator",
+ "nativeName": "JS_ArrayIterator",
"length": 0,
"flags": "JSPROP_ENUMERATE",
"pref": None })
@@ -1630,19 +1630,19 @@ static Class_name: [u8, ..%i] = %s;
static Class: DOMJSClass = DOMJSClass {
base: JSClass { name: &Class_name as *u8 as *libc::c_char,
flags: JSCLASS_IS_DOMJSCLASS | %s | (((%s) & JSCLASS_RESERVED_SLOTS_MASK) << JSCLASS_RESERVED_SLOTS_SHIFT), //JSCLASS_HAS_RESERVED_SLOTS(%s),
- addProperty: Some(%s), /* addProperty */
- delProperty: Some(crust::JS_PropertyStub), /* delProperty */
- getProperty: Some(crust::JS_PropertyStub), /* getProperty */
- setProperty: Some(crust::JS_StrictPropertyStub), /* setProperty */
- enumerate: Some(crust::JS_EnumerateStub),
- resolve: Some(crust::JS_ResolveStub),
- convert: Some(crust::JS_ConvertStub),
- finalize: Some(%s), /* finalize */
- checkAccess: None, /* checkAccess */
- call: None, /* call */
- hasInstance: None, /* hasInstance */
- construct: None, /* construct */
- trace: %s, /* trace */
+ addProperty: Some(JS_PropertyStub),
+ delProperty: Some(JS_PropertyStub),
+ getProperty: Some(JS_PropertyStub),
+ setProperty: Some(JS_StrictPropertyStub),
+ enumerate: Some(JS_EnumerateStub),
+ resolve: Some(JS_ResolveStub),
+ convert: Some(JS_ConvertStub),
+ finalize: Some(%s),
+ checkAccess: None,
+ call: None,
+ hasInstance: None,
+ construct: None,
+ trace: %s,
reserved: (0 as *libc::c_void, 0 as *libc::c_void, 0 as *libc::c_void, 0 as *libc::c_void, 0 as *libc::c_void, // 05
0 as *libc::c_void, 0 as *libc::c_void, 0 as *libc::c_void, 0 as *libc::c_void, 0 as *libc::c_void, // 10
0 as *libc::c_void, 0 as *libc::c_void, 0 as *libc::c_void, 0 as *libc::c_void, 0 as *libc::c_void, // 15
@@ -1657,7 +1657,6 @@ static Class: DOMJSClass = DOMJSClass {
""" % (len(self.descriptor.interface.identifier.name) + 1,
str_to_const_array(self.descriptor.interface.identifier.name),
flags, slots, slots,
- 'crust::JS_PropertyStub',
FINALIZE_HOOK_NAME, traceHook,
CGIndenter(CGGeneric(DOMClass(self.descriptor))).define())
@@ -1675,19 +1674,19 @@ static PrototypeClassName__: [u8, ..%s] = %s;
static PrototypeClass: JSClass = JSClass {
name: &PrototypeClassName__ as *u8 as *libc::c_char,
flags: (1 & JSCLASS_RESERVED_SLOTS_MASK) << JSCLASS_RESERVED_SLOTS_SHIFT, //JSCLASS_HAS_RESERVED_SLOTS(1)
- addProperty: Some(crust::JS_PropertyStub), /* addProperty */
- delProperty: Some(crust::JS_PropertyStub), /* delProperty */
- getProperty: Some(crust::JS_PropertyStub), /* getProperty */
- setProperty: Some(crust::JS_StrictPropertyStub), /* setProperty */
- enumerate: Some(crust::JS_EnumerateStub),
- resolve: Some(crust::JS_ResolveStub),
- convert: Some(crust::JS_ConvertStub),
- finalize: None, /* finalize */
- checkAccess: None, /* checkAccess */
- call: None, /* call */
- hasInstance: None, /* hasInstance */
- construct: None, /* construct */
- trace: None, /* trace */
+ addProperty: Some(JS_PropertyStub),
+ delProperty: Some(JS_PropertyStub),
+ getProperty: Some(JS_PropertyStub),
+ setProperty: Some(JS_StrictPropertyStub),
+ enumerate: Some(JS_EnumerateStub),
+ resolve: Some(JS_ResolveStub),
+ convert: Some(JS_ConvertStub),
+ finalize: None,
+ checkAccess: None,
+ call: None,
+ hasInstance: None,
+ construct: None,
+ trace: None,
reserved: (0 as *libc::c_void, 0 as *libc::c_void, 0 as *libc::c_void, 0 as *libc::c_void, 0 as *libc::c_void, // 05
0 as *libc::c_void, 0 as *libc::c_void, 0 as *libc::c_void, 0 as *libc::c_void, 0 as *libc::c_void, // 10
0 as *libc::c_void, 0 as *libc::c_void, 0 as *libc::c_void, 0 as *libc::c_void, 0 as *libc::c_void, // 15
@@ -1713,19 +1712,19 @@ class CGInterfaceObjectJSClass(CGThing):
return """
static InterfaceObjectClass: JSClass = {
%s, 0,
- crust::JS_PropertyStub, /* addProperty */
- crust::JS_PropertyStub, /* delProperty */
- crust::JS_PropertyStub, /* getProperty */
- crust::JS_StrictPropertyStub, /* setProperty */
- crust::JS_EnumerateStub,
- crust::JS_ResolveStub,
- crust::JS_ConvertStub,
- 0 as *u8, /* finalize */
- 0 as *u8, /* checkAccess */
- %s, /* call */
- %s, /* hasInstance */
- %s, /* construct */
- 0 as *u8, /* trace */
+ JS_PropertyStub,
+ JS_PropertyStub,
+ JS_PropertyStub,
+ JS_StrictPropertyStub,
+ JS_EnumerateStub,
+ JS_ResolveStub,
+ JS_ConvertStub,
+ 0 as *u8,
+ 0 as *u8,
+ %s,
+ %s,
+ %s,
+ 0 as *u8,
JSCLASS_NO_INTERNAL_MEMBERS
};
""" % (str_to_const_array("Function"), ctorname, hasinstance, ctorname)
@@ -4587,7 +4586,7 @@ class CGBindingRoot(CGThing):
#XXXjdm This should only import the namespace for the current binding,
# not every binding ever.
curr = CGImports(curr, [
- 'js::{crust, JS_ARGV, JS_CALLEE, JS_THIS_OBJECT}',
+ 'js::{JS_ARGV, JS_CALLEE, JS_THIS_OBJECT}',
'js::{JSCLASS_GLOBAL_SLOT_COUNT, JSCLASS_IS_DOMJSCLASS}',
'js::{JSCLASS_IS_GLOBAL, JSCLASS_RESERVED_SLOTS_SHIFT}',
'js::{JSCLASS_RESERVED_SLOTS_MASK, JSID_VOID, JSJitInfo}',
@@ -4600,9 +4599,10 @@ class CGBindingRoot(CGThing):
'js::jsapi::{JS_NewObject, JS_ObjectIsCallable, JS_SetPrototype}',
'js::jsapi::{JS_SetReservedSlot, JS_WrapValue, JSBool, JSContext}',
'js::jsapi::{JSClass, JSFreeOp, JSFunctionSpec, JSHandleObject, jsid}',
- 'js::jsapi::{JSNativeWrapper, JSObject, JSPropertyDescriptor}',
- 'js::jsapi::{JSPropertyOpWrapper, JSPropertySpec}',
- 'js::jsapi::{JSStrictPropertyOpWrapper, JSString, JSTracer}',
+ 'js::jsapi::{JSNativeWrapper, JSObject, JSPropertyDescriptor, JS_ArrayIterator}',
+ 'js::jsapi::{JSPropertyOpWrapper, JSPropertySpec, JS_PropertyStub}',
+ 'js::jsapi::{JSStrictPropertyOpWrapper, JSString, JSTracer, JS_ConvertStub}',
+ 'js::jsapi::{JS_StrictPropertyStub, JS_EnumerateStub, JS_ResolveStub}',
'js::jsval::JSVal',
'js::jsval::{ObjectValue, ObjectOrNullValue, PrivateValue}',
'js::jsval::{NullValue, UndefinedValue}',
@@ -5712,7 +5712,7 @@ class GlobalGenRoots():
'dom::bindings::error::throw_not_in_union',
'dom::bindings::js::JS',
'dom::types::*',
- 'js::{crust, JS_ARGV, JS_CALLEE, JS_THIS_OBJECT}',
+ 'js::{JS_ARGV, JS_CALLEE, JS_THIS_OBJECT}',
'js::{JSCLASS_GLOBAL_SLOT_COUNT, JSCLASS_IS_DOMJSCLASS}',
'js::{JSCLASS_IS_GLOBAL, JSCLASS_RESERVED_SLOTS_SHIFT}',
'js::{JSCLASS_RESERVED_SLOTS_MASK, JSID_VOID, JSJitInfo}',
diff --git a/src/components/script/dom/bindings/proxyhandler.rs b/src/components/script/dom/bindings/proxyhandler.rs
index 80320ec4cfb..22df6e0df86 100644
--- a/src/components/script/dom/bindings/proxyhandler.rs
+++ b/src/components/script/dom/bindings/proxyhandler.rs
@@ -6,11 +6,11 @@ use dom::bindings::utils::is_dom_proxy;
use js::jsapi::{JSContext, jsid, JSPropertyDescriptor, JSObject, JSString, jschar};
use js::jsapi::{JS_GetPropertyDescriptorById, JS_NewUCString, JS_malloc, JS_free};
use js::jsapi::{JSBool, JS_DefinePropertyById, JS_NewObjectWithGivenProto};
+use js::jsapi::JS_StrictPropertyStub;
use js::jsval::ObjectValue;
use js::glue::GetProxyExtra;
use js::glue::{GetObjectProto, GetObjectParent, SetProxyExtra, GetProxyHandler};
use js::glue::InvokeGetOwnPropertyDescriptor;
-use js::crust::{JS_StrictPropertyStub};
use js::{JSPROP_GETTER, JSPROP_ENUMERATE, JSPROP_READONLY, JSRESOLVE_QUALIFIED};
use std::cast;
@@ -46,7 +46,10 @@ pub extern fn getPropertyDescriptor(cx: *JSContext, proxy: *JSObject, id: jsid,
pub fn defineProperty_(cx: *JSContext, proxy: *JSObject, id: jsid,
desc: *JSPropertyDescriptor) -> JSBool {
unsafe {
- if ((*desc).attrs & JSPROP_GETTER) != 0 && (*desc).setter == Some(JS_StrictPropertyStub) {
+ //FIXME: Workaround for https://github.com/mozilla/rust/issues/13385
+ let setter: *libc::c_void = cast::transmute((*desc).setter);
+ let setter_stub: *libc::c_void = cast::transmute(JS_StrictPropertyStub);
+ if ((*desc).attrs & JSPROP_GETTER) != 0 && setter == setter_stub {
/*return JS_ReportErrorFlagsAndNumber(cx,
JSREPORT_WARNING | JSREPORT_STRICT |
JSREPORT_STRICT_MODE_ERROR,
diff --git a/src/components/script/dom/window.rs b/src/components/script/dom/window.rs
index dae0020abe8..9ba9d00da82 100644
--- a/src/components/script/dom/window.rs
+++ b/src/components/script/dom/window.rs
@@ -19,14 +19,11 @@ use servo_net::image_cache_task::ImageCacheTask;
use servo_util::str::DOMString;
use servo_util::task::{spawn_named};
-use js::glue::*;
-use js::jsapi::{JSObject, JSContext, JS_DefineProperty};
-use js::jsval::JSVal;
-use js::jsval::{NullValue, ObjectValue};
+use js::jsapi::{JSObject, JSContext, JS_DefineProperty, JS_PropertyStub, JS_StrictPropertyStub};
+use js::jsval::{NullValue, ObjectValue, JSVal};
use js::JSPROP_ENUMERATE;
use collections::hashmap::HashMap;
-use std::cast;
use std::cmp;
use std::comm::{channel, Sender, Receiver};
use std::comm::Select;
@@ -329,8 +326,8 @@ impl Window {
unsafe {
JS_DefineProperty(cx, object, name,
ObjectValue(&*object),
- Some(cast::transmute(GetJSClassHookStubPointer(PROPERTY_STUB))),
- Some(cast::transmute(GetJSClassHookStubPointer(STRICT_PROPERTY_STUB))),
+ Some(JS_PropertyStub),
+ Some(JS_StrictPropertyStub),
JSPROP_ENUMERATE);
}
})
diff --git a/src/support/spidermonkey/rust-mozjs b/src/support/spidermonkey/rust-mozjs
-Subproject f81f450ba6a742041844d40154dfe8ad1e540a4
+Subproject 9f0ae0ab33f786c9d2d5e1a9fdfdc6c07fa9803