[gwt-contrib] Changes to support experimental development mode work: (issue1594803)
Reviewers: cromwellian, Description: Changes to support experimental development mode work: - Adds a hook to CrossSiteIframeLinker that a bookmarklet can use to change the URL loaded for a module. - Introduces the ResourceLoader interface, which allows the compiler's classpath to be modified without having to create a ClassLoader. - Adds clearCache() methods to force the compiler to reload files when compiling the same code a second time. - Adds javadoc for flag processing code. Please review this at http://gwt-code-reviews.appspot.com/1594803/ Affected files: M dev/core/src/com/google/gwt/core/linker/CrossSiteIframeLinker.java M dev/core/src/com/google/gwt/core/linker/CrossSiteIframeTemplate.js A dev/core/src/com/google/gwt/core/linker/DevModeRedirectHook.js M dev/core/src/com/google/gwt/dev/cfg/ModuleDef.java M dev/core/src/com/google/gwt/dev/cfg/ModuleDefLoader.java A dev/core/src/com/google/gwt/dev/cfg/ResourceLoader.java A dev/core/src/com/google/gwt/dev/cfg/ResourceLoaders.java M dev/core/src/com/google/gwt/dev/resource/impl/ResourceOracleImpl.java M dev/core/src/com/google/gwt/dev/resource/impl/ZipFileClassPathEntry.java M dev/core/src/com/google/gwt/util/tools/ArgHandler.java M dev/core/src/com/google/gwt/util/tools/ArgHandlerExtra.java -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] Re: Introduce a temp AST node intended to hold the fragment number (issue1590803)
LGTM http://gwt-code-reviews.appspot.com/1590803/diff/1/dev/core/src/com/google/gwt/dev/jjs/impl/GenerateJavaScriptAST.java File dev/core/src/com/google/gwt/dev/jjs/impl/GenerateJavaScriptAST.java (right): http://gwt-code-reviews.appspot.com/1590803/diff/1/dev/core/src/com/google/gwt/dev/jjs/impl/GenerateJavaScriptAST.java#newcode18 dev/core/src/com/google/gwt/dev/jjs/impl/GenerateJavaScriptAST.java:18: import java.io.StringReader; Are these sorted correct? You may need to import trunk/eclipse/ codestyle importorder http://gwt-code-reviews.appspot.com/1590803/ -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] Re: Adds <, <=, >, >=, ==, and != to JsStaticEval for numeric values. (issue1593803)
http://gwt-code-reviews.appspot.com/1593803/diff/1/dev/core/test/com/google/gwt/dev/js/JsStaticEvalTest.java File dev/core/test/com/google/gwt/dev/js/JsStaticEvalTest.java (right): http://gwt-code-reviews.appspot.com/1593803/diff/1/dev/core/test/com/google/gwt/dev/js/JsStaticEvalTest.java#newcode139 dev/core/test/com/google/gwt/dev/js/JsStaticEvalTest.java:139: assertEquals("alert(false);", optimize("alert(3 <= 2)")); Can you add this: alert(1.8E+10308 < 1.9E+10308) Which should be false since Infinity < Infinity is false. http://gwt-code-reviews.appspot.com/1593803/ -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] Adds <, <=, >, >=, ==, and != to JsStaticEval for numeric values. (issue1593803)
Reviewers: acleung, Description: Adds <, <=, >, >=, ==, and != to JsStaticEval for numeric values. Please review this at http://gwt-code-reviews.appspot.com/1593803/ Affected files: M dev/core/src/com/google/gwt/dev/js/JsStaticEval.java M dev/core/test/com/google/gwt/dev/js/JsStaticEvalTest.java Index: dev/core/src/com/google/gwt/dev/js/JsStaticEval.java === --- dev/core/src/com/google/gwt/dev/js/JsStaticEval.java(revision 10731) +++ dev/core/src/com/google/gwt/dev/js/JsStaticEval.java(working copy) @@ -15,6 +15,7 @@ */ package com.google.gwt.dev.js; +import com.google.gwt.dev.jjs.InternalCompilerException; import com.google.gwt.dev.jjs.SourceInfo; import com.google.gwt.dev.jjs.impl.OptimizerStats; import com.google.gwt.dev.js.ast.CanBooleanEval; @@ -182,6 +183,17 @@ trySimplifyNe(x, arg1, arg2, ctx); } else if (op == JsBinaryOperator.ADD) { trySimplifyAdd(x, arg1, arg2, ctx); + } else { + switch (op) { + case GT: + case GTE: + case LT: + case LTE: + trySimplifyCompare(x, arg1, arg2, op, ctx); + break; + default: + break; + } } } @@ -563,6 +575,37 @@ return num; } +private JsExpression simplifyCompare(JsExpression original, JsExpression arg1, +JsExpression arg2, JsBinaryOperator op) { + assert (original != null); + + // TODO(cromwellian) handle all types + if (arg1 instanceof JsNumberLiteral && arg2 instanceof JsNumberLiteral) { + double num1 = ((JsNumberLiteral) arg1).getValue(); + double num2 = ((JsNumberLiteral) arg2).getValue(); + boolean result = false; + switch(op) { +case LT: + result = num1 < num2; + break; +case LTE: + result = num1 <= num2; + break; +case GT: + result = num1 > num2; + break; +case GTE: + result = num1 >= num2; + break; +default: + throw new InternalCompilerException("Can't handle simplify of op " + op); + } +return JsBooleanLiteral.get(result); + } + // no simplification made + return original; +} + private JsExpression simplifyEq(JsExpression original, JsExpression arg1, JsExpression arg2) { assert (original != null); @@ -575,6 +618,10 @@ return simplifyNullEq(original, arg1); } + if (arg1 instanceof JsNumberLiteral && arg2 instanceof JsNumberLiteral) { + return JsBooleanLiteral.get(((JsNumberLiteral) arg1).getValue() + == ((JsNumberLiteral) arg2).getValue()); + } // no simplification made return original; } @@ -591,6 +638,10 @@ return simplifyNullNe(original, arg1); } + if (arg1 instanceof JsNumberLiteral && arg2 instanceof JsNumberLiteral) { +return JsBooleanLiteral.get(((JsNumberLiteral) arg1).getValue() +!= ((JsNumberLiteral) arg2).getValue()); + } // no simplification made return original; } @@ -749,6 +800,14 @@ } } return toReturn; +} + +private void trySimplifyCompare(JsExpression original, JsExpression arg1, +JsExpression arg2, JsBinaryOperator op, JsContext ctx) { + JsExpression updated = simplifyCompare(original, arg1, arg2, op); + if (updated != original) { +ctx.replaceMe(updated); + } } private void trySimplifyEq(JsExpression original, JsExpression arg1, Index: dev/core/test/com/google/gwt/dev/js/JsStaticEvalTest.java === --- dev/core/test/com/google/gwt/dev/js/JsStaticEvalTest.java (revision 10731) +++ dev/core/test/com/google/gwt/dev/js/JsStaticEvalTest.java (working copy) @@ -124,6 +124,21 @@ optimize("if (a()) { b() } else { throw 1; }")); } + public void testLiteralCompares() throws Exception { +assertEquals("alert(false);", optimize("alert(2 != 2)")); +assertEquals("alert(false);", optimize("alert(2 == 3)")); +assertEquals("alert(true);", optimize("alert(2 == 2)")); +assertEquals("alert(true);", optimize("alert(2 != 3)")); +assertEquals("alert(true);", optimize("alert(2 < 3)")); +assertEquals("alert(true);", optimize("alert(3 <= 3)")); +assertEquals("alert(true);", optimize("alert(3 > 2)")); +assertEquals("alert(true);", optimize("alert(3 >= 3)")); +assertEquals("alert(false);", optimize("alert(2 > 3)")); +assertEquals("alert(false);", optimize("alert(2 >= 3)")); +assertEquals("alert(false);", optimize("alert(3 < 2)")); +assertEquals("alert(false);", optimize("alert(3 <= 2)")); + } + public void testLiteralEqNull() throws Exception { assertEquals("alert(false);", optimize("alert(
[gwt-contrib] Re: FF8 Devmode Plugin (issue1589803)
http://gwt-code-reviews.appspot.com/1589803/diff/1/plugins/xpcom/ExternalWrapper.cpp File plugins/xpcom/ExternalWrapper.cpp (right): http://gwt-code-reviews.appspot.com/1589803/diff/1/plugins/xpcom/ExternalWrapper.cpp#newcode28 plugins/xpcom/ExternalWrapper.cpp:28: #include "nsIDOMWindowInternal.h" I still see unguarded references to nsIDOMWindowInternal in this file. http://gwt-code-reviews.appspot.com/1589803/diff/1/plugins/xpcom/Makefile File plugins/xpcom/Makefile (right): http://gwt-code-reviews.appspot.com/1589803/diff/1/plugins/xpcom/Makefile#newcode138 plugins/xpcom/Makefile:138: MOZALLOC_DLLFLAGS = -lmozalloc On 2011/11/11 10:16:05, tbroyer wrote: In http://gwt-code-reviews.appspot.com/1560803/ we talked about refactoring the MOZALLOC_DLLFLAGS, MOZJS_DLLFLAGS and ALLARCHCFLAGS before the 'ifeq ($(BROWSER),FF40)' (just after line 94) instead of copy/pasting them in each version. indeed. please make this change. http://gwt-code-reviews.appspot.com/1589803/ -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] Re: Fix !important css typo (issue1585805)
I suggest to just remove the !important. Don't see any other problems there. Yeah, that is what I'd prefer as well. I'll submit another patch with that. http://gwt-code-reviews.appspot.com/1585805/ -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
[gwt-contrib] Re: Add font-face support to CssResource. (issue1502806)
On 2011/07/28 21:11:18, unnurg wrote: LGTM It's been more than 3 months and still not committed :-( http://gwt-code-reviews.appspot.com/1502806/ -- http://groups.google.com/group/Google-Web-Toolkit-Contributors