toNumber.js (1314B)
1 load(libdir + "asserts.js"); 2 3 var sym = Symbol(); 4 5 function add2(x) { 6 return x + 2; 7 } 8 for (var i = 0; i < 9; i++) 9 assertThrowsInstanceOf(() => add2(sym), TypeError); 10 11 function sqr(x) { 12 return x * x; 13 } 14 for (var i = 0; i < 9; i++) 15 assertThrowsInstanceOf(() => sqr(sym), TypeError); 16 17 function bit_or(x) { 18 return x | x; 19 } 20 for (var i = 0; i < 9; i++) 21 assertThrowsInstanceOf(() => bit_or(sym), TypeError); 22 23 function bit_not(x) { 24 return ~x; 25 } 26 for (var i = 0; i < 9; i++) 27 assertThrowsInstanceOf(() => bit_not(sym), TypeError); 28 29 function plus(x) { 30 return +x; 31 } 32 for (var i = 0; i < 9; i++) 33 assertThrowsInstanceOf(() => plus(sym), TypeError); 34 35 function f(a, b) { 36 return a + b; 37 } 38 39 function testPoly() { 40 assertEq(f(20, 30), 50); 41 assertEq(f("one", "two"), "onetwo"); 42 assertThrowsInstanceOf(() => f(Symbol("one"), Symbol("two")), TypeError); 43 assertThrowsInstanceOf(() => f(Symbol("14"), 14), TypeError); 44 assertThrowsInstanceOf(() => f(Symbol("14"), 13.719), TypeError); 45 assertThrowsInstanceOf(() => f(14, Symbol("14")), TypeError); 46 assertThrowsInstanceOf(() => f(13.719, Symbol("14")), TypeError); 47 } 48 49 for (var i = 0; i < 9; i++) 50 testPoly(); 51 52 for (var i = 0; i < 9; i++) 53 assertThrowsInstanceOf(() => assertEq(f(Symbol("14"), "40"), NaN), TypeError);