| load(libdir + "asserts.js"); |
| |
| var sym = Symbol(); |
| |
| function add2(x) { |
| return x + 2; |
| } |
| for (var i = 0; i < 9; i++) |
| assertThrowsInstanceOf(() => add2(sym), TypeError); |
| |
| function sqr(x) { |
| return x * x; |
| } |
| for (var i = 0; i < 9; i++) |
| assertThrowsInstanceOf(() => sqr(sym), TypeError); |
| |
| function bit_or(x) { |
| return x | x; |
| } |
| for (var i = 0; i < 9; i++) |
| assertThrowsInstanceOf(() => bit_or(sym), TypeError); |
| |
| function bit_not(x) { |
| return ~x; |
| } |
| for (var i = 0; i < 9; i++) |
| assertThrowsInstanceOf(() => bit_not(sym), TypeError); |
| |
| function plus(x) { |
| return +x; |
| } |
| for (var i = 0; i < 9; i++) |
| assertThrowsInstanceOf(() => plus(sym), TypeError); |
| |
| function f(a, b) { |
| return a + b; |
| } |
| |
| function testPoly() { |
| assertEq(f(20, 30), 50); |
| assertEq(f("one", "two"), "onetwo"); |
| assertThrowsInstanceOf(() => f(Symbol("one"), Symbol("two")), TypeError); |
| assertThrowsInstanceOf(() => f(Symbol("14"), 14), TypeError); |
| assertThrowsInstanceOf(() => f(Symbol("14"), 13.719), TypeError); |
| assertThrowsInstanceOf(() => f(14, Symbol("14")), TypeError); |
| assertThrowsInstanceOf(() => f(13.719, Symbol("14")), TypeError); |
| } |
| |
| for (var i = 0; i < 9; i++) |
| testPoly(); |
| |
| for (var i = 0; i < 9; i++) |
| assertThrowsInstanceOf(() => assertEq(f(Symbol("14"), "40"), NaN), TypeError); |