Fri, 16 Jan 2015 04:50:19 +0100
Replace accessor implementation with direct member state manipulation, by
request https://trac.torproject.org/projects/tor/ticket/9701#comment:32
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 */
8 //-----------------------------------------------------------------------------
9 var BUGNUMBER = 866700;
10 var summary = "Assertion redefining non-writable length to a non-numeric value";
12 print(BUGNUMBER + ": " + summary);
14 /**************
15 * BEGIN TEST *
16 **************/
18 var count = 0;
20 var convertible =
21 {
22 valueOf: function()
23 {
24 count++;
25 return 0;
26 }
27 };
29 var arr = [];
30 Object.defineProperty(arr, "length", { value: 0, writable: false });
32 Object.defineProperty(arr, "length", { value: convertible });
33 assertEq(count, 2);
35 Object.defineProperty(arr, "length", { value: convertible });
36 assertEq(count, 4);
38 assertEq(arr.length, 0);
40 /******************************************************************************/
42 if (typeof reportCompare === "function")
43 reportCompare(true, true);
45 print("Tests complete");