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
|
// Set methods throw when passed a this-value that isn't a Set.
load(libdir + "asserts.js");
function testcase(obj, fn) {
assertEq(typeof fn, "function");
var args = Array.slice(arguments, 2);
assertThrowsInstanceOf(function () { fn.apply(obj, args); }, TypeError);
}
var Set_size_getter = Object.getOwnPropertyDescriptor(Set.prototype, "size").get;
function test(obj) {
testcase(obj, Set.prototype.has, 12);
testcase(obj, Set.prototype.add, 12);
testcase(obj, Set.prototype.delete, 12);
testcase(obj, Set.prototype.clear);
testcase(obj, Set.prototype.keys);
testcase(obj, Set.prototype.values);
testcase(obj, Set.prototype.entries);
testcase(obj, Set_size_getter);
}
test(Set.prototype);
test(Object.create(new Set));
test(new Map());
test({});
test(null);
test(undefined);
|