| "use strict" |
| |
| function useForMath(undefinedArgument, nullArgument, polymorphicArgument) { |
| var a = (null == undefinedArgument) + (undefinedArgument == null) + (undefined == undefinedArgument) + (undefinedArgument == undefined); |
| var b = (null == nullArgument) + (nullArgument == null) + (undefined == nullArgument) + (nullArgument == undefined); |
| var c = (null == polymorphicArgument) + (polymorphicArgument == null) + (undefined == polymorphicArgument) + (polymorphicArgument == undefined); |
| var d = (5 == null) + (null == true) + (undefined == Math.LN2) + ("const" == undefined); |
| var e = (5 == undefinedArgument) + (nullArgument == true) + (nullArgument == Math.LN2) + ("const" == undefinedArgument); |
| |
| return a + b - c + d - e; |
| } |
| noInline(useForMath); |
| |
| function testUseForMath() { |
| for (let i = 0; i < 1e4; ++i) { |
| var value = useForMath(undefined, null, 5); |
| if (value != 8) |
| throw "Failed useForMath(undefined, null, 5), value = " + value + " with i = " + i; |
| |
| var value = useForMath(undefined, null, null); |
| if (value != 4) |
| throw "Failed useForMath(undefined, null, null), value = " + value + " with i = " + i; |
| |
| var value = useForMath(undefined, null, undefined); |
| if (value != 4) |
| throw "Failed useForMath(undefined, null, undefined), value = " + value + " with i = " + i; |
| |
| var value = useForMath(undefined, null, { foo: "bar" }); |
| if (value != 8) |
| throw "Failed useForMath(undefined, null, { foo: \"bar\" }), value = " + value + " with i = " + i; |
| |
| var value = useForMath(undefined, null, true); |
| if (value != 8) |
| throw "Failed useForMath(undefined, null, true), value = " + value + " with i = " + i; |
| |
| var value = useForMath(undefined, null, [1, 2, 3]); |
| if (value != 8) |
| throw "Failed useForMath(undefined, null, true), value = " + value + " with i = " + i; |
| |
| var value = useForMath(undefined, null, "WebKit!"); |
| if (value != 8) |
| throw "Failed useForMath(undefined, null, true), value = " + value + " with i = " + i; |
| } |
| } |
| testUseForMath(); |