diff options
author | Anthony Ramine <n.oxyde@gmail.com> | 2015-04-29 15:31:06 +0200 |
---|---|---|
committer | Anthony Ramine <n.oxyde@gmail.com> | 2015-04-29 18:52:38 +0200 |
commit | 2a2e8b176d3c70ebe05c2e46d60112e161a8fd39 (patch) | |
tree | c4a25aa2cd06fa33ba5cfc973b0d5eb6fca073d5 /components/script/dom/bindings/codegen | |
parent | adec683333895a5112d3d8295fa01a6b06ff38ad (diff) | |
download | servo-2a2e8b176d3c70ebe05c2e46d60112e161a8fd39.tar.gz servo-2a2e8b176d3c70ebe05c2e46d60112e161a8fd39.zip |
Properly generate proxy stringifiers
Diffstat (limited to 'components/script/dom/bindings/codegen')
-rw-r--r-- | components/script/dom/bindings/codegen/CodegenRust.py | 21 | ||||
-rw-r--r-- | components/script/dom/bindings/codegen/Configuration.py | 2 |
2 files changed, 2 insertions, 21 deletions
diff --git a/components/script/dom/bindings/codegen/CodegenRust.py b/components/script/dom/bindings/codegen/CodegenRust.py index 6b4acd64bd4..02a591fd174 100644 --- a/components/script/dom/bindings/codegen/CodegenRust.py +++ b/components/script/dom/bindings/codegen/CodegenRust.py @@ -4089,25 +4089,6 @@ class CGDOMJSProxyHandler_obj_toString(CGAbstractExternMethod): CGAbstractExternMethod.__init__(self, descriptor, "obj_toString", "*mut JSString", args) self.descriptor = descriptor def getBody(self): - stringifier = self.descriptor.operations['Stringifier'] - if stringifier: - name = self.descriptor.binaryNameFor(stringifier.identifier.name) - nativeName = MakeNativeName(name) - signature = stringifier.signatures()[0] - returnType = signature[0] - extendedAttributes = self.descriptor.getExtendedAttributes(stringifier) - infallible = 'infallible' in extendedAttributes - if not infallible: - error = CGGeneric( - ('ThrowMethodFailedWithDetails(cx, rv, "%s", "toString");\n' + - "return NULL;") % self.descriptor.interface.identifier.name) - else: - error = None - call = CGCallGenerator(error, [], "", returnType, extendedAttributes, self.descriptor, nativeName, False, object="UnwrapProxy(proxy)") - return call.define() + """\ -JSString* jsresult; -return xpc_qsStringToJsstring(cx, result, &jsresult) ? jsresult : NULL;""" - return """proxyhandler::object_to_string(cx, "%s")""" % self.descriptor.name def definition_body(self): @@ -4247,7 +4228,7 @@ class CGInterfaceTrait(CGThing): if descriptor.proxy: for name, operation in descriptor.operations.iteritems(): - if not operation: + if not operation or operation.isStringifier(): continue assert len(operation.signatures()) == 1 diff --git a/components/script/dom/bindings/codegen/Configuration.py b/components/script/dom/bindings/codegen/Configuration.py index 5ea521e15b8..8741cb9eacf 100644 --- a/components/script/dom/bindings/codegen/Configuration.py +++ b/components/script/dom/bindings/codegen/Configuration.py @@ -254,7 +254,7 @@ class Descriptor(DescriptorProvider): self._binaryNames = desc.get('binaryNames', {}) self._binaryNames.setdefault('__legacycaller', 'LegacyCall') - self._binaryNames.setdefault('__stringifier', 'Stringify') + self._binaryNames.setdefault('__stringifier', 'Stringifier') for member in self.interface.members: if not member.isAttr() and not member.isMethod(): |