diff options
Diffstat (limited to 'components/script')
-rw-r--r-- | components/script/dom/bindings/codegen/CodegenRust.py | 21 | ||||
-rw-r--r-- | components/script/dom/bindings/codegen/Configuration.py | 2 | ||||
-rw-r--r-- | components/script/dom/domtokenlist.rs | 5 | ||||
-rw-r--r-- | components/script/dom/location.rs | 2 | ||||
-rw-r--r-- | components/script/dom/urlsearchparams.rs | 5 | ||||
-rw-r--r-- | components/script/dom/webidls/DOMTokenList.webidl | 2 | ||||
-rw-r--r-- | components/script/dom/webidls/URLSearchParams.webidl | 2 |
7 files changed, 15 insertions, 24 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(): diff --git a/components/script/dom/domtokenlist.rs b/components/script/dom/domtokenlist.rs index 7ee5e632900..0a42db03d5d 100644 --- a/components/script/dom/domtokenlist.rs +++ b/components/script/dom/domtokenlist.rs @@ -159,4 +159,9 @@ impl<'a> DOMTokenListMethods for JSRef<'a, DOMTokenList> { } } } + + // https://dom.spec.whatwg.org/#stringification-behavior + fn Stringifier(self) -> DOMString { + self.element.root().r().get_string_attribute(&self.local_name) + } } diff --git a/components/script/dom/location.rs b/components/script/dom/location.rs index 97da0a3066a..20ead7dc298 100644 --- a/components/script/dom/location.rs +++ b/components/script/dom/location.rs @@ -53,7 +53,7 @@ impl<'a> LocationMethods for JSRef<'a, Location> { } // https://url.spec.whatwg.org/#URLUtils-stringification-behavior - fn Stringify(self) -> DOMString { + fn Stringifier(self) -> DOMString { self.Href().0 } diff --git a/components/script/dom/urlsearchparams.rs b/components/script/dom/urlsearchparams.rs index f19e936ce54..91c25794716 100644 --- a/components/script/dom/urlsearchparams.rs +++ b/components/script/dom/urlsearchparams.rs @@ -106,6 +106,11 @@ impl<'a> URLSearchParamsMethods for JSRef<'a, URLSearchParams> { self.data.borrow_mut().insert(name, vec!(value)); self.update_steps(); } + + // https://url.spec.whatwg.org/#stringification-behavior + fn Stringifier(self) -> DOMString { + DOMString::from_utf8(self.serialize(None)).unwrap() + } } pub trait URLSearchParamsHelpers { diff --git a/components/script/dom/webidls/DOMTokenList.webidl b/components/script/dom/webidls/DOMTokenList.webidl index 764f18d6dfa..61a3bebff15 100644 --- a/components/script/dom/webidls/DOMTokenList.webidl +++ b/components/script/dom/webidls/DOMTokenList.webidl @@ -17,5 +17,5 @@ interface DOMTokenList { [Throws] boolean toggle(DOMString token, optional boolean force); - //stringifier; + stringifier; }; diff --git a/components/script/dom/webidls/URLSearchParams.webidl b/components/script/dom/webidls/URLSearchParams.webidl index 3d61263cbc9..f0ddafad291 100644 --- a/components/script/dom/webidls/URLSearchParams.webidl +++ b/components/script/dom/webidls/URLSearchParams.webidl @@ -15,5 +15,5 @@ interface URLSearchParams { // sequence<DOMString> getAll(DOMString name); boolean has(DOMString name); void set(DOMString name, DOMString value); - //stringifier; + stringifier; }; |