Attempted to tackle #1622

This commit is contained in:
Samuel Warfield 2019-06-27 15:48:18 -06:00
parent 792ab403a1
commit caa86a07a0
2 changed files with 39 additions and 3 deletions

View File

@ -1076,8 +1076,44 @@ extern "C" {
/// with a given sequence of arguments preceding any provided when the new function is called.
///
/// [MDN documentation](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind)
#[wasm_bindgen(method)]
pub fn bind(this: &Function, context: &JsValue) -> Function;
#[wasm_bindgen(method, js_name = bind)]
pub fn bind0(this: &Function, context: &JsValue) -> Function;
/// The bind() method creates a new function that, when called, has its this keyword set to the provided value,
/// with a given sequence of arguments preceding any provided when the new function is called.
///
/// [MDN documentation](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind)
#[wasm_bindgen(method, js_name = bind)]
pub fn bind1(
this: &Function,
context: &JsValue,
arg1: &JsValue,
) -> Function;
/// The bind() method creates a new function that, when called, has its this keyword set to the provided value,
/// with a given sequence of arguments preceding any provided when the new function is called.
///
/// [MDN documentation](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind)
#[wasm_bindgen(method, js_name = bind)]
pub fn bind2(
this: &Function,
context: &JsValue,
arg1: &JsValue,
arg2: &JsValue,
) -> Function;
/// The bind() method creates a new function that, when called, has its this keyword set to the provided value,
/// with a given sequence of arguments preceding any provided when the new function is called.
///
/// [MDN documentation](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind)
#[wasm_bindgen(method, js_name = bind)]
pub fn bind3(
this: &Function,
context: &JsValue,
arg1: &JsValue,
arg2: &JsValue,
arg3: &JsValue,
) -> Function;
/// The length property indicates the number of arguments expected by the function.
///

View File

@ -40,7 +40,7 @@ extern "C" {
#[wasm_bindgen_test]
fn bind() {
let f = get_function_to_bind();
let new_f = f.bind(&get_value_to_bind_to());
let new_f = f.bind0(&get_value_to_bind_to());
assert_eq!(call_function(f), 1);
assert_eq!(call_function(new_f), 2);
}