stack now relfects self correctly
This commit is contained in:
parent
7d8bcc06a1
commit
bca9b4ea5b
|
|
@ -1688,7 +1688,7 @@ merge(Compressor.prototype, {
|
||||||
|
|
||||||
OPT(AST_LabeledStatement, function(self, compressor){
|
OPT(AST_LabeledStatement, function(self, compressor){
|
||||||
if (self.body instanceof AST_Break
|
if (self.body instanceof AST_Break
|
||||||
&& compressor.loopcontrol_target(self.body.label) === compressor.self().body) {
|
&& compressor.loopcontrol_target(self.body.label) === self.body) {
|
||||||
return make_node(AST_EmptyStatement, self);
|
return make_node(AST_EmptyStatement, self);
|
||||||
}
|
}
|
||||||
return self.label.references.length == 0 ? self.body : self;
|
return self.label.references.length == 0 ? self.body : self;
|
||||||
|
|
@ -2298,7 +2298,7 @@ merge(Compressor.prototype, {
|
||||||
var first = self.body instanceof AST_BlockStatement ? self.body.body[0] : self.body;
|
var first = self.body instanceof AST_BlockStatement ? self.body.body[0] : self.body;
|
||||||
if (first instanceof AST_If) {
|
if (first instanceof AST_If) {
|
||||||
if (first.body instanceof AST_Break
|
if (first.body instanceof AST_Break
|
||||||
&& compressor.loopcontrol_target(first.body.label) === compressor.self()) {
|
&& compressor.loopcontrol_target(first.body.label) === self) {
|
||||||
if (self.condition) {
|
if (self.condition) {
|
||||||
self.condition = make_node(AST_Binary, self.condition, {
|
self.condition = make_node(AST_Binary, self.condition, {
|
||||||
left: self.condition,
|
left: self.condition,
|
||||||
|
|
@ -2311,7 +2311,7 @@ merge(Compressor.prototype, {
|
||||||
drop_it(first.alternative);
|
drop_it(first.alternative);
|
||||||
}
|
}
|
||||||
else if (first.alternative instanceof AST_Break
|
else if (first.alternative instanceof AST_Break
|
||||||
&& compressor.loopcontrol_target(first.alternative.label) === compressor.self()) {
|
&& compressor.loopcontrol_target(first.alternative.label) === self) {
|
||||||
if (self.condition) {
|
if (self.condition) {
|
||||||
self.condition = make_node(AST_Binary, self.condition, {
|
self.condition = make_node(AST_Binary, self.condition, {
|
||||||
left: self.condition,
|
left: self.condition,
|
||||||
|
|
@ -2501,7 +2501,7 @@ merge(Compressor.prototype, {
|
||||||
var last_branch = self.body[self.body.length - 1];
|
var last_branch = self.body[self.body.length - 1];
|
||||||
if (last_branch) {
|
if (last_branch) {
|
||||||
var stat = last_branch.body[last_branch.body.length - 1]; // last statement
|
var stat = last_branch.body[last_branch.body.length - 1]; // last statement
|
||||||
if (stat instanceof AST_Break && loop_body(compressor.loopcontrol_target(stat.label)) === compressor.self())
|
if (stat instanceof AST_Break && loop_body(compressor.loopcontrol_target(stat.label)) === self)
|
||||||
last_branch.body.pop();
|
last_branch.body.pop();
|
||||||
if (last_branch instanceof AST_Default && last_branch.body.length == 0) {
|
if (last_branch instanceof AST_Default && last_branch.body.length == 0) {
|
||||||
self.body.pop();
|
self.body.pop();
|
||||||
|
|
@ -2549,7 +2549,7 @@ merge(Compressor.prototype, {
|
||||||
in_block = save;
|
in_block = save;
|
||||||
return node;
|
return node;
|
||||||
}
|
}
|
||||||
else if (node instanceof AST_Break && this.loopcontrol_target(node.label) === compressor.self()) {
|
else if (node instanceof AST_Break && this.loopcontrol_target(node.label) === self) {
|
||||||
if (in_if) {
|
if (in_if) {
|
||||||
ruined = true;
|
ruined = true;
|
||||||
return node;
|
return node;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user