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