I'd like you to do a code review.  To review this change, run

  gvn review --project https://google-caja.googlecode.com/svn/trunk ihab/[EMAIL 
PROTECTED]

Alternatively, to review the latest snapshot of this change
branch, run

  gvn --project https://google-caja.googlecode.com/svn/trunk review 
ihab/cajamodemultidecl

to review the following change:

*ihab/[EMAIL PROTECTED] | ihab | 2008-08-27 16:12:05 -0800 (Wed, 27 Aug 2008)

Description:

Add "-a, --caja" command line flag and remove "warts mode" flag. Fix bug in
handling of multi-declarations in for loops.



Affected Paths:
   M //trunk/src/com/google/caja/opensocial/GadgetRewriterMain.java
   M //trunk/src/com/google/caja/parser/quasiliteral/DefaultValijaRewriter.java
   M //trunk/src/com/google/caja/plugin/Config.java
   M //trunk/src/com/google/caja/plugin/PluginCompilerMain.java
   M //trunk/tests/com/google/caja/parser/quasiliteral/CommonJsRewriterTest.java
   M 
//trunk/tests/com/google/caja/parser/quasiliteral/DefaultValijaRewriterTest.java


This is a semiautomated message from "gvn mail".  See
<http://code.google.com/p/gvn/> to learn more.

Index: src/com/google/caja/opensocial/GadgetRewriterMain.java
===================================================================
--- src/com/google/caja/opensocial/GadgetRewriterMain.java      
(//trunk/src/com/google/caja/opensocial/[EMAIL PROTECTED])
+++ src/com/google/caja/opensocial/GadgetRewriterMain.java      
(//changes/ihab/cajamodemultidecl/trunk/src/com/google/caja/opensocial/[EMAIL 
PROTECTED])
@@ -71,6 +71,7 @@
     rewriter.setCssSchema(config.getCssSchema(mq));
     rewriter.setHtmlSchema(config.getHtmlSchema(mq));
     rewriter.setDebugMode(config.debugMode());
+    rewriter.setValijaMode(config.cajaMode());
 
     Writer w = new BufferedWriter(new FileWriter(config.getOutputBase()));
     try {
Index: src/com/google/caja/parser/quasiliteral/DefaultValijaRewriter.java
===================================================================
--- src/com/google/caja/parser/quasiliteral/DefaultValijaRewriter.java      
(//trunk/src/com/google/caja/parser/quasiliteral/[EMAIL PROTECTED])
+++ src/com/google/caja/parser/quasiliteral/DefaultValijaRewriter.java      
(//changes/ihab/cajamodemultidecl/trunk/src/com/google/caja/parser/quasiliteral/[EMAIL
 PROTECTED])
@@ -1228,15 +1228,18 @@
       @Override
       @RuleDescription(
           name="multiDeclaration",
-          synopsis="Convert a MultiDeclaration into a Block of initializer 
exprs",
+          synopsis="Convert a MultiDeclaration into a comma expression",
           reason="")
       public ParseTreeNode fire(ParseTreeNode node, Scope scope, MessageQueue 
mq) {
         if (node instanceof MultiDeclaration) {
-          ParseTreeNodeContainer children =
-              new ParseTreeNodeContainer(node.children());
-          return substV(
-              "{ @init*; }",
-              "init", expandAll(children, scope, mq));
+          Expression[] newChildren = new Expression[node.children().size()];
+          for (int i = 0; i < newChildren.length; i++) {
+            ExpressionStmt result = (ExpressionStmt)
+                expand(node.children().get(i), scope, mq);
+            newChildren[i] = result.getExpression();
+          }
+          return new ExpressionStmt(
+              Operation.create(Operator.COMMA, newChildren));
         }
         return NONE;
       }
Index: src/com/google/caja/plugin/Config.java
===================================================================
--- src/com/google/caja/plugin/Config.java      
(//trunk/src/com/google/caja/plugin/[EMAIL PROTECTED])
+++ src/com/google/caja/plugin/Config.java      
(//changes/ihab/cajamodemultidecl/trunk/src/com/google/caja/plugin/[EMAIL 
PROTECTED])
@@ -98,8 +98,8 @@
   private final Option DEBUG_MODE = defineBooleanOption(
       "g", "debug", "Set to add debugging info to cajoled output.");
 
-  private final Option WARTS_MODE = defineBooleanOption(
-      "w", "warts", "Enables more lenient cajoling via 'warts' features.");
+  private final Option CAJA_MODE = defineBooleanOption(
+      "a", "caja", "Enables Caja (as opposed to Cajita) mode.");
 
   private final Class<?> mainClass;
   private final PrintWriter stderr;
@@ -113,7 +113,7 @@
   private URI baseUri;
   private String gadgetView;
   private boolean debugMode;
-  private boolean wartsMode;
+  private boolean cajaMode;
   private int servicePort;
 
   public Config(Class<?> mainClass, PrintStream stderr, String usageText) {
@@ -158,7 +158,7 @@
 
   public boolean debugMode() { return debugMode; }
 
-  public boolean wartsMode() { return wartsMode; }
+  public boolean cajaMode() { return cajaMode; }
 
   public boolean processArguments(String[] argv) {
     try {
@@ -250,7 +250,7 @@
 
       gadgetView = cl.getOptionValue(VIEW.getOpt(), "canvas");
       debugMode = cl.hasOption(DEBUG_MODE.getOpt());
-      wartsMode = cl.hasOption(WARTS_MODE.getOpt());
+      cajaMode = cl.hasOption(CAJA_MODE.getOpt());
 
       String servicePortString;
       try {
Index: src/com/google/caja/plugin/PluginCompilerMain.java
===================================================================
--- src/com/google/caja/plugin/PluginCompilerMain.java      
(//trunk/src/com/google/caja/plugin/[EMAIL PROTECTED])
+++ src/com/google/caja/plugin/PluginCompilerMain.java      
(//changes/ihab/cajamodemultidecl/trunk/src/com/google/caja/plugin/[EMAIL 
PROTECTED])
@@ -83,7 +83,8 @@
     try {
       PluginMeta meta = new PluginMeta(makeEnvironment(config));
       meta.setDebugMode(config.debugMode());
-      meta.setWartsMode(config.wartsMode());
+      meta.setWartsMode(false);
+      meta.setValijaMode(config.cajaMode());
       PluginCompiler compiler = new PluginCompiler(meta, mq);
       mc = compiler.getMessageContext();
       compiler.setCssSchema(config.getCssSchema(mq));
Index: tests/com/google/caja/parser/quasiliteral/CommonJsRewriterTest.java
===================================================================
--- tests/com/google/caja/parser/quasiliteral/CommonJsRewriterTest.java      
(//trunk/tests/com/google/caja/parser/quasiliteral/[EMAIL PROTECTED])
+++ tests/com/google/caja/parser/quasiliteral/CommonJsRewriterTest.java      
(//changes/ihab/cajamodemultidecl/trunk/tests/com/google/caja/parser/quasiliteral/[EMAIL
 PROTECTED])
@@ -220,6 +220,12 @@
         "    (['test', 'x_', 'y']).toSource());");
     }
   }
+
+  public void testFor() throws Exception{
+    assertConsistent("var i; for (i = 0; i < 10; i++) {} i;");
+    assertConsistent("for (var i = 0; i < 10; i++) {} i;");
+    assertConsistent("for (var i = 0, j = 0; i < 10; i++) { j += 10; } j;");
+  }
 }
 
 
Index: tests/com/google/caja/parser/quasiliteral/DefaultValijaRewriterTest.java
===================================================================
--- tests/com/google/caja/parser/quasiliteral/DefaultValijaRewriterTest.java    
  (//trunk/tests/com/google/caja/parser/quasiliteral/[EMAIL PROTECTED])
+++ tests/com/google/caja/parser/quasiliteral/DefaultValijaRewriterTest.java    
  
(//changes/ihab/cajamodemultidecl/trunk/tests/com/google/caja/parser/quasiliteral/[EMAIL
 PROTECTED])
@@ -65,10 +65,6 @@
   public void testObject() throws Exception {
     assertConsistent("({x:1,y:2}).toString();");
   }
-  public void testFor() throws Exception {
-    assertConsistent("for (i=0; i<10; i++) {} i;");
-    assertConsistent("for (var i=0; i<10; i++) {} i;");
-  }
   public void testUnderscore() throws Exception {
     // TODO: enable this behavior
     // assertConsistent("var x_=1; x_;");
@@ -152,10 +148,6 @@
         + "assertEquals(3, x);");
   }
 
-  public void testTestToSource() throws Exception {
-    testToSource();
-  }
-
   @Override
   protected Object executePlain(String caja) throws IOException, 
ParseException {
     mq.getMessages().clear();


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to 
http://groups.google.com/group/google-caja-discuss
To unsubscribe, email [EMAIL PROTECTED]
-~----------~----~----~----~------~----~------~--~---

Reply via email to