mirror of
https://github.com/servo/servo.git
synced 2025-06-23 08:34:42 +01:00
Add support for DOMString in unions (fixes #2324).
This commit is contained in:
parent
d66197ae40
commit
0ab3444af9
3 changed files with 20 additions and 1 deletions
|
@ -2699,6 +2699,9 @@ def getUnionTypeTemplateVars(type, descriptorProvider):
|
||||||
name = str(type)
|
name = str(type)
|
||||||
#XXXjdm dunno about typeName here
|
#XXXjdm dunno about typeName here
|
||||||
typeName = "/*" + type.name + "*/"
|
typeName = "/*" + type.name + "*/"
|
||||||
|
elif type.isDOMString():
|
||||||
|
name = type.name
|
||||||
|
typeName = "DOMString"
|
||||||
elif type.isPrimitive():
|
elif type.isPrimitive():
|
||||||
name = type.name
|
name = type.name
|
||||||
typeName = builtinNames[type.tag()]
|
typeName = builtinNames[type.tag()]
|
||||||
|
@ -5312,6 +5315,7 @@ class GlobalGenRoots():
|
||||||
'dom::bindings::utils::unwrap_jsmanaged',
|
'dom::bindings::utils::unwrap_jsmanaged',
|
||||||
'dom::bindings::codegen::PrototypeList',
|
'dom::bindings::codegen::PrototypeList',
|
||||||
'dom::bindings::conversions::{FromJSValConvertible, ToJSValConvertible}',
|
'dom::bindings::conversions::{FromJSValConvertible, ToJSValConvertible}',
|
||||||
|
'dom::bindings::conversions::{Default, Empty}',
|
||||||
'dom::bindings::error::throw_not_in_union',
|
'dom::bindings::error::throw_not_in_union',
|
||||||
'dom::bindings::js::JS',
|
'dom::bindings::js::JS',
|
||||||
'dom::types::*',
|
'dom::types::*',
|
||||||
|
@ -5337,6 +5341,7 @@ class GlobalGenRoots():
|
||||||
'js::glue::{GetProxyPrivate, NewProxyObject, ProxyTraps}',
|
'js::glue::{GetProxyPrivate, NewProxyObject, ProxyTraps}',
|
||||||
'js::glue::{RUST_FUNCTION_VALUE_TO_JITINFO}',
|
'js::glue::{RUST_FUNCTION_VALUE_TO_JITINFO}',
|
||||||
'js::glue::{RUST_JS_NumberValue, RUST_JSID_IS_STRING}',
|
'js::glue::{RUST_JS_NumberValue, RUST_JSID_IS_STRING}',
|
||||||
|
'servo_util::str::DOMString',
|
||||||
])
|
])
|
||||||
|
|
||||||
# Add the auto-generated comment.
|
# Add the auto-generated comment.
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
|
|
||||||
use dom::bindings::js::{JS, JSRef, Temporary};
|
use dom::bindings::js::{JS, JSRef, Temporary};
|
||||||
use dom::bindings::codegen::BindingDeclarations::TestBindingBinding;
|
use dom::bindings::codegen::BindingDeclarations::TestBindingBinding;
|
||||||
use dom::bindings::codegen::UnionTypes::HTMLElementOrLong;
|
use dom::bindings::codegen::UnionTypes::{HTMLElementOrLong, StringOrFormData};
|
||||||
use self::TestBindingBinding::TestEnum;
|
use self::TestBindingBinding::TestEnum;
|
||||||
use self::TestBindingBinding::TestEnumValues::_empty;
|
use self::TestBindingBinding::TestEnumValues::_empty;
|
||||||
use dom::bindings::str::ByteString;
|
use dom::bindings::str::ByteString;
|
||||||
|
@ -102,6 +102,7 @@ pub trait TestBindingMethods {
|
||||||
fn PassEnum(&self, _: TestEnum) {}
|
fn PassEnum(&self, _: TestEnum) {}
|
||||||
fn PassInterface(&self, _: &JSRef<Blob>) {}
|
fn PassInterface(&self, _: &JSRef<Blob>) {}
|
||||||
fn PassUnion(&self, _: HTMLElementOrLong) {}
|
fn PassUnion(&self, _: HTMLElementOrLong) {}
|
||||||
|
fn PassUnion2(&self, _: StringOrFormData) {}
|
||||||
fn PassAny(&self, _: *JSContext, _: JSVal) {}
|
fn PassAny(&self, _: *JSContext, _: JSVal) {}
|
||||||
|
|
||||||
fn PassNullableBoolean(&self, _: Option<bool>) {}
|
fn PassNullableBoolean(&self, _: Option<bool>) {}
|
||||||
|
@ -120,6 +121,7 @@ pub trait TestBindingMethods {
|
||||||
// fn PassNullableEnum(&self, _: Option<TestEnum>) {}
|
// fn PassNullableEnum(&self, _: Option<TestEnum>) {}
|
||||||
fn PassNullableInterface(&self, _: Option<JSRef<Blob>>) {}
|
fn PassNullableInterface(&self, _: Option<JSRef<Blob>>) {}
|
||||||
fn PassNullableUnion(&self, _: Option<HTMLElementOrLong>) {}
|
fn PassNullableUnion(&self, _: Option<HTMLElementOrLong>) {}
|
||||||
|
fn PassNullableUnion2(&self, _: Option<StringOrFormData>) {}
|
||||||
fn PassNullableAny(&self, _: *JSContext, _: Option<JSVal>) {}
|
fn PassNullableAny(&self, _: *JSContext, _: Option<JSVal>) {}
|
||||||
|
|
||||||
fn PassOptionalBoolean(&self, _: Option<bool>) {}
|
fn PassOptionalBoolean(&self, _: Option<bool>) {}
|
||||||
|
@ -138,6 +140,7 @@ pub trait TestBindingMethods {
|
||||||
fn PassOptionalEnum(&self, _: Option<TestEnum>) {}
|
fn PassOptionalEnum(&self, _: Option<TestEnum>) {}
|
||||||
fn PassOptionalInterface(&self, _: Option<JSRef<Blob>>) {}
|
fn PassOptionalInterface(&self, _: Option<JSRef<Blob>>) {}
|
||||||
fn PassOptionalUnion(&self, _: Option<HTMLElementOrLong>) {}
|
fn PassOptionalUnion(&self, _: Option<HTMLElementOrLong>) {}
|
||||||
|
fn PassOptionalUnion2(&self, _: Option<StringOrFormData>) {}
|
||||||
fn PassOptionalAny(&self, _: *JSContext, _: Option<JSVal>) {}
|
fn PassOptionalAny(&self, _: *JSContext, _: Option<JSVal>) {}
|
||||||
|
|
||||||
fn PassOptionalNullableBoolean(&self, _: Option<Option<bool>>) {}
|
fn PassOptionalNullableBoolean(&self, _: Option<Option<bool>>) {}
|
||||||
|
@ -156,6 +159,7 @@ pub trait TestBindingMethods {
|
||||||
// fn PassOptionalNullableEnum(&self, _: Option<Option<TestEnum>>) {}
|
// fn PassOptionalNullableEnum(&self, _: Option<Option<TestEnum>>) {}
|
||||||
fn PassOptionalNullableInterface(&self, _: Option<Option<JSRef<Blob>>>) {}
|
fn PassOptionalNullableInterface(&self, _: Option<Option<JSRef<Blob>>>) {}
|
||||||
fn PassOptionalNullableUnion(&self, _: Option<Option<HTMLElementOrLong>>) {}
|
fn PassOptionalNullableUnion(&self, _: Option<Option<HTMLElementOrLong>>) {}
|
||||||
|
fn PassOptionalNullableUnion2(&self, _: Option<Option<StringOrFormData>>) {}
|
||||||
|
|
||||||
fn PassOptionalBooleanWithDefault(&self, _: bool) {}
|
fn PassOptionalBooleanWithDefault(&self, _: bool) {}
|
||||||
fn PassOptionalByteWithDefault(&self, _: i8) {}
|
fn PassOptionalByteWithDefault(&self, _: i8) {}
|
||||||
|
@ -185,6 +189,7 @@ pub trait TestBindingMethods {
|
||||||
// fn PassOptionalNullableEnumWithDefault(&self, _: Option<TestEnum>) {}
|
// fn PassOptionalNullableEnumWithDefault(&self, _: Option<TestEnum>) {}
|
||||||
fn PassOptionalNullableInterfaceWithDefault(&self, _: Option<JSRef<Blob>>) {}
|
fn PassOptionalNullableInterfaceWithDefault(&self, _: Option<JSRef<Blob>>) {}
|
||||||
fn PassOptionalNullableUnionWithDefault(&self, _: Option<HTMLElementOrLong>) {}
|
fn PassOptionalNullableUnionWithDefault(&self, _: Option<HTMLElementOrLong>) {}
|
||||||
|
fn PassOptionalNullableUnion2WithDefault(&self, _: Option<StringOrFormData>) {}
|
||||||
fn PassOptionalAnyWithDefault(&self, _: *JSContext, _: JSVal) {}
|
fn PassOptionalAnyWithDefault(&self, _: *JSContext, _: JSVal) {}
|
||||||
|
|
||||||
fn PassOptionalNullableBooleanWithNonNullDefault(&self, _: Option<bool>) {}
|
fn PassOptionalNullableBooleanWithNonNullDefault(&self, _: Option<bool>) {}
|
||||||
|
|
|
@ -70,6 +70,7 @@ interface TestBinding {
|
||||||
attribute TestEnum enumAttribute;
|
attribute TestEnum enumAttribute;
|
||||||
attribute Blob interfaceAttribute;
|
attribute Blob interfaceAttribute;
|
||||||
// attribute (HTMLElement or long) unionAttribute;
|
// attribute (HTMLElement or long) unionAttribute;
|
||||||
|
// attribute (DOMString or FormData) union2Attribute;
|
||||||
attribute any anyAttribute;
|
attribute any anyAttribute;
|
||||||
|
|
||||||
attribute boolean? booleanAttributeNullable;
|
attribute boolean? booleanAttributeNullable;
|
||||||
|
@ -88,6 +89,7 @@ interface TestBinding {
|
||||||
readonly attribute TestEnum? enumAttributeNullable;
|
readonly attribute TestEnum? enumAttributeNullable;
|
||||||
attribute Blob? interfaceAttributeNullable;
|
attribute Blob? interfaceAttributeNullable;
|
||||||
// attribute (HTMLElement or long)? unionAttributeNullable;
|
// attribute (HTMLElement or long)? unionAttributeNullable;
|
||||||
|
// attribute (DOMString or FormData)? union2AttributeNullable;
|
||||||
|
|
||||||
void passBoolean(boolean arg);
|
void passBoolean(boolean arg);
|
||||||
void passByte(byte arg);
|
void passByte(byte arg);
|
||||||
|
@ -105,6 +107,7 @@ interface TestBinding {
|
||||||
void passEnum(TestEnum arg);
|
void passEnum(TestEnum arg);
|
||||||
void passInterface(Blob arg);
|
void passInterface(Blob arg);
|
||||||
void passUnion((HTMLElement or long) arg);
|
void passUnion((HTMLElement or long) arg);
|
||||||
|
void passUnion2((DOMString or FormData) data);
|
||||||
void passAny(any arg);
|
void passAny(any arg);
|
||||||
|
|
||||||
void passNullableBoolean(boolean? arg);
|
void passNullableBoolean(boolean? arg);
|
||||||
|
@ -123,6 +126,7 @@ interface TestBinding {
|
||||||
// void passNullableEnum(TestEnum? arg);
|
// void passNullableEnum(TestEnum? arg);
|
||||||
void passNullableInterface(Blob? arg);
|
void passNullableInterface(Blob? arg);
|
||||||
void passNullableUnion((HTMLElement or long)? arg);
|
void passNullableUnion((HTMLElement or long)? arg);
|
||||||
|
void passNullableUnion2((DOMString or FormData)? data);
|
||||||
|
|
||||||
void passOptionalBoolean(optional boolean arg);
|
void passOptionalBoolean(optional boolean arg);
|
||||||
void passOptionalByte(optional byte arg);
|
void passOptionalByte(optional byte arg);
|
||||||
|
@ -140,6 +144,7 @@ interface TestBinding {
|
||||||
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 passOptionalUnion2(optional (DOMString or FormData) data);
|
||||||
void passOptionalAny(optional any arg);
|
void passOptionalAny(optional any arg);
|
||||||
|
|
||||||
void passOptionalNullableBoolean(optional boolean? arg);
|
void passOptionalNullableBoolean(optional boolean? arg);
|
||||||
|
@ -158,6 +163,7 @@ interface TestBinding {
|
||||||
// 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 passOptionalNullableUnion2(optional (DOMString or FormData)? data);
|
||||||
|
|
||||||
void passOptionalBooleanWithDefault(optional boolean arg = false);
|
void passOptionalBooleanWithDefault(optional boolean arg = false);
|
||||||
void passOptionalByteWithDefault(optional byte arg = 0);
|
void passOptionalByteWithDefault(optional byte arg = 0);
|
||||||
|
@ -171,6 +177,7 @@ interface TestBinding {
|
||||||
void passOptionalStringWithDefault(optional DOMString arg = "");
|
void passOptionalStringWithDefault(optional DOMString arg = "");
|
||||||
void passOptionalEnumWithDefault(optional TestEnum arg = "foo");
|
void passOptionalEnumWithDefault(optional TestEnum arg = "foo");
|
||||||
// void passOptionalUnionWithDefault(optional (HTMLElement or long) arg = 9);
|
// void passOptionalUnionWithDefault(optional (HTMLElement or long) arg = 9);
|
||||||
|
// void passOptionalUnion2WithDefault(optional(DOMString or FormData)? data = "foo");
|
||||||
|
|
||||||
void passOptionalNullableBooleanWithDefault(optional boolean? arg = null);
|
void passOptionalNullableBooleanWithDefault(optional boolean? arg = null);
|
||||||
void passOptionalNullableByteWithDefault(optional byte? arg = null);
|
void passOptionalNullableByteWithDefault(optional byte? arg = null);
|
||||||
|
@ -186,6 +193,7 @@ interface TestBinding {
|
||||||
// void passOptionalNullableEnumWithDefault(optional TestEnum? arg = null);
|
// void passOptionalNullableEnumWithDefault(optional TestEnum? arg = null);
|
||||||
void passOptionalNullableInterfaceWithDefault(optional Blob? arg = null);
|
void passOptionalNullableInterfaceWithDefault(optional Blob? arg = null);
|
||||||
void passOptionalNullableUnionWithDefault(optional (HTMLElement or long)? arg = null);
|
void passOptionalNullableUnionWithDefault(optional (HTMLElement or long)? arg = null);
|
||||||
|
void passOptionalNullableUnion2WithDefault(optional (DOMString or FormData)? data = null);
|
||||||
void passOptionalAnyWithDefault(optional any arg = null);
|
void passOptionalAnyWithDefault(optional any arg = null);
|
||||||
|
|
||||||
void passOptionalNullableBooleanWithNonNullDefault(optional boolean? arg = false);
|
void passOptionalNullableBooleanWithNonNullDefault(optional boolean? arg = false);
|
||||||
|
@ -202,4 +210,5 @@ interface TestBinding {
|
||||||
void passOptionalNullableStringWithNonNullDefault(optional DOMString? arg = "");
|
void passOptionalNullableStringWithNonNullDefault(optional DOMString? arg = "");
|
||||||
// void passOptionalNullableEnumWithNonNullDefault(optional TestEnum? arg = "foo");
|
// void passOptionalNullableEnumWithNonNullDefault(optional TestEnum? arg = "foo");
|
||||||
// void passOptionalNullableUnionWithNonNullDefault(optional (HTMLElement or long)? arg = 7);
|
// void passOptionalNullableUnionWithNonNullDefault(optional (HTMLElement or long)? arg = 7);
|
||||||
|
// void passOptionalNullableUnion2WithNonNullDefault(optional (DOMString or FormData)? data = "foo");
|
||||||
};
|
};
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue