Rework has_directive

It's now available during tree walking, i.e. walker.has_directive("use
asm"), rather than as part of the scope.  It's thus no longer necessary
to call `figure_out_scope` before codegen.  Added special bits in the
code generator to overcome the fact that it doesn't inherit from
TreeWalker.

Fix #861
This commit is contained in:
Mihai Bazon
2015-11-11 22:15:25 +02:00
parent 3c4346728e
commit 7691bebea5
8 changed files with 60 additions and 59 deletions

View File

@@ -45,7 +45,6 @@ exports.minify = function(files, options) {
UglifyJS.base54.reset();
// 1. parse
var haveScope = false;
var toplevel = null,
sourcesContent = {};
@@ -74,7 +73,6 @@ exports.minify = function(files, options) {
var compress = { warnings: options.warnings };
UglifyJS.merge(compress, options.compress);
toplevel.figure_out_scope();
haveScope = true;
var sq = UglifyJS.Compressor(compress);
toplevel = toplevel.transform(sq);
}
@@ -82,17 +80,11 @@ exports.minify = function(files, options) {
// 3. mangle
if (options.mangle) {
toplevel.figure_out_scope(options.mangle);
haveScope = true;
toplevel.compute_char_frequency(options.mangle);
toplevel.mangle_names(options.mangle);
}
// 4. scope (if needed)
if (!haveScope) {
toplevel.figure_out_scope();
}
// 5. output
// 4. output
var inMap = options.inSourceMap;
var output = {};
if (typeof options.inSourceMap == "string") {