diff options
author | bors-servo <metajack+bors@gmail.com> | 2015-04-30 04:33:32 -0500 |
---|---|---|
committer | bors-servo <metajack+bors@gmail.com> | 2015-04-30 04:33:32 -0500 |
commit | 2c177794408bfbb5f8d6042f38639a5cba5eb2e5 (patch) | |
tree | e90ad3e959139c85036faada722c74bcdf7c7bb2 /components/script/dom/bindings/codegen | |
parent | 738f006afe36a06c8ed4f668904c76ba84e9f1af (diff) | |
parent | 3b82cba0112020979d51333b06e91b7c2c6c6bc1 (diff) | |
download | servo-2c177794408bfbb5f8d6042f38639a5cba5eb2e5.tar.gz servo-2c177794408bfbb5f8d6042f38639a5cba5eb2e5.zip |
Auto merge of #5896 - nox:stringifier-proxy, r=jdm
The proxy stringifiers called through {}.toString.call() (obj_toString) shouldn't use the stringifier.
<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/5896)
<!-- Reviewable:end -->
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 b63df28d349..d48db291dd4 100644 --- a/components/script/dom/bindings/codegen/CodegenRust.py +++ b/components/script/dom/bindings/codegen/CodegenRust.py @@ -4106,25 +4106,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): @@ -4264,7 +4245,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(): |