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!");