tor-browser

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

alias-function-not-closed.js (1792B)


      1 function f1(a, aIs,        // without default parameter
      2            b=()=>62, bIs, // with default parameter
      3            // before function body
      4            c=(assertEq(a(), aIs), assertEq(b(), bIs),
      5               ()=>63),
      6            cIs) {
      7  // before function declarations
      8  assertEq(a(), 52);
      9  assertEq(b(), 53);
     10  assertEq(c(), 55);
     11 
     12  function a() {
     13    return 52;
     14  }
     15  function b() {
     16    return 53;
     17  }
     18  function c() {
     19    return 54;
     20  }
     21 
     22  assertEq(a(), 52); // after function declaration
     23  assertEq(b(), 53); // after function declaration
     24  assertEq(c(), 55); // before last function declaration
     25 
     26  c = ()=>72;
     27  assertEq(c(), 72); // after assignment in body
     28 
     29  // function re-declaration after assignment
     30  function c() {
     31    return 55;
     32  }
     33 }
     34 f1(()=>42, 42, undefined, 62, undefined, 63);
     35 f1(()=>42, 42, undefined, 62, ()=>44, 44);
     36 f1(()=>42, 42, ()=>43, 43, undefined, 63);
     37 f1(()=>42, 42, ()=>43, 43, ()=>44, 44);
     38 
     39 function f2(a,
     40            // assignment before body
     41            b=a=()=>62,
     42            c=(assertEq(a(), 62)),
     43            e=(assertEq(a(), 62))) {
     44  function a() {
     45    return 52;
     46  }
     47 
     48  assertEq(a(), 52);
     49 }
     50 f2(()=>42);
     51 
     52 function f3(a, b, c, d) {
     53  // before var/function declarations
     54  assertEq(a(), 52);
     55  assertEq(b(), 53);
     56  assertEq(c(), 54);
     57  assertEq(d(), 55);
     58 
     59  var a, b = ()=>63;
     60  var c, d = ()=>65;
     61 
     62  // after var declarations, before function declarations
     63  assertEq(a(), 52);
     64  assertEq(b(), 63);
     65  assertEq(c(), 54);
     66  assertEq(d(), 65);
     67 
     68  function a() {
     69    return 52;
     70  }
     71  function b() {
     72    return 53;
     73  }
     74  function c() {
     75    return 54;
     76  }
     77  function d() {
     78    return 55;
     79  }
     80 
     81  // after var/function declarations
     82  assertEq(a(), 52);
     83  assertEq(b(), 63);
     84  assertEq(c(), 54);
     85  assertEq(d(), 65);
     86 }
     87 f3(()=>42, ()=>43, ()=>44, ()=>45);