mirror of
https://github.com/fluencelabs/wasm-bindgen
synced 2025-06-12 04:21:21 +00:00
Add support for variadic arguments in WebIDL
This commit is contained in:
@ -547,13 +547,26 @@ impl<'a, 'b> Rust2Js<'a, 'b> {
|
||||
return Err(failure::err_msg("a function with no arguments cannot be variadic"));
|
||||
}
|
||||
let last_arg = self.js_arguments.len() - 1; // check implies >= 0
|
||||
self.ret_expr.replace(
|
||||
"JS",
|
||||
&format!("{}({}, ...{})",
|
||||
invoc,
|
||||
self.js_arguments[..last_arg].join(", "),
|
||||
self.js_arguments[last_arg])
|
||||
)
|
||||
if self.js_arguments.len() != 1 {
|
||||
self.ret_expr.replace(
|
||||
"JS",
|
||||
&format!(
|
||||
"{}({}, ...{})",
|
||||
invoc,
|
||||
self.js_arguments[..last_arg].join(", "),
|
||||
self.js_arguments[last_arg],
|
||||
)
|
||||
)
|
||||
} else {
|
||||
self.ret_expr.replace(
|
||||
"JS",
|
||||
&format!(
|
||||
"{}(...{})",
|
||||
invoc,
|
||||
self.js_arguments[last_arg],
|
||||
)
|
||||
)
|
||||
}
|
||||
} else {
|
||||
self.ret_expr.replace(
|
||||
"JS",
|
||||
|
Reference in New Issue
Block a user