Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F7541075
repro_nan2.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
repro_nan2.js
View Options
// Test 1: closure_var with upvalue capture (original bug)
function
closure_var
(
n
)
{
function
f
(
a
)
{
sum
++
;
}
var
j
,
sum
;
sum
=
0
;
for
(
j
=
0
;
j
<
n
;
j
++
)
{
f
(
j
);
f
(
j
);
f
(
j
);
f
(
j
);
}
return
n
*
4
;
}
// Test 2: same loop but no upvalue capture - just a noop inner call
function
no_capture
(
n
)
{
function
f
(
a
)
{
return
1
;
}
var
j
,
sum
;
sum
=
0
;
for
(
j
=
0
;
j
<
n
;
j
++
)
{
sum
+=
f
(
j
);
}
return
n
;
}
// Test 3: same structure but no inner call at all
function
no_inner_call
(
n
)
{
var
j
,
sum
;
sum
=
0
;
for
(
j
=
0
;
j
<
n
;
j
++
)
{
sum
+=
1
;
sum
+=
1
;
sum
+=
1
;
sum
+=
1
;
}
return
n
*
4
;
}
// Test 4: closure_var but return sum instead of n*4
function
closure_ret_sum
(
n
)
{
function
f
(
a
)
{
sum
++
;
}
var
j
,
sum
;
sum
=
0
;
for
(
j
=
0
;
j
<
n
;
j
++
)
{
f
(
j
);
f
(
j
);
f
(
j
);
f
(
j
);
}
return
sum
;
}
var
tests
=
[
[
"closure_var"
,
closure_var
,
function
(
n
)
{
return
n
*
4
;
}],
[
"no_capture"
,
no_capture
,
function
(
n
)
{
return
n
;
}],
[
"no_inner_call"
,
no_inner_call
,
function
(
n
)
{
return
n
*
4
;
}],
[
"closure_ret_sum"
,
closure_ret_sum
,
function
(
n
)
{
return
n
*
4
;
}],
];
for
(
var
t
=
0
;
t
<
tests
.
length
;
t
++
)
{
var
name
=
tests
[
t
][
0
],
fn
=
tests
[
t
][
1
],
expect
=
tests
[
t
][
2
];
var
fails
=
0
;
for
(
var
i
=
0
;
i
<
60
;
i
++
)
{
var
n
=
(
i
<
10
)
?
(
i
+
1
)
:
(
i
*
100
);
var
result
=
fn
(
n
);
var
exp
=
expect
(
n
);
if
(
result
!==
exp
)
{
if
(
fails
<
5
)
console
.
log
(
"FAIL "
+
name
+
"("
+
n
+
") = "
+
result
+
", expected "
+
exp
);
fails
++
;
}
}
if
(
fails
>
0
)
console
.
log
(
" "
+
name
+
": "
+
fails
+
" failures total"
);
else
console
.
log
(
" "
+
name
+
": PASS"
);
}
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Wed, Jun 17, 2:02 PM (1 d, 3 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
537064
Default Alt Text
repro_nan2.js (1 KB)
Attached To
Mode
rANT Ant
Attached
Detach File
Event Timeline
Log In to Comment