bindings generator: support default ByteString values in dictionary

This commit is contained in:
Malisa Smith 2016-08-09 17:51:17 -07:00
parent 8cd4b772e9
commit 7fd65affab
4 changed files with 34 additions and 4 deletions

View file

@ -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