mirror of
https://github.com/fluencelabs/wasm-bindgen
synced 2025-06-12 12:31:22 +00:00
Add support for variadic arguments in WebIDL
This commit is contained in:
@ -110,6 +110,13 @@ global.OptionalAndUnionArguments = class OptionalAndUnionArguments {
|
||||
}
|
||||
};
|
||||
|
||||
global.Variadic = class Variadic {
|
||||
constructor() {}
|
||||
sum(...values) {
|
||||
return values.reduce((a, b) => a + b, 0);
|
||||
}
|
||||
};
|
||||
|
||||
global.PartialInterface = class PartialInterface {
|
||||
get un() {
|
||||
return 1;
|
||||
|
@ -90,6 +90,12 @@ fn optional_and_union_arguments() {
|
||||
assert_eq!(f.m_with_b_and_str_and_opt_bool("abc", false, "5", Some(true)), "string, abc, boolean, false, string, 5, boolean, true");
|
||||
}
|
||||
|
||||
#[wasm_bindgen_test]
|
||||
fn variadic() {
|
||||
let f = Variadic::new().unwrap();
|
||||
assert_eq!(f.sum(Box::new([1, 2, 3, 4, 5])), 15);
|
||||
}
|
||||
|
||||
#[wasm_bindgen_test]
|
||||
fn unforgeable_is_structural() {
|
||||
let f = Unforgeable::new().unwrap();
|
||||
|
5
crates/webidl-tests/simple.webidl
vendored
5
crates/webidl-tests/simple.webidl
vendored
@ -57,6 +57,11 @@ interface OptionalAndUnionArguments {
|
||||
);
|
||||
};
|
||||
|
||||
[Constructor()]
|
||||
interface Variadic {
|
||||
short sum(short... values);
|
||||
};
|
||||
|
||||
[Constructor()]
|
||||
interface Unforgeable {
|
||||
[Unforgeable] readonly attribute short uno;
|
||||
|
Reference in New Issue
Block a user