| // Any copyright is dedicated to the Public Domain. |
| // http://creativecommons.org/licenses/publicdomain/ |
| |
| //----------------------------------------------------------------------------- |
| var BUGNUMBER = 663300; |
| var summary = |
| "\\u and \\x must be followed by the appropriate number of hex digits or " + |
| "else it is a syntax error"; |
| |
| print(BUGNUMBER + ": " + summary); |
| |
| /************** |
| * BEGIN TEST * |
| **************/ |
| |
| function expectSyntaxError(str) |
| { |
| try |
| { |
| eval(str); |
| } |
| catch (e) |
| { |
| assertEq(e instanceof SyntaxError, true, |
| "no syntax error evaluating " + str); |
| } |
| } |
| |
| expectSyntaxError('"\\x"'); |
| expectSyntaxError('"\\x0"'); |
| expectSyntaxError('"\\x1"'); |
| expectSyntaxError('"\\x2"'); |
| expectSyntaxError('"\\x3"'); |
| expectSyntaxError('"\\x4"'); |
| expectSyntaxError('"\\x5"'); |
| expectSyntaxError('"\\x6"'); |
| expectSyntaxError('"\\x7"'); |
| expectSyntaxError('"\\x8"'); |
| expectSyntaxError('"\\x9"'); |
| expectSyntaxError('"\\xA"'); |
| expectSyntaxError('"\\xB"'); |
| expectSyntaxError('"\\xC"'); |
| expectSyntaxError('"\\xD"'); |
| expectSyntaxError('"\\xE"'); |
| expectSyntaxError('"\\xF"'); |
| expectSyntaxError('"\\xG"'); |
| expectSyntaxError('"\\x0G"'); |
| expectSyntaxError('"\\x1G"'); |
| expectSyntaxError('"\\x2G"'); |
| expectSyntaxError('"\\x3G"'); |
| expectSyntaxError('"\\x4G"'); |
| expectSyntaxError('"\\x5G"'); |
| expectSyntaxError('"\\x6G"'); |
| expectSyntaxError('"\\x7G"'); |
| expectSyntaxError('"\\x8G"'); |
| expectSyntaxError('"\\x9G"'); |
| expectSyntaxError('"\\xAG"'); |
| expectSyntaxError('"\\xBG"'); |
| expectSyntaxError('"\\xCG"'); |
| expectSyntaxError('"\\xDG"'); |
| expectSyntaxError('"\\xEG"'); |
| expectSyntaxError('"\\xFG"'); |
| expectSyntaxError('"\\xGG"'); |
| |
| expectSyntaxError('"\\u"'); |
| expectSyntaxError('"\\u0"'); |
| expectSyntaxError('"\\u1"'); |
| expectSyntaxError('"\\u2"'); |
| expectSyntaxError('"\\u3"'); |
| expectSyntaxError('"\\u4"'); |
| expectSyntaxError('"\\u5"'); |
| expectSyntaxError('"\\u6"'); |
| expectSyntaxError('"\\u7"'); |
| expectSyntaxError('"\\u8"'); |
| expectSyntaxError('"\\u9"'); |
| expectSyntaxError('"\\uA"'); |
| expectSyntaxError('"\\uB"'); |
| expectSyntaxError('"\\uC"'); |
| expectSyntaxError('"\\uD"'); |
| expectSyntaxError('"\\uE"'); |
| expectSyntaxError('"\\uF"'); |
| expectSyntaxError('"\\uG"'); |
| expectSyntaxError('"\\u00"'); |
| expectSyntaxError('"\\u11"'); |
| expectSyntaxError('"\\u22"'); |
| expectSyntaxError('"\\u33"'); |
| expectSyntaxError('"\\u44"'); |
| expectSyntaxError('"\\u55"'); |
| expectSyntaxError('"\\u66"'); |
| expectSyntaxError('"\\u77"'); |
| expectSyntaxError('"\\u88"'); |
| expectSyntaxError('"\\u99"'); |
| expectSyntaxError('"\\uAA"'); |
| expectSyntaxError('"\\uBB"'); |
| expectSyntaxError('"\\uCC"'); |
| expectSyntaxError('"\\uDD"'); |
| expectSyntaxError('"\\uEE"'); |
| expectSyntaxError('"\\uFF"'); |
| expectSyntaxError('"\\uGG"'); |
| expectSyntaxError('"\\u000"'); |
| expectSyntaxError('"\\u111"'); |
| expectSyntaxError('"\\u222"'); |
| expectSyntaxError('"\\u333"'); |
| expectSyntaxError('"\\u444"'); |
| expectSyntaxError('"\\u555"'); |
| expectSyntaxError('"\\u666"'); |
| expectSyntaxError('"\\u777"'); |
| expectSyntaxError('"\\u888"'); |
| expectSyntaxError('"\\u999"'); |
| expectSyntaxError('"\\uAAA"'); |
| expectSyntaxError('"\\uBBB"'); |
| expectSyntaxError('"\\uCCC"'); |
| expectSyntaxError('"\\uDDD"'); |
| expectSyntaxError('"\\uEEE"'); |
| expectSyntaxError('"\\uFFF"'); |
| expectSyntaxError('"\\uGGG"'); |
| expectSyntaxError('"\\u000G"'); |
| expectSyntaxError('"\\u111G"'); |
| expectSyntaxError('"\\u222G"'); |
| expectSyntaxError('"\\u333G"'); |
| expectSyntaxError('"\\u444G"'); |
| expectSyntaxError('"\\u555G"'); |
| expectSyntaxError('"\\u666G"'); |
| expectSyntaxError('"\\u777G"'); |
| expectSyntaxError('"\\u888G"'); |
| expectSyntaxError('"\\u999G"'); |
| expectSyntaxError('"\\uAAAG"'); |
| expectSyntaxError('"\\uBBBG"'); |
| expectSyntaxError('"\\uCCCG"'); |
| expectSyntaxError('"\\uDDDG"'); |
| expectSyntaxError('"\\uEEEG"'); |
| expectSyntaxError('"\\uFFFG"'); |
| expectSyntaxError('"\\uGGGG"'); |
| |
| assertEq(eval('"a\\\rb"'), "ab"); |
| assertEq(eval('"a\\\nb"'), "ab"); |
| assertEq(eval('"a\\\r\nb"'), "ab"); |
| assertEq(eval('"a\\\u2028b"'), "ab"); |
| assertEq(eval('"a\\\u2029b"'), "ab"); |
| |
| /******************************************************************************/ |
| |
| if (typeof reportCompare === "function") |
| reportCompare(true, true); |
| |
| print("All tests passed!"); |