]> git.saurik.com Git - apple/javascriptcore.git/blob - tests/stress/map-constructor-adder.js
JavaScriptCore-7601.1.46.3.tar.gz
[apple/javascriptcore.git] / tests / stress / map-constructor-adder.js
1 // Map constructor with adder change.
2
3 var originalAdder = Map.prototype.set;
4 var counter = 0;
5
6 Map.prototype.set = function (key, value) {
7 counter++;
8 return originalAdder.call(this, key, value);
9 };
10
11 var values = [
12 [ 0, 0 ],
13 [ 1, 1 ],
14 [ 2, 2 ],
15 [ 3, 3 ],
16 [ 4, 4 ],
17 [ 5, 5 ],
18 [ 4, 4 ],
19 [ 3, 3 ],
20 [ 2, 2 ],
21 [ 1, 1 ],
22 [ 0, 0 ],
23 ];
24 var map = new Map(values);
25 if (map.size !== 6)
26 throw "Error: bad map size " + map.size;
27 if (counter !== values.length)
28 throw "Error: bad counter " + counter;
29
30 Map.prototype.set = function () {
31 throw new Error("adder called");
32 };
33
34 var map = new Map();
35 var map = new Map([]);
36 var error = null;
37 try {
38 var map = new Map([ [0, 0] ]);
39 } catch (e) {
40 error = e;
41 }
42 if (!error)
43 throw "Error: error not thrown";
44 if (String(error) !== "Error: adder called")
45 throw "Error: bad error " + String(error);
46