tor-browser

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

regress-202678-002.js (1862B)


      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:    19 April 2003
      9 * SUMMARY: Testing nested function scope capture
     10 *
     11 * See http://bugzilla.mozilla.org/show_bug.cgi?id=202678
     12 *
     13 */
     14 //-----------------------------------------------------------------------------
     15 var UBound = 0;
     16 var BUGNUMBER = 202678;
     17 var summary = 'Testing nested function scope capture';
     18 var status = '';
     19 var statusitems = [];
     20 var actual = '';
     21 var actualvalues = [];
     22 var expect= '';
     23 var expectedvalues = [];
     24 var self = this;
     25 
     26 
     27 function myFunc()
     28 {
     29  var hidden = 'aaa';
     30  insideFunc();
     31 
     32  if (!self.runOnce)
     33  {
     34    var hidden = 'bbb';
     35    self.outSideFunc = insideFunc;
     36    self.runOnce = true;
     37  }
     38  else
     39  {
     40    var hidden = 'ccc';
     41    self.outSideFunc = insideFunc;
     42  }
     43 
     44 
     45  function insideFunc()
     46  {
     47    actual = hidden;
     48  }
     49 }
     50 
     51 
     52 
     53 status = inSection(1);
     54 myFunc();  // this sets |actual|
     55 expect = 'aaa';
     56 addThis();
     57 
     58 status = inSection(2);
     59 outSideFunc();  // sets |actual|
     60 expect = 'bbb';
     61 addThis();
     62 
     63 status = inSection(3);
     64 myFunc();      // sets |actual|
     65 expect = 'aaa';
     66 addThis();
     67 
     68 status = inSection(4);
     69 outSideFunc();  // sets |actual|
     70 expect = 'ccc';
     71 addThis();
     72 
     73 
     74 
     75 
     76 //-----------------------------------------------------------------------------
     77 test();
     78 //-----------------------------------------------------------------------------
     79 
     80 
     81 
     82 function addThis()
     83 {
     84  statusitems[UBound] = status;
     85  actualvalues[UBound] = actual;
     86  expectedvalues[UBound] = expect;
     87  UBound++;
     88 }
     89 
     90 
     91 function test()
     92 {
     93  printBugNumber(BUGNUMBER);
     94  printStatus(summary);
     95 
     96  for (var i=0; i<UBound; i++)
     97  {
     98    reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]);
     99  }
    100 }