output.with_parens(function(){
self.condition.print(output);
});
- output.semicolon();
+ if (output.option("beautify") && output.option("screw_ie8")) {
+ output.semicolon();
+ }
});
DEFPRINT(AST_While, function(self, output){
output.print("while");
// adds the block brackets if needed.
if (!self.body)
return output.force_semicolon();
- if (self.body instanceof AST_Do) {
- // Unconditionally use the if/do-while workaround for all browsers.
- // https://github.com/mishoo/UglifyJS/issues/#issue/57 IE
- // croaks with "syntax error" on code like this: if (foo)
- // do ... while(cond); else ... we need block brackets
- // around do/while
- make_block(self.body, output);
- return;
- }
var b = self.body;
while (true) {
if (b instanceof AST_If) {
}
}
}
+
+issue_186: {
+ beautify = {
+ beautify: false,
+ screw_ie8: true,
+ }
+ input: {
+ var x = 3;
+ if (foo())
+ do
+ do
+ alert(x);
+ while (--x);
+ while (x);
+ else
+ bar();
+ }
+ expect_exact: 'var x=3;if(foo())do do alert(x);while(--x)while(x)else bar();'
+}
+
+issue_186_ie8: {
+ beautify = {
+ beautify: false,
+ screw_ie8: false,
+ }
+ input: {
+ var x = 3;
+ if (foo())
+ do
+ do
+ alert(x);
+ while (--x);
+ while (x);
+ else
+ bar();
+ }
+ expect_exact: 'var x=3;if(foo())do do alert(x);while(--x)while(x)else bar();'
+}
+
+issue_186_beautify: {
+ beautify = {
+ beautify: true,
+ screw_ie8: true,
+ }
+ input: {
+ var x = 3;
+ if (foo())
+ do
+ do
+ alert(x);
+ while (--x);
+ while (x);
+ else
+ bar();
+ }
+ expect_exact: 'var x = 3;\n\nif (foo()) do do alert(x); while (--x); while (x); else bar();'
+}
+
+issue_186_beautify_ie8: {
+ beautify = {
+ beautify: true,
+ screw_ie8: false,
+ }
+ input: {
+ var x = 3;
+ if (foo())
+ do
+ do
+ alert(x);
+ while (--x);
+ while (x);
+ else
+ bar();
+ }
+ expect_exact: 'var x = 3;\n\nif (foo()) do do alert(x); while (--x) while (x) else bar();'
+}
+
+issue_186_bracketize: {
+ beautify = {
+ beautify: false,
+ bracketize: true,
+ screw_ie8: true,
+ }
+ input: {
+ var x = 3;
+ if (foo())
+ do
+ do
+ alert(x);
+ while (--x);
+ while (x);
+ else
+ bar();
+ }
+ expect_exact: 'var x=3;if(foo()){do{do{alert(x)}while(--x)}while(x)}else{bar()}'
+}
+
+issue_186_bracketize_ie8: {
+ beautify = {
+ beautify: false,
+ bracketize: true,
+ screw_ie8: false,
+ }
+ input: {
+ var x = 3;
+ if (foo())
+ do
+ do
+ alert(x);
+ while (--x);
+ while (x);
+ else
+ bar();
+ }
+ expect_exact: 'var x=3;if(foo()){do{do{alert(x)}while(--x)}while(x)}else{bar()}'
+}
+
+issue_186_beautify_bracketize: {
+ beautify = {
+ beautify: true,
+ bracketize: true,
+ screw_ie8: true,
+ }
+ input: {
+ var x = 3;
+ if (foo())
+ do
+ do
+ alert(x);
+ while (--x);
+ while (x);
+ else
+ bar();
+ }
+ expect_exact: 'var x = 3;\n\nif (foo()) {\n do {\n do {\n alert(x);\n } while (--x);\n } while (x);\n} else {\n bar();\n}'
+}
+
+issue_186_beautify_bracketize_ie8: {
+ beautify = {
+ beautify: true,
+ bracketize: true,
+ screw_ie8: false,
+ }
+ input: {
+ var x = 3;
+ if (foo())
+ do
+ do
+ alert(x);
+ while (--x);
+ while (x);
+ else
+ bar();
+ }
+ expect_exact: 'var x = 3;\n\nif (foo()) {\n do {\n do {\n alert(x);\n } while (--x)\n } while (x)\n} else {\n bar();\n}'
+}