Compile WebIDL return type "object" to NonZero<*mut JSObject>

This commit is contained in:
Anthony Ramine 2016-08-29 00:35:17 +02:00
parent 3e32948a39
commit 6e1523f4ae
11 changed files with 74 additions and 48 deletions

View file

@ -1349,7 +1349,10 @@ def getRetvalDeclarationForType(returnType, descriptorProvider):
if returnType.isAny():
return CGGeneric("JSVal")
if returnType.isObject() or returnType.isSpiderMonkeyInterface():
return CGGeneric("*mut JSObject")
result = CGGeneric("NonZero<*mut JSObject>")
if returnType.nullable():
result = CGWrapper(result, pre="Option<", post=">")
return result
if returnType.isSequence():
result = getRetvalDeclarationForType(innerSequenceType(returnType), descriptorProvider)
result = CGWrapper(result, pre="Vec<", post=">")
@ -5323,6 +5326,7 @@ def generate_imports(config, cgthings, descriptors, callbacks=None, dictionaries
enums = []
return CGImports(cgthings, descriptors, callbacks, dictionaries, enums, [
'core::nonzero::NonZero',
'js',
'js::JSCLASS_GLOBAL_SLOT_COUNT',
'js::JSCLASS_IS_DOMJSCLASS',