testCondSwitch1.js (846B)
1 function get(x) { 2 return x; 3 } 4 5 function f(x) { 6 switch(x) { 7 case get(0): 8 return 0; 9 case get(1): 10 return 1; 11 case get("foo"): 12 return "foo"; 13 case get(true): 14 return true; 15 case get(false): 16 return false; 17 case get({}): 18 return {}; 19 case get(null): 20 return null; 21 case Number.MIN_VALUE: 22 return Number.MIN_VALUE; 23 case Math: 24 return Math; 25 default: 26 return -123; 27 } 28 } 29 30 assertEq(f(0), 0); 31 assertEq(f(-0), 0); 32 assertEq(f(1), 1); 33 assertEq(f("foo"), "foo"); 34 assertEq(f(true), true); 35 assertEq(f(false), false); 36 assertEq(f({}), -123); 37 assertEq(f([]), -123); 38 assertEq(f(Math), Math); 39 40 assertEq(f({x:1}), -123); 41 assertEq(f(333), -123); 42 assertEq(f(null), null); 43 assertEq(f(undefined), -123); 44 45 assertEq(f(Number.MIN_VALUE), Number.MIN_VALUE);