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