aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--components/script/dom/bindings/codegen/parser/bytestring.patch29
-rwxr-xr-xcomponents/script/dom/bindings/codegen/parser/update.sh1
2 files changed, 30 insertions, 0 deletions
diff --git a/components/script/dom/bindings/codegen/parser/bytestring.patch b/components/script/dom/bindings/codegen/parser/bytestring.patch
new file mode 100644
index 00000000000..823f14cf996
--- /dev/null
+++ b/components/script/dom/bindings/codegen/parser/bytestring.patch
@@ -0,0 +1,29 @@
+--- WebIDL.py
++++ WebIDL.py
+@@ -3391,6 +3391,11 @@ class IDLValue(IDLObject):
+ # extra normalization step.
+ assert self.type.isDOMString()
+ return self
++ elif self.type.isString() and type.isByteString():
++ # Allow ByteStrings to use default value just like
++ # DOMString. No coercion is required here.
++ assert self.type.isDOMString()
++ return self
+ raise WebIDLError("Cannot coerce type %s to type %s." %
+ (self.type, type), [location])
+
+@@ -5759,6 +5764,14 @@ class Parser(Tokenizer):
+ booleanType = BuiltinTypes[IDLBuiltinType.Types.boolean]
+ p[0] = IDLValue(location, booleanType, p[1])
+
++ def p_ConstValueByteString(self, p):
++ """
++ ConstValue : BYTESTRING
++ """
++ location = self.getLocation(p, 1)
++ bytestringType = BuiltinTypes[IDLBuiltinType.Types.bytestring]
++ p[0] = IDLValue(location, bytestringType, p[1])
++
+ def p_ConstValueInteger(self, p):
+ """
+ ConstValue : INTEGER
diff --git a/components/script/dom/bindings/codegen/parser/update.sh b/components/script/dom/bindings/codegen/parser/update.sh
index 25aeefc5830..ef1da728b13 100755
--- a/components/script/dom/bindings/codegen/parser/update.sh
+++ b/components/script/dom/bindings/codegen/parser/update.sh
@@ -3,6 +3,7 @@ patch < abstract.patch
patch < debug.patch
patch < pref-main-thread.patch
patch < callback-location.patch
+patch < bytestring.patch
wget https://hg.mozilla.org/mozilla-central/archive/tip.tar.gz/dom/bindings/parser/tests/ -O tests.tar.gz
rm -r tests