diff options
-rw-r--r-- | components/script/dom/bindings/codegen/parser/bytestring.patch | 29 | ||||
-rwxr-xr-x | components/script/dom/bindings/codegen/parser/update.sh | 1 |
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 |