mirror of
https://github.com/servo/servo.git
synced 2025-06-22 16:18:59 +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)
|
||||
#XXXjdm dunno about typeName here
|
||||
typeName = "/*" + type.name + "*/"
|
||||
elif type.isDOMString():
|
||||
name = type.name
|
||||
typeName = "DOMString"
|
||||
elif type.isPrimitive():
|
||||
name = type.name
|
||||
typeName = builtinNames[type.tag()]
|
||||
|
@ -5312,6 +5315,7 @@ class GlobalGenRoots():
|
|||
'dom::bindings::utils::unwrap_jsmanaged',
|
||||
'dom::bindings::codegen::PrototypeList',
|
||||
'dom::bindings::conversions::{FromJSValConvertible, ToJSValConvertible}',
|
||||
'dom::bindings::conversions::{Default, Empty}',
|
||||
'dom::bindings::error::throw_not_in_union',
|
||||
'dom::bindings::js::JS',
|
||||
'dom::types::*',
|
||||
|
@ -5337,6 +5341,7 @@ class GlobalGenRoots():
|
|||
'js::glue::{GetProxyPrivate, NewProxyObject, ProxyTraps}',
|
||||
'js::glue::{RUST_FUNCTION_VALUE_TO_JITINFO}',
|
||||
'js::glue::{RUST_JS_NumberValue, RUST_JSID_IS_STRING}',
|
||||
'servo_util::str::DOMString',
|
||||
])
|
||||
|
||||
# Add the auto-generated comment.
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
use dom::bindings::js::{JS, JSRef, Temporary};
|
||||
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::TestEnumValues::_empty;
|
||||
use dom::bindings::str::ByteString;
|
||||
|
@ -102,6 +102,7 @@ pub trait TestBindingMethods {
|
|||
fn PassEnum(&self, _: TestEnum) {}
|
||||
fn PassInterface(&self, _: &JSRef<Blob>) {}
|
||||
fn PassUnion(&self, _: HTMLElementOrLong) {}
|
||||
fn PassUnion2(&self, _: StringOrFormData) {}
|
||||
fn PassAny(&self, _: *JSContext, _: JSVal) {}
|
||||
|
||||
fn PassNullableBoolean(&self, _: Option<bool>) {}
|
||||
|
@ -120,6 +121,7 @@ pub trait TestBindingMethods {
|
|||
// fn PassNullableEnum(&self, _: Option<TestEnum>) {}
|
||||
fn PassNullableInterface(&self, _: Option<JSRef<Blob>>) {}
|
||||
fn PassNullableUnion(&self, _: Option<HTMLElementOrLong>) {}
|
||||
fn PassNullableUnion2(&self, _: Option<StringOrFormData>) {}
|
||||
fn PassNullableAny(&self, _: *JSContext, _: Option<JSVal>) {}
|
||||
|
||||
fn PassOptionalBoolean(&self, _: Option<bool>) {}
|
||||
|
@ -138,6 +140,7 @@ pub trait TestBindingMethods {
|
|||
fn PassOptionalEnum(&self, _: Option<TestEnum>) {}
|
||||
fn PassOptionalInterface(&self, _: Option<JSRef<Blob>>) {}
|
||||
fn PassOptionalUnion(&self, _: Option<HTMLElementOrLong>) {}
|
||||
fn PassOptionalUnion2(&self, _: Option<StringOrFormData>) {}
|
||||
fn PassOptionalAny(&self, _: *JSContext, _: Option<JSVal>) {}
|
||||
|
||||
fn PassOptionalNullableBoolean(&self, _: Option<Option<bool>>) {}
|
||||
|
@ -156,6 +159,7 @@ pub trait TestBindingMethods {
|
|||
// fn PassOptionalNullableEnum(&self, _: Option<Option<TestEnum>>) {}
|
||||
fn PassOptionalNullableInterface(&self, _: Option<Option<JSRef<Blob>>>) {}
|
||||
fn PassOptionalNullableUnion(&self, _: Option<Option<HTMLElementOrLong>>) {}
|
||||
fn PassOptionalNullableUnion2(&self, _: Option<Option<StringOrFormData>>) {}
|
||||
|
||||
fn PassOptionalBooleanWithDefault(&self, _: bool) {}
|
||||
fn PassOptionalByteWithDefault(&self, _: i8) {}
|
||||
|
@ -185,6 +189,7 @@ pub trait TestBindingMethods {
|
|||
// fn PassOptionalNullableEnumWithDefault(&self, _: Option<TestEnum>) {}
|
||||
fn PassOptionalNullableInterfaceWithDefault(&self, _: Option<JSRef<Blob>>) {}
|
||||
fn PassOptionalNullableUnionWithDefault(&self, _: Option<HTMLElementOrLong>) {}
|
||||
fn PassOptionalNullableUnion2WithDefault(&self, _: Option<StringOrFormData>) {}
|
||||
fn PassOptionalAnyWithDefault(&self, _: *JSContext, _: JSVal) {}
|
||||
|
||||
fn PassOptionalNullableBooleanWithNonNullDefault(&self, _: Option<bool>) {}
|
||||
|
|
|
@ -70,6 +70,7 @@ interface TestBinding {
|
|||
attribute TestEnum enumAttribute;
|
||||
attribute Blob interfaceAttribute;
|
||||
// attribute (HTMLElement or long) unionAttribute;
|
||||
// attribute (DOMString or FormData) union2Attribute;
|
||||
attribute any anyAttribute;
|
||||
|
||||
attribute boolean? booleanAttributeNullable;
|
||||
|
@ -88,6 +89,7 @@ interface TestBinding {
|
|||
readonly attribute TestEnum? enumAttributeNullable;
|
||||
attribute Blob? interfaceAttributeNullable;
|
||||
// attribute (HTMLElement or long)? unionAttributeNullable;
|
||||
// attribute (DOMString or FormData)? union2AttributeNullable;
|
||||
|
||||
void passBoolean(boolean arg);
|
||||
void passByte(byte arg);
|
||||
|
@ -105,6 +107,7 @@ interface TestBinding {
|
|||
void passEnum(TestEnum arg);
|
||||
void passInterface(Blob arg);
|
||||
void passUnion((HTMLElement or long) arg);
|
||||
void passUnion2((DOMString or FormData) data);
|
||||
void passAny(any arg);
|
||||
|
||||
void passNullableBoolean(boolean? arg);
|
||||
|
@ -123,6 +126,7 @@ interface TestBinding {
|
|||
// void passNullableEnum(TestEnum? arg);
|
||||
void passNullableInterface(Blob? arg);
|
||||
void passNullableUnion((HTMLElement or long)? arg);
|
||||
void passNullableUnion2((DOMString or FormData)? data);
|
||||
|
||||
void passOptionalBoolean(optional boolean arg);
|
||||
void passOptionalByte(optional byte arg);
|
||||
|
@ -140,6 +144,7 @@ interface TestBinding {
|
|||
void passOptionalEnum(optional TestEnum arg);
|
||||
void passOptionalInterface(optional Blob arg);
|
||||
void passOptionalUnion(optional (HTMLElement or long) arg);
|
||||
void passOptionalUnion2(optional (DOMString or FormData) data);
|
||||
void passOptionalAny(optional any arg);
|
||||
|
||||
void passOptionalNullableBoolean(optional boolean? arg);
|
||||
|
@ -158,6 +163,7 @@ interface TestBinding {
|
|||
// void passOptionalNullableEnum(optional TestEnum? arg);
|
||||
void passOptionalNullableInterface(optional Blob? arg);
|
||||
void passOptionalNullableUnion(optional (HTMLElement or long)? arg);
|
||||
void passOptionalNullableUnion2(optional (DOMString or FormData)? data);
|
||||
|
||||
void passOptionalBooleanWithDefault(optional boolean arg = false);
|
||||
void passOptionalByteWithDefault(optional byte arg = 0);
|
||||
|
@ -171,6 +177,7 @@ interface TestBinding {
|
|||
void passOptionalStringWithDefault(optional DOMString arg = "");
|
||||
void passOptionalEnumWithDefault(optional TestEnum arg = "foo");
|
||||
// void passOptionalUnionWithDefault(optional (HTMLElement or long) arg = 9);
|
||||
// void passOptionalUnion2WithDefault(optional(DOMString or FormData)? data = "foo");
|
||||
|
||||
void passOptionalNullableBooleanWithDefault(optional boolean? arg = null);
|
||||
void passOptionalNullableByteWithDefault(optional byte? arg = null);
|
||||
|
@ -186,6 +193,7 @@ interface TestBinding {
|
|||
// void passOptionalNullableEnumWithDefault(optional TestEnum? arg = null);
|
||||
void passOptionalNullableInterfaceWithDefault(optional Blob? 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 passOptionalNullableBooleanWithNonNullDefault(optional boolean? arg = false);
|
||||
|
@ -202,4 +210,5 @@ interface TestBinding {
|
|||
void passOptionalNullableStringWithNonNullDefault(optional DOMString? arg = "");
|
||||
// void passOptionalNullableEnumWithNonNullDefault(optional TestEnum? arg = "foo");
|
||||
// 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