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);