tor-browser

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

regress-226517.js (1631B)


      1 /* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
      2 /* This Source Code Form is subject to the terms of the Mozilla Public
      3 * License, v. 2.0. If a copy of the MPL was not distributed with this
      4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
      5 
      6 /*
      7 *
      8 * Date:    04 Dec 2003
      9 * SUMMARY: |finally| statement should execute even after a |return|
     10 *
     11 * See http://bugzilla.mozilla.org/show_bug.cgi?id=226517
     12 *
     13 */
     14 //-----------------------------------------------------------------------------
     15 var UBound = 0;
     16 var BUGNUMBER = 226517;
     17 var summary = '|finally| statement should execute even after a |return|';
     18 var status = '';
     19 var statusitems = [];
     20 var actual = '';
     21 var actualvalues = [];
     22 var expect= '';
     23 var expectedvalues = [];
     24 
     25 
     26 /*
     27 * We can only use a return statement within a function.
     28 * That makes the testcase more complicated to set up -
     29 */
     30 function f()
     31 {
     32  var return_expression_was_calculated = false;
     33  try
     34  {
     35    return (return_expression_was_calculated = true);
     36  }
     37  finally
     38  {
     39    actual = return_expression_was_calculated;
     40  }
     41 }
     42 
     43 
     44 status = inSection(1);
     45 f(); // sets |actual|
     46 expect = true;
     47 addThis();
     48 
     49 
     50 
     51 //-----------------------------------------------------------------------------
     52 test();
     53 //-----------------------------------------------------------------------------
     54 
     55 
     56 
     57 function addThis()
     58 {
     59  statusitems[UBound] = status;
     60  actualvalues[UBound] = actual;
     61  expectedvalues[UBound] = expect;
     62  UBound++;
     63 }
     64 
     65 
     66 function test()
     67 {
     68  printBugNumber(BUGNUMBER);
     69  printStatus(summary);
     70 
     71  for (var i=0; i<UBound; i++)
     72  {
     73    reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]);
     74  }
     75 }