function test1() { function push(arr, x) { return arr.push(x); } var arr = []; for (var i=0; i<100; i++) { assertEq(push(arr, i), i + 1); } } test1(); function test2() { var arr; for (var i=0; i<60; i++) { arr = []; assertEq(arr.push(3.3), 1); assertEq(arr.push(undefined), 2); assertEq(arr.push(true), 3); assertEq(arr.push(Math), 4); assertEq(arr.toString(), "3.3,,true,[object Math]"); } } test2(); function test3() { function push(arr, v) { arr.push(v); } for (var i=0; i<60; i++) { var arr = []; push(arr, null); push(arr, 3.14); push(arr, {}); assertEq(arr.toString(), ",3.14,[object Object]"); } } test3();