MIRROR: javascript for 馃悳's, a tiny runtime with big ambitions
1import { test, testDeep, summary } from './helpers.js';
2
3console.log('For-In Enumeration Tests\n');
4
5var strPrim = 'abc';
6var strPrimKeys = [];
7for (var k in strPrim) strPrimKeys.push(k);
8testDeep('string primitive for-in keys', strPrimKeys, ['0', '1', '2']);
9test('string primitive length', strPrim.length, 3);
10
11var strObj = new String('abc');
12var strObjKeys = [];
13for (var k in strObj) strObjKeys.push(k);
14testDeep('String object for-in keys', strObjKeys, ['0', '1', '2']);
15test('String object length', strObj.length, 3);
16
17var sparse = [];
18sparse[5] = 'hello';
19test('sparse array length', sparse.length, 6);
20var sparseKeys = [];
21for (var k in sparse) sparseKeys.push(k);
22testDeep('sparse array for-in keys', sparseKeys, ['5']);
23
24var arr = [10, 20, 30];
25var arrKeys = [];
26for (var k in arr) arrKeys.push(k);
27testDeep('array for-in keys', arrKeys, ['0', '1', '2']);
28
29var obj = { a: 1, b: 2, c: 3 };
30var objKeys = [];
31for (var k in obj) objKeys.push(k);
32testDeep('object for-in keys', objKeys, ['a', 'b', 'c']);
33
34var arrWithProps = [1, 2];
35arrWithProps.foo = 'bar';
36var arrPropsKeys = [];
37for (var k in arrWithProps) arrPropsKeys.push(k);
38testDeep('array with properties for-in keys', arrPropsKeys, ['0', '1', 'foo']);
39
40summary();