js/src/tests/ecma_5/Array/redefine-nonwritable-length-custom-conversion-call-counts.js

changeset 0
6474c204b198
equal deleted inserted replaced
-1:000000000000 0:980bb4a9d807
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 = 866700;
10 var summary = "Assertion redefining non-writable length to a non-numeric value";
11
12 print(BUGNUMBER + ": " + summary);
13
14 /**************
15 * BEGIN TEST *
16 **************/
17
18 var count = 0;
19
20 var convertible =
21 {
22 valueOf: function()
23 {
24 count++;
25 return 0;
26 }
27 };
28
29 var arr = [];
30 Object.defineProperty(arr, "length", { value: 0, writable: false });
31
32 Object.defineProperty(arr, "length", { value: convertible });
33 assertEq(count, 2);
34
35 Object.defineProperty(arr, "length", { value: convertible });
36 assertEq(count, 4);
37
38 assertEq(arr.length, 0);
39
40 /******************************************************************************/
41
42 if (typeof reportCompare === "function")
43 reportCompare(true, true);
44
45 print("Tests complete");

mercurial