Implement WebIDL sequence return values

This commit is contained in:
Emilio Cobos Álvarez 2015-11-08 16:11:49 +01:00
parent 75e01de627
commit 63aa6862b4
2 changed files with 40 additions and 3 deletions

View file

@ -1295,7 +1295,12 @@ def getRetvalDeclarationForType(returnType, descriptorProvider):
if returnType.isObject() or returnType.isSpiderMonkeyInterface():
return CGGeneric("*mut JSObject")
if returnType.isSequence():
raise TypeError("We don't support sequence return values")
inner = returnType.unroll()
result = getRetvalDeclarationForType(inner, descriptorProvider)
result = CGWrapper(result, pre="Vec<", post=">")
if returnType.nullable():
result = CGWrapper(result, pre="Option<", post=">")
return result
if returnType.isDictionary():
nullable = returnType.nullable()
dictName = returnType.inner.name if nullable else returnType.name