mirror of
https://github.com/servo/servo.git
synced 2025-07-24 15:50:21 +01:00
Implement USVString.
This commit is contained in:
parent
4157a2b02b
commit
bbbdb98897
5 changed files with 93 additions and 2 deletions
|
@ -717,6 +717,32 @@ def getJSToNativeConversionInfo(type, descriptorProvider, failureCode=None,
|
|||
|
||||
return handleOptional(conversionCode, CGGeneric(declType), default)
|
||||
|
||||
if type.isUSVString():
|
||||
assert not isEnforceRange and not isClamp
|
||||
|
||||
conversionCode = (
|
||||
"match FromJSValConvertible::from_jsval(cx, ${val}, ()) {\n"
|
||||
" Ok(strval) => strval,\n"
|
||||
" Err(_) => { %s },\n"
|
||||
"}" % exceptionCode)
|
||||
|
||||
if defaultValue is None:
|
||||
default = None
|
||||
elif isinstance(defaultValue, IDLNullValue):
|
||||
assert type.nullable()
|
||||
default = "None"
|
||||
else:
|
||||
assert defaultValue.type.tag() in (IDLType.Tags.domstring, IDLType.Tags.usvstring)
|
||||
default = 'USVString("%s".to_owned())' % defaultValue.value
|
||||
if type.nullable():
|
||||
default = "Some(%s)" % default
|
||||
|
||||
declType = "USVString"
|
||||
if type.nullable():
|
||||
declType = "Option<%s>" % declType
|
||||
|
||||
return handleOptional(conversionCode, CGGeneric(declType), default)
|
||||
|
||||
if type.isByteString():
|
||||
assert not isEnforceRange and not isClamp
|
||||
|
||||
|
@ -1086,6 +1112,11 @@ def getRetvalDeclarationForType(returnType, descriptorProvider):
|
|||
if returnType.nullable():
|
||||
result = CGWrapper(result, pre="Option<", post=">")
|
||||
return result
|
||||
if returnType.isUSVString():
|
||||
result = CGGeneric("USVString")
|
||||
if returnType.nullable():
|
||||
result = CGWrapper(result, pre="Option<", post=">")
|
||||
return result
|
||||
if returnType.isByteString():
|
||||
result = CGGeneric("ByteString")
|
||||
if returnType.nullable():
|
||||
|
@ -4647,6 +4678,7 @@ class CGBindingRoot(CGThing):
|
|||
'dom::bindings::proxyhandler::{fill_property_descriptor, get_expando_object}',
|
||||
'dom::bindings::proxyhandler::{get_property_descriptor}',
|
||||
'dom::bindings::str::ByteString',
|
||||
'dom::bindings::str::USVString',
|
||||
'libc',
|
||||
'util::str::DOMString',
|
||||
'std::borrow::ToOwned',
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue