js/src/tests/ecma_5/Expressions/string-literal-escape-sequences.js

Sat, 03 Jan 2015 20:18:00 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Sat, 03 Jan 2015 20:18:00 +0100
branch
TOR_BUG_3246
changeset 7
129ffea94266
permissions
-rw-r--r--

Conditionally enable double key logic according to:
private browsing mode or privacy.thirdparty.isolate preference and
implement in GetCookieStringCommon and FindCookie where it counts...
With some reservations of how to convince FindCookie users to test
condition and pass a nullptr when disabling double key logic.

     1 // Any copyright is dedicated to the Public Domain.
     2 // http://creativecommons.org/licenses/publicdomain/
     4 //-----------------------------------------------------------------------------
     5 var BUGNUMBER = 663300;
     6 var summary =
     7   "\\u and \\x must be followed by the appropriate number of hex digits or " +
     8   "else it is a syntax error";
    10 print(BUGNUMBER + ": " + summary);
    12 /**************
    13  * BEGIN TEST *
    14  **************/
    16 function expectSyntaxError(str)
    17 {
    18   try
    19   {
    20     eval(str);
    21   }
    22   catch (e)
    23   {
    24     assertEq(e instanceof SyntaxError, true,
    25              "no syntax error evaluating " + str);
    26   }
    27 }
    29 expectSyntaxError('"\\x"');
    30 expectSyntaxError('"\\x0"');
    31 expectSyntaxError('"\\x1"');
    32 expectSyntaxError('"\\x2"');
    33 expectSyntaxError('"\\x3"');
    34 expectSyntaxError('"\\x4"');
    35 expectSyntaxError('"\\x5"');
    36 expectSyntaxError('"\\x6"');
    37 expectSyntaxError('"\\x7"');
    38 expectSyntaxError('"\\x8"');
    39 expectSyntaxError('"\\x9"');
    40 expectSyntaxError('"\\xA"');
    41 expectSyntaxError('"\\xB"');
    42 expectSyntaxError('"\\xC"');
    43 expectSyntaxError('"\\xD"');
    44 expectSyntaxError('"\\xE"');
    45 expectSyntaxError('"\\xF"');
    46 expectSyntaxError('"\\xG"');
    47 expectSyntaxError('"\\x0G"');
    48 expectSyntaxError('"\\x1G"');
    49 expectSyntaxError('"\\x2G"');
    50 expectSyntaxError('"\\x3G"');
    51 expectSyntaxError('"\\x4G"');
    52 expectSyntaxError('"\\x5G"');
    53 expectSyntaxError('"\\x6G"');
    54 expectSyntaxError('"\\x7G"');
    55 expectSyntaxError('"\\x8G"');
    56 expectSyntaxError('"\\x9G"');
    57 expectSyntaxError('"\\xAG"');
    58 expectSyntaxError('"\\xBG"');
    59 expectSyntaxError('"\\xCG"');
    60 expectSyntaxError('"\\xDG"');
    61 expectSyntaxError('"\\xEG"');
    62 expectSyntaxError('"\\xFG"');
    63 expectSyntaxError('"\\xGG"');
    65 expectSyntaxError('"\\u"');
    66 expectSyntaxError('"\\u0"');
    67 expectSyntaxError('"\\u1"');
    68 expectSyntaxError('"\\u2"');
    69 expectSyntaxError('"\\u3"');
    70 expectSyntaxError('"\\u4"');
    71 expectSyntaxError('"\\u5"');
    72 expectSyntaxError('"\\u6"');
    73 expectSyntaxError('"\\u7"');
    74 expectSyntaxError('"\\u8"');
    75 expectSyntaxError('"\\u9"');
    76 expectSyntaxError('"\\uA"');
    77 expectSyntaxError('"\\uB"');
    78 expectSyntaxError('"\\uC"');
    79 expectSyntaxError('"\\uD"');
    80 expectSyntaxError('"\\uE"');
    81 expectSyntaxError('"\\uF"');
    82 expectSyntaxError('"\\uG"');
    83 expectSyntaxError('"\\u00"');
    84 expectSyntaxError('"\\u11"');
    85 expectSyntaxError('"\\u22"');
    86 expectSyntaxError('"\\u33"');
    87 expectSyntaxError('"\\u44"');
    88 expectSyntaxError('"\\u55"');
    89 expectSyntaxError('"\\u66"');
    90 expectSyntaxError('"\\u77"');
    91 expectSyntaxError('"\\u88"');
    92 expectSyntaxError('"\\u99"');
    93 expectSyntaxError('"\\uAA"');
    94 expectSyntaxError('"\\uBB"');
    95 expectSyntaxError('"\\uCC"');
    96 expectSyntaxError('"\\uDD"');
    97 expectSyntaxError('"\\uEE"');
    98 expectSyntaxError('"\\uFF"');
    99 expectSyntaxError('"\\uGG"');
   100 expectSyntaxError('"\\u000"');
   101 expectSyntaxError('"\\u111"');
   102 expectSyntaxError('"\\u222"');
   103 expectSyntaxError('"\\u333"');
   104 expectSyntaxError('"\\u444"');
   105 expectSyntaxError('"\\u555"');
   106 expectSyntaxError('"\\u666"');
   107 expectSyntaxError('"\\u777"');
   108 expectSyntaxError('"\\u888"');
   109 expectSyntaxError('"\\u999"');
   110 expectSyntaxError('"\\uAAA"');
   111 expectSyntaxError('"\\uBBB"');
   112 expectSyntaxError('"\\uCCC"');
   113 expectSyntaxError('"\\uDDD"');
   114 expectSyntaxError('"\\uEEE"');
   115 expectSyntaxError('"\\uFFF"');
   116 expectSyntaxError('"\\uGGG"');
   117 expectSyntaxError('"\\u000G"');
   118 expectSyntaxError('"\\u111G"');
   119 expectSyntaxError('"\\u222G"');
   120 expectSyntaxError('"\\u333G"');
   121 expectSyntaxError('"\\u444G"');
   122 expectSyntaxError('"\\u555G"');
   123 expectSyntaxError('"\\u666G"');
   124 expectSyntaxError('"\\u777G"');
   125 expectSyntaxError('"\\u888G"');
   126 expectSyntaxError('"\\u999G"');
   127 expectSyntaxError('"\\uAAAG"');
   128 expectSyntaxError('"\\uBBBG"');
   129 expectSyntaxError('"\\uCCCG"');
   130 expectSyntaxError('"\\uDDDG"');
   131 expectSyntaxError('"\\uEEEG"');
   132 expectSyntaxError('"\\uFFFG"');
   133 expectSyntaxError('"\\uGGGG"');
   135 assertEq(eval('"a\\\rb"'), "ab");
   136 assertEq(eval('"a\\\nb"'), "ab");
   137 assertEq(eval('"a\\\r\nb"'), "ab");
   138 assertEq(eval('"a\\\u2028b"'), "ab");
   139 assertEq(eval('"a\\\u2029b"'), "ab");
   141 /******************************************************************************/
   143 if (typeof reportCompare === "function")
   144   reportCompare(true, true);
   146 print("All tests passed!");

mercurial