Imported Upstream version 1.0.0
[platform/upstream/js.git] / js / src / tests / ecma_5 / Object / 15.2.3.4-02.js
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!");