[DFG][FTL] Support MapSet / SetAdd intrinsics
[WebKit-https.git] / JSTests / stress / map-set-check-failure.js
1 function shouldBe(actual, expected) {
2     if (actual !== expected)
3         throw new Error('bad value: ' + actual);
4 }
5
6 function shouldThrow(func, errorMessage) {
7     var errorThrown = false;
8     var error = null;
9     try {
10         func();
11     } catch (e) {
12         errorThrown = true;
13         error = e;
14     }
15     if (!errorThrown)
16         throw new Error('not thrown');
17     if (String(error) !== errorMessage)
18         throw new Error(`bad error: ${String(error)}`);
19 }
20
21 var func = Map.prototype.set;
22 function target(map)
23 {
24     return func.call(map, 42, 42);
25 }
26 noInline(target);
27
28 for (var i = 0; i < 1e6; ++i) {
29     var map = new Map();
30     shouldBe(target(map), map);
31     shouldBe(map.get(42), 42);
32 }
33 shouldThrow(() => {
34     target(new Set());
35 }, `TypeError: Map operation called on non-Map object`);