Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F4497684
test_closure_spec.js
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
1 KB
Referenced Files
None
Subscribers
None
test_closure_spec.js
View Options
// test_closure.js - Test closure scoping across async boundaries
let
results
=
[];
// Test 1: Sync push
results
.
push
(
'1. sync'
);
// Test 2: setTimeout with closure
setTimeout
(()
=>
{
results
.
push
(
'4. timeout 50ms'
);
},
50
);
setTimeout
(()
=>
{
results
.
push
(
'3. timeout 10ms'
);
},
10
);
// Test 3: Promise with closure
Promise
.
resolve
(
'2. promise'
).
then
(
v
=>
{
results
.
push
(
v
);
});
// Test 4: queueMicrotask with closure
queueMicrotask
(()
=>
{
results
.
push
(
'2. microtask'
);
});
// Test 5: Nested closure
const
outer
=
'outer-value'
;
setTimeout
(()
=>
{
const
inner
=
'inner-value'
;
setTimeout
(()
=>
{
results
.
push
(
`5. nested:
${
outer
}
,
${
inner
}
`
);
},
10
);
},
60
);
// Final timeout to print results
setTimeout
(()
=>
{
console
.
log
(
'Results length:'
,
results
.
length
);
console
.
log
(
'Results:'
);
for
(
let
i
=
0
;
i
<
results
.
length
;
i
++
)
{
console
.
log
(
' '
,
results
[
i
]);
}
// Expected order:
// 1. sync
// 2. promise (microtask)
// 2. microtask (microtask)
// 3. timeout 10ms
// 4. timeout 50ms
// 5. nested: outer-value, inner-value
console
.
log
(
'\nExpected 6 items, got:'
,
results
.
length
);
if
(
results
.
length
===
6
)
{
console
.
log
(
'✓ PASS: All closures captured correctly'
);
}
else
{
console
.
log
(
'✗ FAIL: Missing items - closure bug'
);
}
},
200
);
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sun, May 3, 7:21 AM (2 h, 43 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
537757
Default Alt Text
test_closure_spec.js (1 KB)
Attached To
Mode
rANT Ant
Attached
Detach File
Event Timeline
Log In to Comment