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

changeset 0
6474c204b198
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/js/src/tests/ecma_5/Expressions/string-literal-escape-sequences.js	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,146 @@
     1.4 +// Any copyright is dedicated to the Public Domain.
     1.5 +// http://creativecommons.org/licenses/publicdomain/
     1.6 +
     1.7 +//-----------------------------------------------------------------------------
     1.8 +var BUGNUMBER = 663300;
     1.9 +var summary =
    1.10 +  "\\u and \\x must be followed by the appropriate number of hex digits or " +
    1.11 +  "else it is a syntax error";
    1.12 +
    1.13 +print(BUGNUMBER + ": " + summary);
    1.14 +
    1.15 +/**************
    1.16 + * BEGIN TEST *
    1.17 + **************/
    1.18 +
    1.19 +function expectSyntaxError(str)
    1.20 +{
    1.21 +  try
    1.22 +  {
    1.23 +    eval(str);
    1.24 +  }
    1.25 +  catch (e)
    1.26 +  {
    1.27 +    assertEq(e instanceof SyntaxError, true,
    1.28 +             "no syntax error evaluating " + str);
    1.29 +  }
    1.30 +}
    1.31 +
    1.32 +expectSyntaxError('"\\x"');
    1.33 +expectSyntaxError('"\\x0"');
    1.34 +expectSyntaxError('"\\x1"');
    1.35 +expectSyntaxError('"\\x2"');
    1.36 +expectSyntaxError('"\\x3"');
    1.37 +expectSyntaxError('"\\x4"');
    1.38 +expectSyntaxError('"\\x5"');
    1.39 +expectSyntaxError('"\\x6"');
    1.40 +expectSyntaxError('"\\x7"');
    1.41 +expectSyntaxError('"\\x8"');
    1.42 +expectSyntaxError('"\\x9"');
    1.43 +expectSyntaxError('"\\xA"');
    1.44 +expectSyntaxError('"\\xB"');
    1.45 +expectSyntaxError('"\\xC"');
    1.46 +expectSyntaxError('"\\xD"');
    1.47 +expectSyntaxError('"\\xE"');
    1.48 +expectSyntaxError('"\\xF"');
    1.49 +expectSyntaxError('"\\xG"');
    1.50 +expectSyntaxError('"\\x0G"');
    1.51 +expectSyntaxError('"\\x1G"');
    1.52 +expectSyntaxError('"\\x2G"');
    1.53 +expectSyntaxError('"\\x3G"');
    1.54 +expectSyntaxError('"\\x4G"');
    1.55 +expectSyntaxError('"\\x5G"');
    1.56 +expectSyntaxError('"\\x6G"');
    1.57 +expectSyntaxError('"\\x7G"');
    1.58 +expectSyntaxError('"\\x8G"');
    1.59 +expectSyntaxError('"\\x9G"');
    1.60 +expectSyntaxError('"\\xAG"');
    1.61 +expectSyntaxError('"\\xBG"');
    1.62 +expectSyntaxError('"\\xCG"');
    1.63 +expectSyntaxError('"\\xDG"');
    1.64 +expectSyntaxError('"\\xEG"');
    1.65 +expectSyntaxError('"\\xFG"');
    1.66 +expectSyntaxError('"\\xGG"');
    1.67 +
    1.68 +expectSyntaxError('"\\u"');
    1.69 +expectSyntaxError('"\\u0"');
    1.70 +expectSyntaxError('"\\u1"');
    1.71 +expectSyntaxError('"\\u2"');
    1.72 +expectSyntaxError('"\\u3"');
    1.73 +expectSyntaxError('"\\u4"');
    1.74 +expectSyntaxError('"\\u5"');
    1.75 +expectSyntaxError('"\\u6"');
    1.76 +expectSyntaxError('"\\u7"');
    1.77 +expectSyntaxError('"\\u8"');
    1.78 +expectSyntaxError('"\\u9"');
    1.79 +expectSyntaxError('"\\uA"');
    1.80 +expectSyntaxError('"\\uB"');
    1.81 +expectSyntaxError('"\\uC"');
    1.82 +expectSyntaxError('"\\uD"');
    1.83 +expectSyntaxError('"\\uE"');
    1.84 +expectSyntaxError('"\\uF"');
    1.85 +expectSyntaxError('"\\uG"');
    1.86 +expectSyntaxError('"\\u00"');
    1.87 +expectSyntaxError('"\\u11"');
    1.88 +expectSyntaxError('"\\u22"');
    1.89 +expectSyntaxError('"\\u33"');
    1.90 +expectSyntaxError('"\\u44"');
    1.91 +expectSyntaxError('"\\u55"');
    1.92 +expectSyntaxError('"\\u66"');
    1.93 +expectSyntaxError('"\\u77"');
    1.94 +expectSyntaxError('"\\u88"');
    1.95 +expectSyntaxError('"\\u99"');
    1.96 +expectSyntaxError('"\\uAA"');
    1.97 +expectSyntaxError('"\\uBB"');
    1.98 +expectSyntaxError('"\\uCC"');
    1.99 +expectSyntaxError('"\\uDD"');
   1.100 +expectSyntaxError('"\\uEE"');
   1.101 +expectSyntaxError('"\\uFF"');
   1.102 +expectSyntaxError('"\\uGG"');
   1.103 +expectSyntaxError('"\\u000"');
   1.104 +expectSyntaxError('"\\u111"');
   1.105 +expectSyntaxError('"\\u222"');
   1.106 +expectSyntaxError('"\\u333"');
   1.107 +expectSyntaxError('"\\u444"');
   1.108 +expectSyntaxError('"\\u555"');
   1.109 +expectSyntaxError('"\\u666"');
   1.110 +expectSyntaxError('"\\u777"');
   1.111 +expectSyntaxError('"\\u888"');
   1.112 +expectSyntaxError('"\\u999"');
   1.113 +expectSyntaxError('"\\uAAA"');
   1.114 +expectSyntaxError('"\\uBBB"');
   1.115 +expectSyntaxError('"\\uCCC"');
   1.116 +expectSyntaxError('"\\uDDD"');
   1.117 +expectSyntaxError('"\\uEEE"');
   1.118 +expectSyntaxError('"\\uFFF"');
   1.119 +expectSyntaxError('"\\uGGG"');
   1.120 +expectSyntaxError('"\\u000G"');
   1.121 +expectSyntaxError('"\\u111G"');
   1.122 +expectSyntaxError('"\\u222G"');
   1.123 +expectSyntaxError('"\\u333G"');
   1.124 +expectSyntaxError('"\\u444G"');
   1.125 +expectSyntaxError('"\\u555G"');
   1.126 +expectSyntaxError('"\\u666G"');
   1.127 +expectSyntaxError('"\\u777G"');
   1.128 +expectSyntaxError('"\\u888G"');
   1.129 +expectSyntaxError('"\\u999G"');
   1.130 +expectSyntaxError('"\\uAAAG"');
   1.131 +expectSyntaxError('"\\uBBBG"');
   1.132 +expectSyntaxError('"\\uCCCG"');
   1.133 +expectSyntaxError('"\\uDDDG"');
   1.134 +expectSyntaxError('"\\uEEEG"');
   1.135 +expectSyntaxError('"\\uFFFG"');
   1.136 +expectSyntaxError('"\\uGGGG"');
   1.137 +
   1.138 +assertEq(eval('"a\\\rb"'), "ab");
   1.139 +assertEq(eval('"a\\\nb"'), "ab");
   1.140 +assertEq(eval('"a\\\r\nb"'), "ab");
   1.141 +assertEq(eval('"a\\\u2028b"'), "ab");
   1.142 +assertEq(eval('"a\\\u2029b"'), "ab");
   1.143 +
   1.144 +/******************************************************************************/
   1.145 +
   1.146 +if (typeof reportCompare === "function")
   1.147 +  reportCompare(true, true);
   1.148 +
   1.149 +print("All tests passed!");

mercurial