| load(libdir + "asserts.js"); |
| load(libdir + "iteration.js"); |
| |
| function testMethod(name) { |
| var method = WeakSet.prototype[name]; |
| |
| assertThrowsInstanceOf(function() { method.call(1); }, TypeError); |
| assertThrowsInstanceOf(function() { method.call({}); }, TypeError); |
| assertThrowsInstanceOf(function() { method.call(new WeakMap); }, TypeError); |
| assertThrowsInstanceOf(function() { method.call(WeakSet.prototype); }, TypeError); |
| } |
| |
| testMethod("has"); |
| testMethod("add"); |
| testMethod("delete"); |
| testMethod("clear"); |
| |
| assertThrowsInstanceOf(function() { var ws = new WeakSet(); ws.add(1); }, TypeError); |
| assertThrowsInstanceOf(function() { new WeakSet({[Symbol.iterator]: 2}) }, TypeError); |
| assertEq(typeof [][Symbol.iterator], "function"); |
| |
| assertThrowsInstanceOf(function() { WeakSet(); }, TypeError); |