js/src/jit-test/tests/ion/doubleComparisons.js

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     2 function gen_f(x) {
     3     var f = "{\n" +
     4 	    "    var x = " + x + ";\n" + 
     5 	    "    if (x)\n" +
     6 	    "        return true;\n" +
     7 	    "    return false;\n" +
     8 	    "}";
     9     return new Function(f);
    10 }
    12 function run_f(x) {
    13     return gen_f(x)();
    14 }
    16 function gen_k(x, op, y) {
    17     var f = "{\n" +
    18 	    "    var x = " + x + ";\n" +
    19 	    "    var y = " + y + ";\n" +
    20 	    "    if (x " + op + " y)\n" +
    21 	    "        return true;\n" +
    22 	    "    return false;\n" +
    23 	    "}";
    24     return new Function(f);
    25 }
    27 function run_k(x, op, y) {
    28     return gen_k(x, op, y)();
    29 }
    31 function gen_r(x, op, y) {
    32     var f = "{\n" +
    33 	    "    var x = " + x + ";\n" +
    34 	    "    var y = " + y + ";\n" +
    35 	    "    return x " + op + " y;\n" +
    36 	    "}";
    37     return new Function(f);
    38 }
    40 function run_r(x, op, y) {
    41     return gen_r(x, op, y)();
    42 }
    44 assertEq(run_f("1 / 0"), true);
    45 assertEq(run_f("0 / 0"), false);
    46 assertEq(run_f("-0"), false);
    47 assertEq(run_f(1.3), true);
    49 // Ordered results.
    50 assertEq(run_k(1.3, ">", 2.3), false);
    51 assertEq(run_k(2.3, ">", 2.3), false);
    52 assertEq(run_k(2.4, ">", 2.3), true);
    53 assertEq(run_k(1.3, ">=", 2.3), false);
    54 assertEq(run_k(2.3, ">=", 2.3), true);
    55 assertEq(run_k(2.4, ">=", 2.3), true);
    56 assertEq(run_k(1.3, "<", 2.3), true);
    57 assertEq(run_k(2.3, "<", 2.3), false);
    58 assertEq(run_k(2.4, "<", 2.3), false);
    59 assertEq(run_k(1.3, "<", 2.3), true);
    60 assertEq(run_k(2.3, "<=", 2.3), true);
    61 assertEq(run_k(2.4, "<", 2.3), false);
    63 // Unordered results.
    64 assertEq(run_k("NaN", "<", 2.5), false);
    65 assertEq(run_k("NaN", "<=", 2.5), false);
    66 assertEq(run_k("NaN", ">", 2.5), false);
    67 assertEq(run_k("NaN", ">=", 2.5), false);
    69 // Ordered results.
    70 assertEq(run_r(1.3, ">", 2.3), false);
    71 assertEq(run_r(2.3, ">", 2.3), false);
    72 assertEq(run_r(2.4, ">", 2.3), true);
    73 assertEq(run_r(1.3, ">=", 2.3), false);
    74 assertEq(run_r(2.3, ">=", 2.3), true);
    75 assertEq(run_r(2.4, ">=", 2.3), true);
    76 assertEq(run_r(1.3, "<", 2.3), true);
    77 assertEq(run_r(2.3, "<", 2.3), false);
    78 assertEq(run_r(2.4, "<", 2.3), false);
    79 assertEq(run_r(1.3, "<", 2.3), true);
    80 assertEq(run_r(2.3, "<=", 2.3), true);
    81 assertEq(run_r(2.4, "<", 2.3), false);
    83 // Unordered results.
    84 assertEq(run_r("NaN", "<", 2.5), false);
    85 assertEq(run_r("NaN", "<=", 2.5), false);
    86 assertEq(run_r("NaN", ">", 2.5), false);
    87 assertEq(run_r("NaN", ">=", 2.5), false);

mercurial