summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/collections/Map-surfaces-2.js
blob: 7fb638b623b71a0ac17dfee5a2ef9bb1d20c3d22 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
// Map methods throw when passed a this-value that isn't a Map.

load(libdir + "asserts.js");

function testcase(obj, fn, ...args) {
    assertEq(typeof fn, "function");
    assertThrowsInstanceOf(function () { fn.apply(obj, args); }, TypeError);
}

var Map_size_getter = Object.getOwnPropertyDescriptor(Map.prototype, "size").get;

function test(obj) {
    testcase(obj, Map.prototype.get, "x");
    testcase(obj, Map.prototype.has, "x");
    testcase(obj, Map.prototype.set, "x", 1);
    testcase(obj, Map.prototype.delete, "x");
    testcase(obj, Map.prototype.clear);
    testcase(obj, Map.prototype.keys);
    testcase(obj, Map.prototype.values);
    testcase(obj, Map.prototype.entries);
    testcase(obj, Map_size_getter);
}

test(Map.prototype);
test(Object.create(new Map));
test(new Set());
test({});
test(null);
test(undefined);