@@ -1166,7 +1166,9 @@ merge(Compressor.prototype, {
|
|||||||
|
|
||||||
function as_statement_array(thing) {
|
function as_statement_array(thing) {
|
||||||
if (thing === null) return [];
|
if (thing === null) return [];
|
||||||
if (thing instanceof AST_BlockStatement) return thing.body;
|
if (thing instanceof AST_BlockStatement) return all(thing.body, function(stat) {
|
||||||
|
return !(stat instanceof AST_Const || stat instanceof AST_Let);
|
||||||
|
}) ? thing.body : [ thing ];
|
||||||
if (thing instanceof AST_EmptyStatement) return [];
|
if (thing instanceof AST_EmptyStatement) return [];
|
||||||
if (thing instanceof AST_Statement) return [ thing ];
|
if (thing instanceof AST_Statement) return [ thing ];
|
||||||
throw new Error("Can't convert thing to statement array");
|
throw new Error("Can't convert thing to statement array");
|
||||||
|
|||||||
@@ -1175,3 +1175,53 @@ issue_4261: {
|
|||||||
}
|
}
|
||||||
expect_stdout: "42"
|
expect_stdout: "42"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
issue_4274_1: {
|
||||||
|
options = {
|
||||||
|
loops: true,
|
||||||
|
}
|
||||||
|
input: {
|
||||||
|
for (;;) {
|
||||||
|
if (console.log("PASS")) {
|
||||||
|
const a = 0;
|
||||||
|
} else {
|
||||||
|
break;
|
||||||
|
var a;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
expect: {
|
||||||
|
for (; console.log("PASS");) {
|
||||||
|
{
|
||||||
|
const a = 0;
|
||||||
|
}
|
||||||
|
var a;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
expect_stdout: true
|
||||||
|
}
|
||||||
|
|
||||||
|
issue_4274_2: {
|
||||||
|
options = {
|
||||||
|
loops: true,
|
||||||
|
}
|
||||||
|
input: {
|
||||||
|
for (;;) {
|
||||||
|
if (!console.log("PASS")) {
|
||||||
|
break;
|
||||||
|
var a;
|
||||||
|
} else {
|
||||||
|
const a = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
expect: {
|
||||||
|
for (; console.log("PASS");) {
|
||||||
|
{
|
||||||
|
const a = 0;
|
||||||
|
}
|
||||||
|
var a;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
expect_stdout: true
|
||||||
|
}
|
||||||
|
|||||||
@@ -950,3 +950,59 @@ issue_4248: {
|
|||||||
expect_stdout: "PASS"
|
expect_stdout: "PASS"
|
||||||
node_version: ">=4"
|
node_version: ">=4"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
issue_4274_1: {
|
||||||
|
options = {
|
||||||
|
loops: true,
|
||||||
|
}
|
||||||
|
input: {
|
||||||
|
"use strict";
|
||||||
|
for (;;) {
|
||||||
|
if (console.log("PASS")) {
|
||||||
|
let a;
|
||||||
|
} else {
|
||||||
|
break;
|
||||||
|
var a;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
expect: {
|
||||||
|
"use strict";
|
||||||
|
for (; console.log("PASS");) {
|
||||||
|
{
|
||||||
|
let a;
|
||||||
|
}
|
||||||
|
var a;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
expect_stdout: "PASS"
|
||||||
|
node_version: ">=4"
|
||||||
|
}
|
||||||
|
|
||||||
|
issue_4274_2: {
|
||||||
|
options = {
|
||||||
|
loops: true,
|
||||||
|
}
|
||||||
|
input: {
|
||||||
|
"use strict";
|
||||||
|
for (;;) {
|
||||||
|
if (!console.log("PASS")) {
|
||||||
|
break;
|
||||||
|
var a;
|
||||||
|
} else {
|
||||||
|
let a;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
expect: {
|
||||||
|
"use strict";
|
||||||
|
for (; console.log("PASS");) {
|
||||||
|
{
|
||||||
|
let a;
|
||||||
|
}
|
||||||
|
var a;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
expect_stdout: "PASS"
|
||||||
|
node_version: ">=4"
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user