From: Mihai Bazon Date: Thu, 24 Sep 2015 14:55:37 +0000 (+0300) Subject: Fix wrap_commonjs to include code first X-Git-Url: https://git.ndcode.org/public/gitweb.cgi?a=commitdiff_plain;h=33528002b496728457cccd9ddf54d2e50bc7e3f2;p=UglifyJS.git Fix wrap_commonjs to include code first (code could have directives, i.e. "use strict") --- diff --git a/lib/ast.js b/lib/ast.js index 2e539cff..c3176702 100644 --- a/lib/ast.js +++ b/lib/ast.js @@ -329,12 +329,11 @@ var AST_Toplevel = DEFNODE("Toplevel", "globals", { } })); } - var wrapped_tl = "(function(exports, global){ global['" + name + "'] = exports; '$ORIG'; '$EXPORTS'; }({}, (function(){return this}())))"; + var wrapped_tl = "(function(exports, global){ '$ORIG'; '$EXPORTS'; global['" + name + "'] = exports; }({}, (function(){return this}())))"; wrapped_tl = parse(wrapped_tl); wrapped_tl = wrapped_tl.transform(new TreeTransformer(function before(node){ - if (node instanceof AST_SimpleStatement) { - node = node.body; - if (node instanceof AST_String) switch (node.getValue()) { + if (node instanceof AST_Directive) { + switch (node.value) { case "$ORIG": return MAP.splice(self.body); case "$EXPORTS":