[gwt-contrib] Functional interfaces

2013-06-28 Thread Jens
What do you think about adding functional interfaces as RPC callbacks to 
GWT in the next release and make their use optional? Once Java8 is released 
this request will come anyways to make Java code more readable and even 
today at least IntelliJ users (not sure about Eclipse) can benefit from 
them, because IntelliJ reformats them to lambda style.

Taking GWT-RPC as example we would introduce SuccessCallback and 
FailureCallback and you can then choose between

- serverMethod(parameter, new AsyncCallback())
- serverMethod(parameter, new SuccessCallback(), new FailureCallback())

Same for RequestFactory's Receiver and RequestBuilder's RequestCallback.

For example as of today I am using something like the following which reads 
quite nice (thanks to IntelliJ's formatting):

service.getPerson(id, createAsyncCallback( //wraps both functional 
interfaces into an AsyncCallback because of current API
  (result) -> { onPersonLoaded(result); },
  (failure) -> { onPersonLoadFailed(failure); }
);


-- J.

-- 
http://groups.google.com/group/Google-Web-Toolkit-Contributors
--- 
You received this message because you are subscribed to the Google Groups "GWT 
Contributors" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to google-web-toolkit-contributors+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




[gwt-contrib] Change in gwt[master]: Super Dev Mode: deemphasize unused Java lines in codeserver'...

2013-06-28 Thread Brian Slesinsky

Brian Slesinsky has submitted this change and it was merged.

Change subject: Super Dev Mode: deemphasize unused Java lines in  
codeserver's UI

..


Super Dev Mode: deemphasize unused Java lines in codeserver's UI

Modified the code server to render Java files as HTML when browsing
interactively. (JavaScript debuggers continue to load the plain text.)
In the HTML, lines that make no contribution to the JavaScript according
to the source map are greyed out.

This implementation is pretty inefficient since we parse the entire
source map on every html page load, but it seems to suffice.

Change-Id: Id16bcd2287630cebf7afb8bbbe0a198b28f5ada9
Review-Link: https://gwt-review.googlesource.com/#/c/3600/
---
M dev/codeserver/java/com/google/gwt/dev/codeserver/HtmlWriter.java
A dev/codeserver/java/com/google/gwt/dev/codeserver/ReverseSourceMap.java
M dev/codeserver/java/com/google/gwt/dev/codeserver/SourceHandler.java
M dev/codeserver/java/com/google/gwt/dev/codeserver/SourceMap.java
4 files changed, 142 insertions(+), 15 deletions(-)

Approvals:
  Matthew Dempsky: Looks good to me, approved
  Leeroy Jenkins: Verified



diff --git  
a/dev/codeserver/java/com/google/gwt/dev/codeserver/HtmlWriter.java  
b/dev/codeserver/java/com/google/gwt/dev/codeserver/HtmlWriter.java

index 7cde2c4..ddf7db4 100644
--- a/dev/codeserver/java/com/google/gwt/dev/codeserver/HtmlWriter.java
+++ b/dev/codeserver/java/com/google/gwt/dev/codeserver/HtmlWriter.java
@@ -17,10 +17,12 @@
 class HtmlWriter {
   private static final Set ALLOWED_TAGS =
   Collections.unmodifiableSet(new HashSet(Arrays.asList(
-  "html", "head", "title", "style", "body", "pre", "span", "h1", "h2", 
"a",
+  "html", "head", "title", "style",
+  "body", "h1", "h2", "h3", "h4", "h5", "h6", "a", "pre", "span",
   "table", "tr", "td")));
   private static final Set ALLOWED_ATTS =
-  Collections.unmodifiableSet(new  
HashSet(Arrays.asList("class=", "href=")));

+  Collections.unmodifiableSet(new HashSet(Arrays.asList(
+  "class=", "href=")));

   private final Writer out;

diff --git  
a/dev/codeserver/java/com/google/gwt/dev/codeserver/ReverseSourceMap.java  
b/dev/codeserver/java/com/google/gwt/dev/codeserver/ReverseSourceMap.java

new file mode 100644
index 000..a000d71
--- /dev/null
+++  
b/dev/codeserver/java/com/google/gwt/dev/codeserver/ReverseSourceMap.java

@@ -0,0 +1,59 @@
+/*
+ * Copyright 2013 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may  
not
+ * use this file except in compliance with the License. You may obtain a  
copy of

+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,  
WITHOUT

+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations  
under

+ * the License.
+ */
+
+package com.google.gwt.dev.codeserver;
+
+import com.google.gwt.core.ext.TreeLogger;
+import com.google.gwt.dev.util.Util;
+import com.google.gwt.thirdparty.debugging.sourcemap.SourceMapConsumerV3;
+import  
com.google.gwt.thirdparty.debugging.sourcemap.SourceMapParseException;

+
+/**
+ * A mapping from Java lines to JavaScript.
+ */
+class ReverseSourceMap {
+  private final SourceMapConsumerV3 consumer;
+
+  private ReverseSourceMap(SourceMapConsumerV3 consumer) {
+this.consumer = consumer;
+  }
+
+  /**
+   * Reads a source map from disk and parses it into an in-memory  
representation.

+   * If it can't be loaded, logs a warning and returns an empty source map.
+   */
+  static ReverseSourceMap load(TreeLogger logger, ModuleState moduleState)  
{

+SourceMapConsumerV3 consumer = new SourceMapConsumerV3();
+String unparsed = Util.readFileAsString(moduleState.findSourceMap());
+try {
+  consumer.parse(unparsed);
+  return new ReverseSourceMap(consumer);
+} catch (SourceMapParseException e) {
+  logger.log(TreeLogger.WARN, "can't parse source map", e);
+  return new ReverseSourceMap(null);
+}
+  }
+
+  /**
+   * Returns true if the given line in a Java file has any corresponding  
JavaScript in
+   * the GWT compiler's output. (The source file's path is relative to the  
source root directory

+   * where the GWT compiler found it.)
+   */
+  boolean appearsInJavaScript(String path, int lineNumber) {
+// TODO: getReverseMapping() seems to be off by one (lines numbered  
from zero). Why?
+return consumer != null && !consumer.getReverseMapping(path,  
lineNumber - 1, -1).isEmpty();

+  }
+}
diff --git  
a/dev/codeserver/java/com/google/gwt/dev/codeserver/SourceHandler.java  
b/dev/codeserver/java/com/google/gwt/dev/codeserver/SourceHandler.java

index e24755a..e3bc45b 100644
--- a/dev/codeserver/java/com/google/g

[gwt-contrib] Change in gwt[master]: Super Dev Mode: deemphasize unused Java lines in codeserver'...

2013-06-28 Thread Matthew Dempsky

Matthew Dempsky has posted comments on this change.

Change subject: Super Dev Mode: deemphasize unused Java lines in  
codeserver's UI

..


Patch Set 3: Code-Review+2

--
To view, visit https://gwt-review.googlesource.com/3600
To unsubscribe, visit https://gwt-review.googlesource.com/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Id16bcd2287630cebf7afb8bbbe0a198b28f5ada9
Gerrit-PatchSet: 3
Gerrit-Project: gwt
Gerrit-Branch: master
Gerrit-Owner: Brian Slesinsky 
Gerrit-Reviewer: Brian Slesinsky 
Gerrit-Reviewer: John Stalcup 
Gerrit-Reviewer: Leeroy Jenkins 
Gerrit-Reviewer: Matthew Dempsky 
Gerrit-HasComments: No

--
http://groups.google.com/group/Google-Web-Toolkit-Contributors
--- 
You received this message because you are subscribed to the Google Groups "GWT Contributors" group.

To unsubscribe from this group and stop receiving emails from it, send an email 
to google-web-toolkit-contributors+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




[gwt-contrib] Change in gwt[master]: Super Dev Mode: deemphasize unused Java lines in codeserver'...

2013-06-28 Thread Brian Slesinsky

Hello Matthew Dempsky, Leeroy Jenkins,

I'd like you to reexamine a change.  Please visit

https://gwt-review.googlesource.com/3600

to look at the new patch set (#3).

Change subject: Super Dev Mode: deemphasize unused Java lines in  
codeserver's UI

..

Super Dev Mode: deemphasize unused Java lines in codeserver's UI

Modified the code server to render Java files as HTML when browsing
interactively. (JavaScript debuggers continue to load the plain text.)
In the HTML, lines that make no contribution to the JavaScript according
to the source map are greyed out.

This implementation is pretty inefficient since we parse the entire
source map on every html page load, but it seems to suffice.

Change-Id: Id16bcd2287630cebf7afb8bbbe0a198b28f5ada9
Review-Link: https://gwt-review.googlesource.com/#/c/3600/
---
M dev/codeserver/java/com/google/gwt/dev/codeserver/HtmlWriter.java
A dev/codeserver/java/com/google/gwt/dev/codeserver/ReverseSourceMap.java
M dev/codeserver/java/com/google/gwt/dev/codeserver/SourceHandler.java
M dev/codeserver/java/com/google/gwt/dev/codeserver/SourceMap.java
4 files changed, 142 insertions(+), 15 deletions(-)


--
To view, visit https://gwt-review.googlesource.com/3600
To unsubscribe, visit https://gwt-review.googlesource.com/settings

Gerrit-MessageType: newpatchset
Gerrit-Change-Id: Id16bcd2287630cebf7afb8bbbe0a198b28f5ada9
Gerrit-PatchSet: 3
Gerrit-Project: gwt
Gerrit-Branch: master
Gerrit-Owner: Brian Slesinsky 
Gerrit-Reviewer: Brian Slesinsky 
Gerrit-Reviewer: John Stalcup 
Gerrit-Reviewer: Leeroy Jenkins 
Gerrit-Reviewer: Matthew Dempsky 

--
http://groups.google.com/group/Google-Web-Toolkit-Contributors
--- 
You received this message because you are subscribed to the Google Groups "GWT Contributors" group.

To unsubscribe from this group and stop receiving emails from it, send an email 
to google-web-toolkit-contributors+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




[gwt-contrib] Change in gwt[master]: Super Dev Mode: deemphasize unused Java lines in codeserver'...

2013-06-28 Thread Brian Slesinsky

Brian Slesinsky has posted comments on this change.

Change subject: Super Dev Mode: deemphasize unused Java lines in  
codeserver's UI

..


Patch Set 1:

(7 comments)


File dev/codeserver/java/com/google/gwt/dev/codeserver/ReverseSourceMap.java
Line 1: package com.google.gwt.dev.codeserver;
Done


Line 12:   private final SourceMapConsumerV3 consumer;
Not wild about it but I don't have a better name.


Line 20:* If it can't be loaded, logs an error and returns null.
Done


Line 29:   logger.log(TreeLogger.WARN, "can't parse source map", e);
This class is package-local and it's only used in one place, so I think  
it's okay to specialize it to make the calling code cleaner. If we ever  
reuse it, we can generalize it.


But there was a bug because the caller didn't check for null. Fixed by  
changing load() to return an empty source map instead of null.




File dev/codeserver/java/com/google/gwt/dev/codeserver/SourceHandler.java
Line 189:   private void sendSourceFileAsHtml(String moduleName, String  
fileName, BufferedReader lines,
If this were a public API then from a "what's the contract with the caller"  
perspective, all that matters is that it sends an HTTP response. But since  
this isn't a public API and there's only one caller, I'd rather explain  
what it actually does.



Line 194: File file = new File(fileName);
Done. Went with "sourcePath" since it's actually a path.


Line 200: out.startTag("html").nl();
We don't currently have a server-side templating library as a GWT  
dependency and I decided to avoid adding one. (Anything we use should do  
auto-escaping to protect against XSS.)



--
To view, visit https://gwt-review.googlesource.com/3600
To unsubscribe, visit https://gwt-review.googlesource.com/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Id16bcd2287630cebf7afb8bbbe0a198b28f5ada9
Gerrit-PatchSet: 1
Gerrit-Project: gwt
Gerrit-Branch: master
Gerrit-Owner: Brian Slesinsky 
Gerrit-Reviewer: Brian Slesinsky 
Gerrit-Reviewer: John Stalcup 
Gerrit-Reviewer: Leeroy Jenkins 
Gerrit-Reviewer: Matthew Dempsky 
Gerrit-HasComments: Yes

--
http://groups.google.com/group/Google-Web-Toolkit-Contributors
--- 
You received this message because you are subscribed to the Google Groups "GWT Contributors" group.

To unsubscribe from this group and stop receiving emails from it, send an email 
to google-web-toolkit-contributors+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




[gwt-contrib] Change in gwt[master]: adds type tightening (and tests) for casts inside of RunAsyn...

2013-06-28 Thread John Stalcup

John Stalcup has submitted this change and it was merged.

Change subject: adds type tightening (and tests) for casts inside of  
RunAsync onSuccessCalls, resulting in smaller leftover fragments

..


adds type tightening (and tests) for casts inside of RunAsync  
onSuccessCalls, resulting in smaller leftover fragments


Change-Id: I7b454db222da054834aa0d78b1a769100bf9da9b
Review-Link: https://gwt-review.googlesource.com/#/c/3460/
---
M dev/core/src/com/google/gwt/dev/jjs/impl/TypeTightener.java
M dev/core/test/com/google/gwt/dev/jjs/impl/CodeSplitter2Test.java
2 files changed, 56 insertions(+), 9 deletions(-)

Approvals:
  Roberto Lublinerman: Looks good to me, approved
  Leeroy Jenkins: Verified



diff --git a/dev/core/src/com/google/gwt/dev/jjs/impl/TypeTightener.java  
b/dev/core/src/com/google/gwt/dev/jjs/impl/TypeTightener.java

index 5ac6ea7..0c13a7a 100644
--- a/dev/core/src/com/google/gwt/dev/jjs/impl/TypeTightener.java
+++ b/dev/core/src/com/google/gwt/dev/jjs/impl/TypeTightener.java
@@ -45,6 +45,7 @@
 import com.google.gwt.dev.jjs.ast.JProgram;
 import com.google.gwt.dev.jjs.ast.JReferenceType;
 import com.google.gwt.dev.jjs.ast.JReturnStatement;
+import com.google.gwt.dev.jjs.ast.JRunAsync;
 import com.google.gwt.dev.jjs.ast.JTryStatement;
 import com.google.gwt.dev.jjs.ast.JType;
 import com.google.gwt.dev.jjs.ast.JTypeOracle;
@@ -625,6 +626,13 @@
 }

 @Override
+public boolean visit(JRunAsync x, Context ctx) {
+  // JRunAsync's onSuccessCall is not normally traversed but should be  
here.

+  x.traverseOnSuccess(this);
+  return true;
+}
+
+@Override
 public boolean visit(JClassType x, Context ctx) {
   // don't mess with classes used in code gen
   if (program.codeGenTypes.contains(x)) {
diff --git  
a/dev/core/test/com/google/gwt/dev/jjs/impl/CodeSplitter2Test.java  
b/dev/core/test/com/google/gwt/dev/jjs/impl/CodeSplitter2Test.java

index 70eaa5e..bc8b1b6 100644
--- a/dev/core/test/com/google/gwt/dev/jjs/impl/CodeSplitter2Test.java
+++ b/dev/core/test/com/google/gwt/dev/jjs/impl/CodeSplitter2Test.java
@@ -83,13 +83,14 @@

   private JProgram jProgram = null;
   private JsProgram jsProgram = null;
-
-  public void setUp() throws Exception{
+
+  @Override
+  public void setUp() throws Exception {
 super.setUp();
 stackMode.addDefinedValue(new ConditionNone(), "STRIP");
 jsProgram = new JsProgram();
   }
-
+
   public void testSimple() throws UnableToCompleteException {
 StringBuffer code = new StringBuffer();
 code.append("package test;\n");
@@ -127,6 +128,34 @@

 // functionC must be in the initial fragment.
 assertInFragment("functionC", 0);
+  }
+
+  public void testOnSuccessCallCast() throws UnableToCompleteException {
+StringBuffer code = new StringBuffer();
+code.append("package test;\n");
+code.append("import com.google.gwt.core.client.GWT;\n");
+code.append("import com.google.gwt.core.client.RunAsyncCallback;\n");
+code.append("public class EntryPoint {\n");
+code.append("  " + functionA);
+code.append("  " + functionB);
+code.append("  " + functionC);
+code.append("  public static void onModuleLoad() {\n");
+code.append("functionC();");
+code.append("" +  
createRunAsync("(RunAsyncCallback)", "functionA();"));
+code.append("" +  
createRunAsync("(RunAsyncCallback)", "functionB();"));

+code.append("  }\n");
+code.append("}\n");
+compileSnippet(code.toString());
+
+// init + 2 fragments + leftover.
+assertFragmentCount(4);
+
+assertInFragment("functionA", 1);
+assertInFragment("functionB", 2);
+
+// Verify that functionA and B aren't in the leftover.
+assertNotInFragment("functionA", 3);
+assertNotInFragment("functionB", 3);
   }

   public void testMergeLeftOvers() throws UnableToCompleteException {
@@ -292,6 +321,8 @@
 jProgram.addEntryMethod(findMethod(jProgram, "onModuleLoad"));
 CastNormalizer.exec(jProgram, false);
 ArrayNormalizer.exec(jProgram);
+TypeTightener.exec(jProgram);
+MethodCallTightener.exec(jProgram);
 Map symbolTable =
   new TreeMap(new  
SymbolData.ClassIdentComparator());

 JavaToJavaScriptMap map = GenerateJavaScriptAST.exec(
@@ -332,13 +363,21 @@
 mergeLimit);
   }

-
-  private static String createRunAsync(String body) {
-return "GWT.runAsync(new RunAsyncCallback() {" +
-   "public void onFailure(Throwable reason) {}" +
-   "public void onSuccess() {" + body + "}});";
+  private static String createRunAsync(String cast, String body) {
+StringBuffer code = new StringBuffer();
+code.append("GWT.runAsync(" + cast + "new RunAsyncCallback() {\n");
+code.append("  public void onFailure(Throwable reason) {}\n");
+code.append("  public void onSuccess() {\n");
+code.append("" + body);
+code.append("  }\n");
+code.append("});\n");
+retu

[gwt-contrib] Change in gwt[master]: Super Dev Mode: deemphasize unused Java lines in codeserver'...

2013-06-28 Thread Matthew Dempsky

Matthew Dempsky has posted comments on this change.

Change subject: Super Dev Mode: deemphasize unused Java lines in  
codeserver's UI

..


Patch Set 2: Code-Review+2

(1 comment)

Sorry, another nit. :)


File dev/codeserver/java/com/google/gwt/dev/codeserver/ReverseSourceMap.java
Line 36:* If it can't be loaded, logs an warning and returns an empty  
source map.

Nit: "logs a warning", not "an warning".


--
To view, visit https://gwt-review.googlesource.com/3600
To unsubscribe, visit https://gwt-review.googlesource.com/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Id16bcd2287630cebf7afb8bbbe0a198b28f5ada9
Gerrit-PatchSet: 2
Gerrit-Project: gwt
Gerrit-Branch: master
Gerrit-Owner: Brian Slesinsky 
Gerrit-Reviewer: John Stalcup 
Gerrit-Reviewer: Leeroy Jenkins 
Gerrit-Reviewer: Matthew Dempsky 
Gerrit-HasComments: Yes

--
http://groups.google.com/group/Google-Web-Toolkit-Contributors
--- 
You received this message because you are subscribed to the Google Groups "GWT Contributors" group.

To unsubscribe from this group and stop receiving emails from it, send an email 
to google-web-toolkit-contributors+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




[gwt-contrib] Change in gwt[master]: Super Dev Mode: deemphasize unused Java lines in codeserver'...

2013-06-28 Thread Brian Slesinsky

Hello Matthew Dempsky, Leeroy Jenkins,

I'd like you to reexamine a change.  Please visit

https://gwt-review.googlesource.com/3600

to look at the new patch set (#2).

Change subject: Super Dev Mode: deemphasize unused Java lines in  
codeserver's UI

..

Super Dev Mode: deemphasize unused Java lines in codeserver's UI

Modified the code server to render Java files as HTML when browsing
interactively. (JavaScript debuggers continue to load the plain text.)
In the HTML, lines that make no contribution to the JavaScript according
to the source map are greyed out.

This implementation is pretty inefficient since we parse the entire
source map on every html page load, but it seems to suffice.

Change-Id: Id16bcd2287630cebf7afb8bbbe0a198b28f5ada9
Review-Link: https://gwt-review.googlesource.com/#/c/3600/
---
M dev/codeserver/java/com/google/gwt/dev/codeserver/HtmlWriter.java
A dev/codeserver/java/com/google/gwt/dev/codeserver/ReverseSourceMap.java
M dev/codeserver/java/com/google/gwt/dev/codeserver/SourceHandler.java
M dev/codeserver/java/com/google/gwt/dev/codeserver/SourceMap.java
4 files changed, 142 insertions(+), 15 deletions(-)


--
To view, visit https://gwt-review.googlesource.com/3600
To unsubscribe, visit https://gwt-review.googlesource.com/settings

Gerrit-MessageType: newpatchset
Gerrit-Change-Id: Id16bcd2287630cebf7afb8bbbe0a198b28f5ada9
Gerrit-PatchSet: 2
Gerrit-Project: gwt
Gerrit-Branch: master
Gerrit-Owner: Brian Slesinsky 
Gerrit-Reviewer: John Stalcup 
Gerrit-Reviewer: Leeroy Jenkins 
Gerrit-Reviewer: Matthew Dempsky 

--
http://groups.google.com/group/Google-Web-Toolkit-Contributors
--- 
You received this message because you are subscribed to the Google Groups "GWT Contributors" group.

To unsubscribe from this group and stop receiving emails from it, send an email 
to google-web-toolkit-contributors+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




[gwt-contrib] Change in gwt[master]: Optimize initializing fields at the top scope.

2013-06-28 Thread Stephen Haberman

Stephen Haberman has posted comments on this change.

Change subject: Optimize initializing fields at the top scope.
..


Patch Set 6:

(1 comment)


File dev/core/src/com/google/gwt/dev/jjs/impl/GenerateJavaScriptAST.java
Line 2346:   if (x.getTarget().isStatic() | 
| !x.getTarget().getEnclosingType().replaces(currentClass)) {

You are right, fields are tricky.

At this point, I'm in favor of 1)--if/when we do miss a complex scenario,  
the worst case is that the semantics (fields being assigned too soon) will  
be GWT's current behavior.



--
To view, visit https://gwt-review.googlesource.com/3440
To unsubscribe, visit https://gwt-review.googlesource.com/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I97a06eb36396a8b8659ce9a025b21a9cf93d0500
Gerrit-PatchSet: 6
Gerrit-Project: gwt
Gerrit-Branch: master
Gerrit-Owner: Stephen Haberman 
Gerrit-Reviewer: Brian Slesinsky 
Gerrit-Reviewer: Leeroy Jenkins 
Gerrit-Reviewer: Matthew Dempsky 
Gerrit-Reviewer: Roberto Lublinerman 
Gerrit-Reviewer: Stephen Haberman 
Gerrit-HasComments: Yes

--
http://groups.google.com/group/Google-Web-Toolkit-Contributors
--- 
You received this message because you are subscribed to the Google Groups "GWT Contributors" group.

To unsubscribe from this group and stop receiving emails from it, send an email 
to google-web-toolkit-contributors+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




[gwt-contrib] Change in gwt[master]: adds type tightening (and tests) for casts inside of RunAsyn...

2013-06-28 Thread Roberto Lublinerman

Roberto Lublinerman has posted comments on this change.

Change subject: adds type tightening (and tests) for casts inside of  
RunAsync onSuccessCalls, resulting in smaller leftover fragments

..


Patch Set 2: Code-Review+2

--
To view, visit https://gwt-review.googlesource.com/3460
To unsubscribe, visit https://gwt-review.googlesource.com/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I7b454db222da054834aa0d78b1a769100bf9da9b
Gerrit-PatchSet: 2
Gerrit-Project: gwt
Gerrit-Branch: master
Gerrit-Owner: John Stalcup 
Gerrit-Reviewer: John Stalcup 
Gerrit-Reviewer: Leeroy Jenkins 
Gerrit-Reviewer: Roberto Lublinerman 
Gerrit-HasComments: No

--
http://groups.google.com/group/Google-Web-Toolkit-Contributors
--- 
You received this message because you are subscribed to the Google Groups "GWT Contributors" group.

To unsubscribe from this group and stop receiving emails from it, send an email 
to google-web-toolkit-contributors+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




[gwt-contrib] Change in gwt[master]: Optimize initializing fields at the top scope.

2013-06-28 Thread Roberto Lublinerman

Roberto Lublinerman has posted comments on this change.

Change subject: Optimize initializing fields at the top scope.
..


Patch Set 6:

(1 comment)


File dev/core/src/com/google/gwt/dev/jjs/impl/GenerateJavaScriptAST.java
Line 2346:   if (x.getTarget().isStatic() | 
| !x.getTarget().getEnclosingType().replaces(currentClass)) {
I think it is worth keeping in but still think there are some unsafe  
(incorrect) scenarios . You have to go very out of your way to reproduce  
those but I think we should be very careful still.


Say for example that you store the "this" reference in a field (possibly  
static) and then call a static function that accesses it and does a dynamic  
call. Then the optimization in that case is incorrect.


We have three choices:
(1) Leave it as it is now and assume that we are allowed our semantics to  
divert from java (as we do in some other limited circumstances).


(2) Don't optimize those cases.

(3) Add the necessary checks. i.e. that this is not leaked to a field. But  
we have to make sure that we cover all possible scenarios.



--
To view, visit https://gwt-review.googlesource.com/3440
To unsubscribe, visit https://gwt-review.googlesource.com/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I97a06eb36396a8b8659ce9a025b21a9cf93d0500
Gerrit-PatchSet: 6
Gerrit-Project: gwt
Gerrit-Branch: master
Gerrit-Owner: Stephen Haberman 
Gerrit-Reviewer: Brian Slesinsky 
Gerrit-Reviewer: Leeroy Jenkins 
Gerrit-Reviewer: Matthew Dempsky 
Gerrit-Reviewer: Roberto Lublinerman 
Gerrit-Reviewer: Stephen Haberman 
Gerrit-HasComments: Yes

--
http://groups.google.com/group/Google-Web-Toolkit-Contributors
--- 
You received this message because you are subscribed to the Google Groups "GWT Contributors" group.

To unsubscribe from this group and stop receiving emails from it, send an email 
to google-web-toolkit-contributors+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




[gwt-contrib] Change in gwt[master]: Adds a regression test for fragment splitting

2013-06-28 Thread John Stalcup

John Stalcup has submitted this change and it was merged.

Change subject: Adds a regression test for fragment splitting
..


Adds a regression test for fragment splitting

Test to verifies that future changes don't accidentally
push *all* code into the leftover fragment.

Change-Id: I34d21081ea4e90b95f5b2d77a7a647e388e25335
Review-Link: https://gwt-review.googlesource.com/#/c/3590/
---
M user/src/com/google/gwt/core/client/impl/LoadingStrategyBase.java
M user/src/com/google/gwt/core/client/impl/XhrLoadingStrategy.java
M user/test/com/google/gwt/dev/jjs/CompilerSuite.java
A user/test/com/google/gwt/dev/jjs/RunAsyncContent.gwt.xml
A user/test/com/google/gwt/dev/jjs/test/LoggingXhrLoadingStrategy.java
A user/test/com/google/gwt/dev/jjs/test/RunAsyncContentTest.java
6 files changed, 200 insertions(+), 3 deletions(-)

Approvals:
  Matthew Dempsky: Looks good to me, but someone else must approve
  Leeroy Jenkins: Verified
  Goktug Gokdogan: Looks good to me, approved



diff --git  
a/user/src/com/google/gwt/core/client/impl/LoadingStrategyBase.java  
b/user/src/com/google/gwt/core/client/impl/LoadingStrategyBase.java

index 130200c..5c0d38b 100644
--- a/user/src/com/google/gwt/core/client/impl/LoadingStrategyBase.java
+++ b/user/src/com/google/gwt/core/client/impl/LoadingStrategyBase.java
@@ -57,7 +57,7 @@
* RequestData's tryInstall() function, and if it fails, it should call  
it's

* RequestData's onLoadError() function.
*/
-  interface DownloadStrategy {
+  protected interface DownloadStrategy {
 void tryDownload(final RequestData request);
   }

@@ -110,8 +110,12 @@
   this.downloadStrategy = downloadStrategy;
 }

+public LoadTerminatedHandler getErrorHandler() { return errorHandler; }
+
 public int getFragment() { return fragment; }

+public int getRetryCount() { return retryCount; }
+
 public String getUrl() { return url; }

 public void onLoadError(Throwable e, boolean mayRetry) {
diff --git  
a/user/src/com/google/gwt/core/client/impl/XhrLoadingStrategy.java  
b/user/src/com/google/gwt/core/client/impl/XhrLoadingStrategy.java

index 1ced92f..e6054ff 100644
--- a/user/src/com/google/gwt/core/client/impl/XhrLoadingStrategy.java
+++ b/user/src/com/google/gwt/core/client/impl/XhrLoadingStrategy.java
@@ -29,7 +29,7 @@
   /**
* Uses XHR's to download the code.
*/
-  protected static class XhrDownloadStrategy implements DownloadStrategy {
+  public static class XhrDownloadStrategy implements DownloadStrategy {
 @Override
 public void tryDownload(final RequestData request) {
   final XMLHttpRequest xhr = XMLHttpRequest.create();
diff --git a/user/test/com/google/gwt/dev/jjs/CompilerSuite.java  
b/user/test/com/google/gwt/dev/jjs/CompilerSuite.java

index 1e35dd0..47e4018 100644
--- a/user/test/com/google/gwt/dev/jjs/CompilerSuite.java
+++ b/user/test/com/google/gwt/dev/jjs/CompilerSuite.java
@@ -22,8 +22,8 @@
 import com.google.gwt.dev.jjs.test.BlankInterfaceTest;
 import com.google.gwt.dev.jjs.test.ClassCastTest;
 import com.google.gwt.dev.jjs.test.ClassObjectTest;
-import com.google.gwt.dev.jjs.test.CompilerTest;
 import com.google.gwt.dev.jjs.test.CompilerMiscRegressionTest;
+import com.google.gwt.dev.jjs.test.CompilerTest;
 import com.google.gwt.dev.jjs.test.CoverageTest;
 import com.google.gwt.dev.jjs.test.EnhancedForLoopTest;
 import com.google.gwt.dev.jjs.test.EnumsTest;
@@ -47,6 +47,7 @@
 import com.google.gwt.dev.jjs.test.MiscellaneousTest;
 import com.google.gwt.dev.jjs.test.NativeLongTest;
 import com.google.gwt.dev.jjs.test.ObjectIdentityTest;
+import com.google.gwt.dev.jjs.test.RunAsyncContentTest;
 import com.google.gwt.dev.jjs.test.RunAsyncFailureTest;
 import com.google.gwt.dev.jjs.test.RunAsyncMetricsIntegrationTest;
 import com.google.gwt.dev.jjs.test.RunAsyncTest;
@@ -97,6 +98,7 @@
 suite.addTestSuite(MiscellaneousTest.class);
 suite.addTestSuite(NativeLongTest.class);
 suite.addTestSuite(ObjectIdentityTest.class);
+suite.addTestSuite(RunAsyncContentTest.class);
 suite.addTestSuite(RunAsyncFailureTest.class);
 suite.addTestSuite(RunAsyncMetricsIntegrationTest.class);
 suite.addTestSuite(RunAsyncTest.class);
diff --git a/user/test/com/google/gwt/dev/jjs/RunAsyncContent.gwt.xml  
b/user/test/com/google/gwt/dev/jjs/RunAsyncContent.gwt.xml

new file mode 100644
index 000..a123392
--- /dev/null
+++ b/user/test/com/google/gwt/dev/jjs/RunAsyncContent.gwt.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+

+
+
+  
+  
+  class="com.google.gwt.dev.jjs.test.LoggingXhrLoadingStrategy">
+class="com.google.gwt.core.client.impl.AsyncFragmentLoader.LoadingStrategy"/>

+  
+
diff --git  
a/user/test/com/google/gwt/dev/jjs/test/LoggingXhrLoadingStrategy.java  
b/user/test/com/google/gwt/dev/jjs/test/LoggingXhrLoadingStrategy.java

new file mode 100644
index 000..7d237bd
--- /dev/null
+++ b/user/test/com/google/gwt/dev/jjs/test/LoggingXhrLoadi

[gwt-contrib] Change in gwt[master]: Optimize initializing fields at the top scope.

2013-06-28 Thread Stephen Haberman

Hello Leeroy Jenkins,

I'd like you to reexamine a change.  Please visit

https://gwt-review.googlesource.com/3440

to look at the new patch set (#8).

Change subject: Optimize initializing fields at the top scope.
..

Optimize initializing fields at the top scope.

Change-Id: I97a06eb36396a8b8659ce9a025b21a9cf93d0500
---
M dev/core/src/com/google/gwt/dev/jjs/impl/GenerateJavaScriptAST.java
1 file changed, 119 insertions(+), 3 deletions(-)


--
To view, visit https://gwt-review.googlesource.com/3440
To unsubscribe, visit https://gwt-review.googlesource.com/settings

Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I97a06eb36396a8b8659ce9a025b21a9cf93d0500
Gerrit-PatchSet: 8
Gerrit-Project: gwt
Gerrit-Branch: master
Gerrit-Owner: Stephen Haberman 
Gerrit-Reviewer: Brian Slesinsky 
Gerrit-Reviewer: Leeroy Jenkins 
Gerrit-Reviewer: Matthew Dempsky 
Gerrit-Reviewer: Roberto Lublinerman 
Gerrit-Reviewer: Stephen Haberman 

--
http://groups.google.com/group/Google-Web-Toolkit-Contributors
--- 
You received this message because you are subscribed to the Google Groups "GWT Contributors" group.

To unsubscribe from this group and stop receiving emails from it, send an email 
to google-web-toolkit-contributors+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




[gwt-contrib] Change in gwt[master]: Optimize initializing fields at the top scope.

2013-06-28 Thread Stephen Haberman

Stephen Haberman has posted comments on this change.

Change subject: Optimize initializing fields at the top scope.
..


Patch Set 6:

(2 comments)

Thanks all, for continuing to vet the patch.


File dev/core/src/com/google/gwt/dev/jjs/impl/GenerateJavaScriptAST.java
Line 2326: public boolean visit(JMethod x, Context ctx) {
Done


Line 2346:   if (x.getTarget().isStatic() | 
| !x.getTarget().getEnclosingType().replaces(currentClass)) {
I believe it's okay because the "new UnrelatedClass(this)" call is itself a  
JMethodCall to the cstr, which would have leaked "this", and so caused the  
current class to be marked (I actually saw this happen when debugging; I  
forget which class it was for).


So--the current logic is "if you call any method on yourself, use the slow  
way" or "if you call any static/other method that could pass you, also use  
the slow way".


If I leave this check out, running CompilerTest, it goes from ~3 classes  
using the slow way (Throwable, http.client.Request, and FieldInitOrderBase)  
to ~20-25 classes using the slow way (including ArrayList due to the  
c.toArray() method call).


So, I think this is worth keeping in?


--
To view, visit https://gwt-review.googlesource.com/3440
To unsubscribe, visit https://gwt-review.googlesource.com/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I97a06eb36396a8b8659ce9a025b21a9cf93d0500
Gerrit-PatchSet: 6
Gerrit-Project: gwt
Gerrit-Branch: master
Gerrit-Owner: Stephen Haberman 
Gerrit-Reviewer: Brian Slesinsky 
Gerrit-Reviewer: Leeroy Jenkins 
Gerrit-Reviewer: Matthew Dempsky 
Gerrit-Reviewer: Roberto Lublinerman 
Gerrit-Reviewer: Stephen Haberman 
Gerrit-HasComments: Yes

--
http://groups.google.com/group/Google-Web-Toolkit-Contributors
--- 
You received this message because you are subscribed to the Google Groups "GWT Contributors" group.

To unsubscribe from this group and stop receiving emails from it, send an email 
to google-web-toolkit-contributors+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




[gwt-contrib] Change in gwt[master]: Optimize initializing fields at the top scope.

2013-06-28 Thread Stephen Haberman

Hello Leeroy Jenkins,

I'd like you to reexamine a change.  Please visit

https://gwt-review.googlesource.com/3440

to look at the new patch set (#7).

Change subject: Optimize initializing fields at the top scope.
..

Optimize initializing fields at the top scope.

Change-Id: I97a06eb36396a8b8659ce9a025b21a9cf93d0500
---
M dev/core/src/com/google/gwt/dev/jjs/impl/GenerateJavaScriptAST.java
1 file changed, 120 insertions(+), 3 deletions(-)


--
To view, visit https://gwt-review.googlesource.com/3440
To unsubscribe, visit https://gwt-review.googlesource.com/settings

Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I97a06eb36396a8b8659ce9a025b21a9cf93d0500
Gerrit-PatchSet: 7
Gerrit-Project: gwt
Gerrit-Branch: master
Gerrit-Owner: Stephen Haberman 
Gerrit-Reviewer: Brian Slesinsky 
Gerrit-Reviewer: Leeroy Jenkins 
Gerrit-Reviewer: Matthew Dempsky 
Gerrit-Reviewer: Roberto Lublinerman 
Gerrit-Reviewer: Stephen Haberman 

--
http://groups.google.com/group/Google-Web-Toolkit-Contributors
--- 
You received this message because you are subscribed to the Google Groups "GWT Contributors" group.

To unsubscribe from this group and stop receiving emails from it, send an email 
to google-web-toolkit-contributors+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




[gwt-contrib] Change in gwt[master]: Super Dev Mode: deemphasize unused Java lines in codeserver'...

2013-06-28 Thread John Stalcup

John Stalcup has posted comments on this change.

Change subject: Super Dev Mode: deemphasize unused Java lines in  
codeserver's UI

..


Patch Set 1:

(6 comments)

most of these comments are just suggestions.


File dev/codeserver/java/com/google/gwt/dev/codeserver/ReverseSourceMap.java
Line 12:   private final SourceMapConsumerV3 consumer;
i think "consumer" is too vague


Line 20:* If it can't be loaded, logs an error and returns null.
"logs a warning"


Line 29:   logger.log(TreeLogger.WARN, "can't parse source map", e);
seems like maybe the decision about whether a parse exception is fatal,  
should be deferred to the caller of load() not to load() itself?




File dev/codeserver/java/com/google/gwt/dev/codeserver/SourceHandler.java
Line 189:   private void sendSourceFileAsHtml(String moduleName, String  
fileName, BufferedReader lines,
is source html highlighting out of scope for the responsibilities of this  
file? "Serves Java source files so that a browser's debugger can display  
them."



Line 194: File file = new File(fileName);
s/fileName/sourceFileName

s/file/sourceFile


Line 200: out.startTag("html").nl();
it might not be worth the hassle, but did you consider using some sort of  
string templating library instead?



--
To view, visit https://gwt-review.googlesource.com/3600
To unsubscribe, visit https://gwt-review.googlesource.com/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Id16bcd2287630cebf7afb8bbbe0a198b28f5ada9
Gerrit-PatchSet: 1
Gerrit-Project: gwt
Gerrit-Branch: master
Gerrit-Owner: Brian Slesinsky 
Gerrit-Reviewer: John Stalcup 
Gerrit-Reviewer: Leeroy Jenkins 
Gerrit-Reviewer: Matthew Dempsky 
Gerrit-HasComments: Yes

--
http://groups.google.com/group/Google-Web-Toolkit-Contributors
--- 
You received this message because you are subscribed to the Google Groups "GWT Contributors" group.

To unsubscribe from this group and stop receiving emails from it, send an email 
to google-web-toolkit-contributors+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




[gwt-contrib] Change in gwt[master]: Optimize initializing fields at the top scope.

2013-06-28 Thread Matthew Dempsky

Matthew Dempsky has posted comments on this change.

Change subject: Optimize initializing fields at the top scope.
..


Patch Set 5:

(1 comment)


File dev/core/src/com/google/gwt/dev/jjs/impl/GenerateJavaScriptAST.java
Line 2216:  * Technically, to match JVM semantics, we should only do  
this for final or static fields. For
Ah, no, I just misread the comment the first time.  I thought it was an  
observable change.



--
To view, visit https://gwt-review.googlesource.com/3440
To unsubscribe, visit https://gwt-review.googlesource.com/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I97a06eb36396a8b8659ce9a025b21a9cf93d0500
Gerrit-PatchSet: 5
Gerrit-Project: gwt
Gerrit-Branch: master
Gerrit-Owner: Stephen Haberman 
Gerrit-Reviewer: Brian Slesinsky 
Gerrit-Reviewer: Leeroy Jenkins 
Gerrit-Reviewer: Matthew Dempsky 
Gerrit-Reviewer: Roberto Lublinerman 
Gerrit-Reviewer: Stephen Haberman 
Gerrit-HasComments: Yes

--
http://groups.google.com/group/Google-Web-Toolkit-Contributors
--- 
You received this message because you are subscribed to the Google Groups "GWT Contributors" group.

To unsubscribe from this group and stop receiving emails from it, send an email 
to google-web-toolkit-contributors+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




[gwt-contrib] Change in gwt[master]: Optimize initializing fields at the top scope.

2013-06-28 Thread Matthew Dempsky

Matthew Dempsky has posted comments on this change.

Change subject: Optimize initializing fields at the top scope.
..


Patch Set 6:

(1 comment)


File dev/core/src/com/google/gwt/dev/jjs/impl/GenerateJavaScriptAST.java
Line 2231:   } else {
You can also get rid of the else nesting here, to remove another nested  
block.



--
To view, visit https://gwt-review.googlesource.com/3440
To unsubscribe, visit https://gwt-review.googlesource.com/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I97a06eb36396a8b8659ce9a025b21a9cf93d0500
Gerrit-PatchSet: 6
Gerrit-Project: gwt
Gerrit-Branch: master
Gerrit-Owner: Stephen Haberman 
Gerrit-Reviewer: Brian Slesinsky 
Gerrit-Reviewer: Leeroy Jenkins 
Gerrit-Reviewer: Matthew Dempsky 
Gerrit-Reviewer: Roberto Lublinerman 
Gerrit-Reviewer: Stephen Haberman 
Gerrit-HasComments: Yes

--
http://groups.google.com/group/Google-Web-Toolkit-Contributors
--- 
You received this message because you are subscribed to the Google Groups "GWT Contributors" group.

To unsubscribe from this group and stop receiving emails from it, send an email 
to google-web-toolkit-contributors+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




[gwt-contrib] Change in gwt[master]: Optimize initializing fields at the top scope.

2013-06-28 Thread Roberto Lublinerman

Roberto Lublinerman has posted comments on this change.

Change subject: Optimize initializing fields at the top scope.
..


Patch Set 6:

(2 comments)


File dev/core/src/com/google/gwt/dev/jjs/impl/GenerateJavaScriptAST.java
Line 2326: public boolean visit(JMethod x, Context ctx) {
Add

// Check constructors and init method.
if (x.getName().equals("$$init") {
  return true;
}


Line 2346:   if (x.getTarget().isStatic() | 
| !x.getTarget().getEnclosingType().replaces(currentClass)) {
I think this is still not safe. If we don't optimize for this case do we  
leave out many opportunities?


The reason it is not safe is that the "this" reference might leak in many  
ways e.g.

seeminglySafe(new UnrelatedClass(this));

To be safe either we need to check every potentially called method (as  
Brian suggested); or allow methods that won't be able to observe this and  
this case is subtle.


Let's leave this out for the moment, go ahead with the patch and see if we  
miss too many opportunities.



--
To view, visit https://gwt-review.googlesource.com/3440
To unsubscribe, visit https://gwt-review.googlesource.com/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I97a06eb36396a8b8659ce9a025b21a9cf93d0500
Gerrit-PatchSet: 6
Gerrit-Project: gwt
Gerrit-Branch: master
Gerrit-Owner: Stephen Haberman 
Gerrit-Reviewer: Brian Slesinsky 
Gerrit-Reviewer: Leeroy Jenkins 
Gerrit-Reviewer: Matthew Dempsky 
Gerrit-Reviewer: Roberto Lublinerman 
Gerrit-Reviewer: Stephen Haberman 
Gerrit-HasComments: Yes

--
http://groups.google.com/group/Google-Web-Toolkit-Contributors
--- 
You received this message because you are subscribed to the Google Groups "GWT Contributors" group.

To unsubscribe from this group and stop receiving emails from it, send an email 
to google-web-toolkit-contributors+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




[gwt-contrib] Change in gwt[master]: Optimize initializing fields at the top scope.

2013-06-28 Thread Stephen Haberman

Hello Leeroy Jenkins,

I'd like you to reexamine a change.  Please visit

https://gwt-review.googlesource.com/3440

to look at the new patch set (#6).

Change subject: Optimize initializing fields at the top scope.
..

Optimize initializing fields at the top scope.

Change-Id: I97a06eb36396a8b8659ce9a025b21a9cf93d0500
---
M dev/core/src/com/google/gwt/dev/jjs/impl/GenerateJavaScriptAST.java
1 file changed, 110 insertions(+), 3 deletions(-)


--
To view, visit https://gwt-review.googlesource.com/3440
To unsubscribe, visit https://gwt-review.googlesource.com/settings

Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I97a06eb36396a8b8659ce9a025b21a9cf93d0500
Gerrit-PatchSet: 6
Gerrit-Project: gwt
Gerrit-Branch: master
Gerrit-Owner: Stephen Haberman 
Gerrit-Reviewer: Brian Slesinsky 
Gerrit-Reviewer: Leeroy Jenkins 
Gerrit-Reviewer: Matthew Dempsky 
Gerrit-Reviewer: Roberto Lublinerman 
Gerrit-Reviewer: Stephen Haberman 

--
http://groups.google.com/group/Google-Web-Toolkit-Contributors
--- 
You received this message because you are subscribed to the Google Groups "GWT Contributors" group.

To unsubscribe from this group and stop receiving emails from it, send an email 
to google-web-toolkit-contributors+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




[gwt-contrib] Change in gwt[master]: Optimize initializing fields at the top scope.

2013-06-28 Thread Stephen Haberman

Stephen Haberman has posted comments on this change.

Change subject: Optimize initializing fields at the top scope.
..


Patch Set 5:

(2 comments)


File dev/core/src/com/google/gwt/dev/jjs/impl/GenerateJavaScriptAST.java
Line 2216:  * Technically, to match JVM semantics, we should only do  
this for final or static fields. For
Well, I had added a test to CompilerTest in the last CL that does assert  
the semantics are correct/match the JVM. Which I thought was the most  
important part.


For this CL, since the optimization does not change any observable program  
behavior, I'd have to assert against the generated javascript--e.g. assert  
this field literal as assigned on the prototype.


I know other GWT tests do this (assert against the JS), but I didn't see  
any infrastructure in CompilerTest for doing that...I think I'd have to  
make a separate test and copy/paste some other approach...


Should I explore that?


Line 2225:   if (x.getLiteralInitializer() != null) {
I like minimized nested as well; will change.


--
To view, visit https://gwt-review.googlesource.com/3440
To unsubscribe, visit https://gwt-review.googlesource.com/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I97a06eb36396a8b8659ce9a025b21a9cf93d0500
Gerrit-PatchSet: 5
Gerrit-Project: gwt
Gerrit-Branch: master
Gerrit-Owner: Stephen Haberman 
Gerrit-Reviewer: Brian Slesinsky 
Gerrit-Reviewer: Leeroy Jenkins 
Gerrit-Reviewer: Matthew Dempsky 
Gerrit-Reviewer: Roberto Lublinerman 
Gerrit-Reviewer: Stephen Haberman 
Gerrit-HasComments: Yes

--
http://groups.google.com/group/Google-Web-Toolkit-Contributors
--- 
You received this message because you are subscribed to the Google Groups "GWT Contributors" group.

To unsubscribe from this group and stop receiving emails from it, send an email 
to google-web-toolkit-contributors+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




[gwt-contrib] Change in gwt[master]: Optimize initializing fields at the top scope.

2013-06-28 Thread Matthew Dempsky

Matthew Dempsky has posted comments on this change.

Change subject: Optimize initializing fields at the top scope.
..


Patch Set 5:

(2 comments)


File dev/core/src/com/google/gwt/dev/jjs/impl/GenerateJavaScriptAST.java
Line 2216:  * Technically, to match JVM semantics, we should only do  
this for final or static fields. For

Sounds like something we could add a test for?


Line 2225:   if (x.getLiteralInitializer() != null) {
Just as an aside, Go programming has made me accustomed to trying to  
restructure conditionals to minimize block nesting.  E.g.,


if (x.getLiteralInitializer() == null) {
  return false;
}
if (x.isFinal() || x.isStatic()) {
  return true;
}
JDeclaredType current = ...;
...

But I'll leave it up to you/Roberto to decide whether that actually makes  
the code more readable or not.



--
To view, visit https://gwt-review.googlesource.com/3440
To unsubscribe, visit https://gwt-review.googlesource.com/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I97a06eb36396a8b8659ce9a025b21a9cf93d0500
Gerrit-PatchSet: 5
Gerrit-Project: gwt
Gerrit-Branch: master
Gerrit-Owner: Stephen Haberman 
Gerrit-Reviewer: Brian Slesinsky 
Gerrit-Reviewer: Leeroy Jenkins 
Gerrit-Reviewer: Matthew Dempsky 
Gerrit-Reviewer: Roberto Lublinerman 
Gerrit-Reviewer: Stephen Haberman 
Gerrit-HasComments: Yes

--
http://groups.google.com/group/Google-Web-Toolkit-Contributors
--- 
You received this message because you are subscribed to the Google Groups "GWT Contributors" group.

To unsubscribe from this group and stop receiving emails from it, send an email 
to google-web-toolkit-contributors+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




[gwt-contrib] Change in gwt[master]: Super Dev Mode: deemphasize unused Java lines in codeserver'...

2013-06-28 Thread Matthew Dempsky

Matthew Dempsky has posted comments on this change.

Change subject: Super Dev Mode: deemphasize unused Java lines in  
codeserver's UI

..


Patch Set 1: Code-Review+2

(1 comment)

LGTM with one nit.


File dev/codeserver/java/com/google/gwt/dev/codeserver/ReverseSourceMap.java
Line 1: package com.google.gwt.dev.codeserver;
Copyright?

(I wonder why Jenkins didn't complain about this.  Maybe the copyright  
check doesn't descend into dev/codeserver?)



--
To view, visit https://gwt-review.googlesource.com/3600
To unsubscribe, visit https://gwt-review.googlesource.com/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Id16bcd2287630cebf7afb8bbbe0a198b28f5ada9
Gerrit-PatchSet: 1
Gerrit-Project: gwt
Gerrit-Branch: master
Gerrit-Owner: Brian Slesinsky 
Gerrit-Reviewer: Leeroy Jenkins 
Gerrit-Reviewer: Matthew Dempsky 
Gerrit-HasComments: Yes

--
http://groups.google.com/group/Google-Web-Toolkit-Contributors
--- 
You received this message because you are subscribed to the Google Groups "GWT Contributors" group.

To unsubscribe from this group and stop receiving emails from it, send an email 
to google-web-toolkit-contributors+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




[gwt-contrib] Change in gwt[master]: Issue 8220: Support for java.lang.reflect.Type - fixed

2013-06-28 Thread Matthew Dempsky

Matthew Dempsky has posted comments on this change.

Change subject: Issue 8220: Support for java.lang.reflect.Type - fixed
..


Patch Set 1:

(1 comment)

Needs a test.


File user/super/com/google/gwt/emul/java/lang/Class.java
Line 26: public final class Class extends java.lang.reflect.Type {
Why use the fully qualified class name here instead of importing it?  Also,  
doesn't this need to be "implements" instead of "extends", since Class is a  
class and Type is an interface?



--
To view, visit https://gwt-review.googlesource.com/3560
To unsubscribe, visit https://gwt-review.googlesource.com/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I94ae5fc5f6ed248a8247ce0088246e71e4b32603
Gerrit-PatchSet: 1
Gerrit-Project: gwt
Gerrit-Branch: master
Gerrit-Owner: Jörg Hohwiller 
Gerrit-Reviewer: Daniel Kurka 
Gerrit-Reviewer: Matthew Dempsky 
Gerrit-HasComments: Yes

--
http://groups.google.com/group/Google-Web-Toolkit-Contributors
--- 
You received this message because you are subscribed to the Google Groups "GWT Contributors" group.

To unsubscribe from this group and stop receiving emails from it, send an email 
to google-web-toolkit-contributors+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




[gwt-contrib] Change in gwt[master]: Issue 8220: Support for java.lang.reflect.Type - fixed

2013-06-28 Thread Daniel Kurka

Daniel Kurka has posted comments on this change.

Change subject: Issue 8220: Support for java.lang.reflect.Type - fixed
..


Patch Set 1:

(4 comments)


File user/super/com/google/gwt/emul/java/lang/reflect/Type.java
Line 3:  *
nit: whitespace


Line 7:  *
nit: whitespace


Line 9:  *
nit: whitespace


Line 20:  *
nit: whitespace


--
To view, visit https://gwt-review.googlesource.com/3560
To unsubscribe, visit https://gwt-review.googlesource.com/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I94ae5fc5f6ed248a8247ce0088246e71e4b32603
Gerrit-PatchSet: 1
Gerrit-Project: gwt
Gerrit-Branch: master
Gerrit-Owner: Jörg Hohwiller 
Gerrit-Reviewer: Daniel Kurka 
Gerrit-HasComments: Yes

--
http://groups.google.com/group/Google-Web-Toolkit-Contributors
--- 
You received this message because you are subscribed to the Google Groups "GWT Contributors" group.

To unsubscribe from this group and stop receiving emails from it, send an email 
to google-web-toolkit-contributors+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




[gwt-contrib] Re: Google GWT team meeting notes for June 26th

2013-06-28 Thread Thomas Broyer
Thanks a lot Brian (and the GWT Team at Google as a whole) for sharing 
these notes.

On Thursday, June 27, 2013 8:40:39 PM UTC+2, Brian Slesinsky wrote:
>
> - Daniel: javadoc regenerated and moved to gwtproject.org to fix a 
> security issue.
>

FYI, this is 
https://code.google.com/p/google-web-toolkit/issues/detail?id=8214 
We decided with Daniel (and Ray who happened to be in Munich at the time) 
to remove the javadocs for older versions (changing them to "redirects" to 
the new javadocs so we don't break old links –I had a lot in StackOverflow 
response–)
This also 
fixes https://code.google.com/p/google-web-toolkit/issues/detail?id=8143 
("latest" javadocs were for 2.5.0-rc2, now updated to 2.5.1) 
and https://code.google.com/p/google-web-toolkit/issues/detail?id=7364 
(Google should eventually pick the "redirects" and only offer links to the 
"latest" javadocs at gwtproject.org in search results)

-- 
http://groups.google.com/group/Google-Web-Toolkit-Contributors
--- 
You received this message because you are subscribed to the Google Groups "GWT 
Contributors" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to google-web-toolkit-contributors+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.