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