js/src/tests/ecma_5/Object/15.2.3.4-02.js

changeset 0
6474c204b198
equal deleted inserted replaced
-1:000000000000 0:3a283c1bb6e6
1 /*
2 * Any copyright is dedicated to the Public Domain.
3 * http://creativecommons.org/licenses/publicdomain/
4 * Contributor:
5 * Jeff Walden <jwalden+code@mit.edu>
6 */
7
8 //-----------------------------------------------------------------------------
9 var BUGNUMBER = 518663;
10 var summary = 'Object.getOwnPropertyNames: array objects';
11
12 print(BUGNUMBER + ": " + summary);
13
14 /**************
15 * BEGIN TEST *
16 **************/
17
18 var a, names, expected;
19
20 function arraysEqual(a1, a2)
21 {
22 return a1.length === a2.length &&
23 a1.every(function(v, i) { return v === a2[i]; });
24 }
25
26
27 a = [0, 1, 2];
28
29 names = Object.getOwnPropertyNames(a).sort();
30 expected = ["0", "1", "2", "length"].sort();
31
32 a = [1, , , 7];
33 a.p = 2;
34 Object.defineProperty(a, "q", { value: 42, enumerable: false });
35
36 names = Object.getOwnPropertyNames(a).sort();
37 expected = ["0", "3", "p", "q", "length"].sort();
38 assertEq(arraysEqual(names, expected), true);
39
40
41 a = [];
42
43 names = Object.getOwnPropertyNames(a).sort();
44 expected = ["length"];
45 assertEq(arraysEqual(names, expected), true);
46
47
48 /******************************************************************************/
49
50 reportCompare(true, true);
51
52 print("All tests passed!");

mercurial