@@ -36,7 +36,7 @@ extern "C" {
36
36
fn get_value_to_bind_to ( ) -> JsValue ;
37
37
fn list ( ) -> Function ;
38
38
fn add_arguments ( ) -> Function ;
39
- fn call_function ( f : Function ) -> JsValue ;
39
+ fn call_function ( f : & Function ) -> JsValue ;
40
40
fn call_function_arg ( f : & Function , arg0 : JsValue ) -> JsValue ;
41
41
42
42
}
@@ -45,22 +45,24 @@ extern "C" {
45
45
fn bind ( ) {
46
46
let f = get_function_to_bind ( ) ;
47
47
let new_f = f. bind ( & get_value_to_bind_to ( ) ) ;
48
- assert_eq ! ( call_function( f) , 1 ) ;
49
- assert_eq ! ( call_function( new_f) , 2 ) ;
48
+ assert_eq ! ( call_function( & f) , 1 ) ;
49
+ assert_eq ! ( call_function( & new_f) , 2 ) ;
50
50
}
51
51
52
52
#[ wasm_bindgen_test]
53
53
fn bind0 ( ) {
54
54
let f = get_function_to_bind ( ) ;
55
55
let new_f = f. bind0 ( & get_value_to_bind_to ( ) ) ;
56
- assert_eq ! ( call_function( f) , 1 ) ;
57
- assert_eq ! ( call_function( new_f) , 2 ) ;
56
+ assert_eq ! ( call_function( & f) , 1 ) ;
57
+ assert_eq ! ( call_function( & new_f) , 2 ) ;
58
58
}
59
59
60
60
#[ wasm_bindgen_test]
61
61
fn bind1 ( ) {
62
- //let a_list = list();
63
- //let prepended_list = a_list.bind1(&JsValue::NULL, &JsValue::from(2));
62
+ let a_list = list ( ) ;
63
+ let prepended_list = a_list. bind1 ( & JsValue :: NULL , & JsValue :: from ( 2 ) ) ;
64
+
65
+ assert_eq ! ( Array :: from( & call_function( & prepended_list) ) . pop( ) , 2 ) ;
64
66
65
67
let adder = add_arguments ( ) ;
66
68
let add_42 = adder. bind1 ( & JsValue :: NULL , & JsValue :: from ( 42 ) ) ;
@@ -69,6 +71,38 @@ fn bind1() {
69
71
assert_eq ! ( call_function_arg( & add_42, JsValue :: from( 378 ) ) , 420 ) ;
70
72
}
71
73
74
+ #[ wasm_bindgen_test]
75
+ fn bind2 ( ) {
76
+ let a_list = list ( ) ;
77
+ let prepended_list = a_list. bind2 ( & JsValue :: NULL , & JsValue :: from ( 2 ) , & JsValue :: from ( 3 ) ) ;
78
+
79
+ let arr = Array :: from ( & call_function ( & prepended_list) ) ;
80
+
81
+ assert_eq ! ( arr. pop( ) , 3 ) ;
82
+ assert_eq ! ( arr. pop( ) , 2 ) ;
83
+
84
+ let adder = add_arguments ( ) ;
85
+ let always_69 = adder. bind2 ( & JsValue :: NULL , & JsValue :: from ( 66 ) , & JsValue :: from ( 3 ) ) ;
86
+
87
+ assert_eq ! ( call_function( & always_69) , 69 ) ;
88
+ }
89
+
90
+ #[ wasm_bindgen_test]
91
+ fn bind3 ( ) {
92
+ let a_list = list ( ) ;
93
+ let prepended_list = a_list. bind3 ( & JsValue :: NULL , & JsValue :: from ( 2 ) , & JsValue :: from ( 3 ) , & JsValue :: from ( 4 ) ) ;
94
+
95
+ let arr = Array :: from ( & call_function ( & prepended_list) ) ;
96
+
97
+ assert_eq ! ( arr. pop( ) , 4 ) ;
98
+ assert_eq ! ( arr. pop( ) , 3 ) ;
99
+ assert_eq ! ( arr. pop( ) , 2 ) ;
100
+
101
+ let adder = add_arguments ( ) ;
102
+ let always_69 = adder. bind2 ( & JsValue :: NULL , & JsValue :: from ( 66 ) , & JsValue :: from ( 3 ) ) ;
103
+
104
+ assert_eq ! ( call_function( & always_69) , 69 ) ;
105
+ }
72
106
73
107
#[ wasm_bindgen_test]
74
108
fn length ( ) {
0 commit comments