isArray.js (1147B)
1 function f() { 2 assertEq(Array.isArray(10), false); 3 assertEq(Array.isArray([]), true); 4 assertEq(Array.isArray(Math), false); 5 6 var objs = [{}, []]; 7 for (var i=0; i<objs.length; i++) 8 assertEq(Array.isArray(objs[i]), i === 1); 9 var arr = [[], [], 1]; 10 for (var i=0; i<arr.length; i++) 11 assertEq(Array.isArray(arr[i]), i < 2); 12 } 13 f(); 14 f(); 15 f(); 16 17 function testObjects() { 18 var arr = [{}, [1], Array.prototype, 19 new Proxy(this, {}), new Proxy([], {})]; 20 while (true) { 21 var arrays = 0; 22 for (var i = 0; i < arr.length; i++) { 23 if (Array.isArray(arr[i])) 24 arrays++; 25 } 26 assertEq(arrays, 3); 27 if (inIon()) 28 break; 29 } 30 } 31 testObjects(); 32 33 function testValues() { 34 var arr = [1, {}, [1], Array.prototype, null, 35 new Proxy(this, {}), new Proxy([], {})]; 36 while (true) { 37 var arrays = 0; 38 for (var i = 0; i < arr.length; i++) { 39 if (Array.isArray(arr[i])) 40 arrays++; 41 } 42 assertEq(arrays, 3); 43 if (inIon()) 44 break; 45 } 46 } 47 testValues();