|
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!"); |