aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMs2ger <ms2ger@gmail.com>2014-04-26 17:22:07 +0200
committerMs2ger <ms2ger@gmail.com>2014-04-26 17:22:07 +0200
commitb73a87e955a44ad8627e490efd8f92db4731674f (patch)
treeaf34359168dcb9d598b8c804023c2f8932453cdf /src
parent1e2be02eb85cb96c02fd9f8ab371dcd4f6621cbe (diff)
downloadservo-b73a87e955a44ad8627e490efd8f92db4731674f.tar.gz
servo-b73a87e955a44ad8627e490efd8f92db4731674f.zip
Use handleOptional for the union conversion.
Note that unions didn't handle optional arguments correctly before.
Diffstat (limited to 'src')
-rw-r--r--src/components/script/dom/bindings/codegen/CodegenRust.py2
-rw-r--r--src/components/script/dom/testbinding.rs4
-rw-r--r--src/components/script/dom/webidls/TestBinding.webidl4
3 files changed, 5 insertions, 5 deletions
diff --git a/src/components/script/dom/bindings/codegen/CodegenRust.py b/src/components/script/dom/bindings/codegen/CodegenRust.py
index 2fcb72383b6..ccd010a1b02 100644
--- a/src/components/script/dom/bindings/codegen/CodegenRust.py
+++ b/src/components/script/dom/bindings/codegen/CodegenRust.py
@@ -597,7 +597,7 @@ def getJSToNativeConversionTemplate(type, descriptorProvider, failureCode=None,
templateBody = handleDefaultNull(templateBody.define(),
"None")
- return (templateBody, declType, isOptional, "None" if isOptional else None)
+ return handleOptional(templateBody, declType, isOptional)
if type.isGeckoInterface():
assert not isEnforceRange and not isClamp
diff --git a/src/components/script/dom/testbinding.rs b/src/components/script/dom/testbinding.rs
index 174278f2f44..44a6b3e3d02 100644
--- a/src/components/script/dom/testbinding.rs
+++ b/src/components/script/dom/testbinding.rs
@@ -129,7 +129,7 @@ impl TestBinding {
pub fn PassOptionalString(&self, _: Option<DOMString>) {}
// pub fn PassOptionalEnum(&self, _: Option<TestEnum>) {}
pub fn PassOptionalInterface(&self, _: Option<JS<Blob>>) {}
- // pub fn PassOptionalUnion(&self, _: Option<HTMLElementOrLong>) {}
+ pub fn PassOptionalUnion(&self, _: Option<HTMLElementOrLong>) {}
pub fn PassOptionalAny(&self, _: *JSContext, _: Option<JSVal>) {}
pub fn PassOptionalNullableBoolean(&self, _: Option<Option<bool>>) {}
@@ -146,7 +146,7 @@ impl TestBinding {
pub fn PassOptionalNullableString(&self, _: Option<Option<DOMString>>) {}
// pub fn PassOptionalNullableEnum(&self, _: Option<Option<TestEnum>>) {}
// pub fn PassOptionalNullableInterface(&self, _: Option<Option<JS<Blob>>>) {}
- // pub fn PassOptionalNullableUnion(&self, _: Option<Option<HTMLElementOrLong>>) {}
+ pub fn PassOptionalNullableUnion(&self, _: Option<Option<HTMLElementOrLong>>) {}
pub fn PassOptionalBooleanWithDefault(&self, _: bool) {}
pub fn PassOptionalByteWithDefault(&self, _: i8) {}
diff --git a/src/components/script/dom/webidls/TestBinding.webidl b/src/components/script/dom/webidls/TestBinding.webidl
index 78e4d146897..70e7fd5dc8f 100644
--- a/src/components/script/dom/webidls/TestBinding.webidl
+++ b/src/components/script/dom/webidls/TestBinding.webidl
@@ -134,7 +134,7 @@ interface TestBinding {
void passOptionalString(optional DOMString arg);
// void passOptionalEnum(optional TestEnum arg);
void passOptionalInterface(optional Blob arg);
- // void passOptionalUnion(optional (HTMLElement or long) arg);
+ void passOptionalUnion(optional (HTMLElement or long) arg);
void passOptionalAny(optional any arg);
void passOptionalNullableBoolean(optional boolean? arg);
@@ -151,7 +151,7 @@ interface TestBinding {
void passOptionalNullableString(optional DOMString? arg);
// void passOptionalNullableEnum(optional TestEnum? arg);
// void passOptionalNullableInterface(optional Blob? arg);
- // void passOptionalNullableUnion(optional (HTMLElement or long)? arg);
+ void passOptionalNullableUnion(optional (HTMLElement or long)? arg);
void passOptionalBooleanWithDefault(optional boolean arg = false);
void passOptionalByteWithDefault(optional byte arg = 0);