Use handleOptional for the union conversion.

Note that unions didn't handle optional arguments correctly before.
This commit is contained in:
Ms2ger 2014-04-26 17:22:07 +02:00
parent 1e2be02eb8
commit b73a87e955
3 changed files with 5 additions and 5 deletions

View file

@ -597,7 +597,7 @@ def getJSToNativeConversionTemplate(type, descriptorProvider, failureCode=None,
templateBody = handleDefaultNull(templateBody.define(), templateBody = handleDefaultNull(templateBody.define(),
"None") "None")
return (templateBody, declType, isOptional, "None" if isOptional else None) return handleOptional(templateBody, declType, isOptional)
if type.isGeckoInterface(): if type.isGeckoInterface():
assert not isEnforceRange and not isClamp assert not isEnforceRange and not isClamp

View file

@ -129,7 +129,7 @@ impl TestBinding {
pub fn PassOptionalString(&self, _: Option<DOMString>) {} pub fn PassOptionalString(&self, _: Option<DOMString>) {}
// pub fn PassOptionalEnum(&self, _: Option<TestEnum>) {} // pub fn PassOptionalEnum(&self, _: Option<TestEnum>) {}
pub fn PassOptionalInterface(&self, _: Option<JS<Blob>>) {} 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 PassOptionalAny(&self, _: *JSContext, _: Option<JSVal>) {}
pub fn PassOptionalNullableBoolean(&self, _: Option<Option<bool>>) {} pub fn PassOptionalNullableBoolean(&self, _: Option<Option<bool>>) {}
@ -146,7 +146,7 @@ impl TestBinding {
pub fn PassOptionalNullableString(&self, _: Option<Option<DOMString>>) {} pub fn PassOptionalNullableString(&self, _: Option<Option<DOMString>>) {}
// pub fn PassOptionalNullableEnum(&self, _: Option<Option<TestEnum>>) {} // pub fn PassOptionalNullableEnum(&self, _: Option<Option<TestEnum>>) {}
// pub fn PassOptionalNullableInterface(&self, _: Option<Option<JS<Blob>>>) {} // 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 PassOptionalBooleanWithDefault(&self, _: bool) {}
pub fn PassOptionalByteWithDefault(&self, _: i8) {} pub fn PassOptionalByteWithDefault(&self, _: i8) {}

View file

@ -134,7 +134,7 @@ interface TestBinding {
void passOptionalString(optional DOMString arg); void passOptionalString(optional DOMString arg);
// void passOptionalEnum(optional TestEnum arg); // void passOptionalEnum(optional TestEnum arg);
void passOptionalInterface(optional Blob 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 passOptionalAny(optional any arg);
void passOptionalNullableBoolean(optional boolean? arg); void passOptionalNullableBoolean(optional boolean? arg);
@ -151,7 +151,7 @@ interface TestBinding {
void passOptionalNullableString(optional DOMString? arg); void passOptionalNullableString(optional DOMString? arg);
// void passOptionalNullableEnum(optional TestEnum? arg); // void passOptionalNullableEnum(optional TestEnum? arg);
// void passOptionalNullableInterface(optional Blob? 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 passOptionalBooleanWithDefault(optional boolean arg = false);
void passOptionalByteWithDefault(optional byte arg = 0); void passOptionalByteWithDefault(optional byte arg = 0);