diff options
author | Guillaume Gomez <guillaume1.gomez@gmail.com> | 2016-02-14 05:22:23 +0100 |
---|---|---|
committer | Guillaume Gomez <guillaume1.gomez@gmail.com> | 2016-02-17 06:37:52 +0100 |
commit | bb9d3692c7eb38d515309fe13539946c9532d1fc (patch) | |
tree | 1db68dc93f73ca7f81dd890fcc57c9fccc9f7142 /components/script/dom/bindings/codegen/CodegenRust.py | |
parent | 87c6889f44f67e9c8a186e1b4d95066a4e67ecd3 (diff) | |
download | servo-bb9d3692c7eb38d515309fe13539946c9532d1fc.tar.gz servo-bb9d3692c7eb38d515309fe13539946c9532d1fc.zip |
All interface objects now share the same hasInstance
Diffstat (limited to 'components/script/dom/bindings/codegen/CodegenRust.py')
-rw-r--r-- | components/script/dom/bindings/codegen/CodegenRust.py | 33 |
1 files changed, 5 insertions, 28 deletions
diff --git a/components/script/dom/bindings/codegen/CodegenRust.py b/components/script/dom/bindings/codegen/CodegenRust.py index 13b65f53f29..8b3f9b6a4ad 100644 --- a/components/script/dom/bindings/codegen/CodegenRust.py +++ b/components/script/dom/bindings/codegen/CodegenRust.py @@ -1892,13 +1892,14 @@ class CGInterfaceObjectJSClass(CGThing): constructor = "throwing_constructor" args = { "constructor": constructor, - "hasInstance": HASINSTANCE_HOOK_NAME, "name": self.descriptor.interface.identifier.name, + "id": self.descriptor.interface.identifier.name, + "depth": self.descriptor.prototypeDepth } return """\ static InterfaceObjectClass: NonCallbackInterfaceObjectClass = - NonCallbackInterfaceObjectClass::new(%(constructor)s, %(hasInstance)s, - fun_to_string); + NonCallbackInterfaceObjectClass::new(%(constructor)s, fun_to_string, + PrototypeList::ID::%(id)s, %(depth)s); """ % args @@ -4735,29 +4736,6 @@ let args = CallArgs::from_vp(vp, argc); return CGList([preamble, callGenerator]) -class CGClassHasInstanceHook(CGAbstractExternMethod): - def __init__(self, descriptor): - args = [Argument('*mut JSContext', 'cx'), - Argument('HandleObject', 'obj'), - Argument('MutableHandleValue', 'value'), - Argument('*mut bool', 'rval')] - assert descriptor.interface.hasInterfaceObject() and not descriptor.interface.isCallback() - CGAbstractExternMethod.__init__(self, descriptor, HASINSTANCE_HOOK_NAME, - 'bool', args) - - def definition_body(self): - id = "PrototypeList::ID::%s" % self.descriptor.interface.identifier.name - return CGGeneric("""\ -match has_instance(cx, obj, value.handle(), %(id)s, %(index)s) { - Ok(result) => { - *rval = result; - true - } - Err(()) => false, -} -""" % {"id": id, "index": self.descriptor.prototypeDepth}) - - class CGClassFunToStringHook(CGAbstractExternMethod): """ A hook to convert functions to strings. @@ -4940,7 +4918,6 @@ class CGDescriptor(CGThing): cgThings.append(CGClassConstructHook(descriptor, ctor)) if not descriptor.interface.isCallback(): cgThings.append(CGInterfaceObjectJSClass(descriptor)) - cgThings.append(CGClassHasInstanceHook(descriptor)) cgThings.append(CGClassFunToStringHook(descriptor)) if not descriptor.interface.isCallback(): @@ -5367,7 +5344,7 @@ class CGBindingRoot(CGThing): 'dom::bindings::global::{GlobalRef, global_root_from_object, global_root_from_reflector}', 'dom::bindings::interface::{NonCallbackInterfaceObjectClass, create_callback_interface_object}', 'dom::bindings::interface::{create_interface_prototype_object, create_named_constructors}', - 'dom::bindings::interface::{create_noncallback_interface_object, has_instance}', + 'dom::bindings::interface::{create_noncallback_interface_object}', 'dom::bindings::interface::{ConstantSpec, NonNullJSNative}', 'dom::bindings::interface::ConstantVal::{IntVal, UintVal}', 'dom::bindings::js::{JS, Root, RootedReference}', |