[Pkg-javascript-commits] [uglifyjs] 24/26: Add option to allow return outside of functions.

Jonas Smedegaard dr at jones.dk
Tue May 19 00:02:22 UTC 2015


This is an automated email from the git hooks/post-receive script.

js pushed a commit to tag v2.4.16
in repository uglifyjs.

commit f36a1eaa8b5203ab7e4616108c33a0b68668a8db
Author: Mihai Bazon <mihai at bazon.net>
Date:   Mon Oct 20 18:12:13 2014 +0300

    Add option to allow return outside of functions.
    
    Close #288
---
 bin/uglifyjs | 9 ++++++---
 lib/parse.js | 3 ++-
 2 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/bin/uglifyjs b/bin/uglifyjs
index 3a3318b..fc33f96 100755
--- a/bin/uglifyjs
+++ b/bin/uglifyjs
@@ -64,6 +64,7 @@ You need to pass an argument to this option to specify the name that your module
     .describe("v", "Verbose")
     .describe("V", "Print version number and exit.")
     .describe("noerr", "Don't throw an error for unknown options in -c, -b or -m.")
+    .describe("bare-returns", "Allow return outside of functions.  Useful when minifying CommonJS modules.")
 
     .alias("p", "prefix")
     .alias("o", "output")
@@ -100,6 +101,7 @@ You need to pass an argument to this option to specify the name that your module
     .boolean("lint")
     .boolean("V")
     .boolean("noerr")
+    .boolean("bare-returns")
 
     .wrap(80)
 
@@ -275,9 +277,10 @@ async.eachLimit(files, 1, function (file, cb) {
             else {
                 try {
                     TOPLEVEL = UglifyJS.parse(code, {
-                        filename   : file,
-                        toplevel   : TOPLEVEL,
-                        expression : ARGS.expr,
+                        filename     : file,
+                        toplevel     : TOPLEVEL,
+                        expression   : ARGS.expr,
+                        bare_returns : ARGS.bare_returns,
                     });
                 } catch(ex) {
                     if (ex instanceof UglifyJS.JS_Parse_Error) {
diff --git a/lib/parse.js b/lib/parse.js
index de982b1..931e5f6 100644
--- a/lib/parse.js
+++ b/lib/parse.js
@@ -609,6 +609,7 @@ function parse($TEXT, options) {
         toplevel       : null,
         expression     : false,
         html5_comments : true,
+        bare_returns   : false,
     });
 
     var S = {
@@ -788,7 +789,7 @@ function parse($TEXT, options) {
                 return if_();
 
               case "return":
-                if (S.in_function == 0)
+                if (S.in_function == 0 && !options.bare_returns)
                     croak("'return' outside of function");
                 return new AST_Return({
                     value: ( is("punc", ";")

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-javascript/uglifyjs.git



More information about the Pkg-javascript-commits mailing list