mirror of
https://github.com/servo/servo.git
synced 2025-08-06 14:10:11 +01:00
Fix binding generation for overloaded functions with optionals and default values
This commit is contained in:
parent
33fa728d6e
commit
2974dae431
6 changed files with 14 additions and 7 deletions
|
@ -51,7 +51,6 @@ hyper = "0.10"
|
|||
hyper_serde = "0.7"
|
||||
image = "0.16"
|
||||
ipc-channel = "0.9"
|
||||
mozjs = { version = "0.1.7", features = ["promises"]}
|
||||
jstraceable_derive = {path = "../jstraceable_derive"}
|
||||
lazy_static = "0.2"
|
||||
libc = "0.2"
|
||||
|
@ -62,6 +61,7 @@ metrics = {path = "../metrics"}
|
|||
mitochondria = "1.1.2"
|
||||
mime = "0.2.1"
|
||||
mime_guess = "1.8.0"
|
||||
mozjs = { version = "0.1.8", features = ["promises"]}
|
||||
msg = {path = "../msg"}
|
||||
net_traits = {path = "../net_traits"}
|
||||
nonzero = {path = "../nonzero"}
|
||||
|
|
|
@ -483,7 +483,8 @@ class CGMethodCall(CGThing):
|
|||
else:
|
||||
# Just throw; we have no idea what we're supposed to
|
||||
# do with this.
|
||||
caseBody.append(CGGeneric("return Throw(cx, NS_ERROR_XPC_BAD_CONVERT_JS);"))
|
||||
caseBody.append(CGGeneric("throw_internal_error(cx, \"Could not convert JavaScript argument\");\n"
|
||||
"return false;"))
|
||||
|
||||
argCountCases.append(CGCase(str(argCount),
|
||||
CGList(caseBody, "\n")))
|
||||
|
@ -5591,6 +5592,7 @@ def generate_imports(config, cgthings, descriptors, callbacks=None, dictionaries
|
|||
'js::JSCLASS_RESERVED_SLOTS_MASK',
|
||||
'js::JS_CALLEE',
|
||||
'js::error::throw_type_error',
|
||||
'js::error::throw_internal_error',
|
||||
'js::jsapi::AutoIdVector',
|
||||
'js::jsapi::Call',
|
||||
'js::jsapi::CallArgs',
|
||||
|
|
|
@ -601,6 +601,8 @@ impl TestBindingMethods for TestBinding {
|
|||
fn PassOptionalNullableStringWithNonNullDefault(&self, _: Option<DOMString>) {}
|
||||
fn PassOptionalNullableUsvstringWithNonNullDefault(&self, _: Option<USVString>) {}
|
||||
// fn PassOptionalNullableEnumWithNonNullDefault(self, _: Option<TestEnum>) {}
|
||||
fn PassOptionalOverloaded(&self, a: &TestBinding, _: u32, _: u32) -> DomRoot<TestBinding> { DomRoot::from_ref(a) }
|
||||
fn PassOptionalOverloaded_(&self, _: &Blob, _: u32) { }
|
||||
|
||||
fn PassVariadicBoolean(&self, _: Vec<bool>) {}
|
||||
fn PassVariadicBooleanAndDefault(&self, _: bool, _: Vec<bool>) {}
|
||||
|
|
|
@ -409,6 +409,9 @@ interface TestBinding {
|
|||
// void passOptionalNullableEnumWithNonNullDefault(optional TestEnum? arg = "foo");
|
||||
// void passOptionalNullableUnionWithNonNullDefault(optional (HTMLElement or long)? arg = 7);
|
||||
// void passOptionalNullableUnion2WithNonNullDefault(optional (Event or DOMString)? data = "foo");
|
||||
TestBinding passOptionalOverloaded(TestBinding arg0, optional unsigned long arg1 = 0,
|
||||
optional unsigned long arg2 = 0);
|
||||
void passOptionalOverloaded(Blob arg0, optional unsigned long arg1 = 0);
|
||||
|
||||
void passVariadicBoolean(boolean... args);
|
||||
void passVariadicBooleanAndDefault(optional boolean arg = true, boolean... args);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue