Fix local scoping for functions. (#3559)

JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
This commit is contained in:
Zoltan Herczeg
2020-02-18 09:49:03 +01:00
committed by GitHub
parent 44e63e038d
commit fda02d4b2a
18 changed files with 366 additions and 288 deletions
+25 -6
View File
@@ -16,21 +16,19 @@
var g = -1;
function f1() {
/* Function hoisted as var. */
/* Function copied to var. */
assert (g === undefined);
{
assert (g() === 1);
function g() { return 1 };
{
eval("assert (g() === 2)");
function g() { return 2 };
}
function g() { return 1 };
assert (g() === 2);
assert (g() === 1);
}
assert (g() === 2);
@@ -38,6 +36,27 @@ function f1() {
f1();
function f2() {
/* Function is not copied to var. */
'use strict'
assert (g === -1);
{
assert (g() === 1);
function g() { return 1 };
{
eval("assert (g() === 2)");
function g() { return 2 };
}
assert (g() === 1);
}
assert (g === -1);
}
f2();
function f3() {
/* Function hoisted as let. */
assert (g === -1);
@@ -65,4 +84,4 @@ function f2() {
assert (g === -1);
}
f2();
f3();