Wed, 31 Dec 2014 06:09:35 +0100
Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.
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 if (count > 2)
26 return 0;
27 throw new SyntaxError("fnord");
28 }
29 };
31 var arr = [];
32 Object.defineProperty(arr, "length", { value: 0, writable: false });
34 try
35 {
36 Object.defineProperty(arr, "length",
37 {
38 value: convertible,
39 writable: true,
40 configurable: true,
41 enumerable: true
42 });
43 throw new Error("didn't throw");
44 }
45 catch (e)
46 {
47 assertEq(e instanceof SyntaxError, true, "expected SyntaxError, got " + e);
48 }
50 assertEq(count, 1);
51 assertEq(arr.length, 0);
53 /******************************************************************************/
55 if (typeof reportCompare === "function")
56 reportCompare(true, true);
58 print("Tests complete");