Commit 0e129692 authored by Michael Hablich's avatar Michael Hablich Committed by Commit Bot

Revert "Revert "[parser/test] Simplify test-preparser/PreParserScopeAnalysis.""

This reverts commit 8ee52241.

Reason for revert: False alarm, bot hiccup

Original change's description:
> Revert "[parser/test] Simplify test-preparser/PreParserScopeAnalysis."
> 
> This reverts commit 4d8bde0c.
> 
> Reason for revert: needed for this revert: https://codereview.chromium.org/2679263002/
> 
> Original change's description:
> > [parser/test] Simplify test-preparser/PreParserScopeAnalysis.
> > 
> > BUG=v8:5516
> > R=​neis@chromium.org
> > 
> > Change-Id: Iabc8d942ffb8107c5284cc51654792a9e2872d0a
> > Reviewed-on: https://chromium-review.googlesource.com/439325
> > Commit-Queue: Marja Hölttä <marja@chromium.org>
> > Reviewed-by: Georg Neis <neis@chromium.org>
> > Cr-Commit-Position: refs/heads/master@{#43001}
> 
> TBR=marja@chromium.org,neis@chromium.org
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=v8:5516
> 
> Change-Id: Ia205be1f43fc447119ccc00b16078a968c7b18d1
> Reviewed-on: https://chromium-review.googlesource.com/439147
> Commit-Queue: Michael Hablich <hablich@chromium.org>
> Reviewed-by: Michael Hablich <hablich@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#43009}

TBR=marja@chromium.org,neis@chromium.org,hablich@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:5516

Change-Id: Ie8f9ba2925b6b05a2945a9ce435c4c41205feddd
Reviewed-on: https://chromium-review.googlesource.com/439444
Commit-Queue: Michael Hablich <hablich@chromium.org>
Reviewed-by: 's avatarMichael Hablich <hablich@chromium.org>
Cr-Commit-Position: refs/heads/master@{#43014}
parent 5f9c89af
...@@ -29,275 +29,261 @@ TEST(PreParserScopeAnalysis) { ...@@ -29,275 +29,261 @@ TEST(PreParserScopeAnalysis) {
const char* lazy_inner = " function inner(%s) { %s }"; const char* lazy_inner = " function inner(%s) { %s }";
const char* eager_inner = "(function inner(%s) { %s })()"; const char* eager_inner = "(function inner(%s) { %s })()";
struct { struct Inner {
bool precise_maybe_assigned; Inner(const char* s) : source(s) {} // NOLINT
const char* params; Inner(const char* s, bool precise)
: source(s), precise_maybe_assigned(precise) {}
Inner(const char* p, const char* s) : params(p), source(s) {}
Inner(const char* p, const char* s, bool precise)
: params(p), source(s), precise_maybe_assigned(precise) {}
const char* params = "";
const char* source; const char* source;
bool precise_maybe_assigned = true;
} inners[] = { } inners[] = {
// Simple cases // Simple cases
{1, "", "var1;"}, {"var1;"},
{1, "", "var1 = 5;"}, {"var1 = 5;"},
{1, "", "if (true) {}"}, {"if (true) {}"},
{1, "", "function f1() {}"}, {"function f1() {}"},
// Var declarations and assignments. // Var declarations and assignments.
{1, "", "var var1;"}, {"var var1;"},
{1, "", "var var1; var1 = 5;"}, {"var var1; var1 = 5;"},
{0, "", "if (true) { var var1; }"}, {"if (true) { var var1; }", false},
{1, "", "if (true) { var var1; var1 = 5; }"}, {"if (true) { var var1; var1 = 5; }"},
{1, "", "var var1; function f() { var1; }"}, {"var var1; function f() { var1; }"},
{1, "", "var var1; var1 = 5; function f() { var1; }"}, {"var var1; var1 = 5; function f() { var1; }"},
{1, "", "var var1; function f() { var1 = 5; }"}, {"var var1; function f() { var1 = 5; }"},
// Let declarations and assignments. // Let declarations and assignments.
{1, "", "let var1;"}, {"let var1;"},
{1, "", "let var1; var1 = 5;"}, {"let var1; var1 = 5;"},
{1, "", "if (true) { let var1; }"}, {"if (true) { let var1; }"},
{1, "", "if (true) { let var1; var1 = 5; }"}, {"if (true) { let var1; var1 = 5; }"},
{1, "", "let var1; function f() { var1; }"}, {"let var1; function f() { var1; }"},
{1, "", "let var1; var1 = 5; function f() { var1; }"}, {"let var1; var1 = 5; function f() { var1; }"},
{1, "", "let var1; function f() { var1 = 5; }"}, {"let var1; function f() { var1 = 5; }"},
// Const declarations. // Const declarations.
{1, "", "const var1 = 5;"}, {"const var1 = 5;"},
{1, "", "if (true) { const var1 = 5; }"}, {"if (true) { const var1 = 5; }"},
{1, "", "const var1 = 5; function f() { var1; }"}, {"const var1 = 5; function f() { var1; }"},
// Redeclarations. // Redeclarations.
{1, "", "var var1; var var1;"}, {"var var1; var var1;"},
{1, "", "var var1; var var1; var1 = 5;"}, {"var var1; var var1; var1 = 5;"},
{1, "", "var var1; if (true) { var var1; }"}, {"var var1; if (true) { var var1; }"},
{1, "", "if (true) { var var1; var var1; }"}, {"if (true) { var var1; var var1; }"},
{1, "", "var var1; if (true) { var var1; var1 = 5; }"}, {"var var1; if (true) { var var1; var1 = 5; }"},
{1, "", "if (true) { var var1; var var1; var1 = 5; }"}, {"if (true) { var var1; var var1; var1 = 5; }"},
{1, "", "var var1; var var1; function f() { var1; }"}, {"var var1; var var1; function f() { var1; }"},
{1, "", "var var1; var var1; function f() { var1 = 5; }"}, {"var var1; var var1; function f() { var1 = 5; }"},
// Shadowing declarations. // Shadowing declarations.
{1, "", "var var1; if (true) { var var1; }"}, {"var var1; if (true) { var var1; }"},
{1, "", "var var1; if (true) { let var1; }"}, {"var var1; if (true) { let var1; }"},
{1, "", "let var1; if (true) { let var1; }"}, {"let var1; if (true) { let var1; }"},
{1, "", "var var1; if (true) { const var1 = 0; }"}, {"var var1; if (true) { const var1 = 0; }"},
{1, "", "const var1 = 0; if (true) { const var1 = 0; }"}, {"const var1 = 0; if (true) { const var1 = 0; }"},
// Arguments and this. // Arguments and this.
{1, "", "arguments;"}, {"arguments;"},
{1, "", "arguments = 5;"}, {"arguments = 5;"},
{1, "", "if (true) { arguments; }"}, {"if (true) { arguments; }"},
{1, "", "if (true) { arguments = 5; }"}, {"if (true) { arguments = 5; }"},
{1, "", "function f() { arguments; }"}, {"function f() { arguments; }"},
{1, "", "function f() { arguments = 5; }"}, {"function f() { arguments = 5; }"},
{1, "", "this;"}, {"this;"},
{1, "", "if (true) { this; }"}, {"if (true) { this; }"},
{1, "", "function f() { this; }"}, {"function f() { this; }"},
// Variable called "arguments" // Variable called "arguments"
{1, "", "var arguments;"}, {"var arguments;"},
{1, "", "var arguments; arguments = 5;"}, {"var arguments; arguments = 5;"},
{0, "", "if (true) { var arguments; }"}, {"if (true) { var arguments; }", false},
{1, "", "if (true) { var arguments; arguments = 5; }"}, {"if (true) { var arguments; arguments = 5; }"},
{1, "", "var arguments; function f() { arguments; }"}, {"var arguments; function f() { arguments; }"},
{1, "", "var arguments; arguments = 5; function f() { arguments; }"}, {"var arguments; arguments = 5; function f() { arguments; }"},
{1, "", "var arguments; function f() { arguments = 5; }"}, {"var arguments; function f() { arguments = 5; }"},
{1, "", "let arguments;"}, {"let arguments;"},
{1, "", "let arguments; arguments = 5;"}, {"let arguments; arguments = 5;"},
{1, "", "if (true) { let arguments; }"}, {"if (true) { let arguments; }"},
{1, "", "if (true) { let arguments; arguments = 5; }"}, {"if (true) { let arguments; arguments = 5; }"},
{1, "", "let arguments; function f() { arguments; }"}, {"let arguments; function f() { arguments; }"},
{1, "", "let arguments; arguments = 5; function f() { arguments; }"}, {"let arguments; arguments = 5; function f() { arguments; }"},
{1, "", "let arguments; function f() { arguments = 5; }"}, {"let arguments; function f() { arguments = 5; }"},
{1, "", "const arguments = 5;"}, {"const arguments = 5;"},
{1, "", "if (true) { const arguments = 5; }"}, {"if (true) { const arguments = 5; }"},
{1, "", "const arguments = 5; function f() { arguments; }"}, {"const arguments = 5; function f() { arguments; }"},
// Destructuring declarations. // Destructuring declarations.
{1, "", "var [var1, var2] = [1, 2];"}, {"var [var1, var2] = [1, 2];"},
{1, "", "var [var1, var2, [var3, var4]] = [1, 2, [3, 4]];"}, {"var [var1, var2, [var3, var4]] = [1, 2, [3, 4]];"},
{1, "", "var [{var1: var2}, {var3: var4}] = [{var1: 1}, {var3: 2}];"}, {"var [{var1: var2}, {var3: var4}] = [{var1: 1}, {var3: 2}];"},
{1, "", "var [var1, ...var2] = [1, 2, 3];"}, {"var [var1, ...var2] = [1, 2, 3];"},
{1, "", "var {var1: var2, var3: var4} = {var1: 1, var3: 2};"}, {"var {var1: var2, var3: var4} = {var1: 1, var3: 2};"},
{1, "", {"var {var1: var2, var3: {var4: var5}} = {var1: 1, var3: {var4: 2}};"},
"var {var1: var2, var3: {var4: var5}} = {var1: 1, var3: {var4: 2}};"}, {"var {var1: var2, var3: [var4, var5]} = {var1: 1, var3: [2, 3]};"},
{1, "",
"var {var1: var2, var3: [var4, var5]} = {var1: 1, var3: [2, 3]};"}, {"let [var1, var2] = [1, 2];"},
{"let [var1, var2, [var3, var4]] = [1, 2, [3, 4]];"},
{1, "", "let [var1, var2] = [1, 2];"}, {"let [{var1: var2}, {var3: var4}] = [{var1: 1}, {var3: 2}];"},
{1, "", "let [var1, var2, [var3, var4]] = [1, 2, [3, 4]];"}, {"let [var1, ...var2] = [1, 2, 3];"},
{1, "", "let [{var1: var2}, {var3: var4}] = [{var1: 1}, {var3: 2}];"},
{1, "", "let [var1, ...var2] = [1, 2, 3];"}, {"let {var1: var2, var3: var4} = {var1: 1, var3: 2};"},
{"let {var1: var2, var3: {var4: var5}} = {var1: 1, var3: {var4: 2}};"},
{1, "", "let {var1: var2, var3: var4} = {var1: 1, var3: 2};"}, {"let {var1: var2, var3: [var4, var5]} = {var1: 1, var3: [2, 3]};"},
{1, "",
"let {var1: var2, var3: {var4: var5}} = {var1: 1, var3: {var4: 2}};"}, {"const [var1, var2] = [1, 2];"},
{1, "", {"const [var1, var2, [var3, var4]] = [1, 2, [3, 4]];"},
"let {var1: var2, var3: [var4, var5]} = {var1: 1, var3: [2, 3]};"}, {"const [{var1: var2}, {var3: var4}] = [{var1: 1}, {var3: 2}];"},
{"const [var1, ...var2] = [1, 2, 3];"},
{1, "", "const [var1, var2] = [1, 2];"},
{1, "", "const [var1, var2, [var3, var4]] = [1, 2, [3, 4]];"}, {"const {var1: var2, var3: var4} = {var1: 1, var3: 2};"},
{1, "", "const [{var1: var2}, {var3: var4}] = [{var1: 1}, {var3: 2}];"}, {"const {var1: var2, var3: {var4: var5}} = {var1: 1, var3: {var4: 2}};"},
{1, "", "const [var1, ...var2] = [1, 2, 3];"}, {"const {var1: var2, var3: [var4, var5]} = {var1: 1, var3: [2, 3]};"},
{1, "", "const {var1: var2, var3: var4} = {var1: 1, var3: 2};"},
{1, "",
"const {var1: var2, var3: {var4: var5}} = {var1: 1, var3: {var4: 2}};"},
{1, "",
"const {var1: var2, var3: [var4, var5]} = {var1: 1, var3: [2, 3]};"},
// Referencing the function variable. // Referencing the function variable.
{1, "", "inner;"}, {"inner;"},
{1, "", "function f1() { f1; }"}, {"function f1() { f1; }"},
{1, "", "function f1() { inner; }"}, {"function f1() { inner; }"},
{1, "", "function f1() { function f2() { f1; } }"}, {"function f1() { function f2() { f1; } }"},
{1, "", "function arguments() {}"}, {"function arguments() {}"},
{1, "", "function f1() {} function f1() {}"}, {"function f1() {} function f1() {}"},
{1, "", "var f1; function f1() {}"}, {"var f1; function f1() {}"},
// Assigning to the function variable. // Assigning to the function variable.
{1, "", "inner = 3;"}, {"inner = 3;"},
{1, "", "function f1() { f1 = 3; }"}, {"function f1() { f1 = 3; }"},
{1, "", "function f1() { f1; } f1 = 3;"}, {"function f1() { f1; } f1 = 3;"},
{1, "", "function arguments() {} arguments = 8"}, {"function arguments() {} arguments = 8"},
{1, "", "function f1() {} f1 = 3; function f1() {}"}, {"function f1() {} f1 = 3; function f1() {}"},
// Evals. // Evals.
{1, "", "var var1; eval('');"}, {"var var1; eval('');"},
{1, "", "var var1; function f1() { eval(''); }"}, {"var var1; function f1() { eval(''); }"},
{1, "", "let var1; eval('');"}, {"let var1; eval('');"},
{1, "", "let var1; function f1() { eval(''); }"}, {"let var1; function f1() { eval(''); }"},
{1, "", "const var1 = 10; eval('');"}, {"const var1 = 10; eval('');"},
{1, "", "const var1 = 10; function f1() { eval(''); }"}, {"const var1 = 10; function f1() { eval(''); }"},
// Standard for loops. // Standard for loops.
{1, "", "for (var var1 = 0; var1 < 10; ++var1) { }"}, {"for (var var1 = 0; var1 < 10; ++var1) { }"},
{1, "", "for (let var1 = 0; var1 < 10; ++var1) { }"}, {"for (let var1 = 0; var1 < 10; ++var1) { }"},
{1, "", "for (const var1 = 0; var1 < 10; ++var1) { }"}, {"for (const var1 = 0; var1 < 10; ++var1) { }"},
{1, "", {"for (var var1 = 0; var1 < 10; ++var1) { function foo() { var1; } }"},
"for (var var1 = 0; var1 < 10; ++var1) { function foo() { var1; } }"}, {"for (let var1 = 0; var1 < 10; ++var1) { function foo() { var1; } }"},
{1, "", {"for (const var1 = 0; var1 < 10; ++var1) { function foo() { var1; } }"},
"for (let var1 = 0; var1 < 10; ++var1) { function foo() { var1; } }"}, {"'use strict'; for (var var1 = 0; var1 < 10; ++var1) { function foo() { "
{1, "",
"for (const var1 = 0; var1 < 10; ++var1) { function foo() { var1; } }"},
{1, "",
"'use strict'; for (var var1 = 0; var1 < 10; ++var1) { function foo() { "
"var1; } }"}, "var1; } }"},
{1, "", {"'use strict'; for (let var1 = 0; var1 < 10; ++var1) { function foo() { "
"'use strict'; for (let var1 = 0; var1 < 10; ++var1) { function foo() { "
"var1; } }"}, "var1; } }"},
{1, "", {"'use strict'; for (const var1 = 0; var1 < 10; ++var1) { function foo() "
"'use strict'; for (const var1 = 0; var1 < 10; ++var1) { function foo() "
"{ var1; } }"}, "{ var1; } }"},
// For of loops // For of loops
{1, "", "for (var1 of [1, 2]) { }"}, {"for (var1 of [1, 2]) { }"},
{1, "", "for (var var1 of [1, 2]) { }"}, {"for (var var1 of [1, 2]) { }"},
{1, "", "for (let var1 of [1, 2]) { }"}, {"for (let var1 of [1, 2]) { }"},
{1, "", "for (const var1 of [1, 2]) { }"}, {"for (const var1 of [1, 2]) { }"},
{1, "", "for (var1 of [1, 2]) { var1; }"}, {"for (var1 of [1, 2]) { var1; }"},
{1, "", "for (var var1 of [1, 2]) { var1; }"}, {"for (var var1 of [1, 2]) { var1; }"},
{1, "", "for (let var1 of [1, 2]) { var1; }"}, {"for (let var1 of [1, 2]) { var1; }"},
{1, "", "for (const var1 of [1, 2]) { var1; }"}, {"for (const var1 of [1, 2]) { var1; }"},
{1, "", "for (var1 of [1, 2]) { var1 = 0; }"}, {"for (var1 of [1, 2]) { var1 = 0; }"},
{1, "", "for (var var1 of [1, 2]) { var1 = 0; }"}, {"for (var var1 of [1, 2]) { var1 = 0; }"},
{1, "", "for (let var1 of [1, 2]) { var1 = 0; }"}, {"for (let var1 of [1, 2]) { var1 = 0; }"},
{1, "", "for (const var1 of [1, 2]) { var1 = 0; }"}, {"for (const var1 of [1, 2]) { var1 = 0; }"},
{1, "", "for (var1 of [1, 2]) { function foo() { var1; } }"}, {"for (var1 of [1, 2]) { function foo() { var1; } }"},
{1, "", "for (var var1 of [1, 2]) { function foo() { var1; } }"}, {"for (var var1 of [1, 2]) { function foo() { var1; } }"},
{1, "", "for (let var1 of [1, 2]) { function foo() { var1; } }"}, {"for (let var1 of [1, 2]) { function foo() { var1; } }"},
{1, "", "for (const var1 of [1, 2]) { function foo() { var1; } }"}, {"for (const var1 of [1, 2]) { function foo() { var1; } }"},
{1, "", "for (var1 of [1, 2]) { function foo() { var1 = 0; } }"}, {"for (var1 of [1, 2]) { function foo() { var1 = 0; } }"},
{1, "", "for (var var1 of [1, 2]) { function foo() { var1 = 0; } }"}, {"for (var var1 of [1, 2]) { function foo() { var1 = 0; } }"},
{1, "", "for (let var1 of [1, 2]) { function foo() { var1 = 0; } }"}, {"for (let var1 of [1, 2]) { function foo() { var1 = 0; } }"},
{1, "", "for (const var1 of [1, 2]) { function foo() { var1 = 0; } }"}, {"for (const var1 of [1, 2]) { function foo() { var1 = 0; } }"},
// For in loops // For in loops
{1, "", "for (var1 in {a: 6}) { }"}, {"for (var1 in {a: 6}) { }"},
{1, "", "for (var var1 in {a: 6}) { }"}, {"for (var var1 in {a: 6}) { }"},
{1, "", "for (let var1 in {a: 6}) { }"}, {"for (let var1 in {a: 6}) { }"},
{1, "", "for (const var1 in {a: 6}) { }"}, {"for (const var1 in {a: 6}) { }"},
{1, "", "for (var1 in {a: 6}) { var1; }"}, {"for (var1 in {a: 6}) { var1; }"},
{1, "", "for (var var1 in {a: 6}) { var1; }"}, {"for (var var1 in {a: 6}) { var1; }"},
{1, "", "for (let var1 in {a: 6}) { var1; }"}, {"for (let var1 in {a: 6}) { var1; }"},
{1, "", "for (const var1 in {a: 6}) { var1; }"}, {"for (const var1 in {a: 6}) { var1; }"},
{1, "", "for (var1 in {a: 6}) { var1 = 0; }"}, {"for (var1 in {a: 6}) { var1 = 0; }"},
{1, "", "for (var var1 in {a: 6}) { var1 = 0; }"}, {"for (var var1 in {a: 6}) { var1 = 0; }"},
{1, "", "for (let var1 in {a: 6}) { var1 = 0; }"}, {"for (let var1 in {a: 6}) { var1 = 0; }"},
{1, "", "for (const var1 in {a: 6}) { var1 = 0; }"}, {"for (const var1 in {a: 6}) { var1 = 0; }"},
{1, "", "for (var1 in {a: 6}) { function foo() { var1; } }"}, {"for (var1 in {a: 6}) { function foo() { var1; } }"},
{1, "", "for (var var1 in {a: 6}) { function foo() { var1; } }"}, {"for (var var1 in {a: 6}) { function foo() { var1; } }"},
{1, "", "for (let var1 in {a: 6}) { function foo() { var1; } }"}, {"for (let var1 in {a: 6}) { function foo() { var1; } }"},
{1, "", "for (const var1 in {a: 6}) { function foo() { var1; } }"}, {"for (const var1 in {a: 6}) { function foo() { var1; } }"},
{1, "", "for (var1 in {a: 6}) { function foo() { var1 = 0; } }"}, {"for (var1 in {a: 6}) { function foo() { var1 = 0; } }"},
{1, "", "for (var var1 in {a: 6}) { function foo() { var1 = 0; } }"}, {"for (var var1 in {a: 6}) { function foo() { var1 = 0; } }"},
{1, "", "for (let var1 in {a: 6}) { function foo() { var1 = 0; } }"}, {"for (let var1 in {a: 6}) { function foo() { var1 = 0; } }"},
{1, "", "for (const var1 in {a: 6}) { function foo() { var1 = 0; } }"}, {"for (const var1 in {a: 6}) { function foo() { var1 = 0; } }"},
{1, "", "for (var1 in {a: 6}) { function foo() { var1 = 0; } }"}, {"for (var1 in {a: 6}) { function foo() { var1 = 0; } }"},
{1, "", "for (var var1 in {a: 6}) { function foo() { var1 = 0; } }"}, {"for (var var1 in {a: 6}) { function foo() { var1 = 0; } }"},
{1, "", "for (let var1 in {a: 6}) { function foo() { var1 = 0; } }"}, {"for (let var1 in {a: 6}) { function foo() { var1 = 0; } }"},
{1, "", "for (const var1 in {a: 6}) { function foo() { var1 = 0; } }"}, {"for (const var1 in {a: 6}) { function foo() { var1 = 0; } }"},
// Loops without declarations // Loops without declarations
{1, "", "var var1 = 0; for ( ; var1 < 2; ++var1) { }"}, {"var var1 = 0; for ( ; var1 < 2; ++var1) { }"},
{1, "", {"var var1 = 0; for ( ; var1 < 2; ++var1) { function foo() { var1; } }"},
"var var1 = 0; for ( ; var1 < 2; ++var1) { function foo() { var1; } }"}, {"var var1 = 0; for ( ; var1 > 2; ) { }"},
{1, "", "var var1 = 0; for ( ; var1 > 2; ) { }"}, {"var var1 = 0; for ( ; var1 > 2; ) { function foo() { var1; } }"},
{1, "", "var var1 = 0; for ( ; var1 > 2; ) { function foo() { var1; } }"}, {"var var1 = 0; for ( ; var1 > 2; ) { function foo() { var1 = 6; } }"},
{1, "",
"var var1 = 0; for ( ; var1 > 2; ) { function foo() { var1 = 6; } }"}, {"var var1 = 0; for(var1; var1 < 2; ++var1) { }"},
{"var var1 = 0; for (var1; var1 < 2; ++var1) { function foo() { var1; } "
{1, "", "var var1 = 0; for(var1; var1 < 2; ++var1) { }"},
{1, "",
"var var1 = 0; for (var1; var1 < 2; ++var1) { function foo() { var1; } "
"}"}, "}"},
{1, "", "var var1 = 0; for (var1; var1 > 2; ) { }"}, {"var var1 = 0; for (var1; var1 > 2; ) { }"},
{1, "", {"var var1 = 0; for (var1; var1 > 2; ) { function foo() { var1; } }"},
"var var1 = 0; for (var1; var1 > 2; ) { function foo() { var1; } }"}, {"var var1 = 0; for (var1; var1 > 2; ) { function foo() { var1 = 6; } }"},
{1, "",
"var var1 = 0; for (var1; var1 > 2; ) { function foo() { var1 = 6; } }"},
// Sloppy block functions. // Sloppy block functions.
{1, "", "if (true) { function f1() {} }"}, {"if (true) { function f1() {} }"},
{1, "", "if (true) { function f1() {} function f1() {} }"}, {"if (true) { function f1() {} function f1() {} }"},
{1, "", "if (true) { if (true) { function f1() {} } }"}, {"if (true) { if (true) { function f1() {} } }"},
{1, "", "if (true) { if (true) { function f1() {} function f1() {} } }"}, {"if (true) { if (true) { function f1() {} function f1() {} } }"},
{1, "", "if (true) { function f1() {} f1 = 3; }"}, {"if (true) { function f1() {} f1 = 3; }"},
{1, "", "if (true) { function f1() {} function foo() { f1; } }"}, {"if (true) { function f1() {} function foo() { f1; } }"},
{1, "", "if (true) { function f1() {} } function foo() { f1; }"}, {"if (true) { function f1() {} } function foo() { f1; }"},
{1, "", {"if (true) { function f1() {} function f1() {} function foo() { f1; } "
"if (true) { function f1() {} function f1() {} function foo() { f1; } "
"}"}, "}"},
{1, "", {"if (true) { function f1() {} function f1() {} } function foo() { f1; "
"if (true) { function f1() {} function f1() {} } function foo() { f1; "
"}"}, "}"},
{1, "", {"if (true) { if (true) { function f1() {} } function foo() { f1; } }"},
"if (true) { if (true) { function f1() {} } function foo() { f1; } }"}, {"if (true) { if (true) { function f1() {} function f1() {} } function "
{1, "",
"if (true) { if (true) { function f1() {} function f1() {} } function "
"foo() { f1; } }"}, "foo() { f1; } }"},
{1, "", "if (true) { function f1() {} f1 = 3; function foo() { f1; } }"}, {"if (true) { function f1() {} f1 = 3; function foo() { f1; } }"},
{1, "", "if (true) { function f1() {} f1 = 3; } function foo() { f1; }"}, {"if (true) { function f1() {} f1 = 3; } function foo() { f1; }"},
{1, "", "function inner2() { if (true) { function f1() {} } }"}, {"function inner2() { if (true) { function f1() {} } }"},
{1, "", "function inner2() { if (true) { function f1() {} f1 = 3; } }"}, {"function inner2() { if (true) { function f1() {} f1 = 3; } }"},
{1, "", "var f1 = 1; if (true) { function f1() {} }"}, {"var f1 = 1; if (true) { function f1() {} }"},
{1, "", {"var f1 = 1; if (true) { function f1() {} } function foo() { f1; }"},
"var f1 = 1; if (true) { function f1() {} } function foo() { f1; }"},
}; };
for (unsigned i = 0; i < arraysize(inners); ++i) { for (unsigned i = 0; i < arraysize(inners); ++i) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment