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] -~----------~----~----~----~------~----~------~--~---
