Invalid flags in a RegExp literal should be an early SyntaxError
[WebKit-https.git] / JSTests / stress / compare-eq-on-null-and-undefined-non-peephole.js
1 "use strict"
2
3 function useForMath(undefinedArgument, nullArgument, polymorphicArgument) {
4     var a = (null == undefinedArgument) + (undefinedArgument == null) + (undefined == undefinedArgument) + (undefinedArgument == undefined);
5     var b = (null == nullArgument) + (nullArgument == null) + (undefined == nullArgument) + (nullArgument == undefined);
6     var c = (null == polymorphicArgument) + (polymorphicArgument == null) + (undefined == polymorphicArgument) + (polymorphicArgument == undefined);
7     var d = (5 == null) + (null == true) + (undefined == Math.LN2) + ("const" == undefined);
8     var e = (5 == undefinedArgument) + (nullArgument == true) + (nullArgument == Math.LN2) + ("const" == undefinedArgument);
9
10     return a + b - c + d - e;
11 }
12 noInline(useForMath);
13
14 function testUseForMath() {
15     for (let i = 0; i < 1e4; ++i) {
16         var value = useForMath(undefined, null, 5);
17         if (value != 8)
18             throw "Failed useForMath(undefined, null, 5), value = " + value + " with i = " + i;
19
20         var value = useForMath(undefined, null, null);
21         if (value != 4)
22             throw "Failed useForMath(undefined, null, null), value = " + value + " with i = " + i;
23
24         var value = useForMath(undefined, null, undefined);
25         if (value != 4)
26             throw "Failed useForMath(undefined, null, undefined), value = " + value + " with i = " + i;
27
28         var value = useForMath(undefined, null, { foo: "bar" });
29         if (value != 8)
30             throw "Failed useForMath(undefined, null, { foo: \"bar\" }), value = " + value + " with i = " + i;
31
32         var value = useForMath(undefined, null, true);
33         if (value != 8)
34             throw "Failed useForMath(undefined, null, true), value = " + value + " with i = " + i;
35
36         var value = useForMath(undefined, null, [1, 2, 3]);
37         if (value != 8)
38             throw "Failed useForMath(undefined, null, true), value = " + value + " with i = " + i;
39
40         var value = useForMath(undefined, null, "WebKit!");
41         if (value != 8)
42             throw "Failed useForMath(undefined, null, true), value = " + value + " with i = " + i;
43     }
44 }
45 testUseForMath();