From 20cd1ac64c7861ff9e962053a0540782e53c1aaa Mon Sep 17 00:00:00 2001
From: Lloyd Hilaiel <lloyd@hilaiel.com>
Date: Mon, 5 Mar 2012 15:55:25 -0700
Subject: [PATCH] have compress not exit prematurely when a syntax error exists
 in input - output a scary error message and nd return a non-zero exit code,
 but process all files closes #1257

---
 scripts/compress-worker.js | 30 +++++++++++++++++-------------
 1 file changed, 17 insertions(+), 13 deletions(-)

diff --git a/scripts/compress-worker.js b/scripts/compress-worker.js
index c905b5285..0cf43ce21 100644
--- a/scripts/compress-worker.js
+++ b/scripts/compress-worker.js
@@ -21,20 +21,24 @@ function compressResource(staticPath, name, files, cb) {
   }
 
   function compress() {
-    var final_code;
-    if (/\.js$/.test(name)) {
-      // compress javascript
-      var ast = jsp.parse(orig_code); // parse code and get the initial AST
-      ast = pro.ast_mangle(ast); // get a new AST with mangled names
-      ast = pro.ast_squeeze(ast); // get an AST with compression optimizations
-      final_code = pro.split_lines(pro.gen_code(ast), 32 * 1024); // compressed code here
-    } else if (/\.css$/.test(name)) {
-      // compress css
-      final_code = uglifycss.processString(orig_code);
-    } else {
-      return cb("can't determine content type: " + name);
+    try {
+      var final_code;
+      if (/\.js$/.test(name)) {
+        // compress javascript
+        var ast = jsp.parse(orig_code); // parse code and get the initial AST
+        ast = pro.ast_mangle(ast); // get a new AST with mangled names
+        ast = pro.ast_squeeze(ast); // get an AST with compression optimizations
+        final_code = pro.split_lines(pro.gen_code(ast), 32 * 1024); // compressed code here
+      } else if (/\.css$/.test(name)) {
+        // compress css
+        final_code = uglifycss.processString(orig_code);
+      } else {
+        return cb("can't determine content type: " + name);
+      }
+      writeFile(final_code);
+    } catch(e) {
+      cb("error compressing: " + e.toString() + "\n");
     }
-    writeFile(final_code);
   }
 
   function readNext() {
-- 
GitLab