Keep master in sync with harmony

* Do not mangle when no mangle is required
 * Improve use_asm reset while printing code
This commit is contained in:
Anthony Van de Gejuchte
2016-06-20 14:18:47 +02:00
committed by Richard van Velzen
parent aa82027a17
commit 85fbf86d7b
2 changed files with 4 additions and 4 deletions

View File

@@ -404,7 +404,7 @@ function OutputStream(options) {
AST_Node.DEFMETHOD("print", function(stream, force_parens){ AST_Node.DEFMETHOD("print", function(stream, force_parens){
var self = this, generator = self._codegen, prev_use_asm = use_asm; var self = this, generator = self._codegen, prev_use_asm = use_asm;
if (self instanceof AST_Directive && self.value == "use asm") { if (self instanceof AST_Directive && self.value == "use asm" && stream.parent() instanceof AST_Scope) {
use_asm = true; use_asm = true;
} }
function doit() { function doit() {
@@ -419,7 +419,7 @@ function OutputStream(options) {
doit(); doit();
} }
stream.pop_node(); stream.pop_node();
if (self instanceof AST_Lambda) { if (self instanceof AST_Scope) {
use_asm = prev_use_asm; use_asm = prev_use_asm;
} }
}); });
@@ -1221,7 +1221,7 @@ function OutputStream(options) {
output.print_string(self.getValue(), self.quote, in_directive); output.print_string(self.getValue(), self.quote, in_directive);
}); });
DEFPRINT(AST_Number, function(self, output){ DEFPRINT(AST_Number, function(self, output){
if (use_asm && self.start.raw != null) { if (use_asm && self.start && self.start.raw != null) {
output.print(self.start.raw); output.print(self.start.raw);
} else { } else {
output.print(make_num(self.getValue())); output.print(make_num(self.getValue()));

View File

@@ -224,7 +224,7 @@ describe("Directives", function() {
for (var i = 0; i < tests.length; i++) { for (var i = 0; i < tests.length; i++) {
assert.strictEqual( assert.strictEqual(
uglify.minify(tests[i][0], {fromString: true, quote_style: 3, compress: false}).code, uglify.minify(tests[i][0], {fromString: true, quote_style: 3, compress: false, mangle: false}).code,
tests[i][1], tests[i][1],
tests[i][0] tests[i][0]
); );