js/src/tests/ecma_5/eval/line-terminator-paragraph-terminator.js

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     1 // Any copyright is dedicated to the Public Domain.
     2 // http://creativecommons.org/licenses/publicdomain/
     4 //-----------------------------------------------------------------------------
     5 var BUGNUMBER = 657367;
     6 var summary = "eval must not parse strings containing U+2028 or U+2029";
     8 print(BUGNUMBER + ": " + summary);
    10 /**************
    11  * BEGIN TEST *
    12  **************/
    14 function esc(s)
    15 {
    16   return s.split("").map(function(v)
    17                          {
    18                            var code =
    19                              ("000" + v.charCodeAt(0).toString(16)).slice(-4);
    20                            return "\\u" + code;
    21                          }).join("");
    22 }
    24 try
    25 {
    26   var r = eval('"\u2028"');
    27   throw new Error("\"\\u2028\" didn't throw, returned " + esc(r));
    28 }
    29 catch (e)
    30 {
    31   assertEq(e instanceof SyntaxError, true,
    32            "U+2028 is not a valid string character");
    33 }
    35 try
    36 {
    37   var r = eval('("\u2028")');
    38   throw new Error("(\"\\u2028\") didn't throw, returned " + esc(r));
    39 }
    40 catch (e)
    41 {
    42   assertEq(e instanceof SyntaxError, true,
    43            "U+2028 is not a valid string character");
    44 }
    46 try
    47 {
    48   var r = eval('"\u2029"');
    49   throw new Error("\"\\u2029\" didn't throw, returned " + esc(r));
    50 }
    51 catch (e)
    52 {
    53   assertEq(e instanceof SyntaxError, true,
    54            "U+2029 is not a valid string character");
    55 }
    57 try
    58 {
    59   var r = eval('("\u2029")');
    60   throw new Error("(\"\\u2029\") didn't throw, returned " + esc(r));
    61 }
    62 catch (e)
    63 {
    64   assertEq(e instanceof SyntaxError, true,
    65            "U+2029 is not a valid string character");
    66 }
    68 /******************************************************************************/
    70 if (typeof reportCompare === "function")
    71   reportCompare(true, true);
    73 print("Tests complete!");

mercurial