aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/script/dom/bindings/codegen/CodegenRust.py
diff options
context:
space:
mode:
authorJosh Matthews <josh@joshmatthews.net>2013-07-10 16:41:08 -0400
committerJosh Matthews <josh@joshmatthews.net>2013-07-10 16:41:08 -0400
commit65f9aefb78791467fcd54971e0296c520e23d641 (patch)
tree396bd41f32150ea43af9b0f7b84c091ed29c09f8 /src/components/script/dom/bindings/codegen/CodegenRust.py
parent8787c1ac1f80d1431823947e64ca9a6da20994b0 (diff)
downloadservo-65f9aefb78791467fcd54971e0296c520e23d641.tar.gz
servo-65f9aefb78791467fcd54971e0296c520e23d641.zip
Generate DOM bindings for UIEvent and MouseEvent.
Diffstat (limited to 'src/components/script/dom/bindings/codegen/CodegenRust.py')
-rw-r--r--src/components/script/dom/bindings/codegen/CodegenRust.py35
1 files changed, 19 insertions, 16 deletions
diff --git a/src/components/script/dom/bindings/codegen/CodegenRust.py b/src/components/script/dom/bindings/codegen/CodegenRust.py
index eab2855189b..e82c4167485 100644
--- a/src/components/script/dom/bindings/codegen/CodegenRust.py
+++ b/src/components/script/dom/bindings/codegen/CodegenRust.py
@@ -558,7 +558,7 @@ def getJSToNativeConversionTemplate(type, descriptorProvider, failureCode=None,
CGIndenter(CGGeneric(templateBody)).define() + "\n")
if type.nullable():
templateBody += (
- "} else if (${val}.isNullOrUndefined()) {\n"
+ "} else if RUST_JSVAL_IS_NULL(${val}) != 0 || RUST_JSVAL_IS_VOID(${val}) != 0 {\n"
" %s;\n" % codeToSetNull)
templateBody += (
"} else {\n" +
@@ -893,7 +893,7 @@ for (uint32_t i = 0; i < length; ++i) {
not descriptor.workers) or isMember
typeName = descriptor.nativeType
- typePtr = typeName + "*"
+ typePtr = descriptor.pointerType + typeName
# Compute a few things:
# - declType is the type we want to return as the first element of our
@@ -904,15 +904,9 @@ for (uint32_t i = 0; i < length; ++i) {
# Set up some sensible defaults for these things insofar as we can.
holderType = None
if argIsPointer:
- if forceOwningType:
- declType = "nsRefPtr<" + typeName + ">"
- else:
- declType = typePtr
+ declType = "Option<" + typePtr + ">"
else:
- if forceOwningType:
- declType = "OwningNonNull<" + typeName + ">"
- else:
- declType = descriptor.pointerType + typeName
+ declType = typePtr
templateBody = ""
if descriptor.castable:
@@ -1298,10 +1292,15 @@ def instantiateJSToNativeConversionTemplate(templateTuple, replacements,
(holderType.define(), originalHolderName))
mutableHolderType = CGWrapper(holderType, pre="Optional< ", post=" >")
holderType = CGWrapper(mutableHolderType, pre="const ")
- result.append(
- CGList([holderType, CGGeneric(" "),
- CGGeneric(originalHolderName),
- CGGeneric(";")]))
+ tmpresult = [CGGeneric("let "),
+ CGGeneric(originalHolderName),
+ CGGeneric(": "),
+ holderType]
+ if initialValue:
+ tmpresult += [CGGeneric(" = "),
+ initialValue]
+ tmpresult += [CGGeneric(";")]
+ result.append(CGList(tmpresult))
originalDeclName = replacements["declName"]
if declType is not None:
@@ -4034,11 +4033,11 @@ class CGDictionary(CGThing):
def defaultValue(ty):
if ty is "bool":
return "false"
- elif ty in ["i32", "u32"]:
+ elif ty in ["i32", "u32", "i16", "u16"]:
return "0"
elif ty is "nsString":
return "\"\""
- elif ty.startswith("Optional"):
+ elif ty.startswith("Option"):
return "None"
else:
return "/* uh oh: %s */" % ty
@@ -4283,6 +4282,10 @@ class CGBindingRoot(CGThing):
'dom::event::*', #XXXjdm
'dom::eventtarget::*', #XXXjdm
'dom::formdata::*', #XXXjdm
+ 'dom::mouseevent::*', #XXXjdm
+ 'dom::uievent::*', #XXXjdm
+ 'dom::windowproxy::*', #XXXjdm
+ 'dom::bindings::codegen::*', #XXXjdm
'script_task::task_from_context',
'dom::bindings::utils::EnumEntry',
'dom::node::ScriptView',