Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F2916161
closures.js
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
1 KB
Referenced Files
None
Subscribers
None
closures.js
View Options
function
test1
()
{
function
inner
()
{
return
42
;
}
return
inner
();
}
for
(
let
i
=
0
;
i
<
110
;
i
++
)
test1
();
console
.
log
(
'[test1] simple inner fn:'
,
test1
(),
'ok:'
,
test1
()
===
42
);
function
test2
(
x
)
{
function
inner
()
{
return
x
;
}
return
inner
();
}
for
(
let
i
=
0
;
i
<
110
;
i
++
)
test2
(
i
);
console
.
log
(
'[test2] capture param:'
,
test2
(
99
),
'ok:'
,
test2
(
99
)
===
99
);
function
test3
()
{
let
val
=
100
;
function
inner
()
{
return
val
;
}
return
inner
();
}
for
(
let
i
=
0
;
i
<
110
;
i
++
)
test3
();
console
.
log
(
'[test3] capture local:'
,
test3
(),
'ok:'
,
test3
()
===
100
);
function
test4
()
{
let
count
=
0
;
function
inc
()
{
count
=
count
+
1
;
}
inc
();
inc
();
inc
();
return
count
;
}
for
(
let
i
=
0
;
i
<
110
;
i
++
)
test4
();
console
.
log
(
'[test4] mutate upval:'
,
test4
(),
'ok:'
,
test4
()
===
3
);
function
test5
()
{
let
n
=
0
;
function
next
()
{
n
=
n
+
1
;
return
n
;
}
next
();
next
();
return
next
();
}
for
(
let
i
=
0
;
i
<
110
;
i
++
)
test5
();
console
.
log
(
'[test5] counter:'
,
test5
(),
'ok:'
,
test5
()
===
3
);
function
test6
()
{
let
x
=
10
;
return
function
()
{
return
x
;
};
}
let
fn6
=
test6
();
console
.
log
(
'[test6] returned closure:'
,
fn6
(),
'ok:'
,
fn6
()
===
10
);
function
test7
()
{
let
fns
=
[];
for
(
let
i
=
0
;
i
<
5
;
i
++
)
{
fns
.
push
(
function
()
{
return
i
;
});
}
return
fns
[
0
]()
+
fns
[
1
]()
+
fns
[
2
]()
+
fns
[
3
]()
+
fns
[
4
]();
}
console
.
log
(
'[test7] loop closures:'
,
test7
(),
'ok:'
,
test7
()
===
10
);
function
test8
(
n
)
{
let
sum
=
0
;
function
addTo
(
x
)
{
sum
=
sum
+
x
;
}
for
(
let
i
=
0
;
i
<
n
;
i
++
)
addTo
(
i
);
return
sum
;
}
for
(
let
i
=
0
;
i
<
110
;
i
++
)
test8
(
10
);
let
r8
=
test8
(
1000
);
let
e8
=
(
999
*
1000
)
/
2
;
console
.
log
(
'[test8] hot closure call:'
,
r8
,
'ok:'
,
r8
===
e8
);
File Metadata
Details
Attached
Mime Type
application/javascript
Expires
Thu, Mar 26, 4:42 PM (2 d)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
511868
Default Alt Text
closures.js (1 KB)
Attached To
Mode
rANT Ant
Attached
Detach File
Event Timeline
Log In to Comment