switch branches must be declared `required` so that the compressor doesn't
authorMihai Bazon <mihai@bazon.net>
Mon, 3 Sep 2012 08:05:59 +0000 (11:05 +0300)
committerMihai Bazon <mihai@bazon.net>
Mon, 3 Sep 2012 08:05:59 +0000 (11:05 +0300)
replace nodes with a single statement.

looks stable for now, though mess begins to sink in.  need to review the AST
hierarchy.

lib/ast.js
lib/output.js

index bfafac6..d0acbb4 100644 (file)
@@ -304,11 +304,17 @@ var AST_Switch = DEFNODE("Switch", "expression", {
 }, AST_Statement);
 
 var AST_SwitchBlock = DEFNODE("SwitchBlock", null, {
-    $documentation: "The switch block is somewhat special, hence a special node for it"
+    $documentation: "The switch block is somewhat special, hence a special node for it",
+    initialize: function() {
+        this.required = true;
+    },
 }, AST_BlockStatement);
 
 var AST_SwitchBranch = DEFNODE("SwitchBranch", null, {
-    $documentation: "Base class for `switch` branches"
+    $documentation: "Base class for `switch` branches",
+    initialize: function() {
+        this.required = true;
+    },
 }, AST_BlockStatement);
 
 var AST_Default = DEFNODE("Default", null, {
index 05bd913..6d86a08 100644 (file)
@@ -151,7 +151,6 @@ function OutputStream(options) {
                 current_pos++;
             }
             might_need_space = false;
-            maybe_newline();
         }
         var a = str.split(/\r?\n/), n = a.length - 1;
         current_line += n;
@@ -466,7 +465,6 @@ function OutputStream(options) {
     });
     DEFPRINT(AST_BlockStatement, function(self, output){
         var body = self.body;
-        //if (!(body instanceof Array)) body = [ body ];
         if (body.length > 0) output.with_block(function(){
             display_body(body, false, output);
         });