diff options
Diffstat (limited to 'js/src/tests/ecma_5/eval/line-terminator-paragraph-terminator.js')
-rw-r--r-- | js/src/tests/ecma_5/eval/line-terminator-paragraph-terminator.js | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/js/src/tests/ecma_5/eval/line-terminator-paragraph-terminator.js b/js/src/tests/ecma_5/eval/line-terminator-paragraph-terminator.js new file mode 100644 index 000000000..61047fb10 --- /dev/null +++ b/js/src/tests/ecma_5/eval/line-terminator-paragraph-terminator.js @@ -0,0 +1,73 @@ +// Any copyright is dedicated to the Public Domain. +// http://creativecommons.org/licenses/publicdomain/ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 657367; +var summary = "eval must not parse strings containing U+2028 or U+2029"; + +print(BUGNUMBER + ": " + summary); + +/************** + * BEGIN TEST * + **************/ + +function esc(s) +{ + return s.split("").map(function(v) + { + var code = + ("000" + v.charCodeAt(0).toString(16)).slice(-4); + return "\\u" + code; + }).join(""); +} + +try +{ + var r = eval('"\u2028"'); + throw new Error("\"\\u2028\" didn't throw, returned " + esc(r)); +} +catch (e) +{ + assertEq(e instanceof SyntaxError, true, + "U+2028 is not a valid string character"); +} + +try +{ + var r = eval('("\u2028")'); + throw new Error("(\"\\u2028\") didn't throw, returned " + esc(r)); +} +catch (e) +{ + assertEq(e instanceof SyntaxError, true, + "U+2028 is not a valid string character"); +} + +try +{ + var r = eval('"\u2029"'); + throw new Error("\"\\u2029\" didn't throw, returned " + esc(r)); +} +catch (e) +{ + assertEq(e instanceof SyntaxError, true, + "U+2029 is not a valid string character"); +} + +try +{ + var r = eval('("\u2029")'); + throw new Error("(\"\\u2029\") didn't throw, returned " + esc(r)); +} +catch (e) +{ + assertEq(e instanceof SyntaxError, true, + "U+2029 is not a valid string character"); +} + +/******************************************************************************/ + +if (typeof reportCompare === "function") + reportCompare(true, true); + +print("Tests complete!"); |