tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

regress-385729.js (1591B)


      1 // |reftest| skip-if(!this.uneval)
      2 
      3 /* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
      4 /* This Source Code Form is subject to the terms of the Mozilla Public
      5 * License, v. 2.0. If a copy of the MPL was not distributed with this
      6 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
      7 
      8 //-----------------------------------------------------------------------------
      9 var BUGNUMBER = 385729;
     10 var summary = 'uneval(eval(expression closure))';
     11 var actual = 'No Crash';
     12 var expect = 'No Crash';
     13 
     14 function normalizeSource(source) {
     15  source = String(source);
     16  source = source.replace(/([(){},.:\[\]])/mg, ' $1 ');
     17  source = source.replace(/\s+/mg, ' ');
     18 
     19  return source;
     20 }
     21 
     22 //-----------------------------------------------------------------------------
     23 test();
     24 //-----------------------------------------------------------------------------
     25 
     26 function test()
     27 {
     28  printBugNumber(BUGNUMBER);
     29  printStatus (summary);
     30 
     31    expect = '(function f () /x/g)';
     32    try
     33    {
     34      // mozilla 1.9
     35      actual = uneval(eval(expect));
     36    }
     37    catch(ex)
     38    {
     39      // mozilla 1.8
     40      expect = 'SyntaxError: missing { before function body';
     41      actual = ex + '';
     42    }
     43    compareSource(normalizeSource(expect), normalizeSource(actual), summary);
     44 
     45    expect = '({get f () /x/g})';
     46    try
     47    {
     48      // mozilla 1.9
     49      actual = uneval(eval("({get f () /x/g})"));
     50    }
     51    catch(ex)
     52    {
     53      // mozilla 1.8
     54      expect = 'SyntaxError: missing { before function body';
     55      actual = ex + '';
     56    }
     57    compareSource(normalizeSource(expect), normalizeSource(actual), summary);
     58 }