[gwt-contrib] Comment on CodeSplitting in google-web-toolkit

2009-07-02 Thread codesite-noreply

Comment by m.zdila:

Hello.

This is certainly a nice feature, but one not requiring a monolithic  
compile would be that just great.

Our application is built on top of OSGi. When a new module is added a new  
menu item appears in the GUI to access that module GUI (under different  
URL).

Currently we must compile each OSGi module with the common Workspace  
library project and so the common Workspace part is duplicated over the  
modules and so needs to be loaded together with each module code. This is  
because of the monolithic build.

Much nicer would be a separate Workspace module that just lazy-loads its  
(OSGi based) dynamic view modules on demand (menu item clicks). Is there  
any plan to make possible to do it like this?

Thanks in advance.


For more information:
http://code.google.com/p/google-web-toolkit/wiki/CodeSplitting

--~--~-~--~~~---~--~~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~--~~~~--~~--~--~---



[gwt-contrib] Comment on UsingOOPHM in google-web-toolkit

2009-07-02 Thread codesite-noreply

Comment by rjand541:

OKAY!!  For the extreme newbie out there like myself.  I may have an answer  
for you.

First: My setup is Ubuntu 9.04 in 64 bit mode, with Eclipse 3.4, GWT 1.6,  
GAE 1.2 and Java 1.6.

I went through everything on these boards and bits and pieces were hidden  
here and there.  My first real issue was this error...

Exception in thread main java.lang.UnsatisfiedLinkError:  
/home/bin/packages/eclipse3.4/plugins/com.google.gwt.eclipse.sdkbundle.linux_1.6.4.v200904062334/gwt-linux-1.6.4/libswt-pi-gtk-3235.so:
  
/home/bin/packages/eclipse3.4/plugins/com.google.gwt.eclipse.sdkbundle.linux_1.6.4.v200904062334/gwt-linux-1.6.4/libswt-pi-gtk-3235.so:
  
wrong ELF class: ELFCLASS32 (Possible cause: architecture word width  
mismatch)

taha had a similar problem on this page:
https://groups.google.com/group/Google-Web-Toolkit/browse_thread/thread/25d7c210c6b92e59?pli=1

The solution to which was to simply install a 32 bit version of Java, (Java  
1.50) and have eclipse point to it under Properties - Run/Debug Settings  
- (select your project) - edit - JRE tab.


The next error wasn't mission critical, but nonetheless, it annoyed the  
heck out of me...

Gtk-Message: Failed to load module canberra-gtk-module:  
/usr/lib/gtk-2.0/modules/libcanberra-gtk-module.so: wrong ELF class:  
ELFCLASS64

This was solved by following the same steps above but instead of the  
properties tab hitting the environment tab.  Then entering a variable  
called GTK_PATH and setting the value to /usr/lib32/gtk-2.0

That took care of that.  Next up was this error...

com.google.apphosting.utils.jetty.JettyLogger
warn
WARNING: failed greetServlet
java.lang.UnsupportedClassVersionError: Bad version number in .class
file

This was solved by our 64 bit cousins on the Mac under this thread  
http://groups.google.com/group/google-appengine-java/browse_thread/thread/da29f92b3677a1ef

Go to properties again, but this time select Java Compiler.  Set the  
compiler compliance level to 1.5.

That is it.  It should fix your issues if you are in a similar boat as me.   
I didn't have to ant anything, svn checkout branches or any of that.  Even  
though I did.  Multiple times.  To make sure i didn't do it wrong.

Hope I can save someone some time and thanks to all those that participate  
on these threads.  You are lifesavers!



For more information:
http://code.google.com/p/google-web-toolkit/wiki/UsingOOPHM

--~--~-~--~~~---~--~~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~--~~~~--~~--~--~---



[gwt-contrib] Comment on UsingOOPHM in google-web-toolkit

2009-07-02 Thread codesite-noreply

Comment by rjand541:

OKAY!! For the extreme newbie out there like myself. I may have an answer  
for you.

First: My setup is Ubuntu 9.04 in 64 bit mode, with Eclipse 3.4, GWT 1.6,  
GAE 1.2, Java 1.6 with the OOPHM plug in for firefox 3.0.11

I went through everything on these boards and bits and pieces were hidden  
here and there. My first real issue was this error...

Exception in thread main java.lang.UnsatisfiedLinkError?:  
/home/bin/packages/eclipse3.4/plugins/com.google.gwt.eclipse.sdkbundle.linux_1.6.4.v200904062334/gwt-linux-1.6.4/libswt-pi-gtk-3235.so:
  
/home/bin/packages/eclipse3.4/plugins/com.google.gwt.eclipse.sdkbundle.linux_1.6.4.v200904062334/gwt-linux-1.6.4/libswt-pi-gtk-3235.so:
  
wrong ELF class: ELFCLASS32 (Possible cause: architecture word width  
mismatch)

taha had a similar problem on this page:  
https://groups.google.com/group/Google-Web-Toolkit/browse_thread/thread/25d7c210c6b92e59?pli=1

The solution to which was to simply install a 32 bit version of Java, (Java  
1.50) and have eclipse point to it under Properties - Run/Debug Settings  
- (select your project) - edit - JRE tab.

The next error wasn't mission critical, but nonetheless, it annoyed the  
heck out of me...

Gtk-Message: Failed to load module canberra-gtk-module:  
/usr/lib/gtk-2.0/modules/libcanberra-gtk-module.so: wrong ELF class:  
ELFCLASS64

This was solved by following the same steps above but instead of the  
properties tab hitting the environment tab. Then entering a variable called  
GTK_PATH and setting the value to /usr/lib32/gtk-2.0

That took care of that. Next up was this error...

com.google.apphosting.utils.jetty.JettyLogger? warn WARNING: failed  
greetServlet java.lang.UnsupportedClassVersionError?: Bad version number  
in .class file

This was solved by our 64 bit cousins on the Mac under this thread  
http://groups.google.com/group/google-appengine-java/browse_thread/thread/da29f92b3677a1ef

Go to properties again, but this time select Java Compiler. Set the  
compiler compliance level to 1.5.

That is it. It should fix your issues if you are in a similar boat as me.  
Try it out and everything should pop up fine and appear to be working.

Or is it...

I guess only time will tell.  Thanks to the many that contribute to these  
boards.


For more information:
http://code.google.com/p/google-web-toolkit/wiki/UsingOOPHM

--~--~-~--~~~---~--~~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~--~~~~--~~--~--~---



[gwt-contrib] Re: Add ArtificialRescue annotation to compiler

2009-07-02 Thread bobv

On 2009/06/29 13:40:16, bobv wrote:
 Ping

Ping.

http://gwt-code-reviews.appspot.com/46801

--~--~-~--~~~---~--~~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~--~~~~--~~--~--~---



[gwt-contrib] Re: NewParenthesisRemovalOptimization

2009-07-02 Thread Joel Webber
W00t, thanks Ray! I've been meaning to do something about this list of
peephole optimizations for some time, but you're much more likely to be able
to get through them quickly than I am. The good news is that going through
the entire list gives a 15-20% code size reduction on Hello (roughly
measured by hand). And I don't think any of them are complex.

On Wed, Jul 1, 2009 at 8:10 PM, Scott Blum sco...@google.com wrote:

 LGTM, but only if you fix the darn for-each using Object var!

 On Wed, Jul 1, 2009 at 7:50 PM, cromwell...@gmail.com wrote:

 Reviewers: scottb,

 Description:
 This patch removes trailing parenthesis from Javascript 'new' operators
 if there are no constructor arguments.

 new Foo() - new Foo


 Please review this at http://gwt-code-reviews.appspot.com/49804

 Affected files:
  dev/core/src/com/google/gwt/dev/js/JsToStringGenerationVisitor.java


 Index: dev/core/src/com/google/gwt/dev/js/JsToStringGenerationVisitor.java
 ===
 --- dev/core/src/com/google/gwt/dev/js/JsToStringGenerationVisitor.java
 (revision 5638)
 +++ dev/core/src/com/google/gwt/dev/js/JsToStringGenerationVisitor.java
 (working copy)
 @@ -583,16 +583,18 @@
   _rparen();
 }

 -_lparen();
 -boolean sep = false;
 -for (Object element : x.getArguments()) {
 -  JsExpression arg = (JsExpression) element;
 -  sep = _sepCommaOptSpace(sep);
 -  _parenPushIfCommaExpr(arg);
 -  accept(arg);
 -  _parenPopIfCommaExpr(arg);
 +if (x.getArguments().size()  0) {
 +  _lparen();
 +  boolean sep = false;
 +  for (Object element : x.getArguments()) {
 +JsExpression arg = (JsExpression) element;
 +sep = _sepCommaOptSpace(sep);
 +_parenPushIfCommaExpr(arg);
 +accept(arg);
 +_parenPopIfCommaExpr(arg);
 +  }
 +  _rparen();
 }
 -_rparen();

 return false;
   }




 


--~--~-~--~~~---~--~~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~--~~~~--~~--~--~---



[gwt-contrib] Re: Allow @def to be retrieved as a String from CssResource

2009-07-02 Thread galgwt . reviews

I added a test to show that the @ClassName annotation works to
differentiate between an @def and a class name accessor.


http://gwt-code-reviews.appspot.com/50804/diff/1/5
File user/src/com/google/gwt/resources/css/ast/CssVisitor.java (right):

http://gwt-code-reviews.appspot.com/50804/diff/1/5#newcode188
Line 188: e.printStackTrace();
On 2009/06/30 21:00:45, bobv wrote:
 Remove.

Done.

http://gwt-code-reviews.appspot.com/50804/diff/1/6
File user/src/com/google/gwt/resources/rg/CssResourceGenerator.java
(right):

http://gwt-code-reviews.appspot.com/50804/diff/1/6#newcode1739
Line 1739: if
(String.equals(toImplement.getReturnType().getSimpleSourceName())) {
On 2009/06/30 21:00:45, bobv wrote:
 Use JClassType comparison for correctness. This would match
com.foo.String.

Done.

http://gwt-code-reviews.appspot.com/50804/diff/1/6#newcode1740
Line 1740: returnExpr = \ + def.getValues().get(0) + \;
On 2009/06/30 21:00:45, bobv wrote:
 The value has to be escaped; see the Generator.escape().

Done.

http://gwt-code-reviews.appspot.com/50804/diff/1/6#newcode1790
Line 1790: // TODO(zundel): make conditional on Strict mode?
On 2009/06/30 21:00:45, bobv wrote:
 This condition should always be an error.

Done.

http://gwt-code-reviews.appspot.com/50804/diff/1/4
File user/test/com/google/gwt/resources/client/test.css (right):

http://gwt-code-reviews.appspot.com/50804/diff/1/4#newcode24
Line 24:
On 2009/06/30 21:00:45, bobv wrote:
 Revert.

Done.

http://gwt-code-reviews.appspot.com/50804

--~--~-~--~~~---~--~~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~--~~~~--~~--~--~---



[gwt-contrib] Re: GWT emulation of HTML5/CSS3 features

2009-07-02 Thread Joel Webber
I'm very much on board with the idea of moving forward on new browser
features by emulating them on old browsers wherever possible. This is an
important benefit of using tools (code generation, deferred binding,
monolithic compilation) to get leverage on this problem. I think the best
approach is to consider each such feature separately. They're going to
require different approaches (e.g., some can be dealt with entirely in
CssResource, but others will likely require the use of specific classes),
and some will turn out to be impossible, or practically so (e.g., support
for the video tag without a transcoding server to deal with Ogg, H.264,
Flash, etc). So for the specific cases described below...
CSS Animations:
  I think we need to actually measure the performance difference before
deciding whether it's even worth the trouble. I suspect that there may not
be much of one (though of course I could be wrong), given that it has to do
the same work, possibly including layout, regardless of how it's specified.
And CSS animations aren't as general as programmatic ones. That said, there
might be some utility in having CssResource parse them automatically and
write the necessary code for you on older browsers (though I haven't
assessed the feasibility of doing so).

Rounded Corners / DecoratorPanel:
  Here I think it's going to be a practical necessity to require that a
specific class (such as DecoratorPanel) be used. The reason is that, to my
knowledge, there is no way to get general 9-box rounded corners without a
specific DOM structure. But DecoratorPanel could be modified to take
advantage of CSS3 9-boxes on newer browsers.

DataGrid:
  I honestly haven't read enough about this proposal to have any idea
whether it makes sense or not. But if it is implemented and offers a
substantive advantage, then we should certainly have a look.


Some others that might be interesting:

Canvas:
  This is a nasty case, because Canvas cannot be implemented sanely or
efficiently on top of VML, which is the only game in IE town. Existing
canvas-on-VML implementations notwithstanding -- they have wildly different
performance semantics, which is pretty unacceptable in my opinion.

SVG:
  Things are a bit brighter here. There are some things (foreign objects and
certain gradient patterns come to mind) that SVG can do, which VML cannot.
But a sane navigation of the common features could lead to a quite usable
and efficient vector graphics library. There's the existing GWTCanvas that
Jaime wrote a while back as a starting point (which uses Canvas rather than
SVG), but it appears to me that SVG performance has gotten a lot better
since that was written, so it's probably worth reconsidering that approach.

HTML5/Gears Database:
Geolocation:
  These shouldn't be too difficult, as applications can be easily made
sensitive to their presence or absence. The database/client-side storage
APIs may need some cross-browser love, as there are a few different
approaches and subtle differences across browsers, but I believe that is
manageable.

Cross-Document Messaging:
  I'm pretty sure this can be emulated with window.name hackery.

App Cache:
  This is something we should support at the Linker level. And like the
database APIs, an application can be made sensitive to its availability
without too much difficulty.

CSS Transforms:
  I think we're pretty much screwed on this front. We could *try* to do
translation, but I seriously doubt it's worth the trouble (and would
probably cause layout issues, as the semantics are subtly different than
left: and top:). But rotation and scale (not to mention arbitrary affine
transforms) seem impossible to emulate.

audio, video:
I'm not terribly bullish on these. audio is at least theoretically
supportable using Flash, and I could see something like the SoundManager2 js
library taking advantage of it. But video is rife with codec licensing
problems that seem unlikely to get resolved any time soon (If anyone wants
to debate the ins and outs of codec licensing, let's *please* do so on
another thread, because I can tell you from experience that the thread won't
converge).

And of course, there are probably others I'm not thinking of, so feel free
to chime in with ideas.

joel.

On Wed, Jul 1, 2009 at 1:09 AM, nicolas de loof nicolas.del...@gmail.comwrote:

 Transparent support for CSS3/HTML5 on all browsers including IE would be a
 killer feature !+1

 2009/7/1 tfreitas tfrei...@gmail.com


 +1

 On Jun 29, 10:24 am, dflorey daniel.flo...@gmail.com wrote:
  Hi,
  I've been wondering how GWT should deal with upcoming new features in
  HTML5/CSS3.
  There are several areas where functionality that has been implemented
  in GWT is now also available in the upcoming rendering engines.
 
  GWT is creating highly optimized JavaScript and the JavaScript-engines
  are getting better and better... but: My guess is that for example
  animations will be smoother when using CSS3 animations instead of
  JavaScript based 

[gwt-contrib] Re: GWT emulation of HTML5/CSS3 features

2009-07-02 Thread Bart Guijt

Another aspect to consider is how to connect an HTML5 feature to the  
compiler permutations. Right now we have 5 browser permutations, and  
only the latest versions of these browsers offer support for (some)  
HTML5 features.

Potentially the amount of permutations accumulate significantly if  
fine-grained HTML5 support is desired. What would be the best approach  
here?

I am trying to setup some GWT API's for these HTML5 features at my gwt- 
mobile-webkit googlecode project, and I'm still not sure what the best  
approach is to the problem. You could argue that the amount of  
permutations is totally unimportant since you can subset just a few of  
them for testing purposes.

What do you guys think?

Bart Guijt

On 2 jul 2009, at 2 jul, 17:03, Joel Webber wrote:

 I'm very much on board with the idea of moving forward on new  
 browser features by emulating them on old browsers wherever  
 possible. This is an important benefit of using tools (code  
 generation, deferred binding, monolithic compilation) to get  
 leverage on this problem. I think the best approach is to consider  
 each such feature separately. They're going to require different  
 approaches (e.g., some can be dealt with entirely in CssResource,  
 but others will likely require the use of specific classes), and  
 some will turn out to be impossible, or practically so (e.g.,  
 support for the video tag without a transcoding server to deal  
 with Ogg, H.264, Flash, etc). So for the specific cases described  
 below...

 CSS Animations:
   I think we need to actually measure the performance difference  
 before deciding whether it's even worth the trouble. I suspect that  
 there may not be much of one (though of course I could be wrong),  
 given that it has to do the same work, possibly including layout,  
 regardless of how it's specified. And CSS animations aren't as  
 general as programmatic ones. That said, there might be some utility  
 in having CssResource parse them automatically and write the  
 necessary code for you on older browsers (though I haven't assessed  
 the feasibility of doing so).

 Rounded Corners / DecoratorPanel:
   Here I think it's going to be a practical necessity to require  
 that a specific class (such as DecoratorPanel) be used. The reason  
 is that, to my knowledge, there is no way to get general 9-box  
 rounded corners without a specific DOM structure. But DecoratorPanel  
 could be modified to take advantage of CSS3 9-boxes on newer browsers.

 DataGrid:
   I honestly haven't read enough about this proposal to have any  
 idea whether it makes sense or not. But if it is implemented and  
 offers a substantive advantage, then we should certainly have a look.


 Some others that might be interesting:

 Canvas:
   This is a nasty case, because Canvas cannot be implemented sanely  
 or efficiently on top of VML, which is the only game in IE town.  
 Existing canvas-on-VML implementations notwithstanding -- they have  
 wildly different performance semantics, which is pretty unacceptable  
 in my opinion.

 SVG:
   Things are a bit brighter here. There are some things (foreign  
 objects and certain gradient patterns come to mind) that SVG can do,  
 which VML cannot. But a sane navigation of the common features could  
 lead to a quite usable and efficient vector graphics library.  
 There's the existing GWTCanvas that Jaime wrote a while back as a  
 starting point (which uses Canvas rather than SVG), but it appears  
 to me that SVG performance has gotten a lot better since that was  
 written, so it's probably worth reconsidering that approach.

 HTML5/Gears Database:
 Geolocation:
   These shouldn't be too difficult, as applications can be easily  
 made sensitive to their presence or absence. The database/client- 
 side storage APIs may need some cross-browser love, as there are a  
 few different approaches and subtle differences across browsers, but  
 I believe that is manageable.

 Cross-Document Messaging:
   I'm pretty sure this can be emulated with window.name hackery.

 App Cache:
   This is something we should support at the Linker level. And like  
 the database APIs, an application can be made sensitive to its  
 availability without too much difficulty.

 CSS Transforms:
   I think we're pretty much screwed on this front. We could *try* to  
 do translation, but I seriously doubt it's worth the trouble (and  
 would probably cause layout issues, as the semantics are subtly  
 different than left: and top:). But rotation and scale (not to  
 mention arbitrary affine transforms) seem impossible to emulate.

 audio, video:
 I'm not terribly bullish on these. audio is at least theoretically  
 supportable using Flash, and I could see something like the  
 SoundManager2 js library taking advantage of it. But video is rife  
 with codec licensing problems that seem unlikely to get resolved any  
 time soon (If anyone wants to debate the ins and outs of codec  
 licensing, let's 

[gwt-contrib] [google-web-toolkit commit] r5659 - Test for generics resolution.

2009-07-02 Thread codesite-noreply

Author: j...@google.com
Date: Thu Jul  2 07:57:32 2009
New Revision: 5659

Added:
 
changes/jat/ihm/dev/core/src/com/google/gwt/dev/javac/TypeParameterLookup.java
 
changes/jat/ihm/dev/core/src/com/google/gwt/dev/javac/asm/ResolveClassSignature.java
 
changes/jat/ihm/dev/core/test/com/google/gwt/core/ext/typeinfo/TypeOracleMocks.java
 
changes/jat/ihm/dev/core/test/com/google/gwt/dev/javac/asm/ResolveGenericsTest.java
 
changes/jat/ihm/dev/core/test/com/google/gwt/dev/javac/asm/TestHandler.java
 
changes/jat/ihm/dev/core/test/com/google/gwt/dev/javac/asm/TestHandler1.java
 
changes/jat/ihm/dev/core/test/com/google/gwt/dev/javac/asm/TestOuter0.java
 
changes/jat/ihm/dev/core/test/com/google/gwt/dev/javac/asm/TestOuter1.java
 
changes/jat/ihm/dev/core/test/com/google/gwt/dev/javac/asm/TestOuter2.java
Removed:
 
changes/jat/ihm/dev/core/src/com/google/gwt/dev/javac/asm/ResolveClassTypeVariables.java
Modified:
 
changes/jat/ihm/dev/core/src/com/google/gwt/dev/javac/TypeOracleMediator.java
 
changes/jat/ihm/dev/core/src/com/google/gwt/dev/javac/asm/ResolveMethodSignature.java
 
changes/jat/ihm/dev/core/src/com/google/gwt/dev/javac/asm/ResolveParameterizedType.java
 
changes/jat/ihm/dev/core/test/com/google/gwt/dev/javac/MockCompilationUnit.java
 
changes/jat/ihm/dev/core/test/com/google/gwt/dev/javac/asm/AsmTestCase.java

Log:
Test for generics resolution.


Modified:  
changes/jat/ihm/dev/core/src/com/google/gwt/dev/javac/TypeOracleMediator.java
==
---  
changes/jat/ihm/dev/core/src/com/google/gwt/dev/javac/TypeOracleMediator.java   
 
(original)
+++  
changes/jat/ihm/dev/core/src/com/google/gwt/dev/javac/TypeOracleMediator.java   
 
Thu Jul  2 07:57:32 2009
@@ -48,7 +48,7 @@
  import com.google.gwt.dev.javac.asm.CollectFieldData;
  import com.google.gwt.dev.javac.asm.CollectMethodData;
  import com.google.gwt.dev.javac.asm.CollectTypeParams;
-import com.google.gwt.dev.javac.asm.ResolveClassTypeVariables;
+import com.google.gwt.dev.javac.asm.ResolveClassSignature;
  import com.google.gwt.dev.javac.asm.ResolveMethodSignature;
  import com.google.gwt.dev.javac.asm.ResolveParameterizedType;
  import com.google.gwt.dev.javac.asm.CollectAnnotationData.AnnotationData;
@@ -65,7 +65,6 @@
  import java.util.Collection;
  import java.util.HashMap;
  import java.util.HashSet;
-import java.util.LinkedList;
  import java.util.List;
  import java.util.Map;
  import java.util.Set;
@@ -77,51 +76,8 @@
  public class TypeOracleMediator {

/**
-   * Handles lookup of type parameters, handling a scope stack.
+   * Pairs of bits to convert from ASM Opcodes.* to Shared.* bitfields.
 */
-  public static class TypeParameterLookup {
-
-private LinkedListHashMapString, JTypeParameter scopeStack = new  
LinkedListHashMapString, JTypeParameter();
-
-public JTypeParameter lookup(String name) {
-  for (HashMapString, JTypeParameter scope : scopeStack) {
-if (scope.containsKey(name)) {
-  return scope.get(name);
-}
-  }
-  return null;
-}
-
-public void popScope() {
-  scopeStack.remove();
-}
-
-public void pushEnclosingScopes(JClassType type) {
-  if (type == null) {
-return;
-  }
-  pushEnclosingScopes(type.getEnclosingType());
-  JGenericType genericType = type.isGenericType();
-  if (genericType != null) {
-pushScope(genericType.getTypeParameters());
-  }
-}
-
-public void pushScope(JTypeParameter[] typeParams) {
-  // push empty scopes to keep pops in sync
-  scopeStack.addFirst(buildScope(typeParams));
-}
-
-private HashMapString, JTypeParameter buildScope(
-JTypeParameter[] typeParams) {
-  HashMapString, JTypeParameter scope = new HashMapString,  
JTypeParameter();
-  for (JTypeParameter typeParam : typeParams) {
-scope.put(typeParam.getName(), typeParam);
-  }
-  return scope;
-}
-  }
-
private static final int[] ASM_TO_SHARED_MODIFIERS = new int[] {
Opcodes.ACC_PUBLIC, Shared.MOD_PUBLIC,
Opcodes.ACC_PRIVATE, Shared.MOD_PRIVATE,
@@ -172,13 +128,13 @@
}

private static JTypeParameter[] collectTypeParams(String signature) {
-// TODO(jat): more efficient when signature is null
-ListJTypeParameter params = new ArrayListJTypeParameter();
  if (signature != null) {
+  ListJTypeParameter params = new ArrayListJTypeParameter();
SignatureReader reader = new SignatureReader(signature);
reader.accept(new CollectTypeParams(params));
+  return params.toArray(new JTypeParameter[params.size()]);
  }
-return params.toArray(new JTypeParameter[params.size()]);
+return new JTypeParameter[0];
}

private static T Class? extends T getClassLiteral(TreeLogger logger,
@@ -583,6 +539,16 @@
  }
}

+  private boolean isPrivateEnumConstructor(JAbstractMethod method,

[gwt-contrib] Re: GWT emulation of HTML5/CSS3 features

2009-07-02 Thread Thomas Broyer


On 2 juil, 17:03, Joel Webber j...@google.com wrote:
 Some others that might be interesting:

 Canvas:
   This is a nasty case, because Canvas cannot be implemented sanely or
 efficiently on top of VML, which is the only game in IE town. Existing
 canvas-on-VML implementations notwithstanding -- they have wildly different
 performance semantics, which is pretty unacceptable in my opinion.

There's also the Gears Canvas (you could get a data: URL out of it and
give it in an Image for IE8+) and of course Flash (think
Chronoscope ;-) ) and/or Silverlight.

 SVG:
   Things are a bit brighter here. There are some things (foreign objects and
 certain gradient patterns come to mind) that SVG can do, which VML cannot.
 But a sane navigation of the common features could lead to a quite usable
 and efficient vector graphics library. There's the existing GWTCanvas that
 Jaime wrote a while back as a starting point (which uses Canvas rather than
 SVG), but it appears to me that SVG performance has gotten a lot better
 since that was written, so it's probably worth reconsidering that approach.

And for IE compatibility, Silverlight again (see
http://intertwingly.net/blog/2008/01/26/SVG-Shiv and similar articles
on Sam Ruby's blog)

 HTML5/Gears Database:
 Geolocation:
   These shouldn't be too difficult, as applications can be easily made
 sensitive to their presence or absence. The database/client-side storage
 APIs may need some cross-browser love, as there are a few different
 approaches and subtle differences across browsers, but I believe that is
 manageable.

It definitely is: 
http://google-code-updates.blogspot.com/2009/05/gmail-for-mobile-html5-series-common.html

 Cross-Document Messaging:
   I'm pretty sure this can be emulated with window.name hackery.

Cannot we rather consider this an optional feature, just like
database, geolocation and app cache?

 App Cache:
   This is something we should support at the Linker level. And like the
 database APIs, an application can be made sensitive to its availability
 without too much difficulty.

 CSS Transforms:
   I think we're pretty much screwed on this front. We could *try* to do
 translation, but I seriously doubt it's worth the trouble (and would
 probably cause layout issues, as the semantics are subtly different than
 left: and top:). But rotation and scale (not to mention arbitrary affine
 transforms) seem impossible to emulate.

 audio, video:
 I'm not terribly bullish on these. audio is at least theoretically
 supportable using Flash, and I could see something like the SoundManager2 js
 library taking advantage of it. But video is rife with codec licensing
 problems that seem unlikely to get resolved any time soon (If anyone wants
 to debate the ins and outs of codec licensing, let's *please* do so on
 another thread, because I can tell you from experience that the thread won't
 converge).

 And of course, there are probably others I'm not thinking of, so feel free
 to chime in with ideas.

Drag'n'drop! (using Gears or Yahoo! BrowserPlus as an alternative to
browser-native support –if detectable–)

And there are a few other things that have been split from HTML5 into
their own spec:
 - Web Workers (optional feature, same as database, geolocation,
etc. see above)
 - WebSockets (using long-polling –eventually in a Worker– for now as
no-one implements it)
 - File API (use Gears or BrowserPlus as a fallback when available)
 - XMLHttpRequest 2 (progress events and ability to send binary data
from the File API; again, Gears could be used to emulate it,
BrowserPlus to a lesser extent)
 - Selectors API (already supported by GQuery)

See http://www.w3.org/2008/webapps/
--~--~-~--~~~---~--~~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~--~~~~--~~--~--~---



[gwt-contrib] Re: I've implemented Java stack trace support for web mode

2009-07-02 Thread jay

Did anything come of this? Alex -- does your approach work with GWT
1.6? And, have you decided to contribute this anywhere? I'll
understand if you aren't willing, but I figured it can't hurt to ask.

jay

On May 7, 1:24 pm, Alex Epshteyn alexander.epsht...@gmail.com wrote:
 Hi Bob,

  Could you provide some numbers in terms of raw and gzipped
  before/after bytes?

 This is the OBF compiled js size of a TypeRacer module before and
 after instrumentation (raw/gz): 382/118 vs. 505/142 which can be
 further reduced by using shortened identifiers instead of method name
 strings (it doesn't make much difference when gzipped, though).

 In terms of inlining, I've implemented the optimization of not
 instrumenting simple getters and setters, which are guaranteed not to
 raise an exception.  Everything else will probably not be eligible for
 inlining.  But I do provide an annotation which you can use to exclude
 your hot methods from instrumentation.

  I looked at implementing perfect stack traces as an AST visitor, but
  decided that the size cost, speed cost for inlining, and potential
  data-leakage for large apps would outweigh the marginal gain of having
  line-level resolution in deployed apps.

 I'm not sure if that's necessarily the case. However, the capability
 you've implemented may very well be sufficient.  I'm looking forward
 to testing out your code when I have more time.

  Those tradeoffs do make sense
  for development and QA versions of an app, but there was only a
  limited amount of time allocated for implementing stack traces.

 Yes, I can tell you from experience that what I did was pretty hairy
 and definitely took a good amount of time.  There are lots of corner
 cases to consider when rewriting a Java AST, as you probably know.
 Just to give a tiny example - you can't insert anything before a
 super() statement.  But at this point I have them all covered.

 I'm not yet sure if I'll be open-sourcing my code.  I need to support
 my business, which isn't making much from online ad revenue, and I was
 hoping  some of the enterprises using GWT might be happy to pay for my
 stack trace system.  There are a few commercial tools in the GWT
 space, such aswww.instantiations.com/GWTDesigner, but I'm not sure
 how successful they are.  I'd love to get some feedback from you guys
 about this idea.  I can go both ways at this point.

  Your approach sounds complementary to the existing implementation.

 That's what I was hoping.

 Thanks,
 Alex



 On Thu, May 7, 2009 at 9:50 AM, BobV b...@google.com wrote:
  On Wed, May 6, 2009 at 4:49 PM, Alex Epshteyn
  alexander.epsht...@gmail.com wrote:
  I'm using static code rewriting at the Java source level to maintain a
  virtual stack.  It's actually working out very well so far.  Getting
  surprisingly good results for code size, efficiency, and correctness.

  Could you provide some numbers in terms of raw and gzipped
  before/after bytes?  Also, how does this interact with method and
  function inlining?

  I want to decide whether it's worth the effort to continue developing
  my system.   So my questions are does StackTraceCreator work with all
  browsers and is your symbol translation system ready to be used?  Are
  there any limitations with your approach?  Perhaps there is some area
  where my technique could provide better information to the programmer?

  StackTraceCreator is invoked in Throwable's initalizer and will
  extract as much data as the browser provides.  On Mozilla, you'll get
  a full stack trace.  On other browsers it crawls the caller chain, but
  since the caller chain isn't a proper series of activation records,
  and there's a limitation on reentrant functions.  In the end, it
  provides method-level resolution.  The symbol map file has enough data
  to cook a respectable StackTraceElement that makes IDE integration not
  unreasonable.

  I looked at implementing perfect stack traces as an AST visitor, but
  decided that the size cost, speed cost for inlining, and potential
  data-leakage for large apps would outweigh the marginal gain of having
  line-level resolution in deployed apps.  Those tradeoffs do make sense
  for development and QA versions of an app, but there was only a
  limited amount of time allocated for implementing stack traces.

  Your approach sounds complementary to the existing implementation.

  --
  Bob Vawter
  Google Web Toolkit Team
--~--~-~--~~~---~--~~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~--~~~~--~~--~--~---



[gwt-contrib] [google-web-toolkit commit] r5661 - correcting copied branch-info.txt

2009-07-02 Thread codesite-noreply

Author: fabb...@google.com
Date: Thu Jul  2 10:49:58 2009
New Revision: 5661

Modified:
releases/1.7/branch-info.txt

Log:
correcting copied branch-info.txt

Modified: releases/1.7/branch-info.txt
==
--- releases/1.7/branch-info.txt(original)
+++ releases/1.7/branch-info.txtThu Jul  2 10:49:58 2009
@@ -1,74 +1,11 @@
-branch-info.txt for GWT 1.6 release:
+branch-info.txt for GWT 1.7 release:
  Tracks interactions between this branch and other branches.
  See: http://code.google.com/p/google-web-toolkit/wiki/ManagingMerges

  Copies:
-/releases/1.6/ was created (r3732) as a straight copy from /trunk/@r3683
+/releases/1.7/ was created (r5660) as a straight copy from  
/releases/1...@r5659, because adding ie8 was deemed a minor version bump.

  Merges:
-/trunk revisions c3688,c3703,c3700,c3704,c3707,c3715,c3717,c3724,c3725  
were merged (r3739) into this branch
-/trunk revision c4859 was merged (r4870) into this branch
-/trunk revision c4867 was merged (r4871) into this branch
-/releases/1.5/@r3630:3863 was merged (r3864) into this branch
-/releases/1.6/@r3739:3876 was merged (r3877) into trunk
-/releases/1.6/@r3878:3944 was merged (r3945) into trunk, skipping c3878
-/releases/1.6/@r3944:4025 was merged (r4032) into trunk
-/branches/1_6_clean_eve...@3936:4088 was merged (r4092) into this branch
-/releases/1.5/@r3863:4093 was merged (r4134) into this branch
-/releases/1.6/@r4025:4130 was merged (r4142) into trunk, superceding  
trunk:c4118
-/releases/1.6/@r4130:4147 was merged (r4148) into trunk
-/releases/1.6/@r4147:4198 was merged (r4202) into trunk
-/releases/1.6/@c4269, c4298, and c4299 were merged (r4314) into trunk;  
note this is a cherrypick
-/trunk revision c4266 was merged (r4321) into this branch
-/releases/1.6/@r4198:4268 was merged (r4367,r4368) into trunk
-/releases/1.6/@r4269:4297 was merged (r4367,r4368) into trunk, skipping  
c4269 (already merged, c4314)
-/releases/1.6/@r4299:4320 was merged (r4367,r4368) into trunk, skipping  
c4298, c4299 (already merged, c4314)
-/releases/1.6/@r4321:4366 was merged (r4367,r4368) into trunk, skipping  
c4321 (backmerge from trunk)
-/releases/1.6/@r4366:4385 was merged (r4386) into trunk
-/releases/1.6/@r4385:4459 was merged (r4488) into trunk
-/releases/1.6/@r4359:4490 was merged (r4491) into trunk
-/releases/1.6/@c4498 was merged (r4499) into trunk (cherry pick)
-/releases/1.6/@r4490:4497,4498:4511 was merged (r4512) into trunk,  
skipping c4498 (cherry picked above)
-/trunk revision c4603 was merged (r4605) into this branch
-/releases/1.6/@r4511:4604,4605:4657 was merged (r4659) into trunk,  
skipping c4605 (backmerge from trunk)
-/releases/1.6/@r4657:4658 was merged (r4662) into trunk
-/releases/1.6/@r4658:4669 was merged (r4670) into trunk
-/trunk revision c4873 was merged (r4878) into this branch
-/trunk revision c4889 was merged (r4892) into this branch
-/releases/1.6/@r4669:4694 was merged (r4919) into trunk
-/releases/1.6/@r4695:4874 was merged (r4919) into trunk, skipping c4695  
(1.6-only change)
-/releases/1.6/@r4875:4877 was merged (r4919) into trunk, skipping c4875  
(different trunk change)
-/releases/1.6/@r4878:4891 was merged (r4919) into trunk, skipping c4878  
(backmerge from trunk)
-/releases/1.6/@r4892:4911 was merged (r4919) into trunk, skipping c4892  
(backmerge from trunk)
-/releases/1.6/@c4963 was merged (r4970 into trunk (cherry pick)
-/releases/1.6/@r4911:4992 was merged (r4993) into trunk, skipping c4963  
(cherry picked above)
-/releases/1.6/@r5023 was merged (r5024) into trunk (cherry pick)
-/releases/1.6/@r4992:5022 was merged (r5065) into trunk
-/releases/1.6/@r5023:5064 was merged (r5065) into trunk
-/releases/1.6/@r5065:5406 was merged (r5421) into trunk
-/trunk revision c5072 was merged (r5407) into this branch
-/trunk revision c5194 was merged (r5411) into this branch
-/trunk revision c5216 was merged (r5423) into this branch
-/trunk revision c5292 was merged (r5423) into this branch
-/trunk revision c5287 was merged (r5425) into this branch
-/trunk revision c5305 was merged (r5426) into this branch
-/trunk revision c5306 was merged (r5427) into this branch
-/trunk revision c5320 was merged (r5428) into this branch (this was a  
mistake, rolled back in r5434)
-/trunk revision c5333 was merged (r5429) into this branch
-/trunk revision c5398 was merged (r5430) into this branch
-/releases/1.6 [r5408:5410 r5411:5422 r5423:5424] was merged into trunk (no  
changes in these ranges)
-/trunk revision c4820 was merged (r5439) into this branch
-/trunk revision c5230 was merged (r5440) into this branch
-/trunk revision c5347 was merged (r5443) into this branch (removes broken  
test from c5333)
-/trunk revision c5460 was merged (r5461) into this branch (radio button  
fix)
-/trunk revision c5221 was merged (r5520) into this branch  
(SerializabilityUtil race condition)
-/trunk revision c5601 was merged (r) into this branch (misc JSNI 

[gwt-contrib] Re: I've implemented Java stack trace support for web mode

2009-07-02 Thread Alex Epshteyn

Jay, I've been using this code in production since early June.  Works
well.  I'm still using 1.5 for that particular project, but there's no
reason it wouldn't work with 1.6, because the code isn't even aware of
GWT, so it's agnostic of versions.

Not ready to release publicly yet, but if you really want it, email me
off-forum.

Alex

On Thu, Jul 2, 2009 at 12:33 PM, jayjay.gin...@gmail.com wrote:

 Did anything come of this? Alex -- does your approach work with GWT
 1.6? And, have you decided to contribute this anywhere? I'll
 understand if you aren't willing, but I figured it can't hurt to ask.

 jay

 On May 7, 1:24 pm, Alex Epshteyn alexander.epsht...@gmail.com wrote:
 Hi Bob,

  Could you provide some numbers in terms of raw and gzipped
  before/after bytes?

 This is the OBF compiled js size of a TypeRacer module before and
 after instrumentation (raw/gz): 382/118 vs. 505/142 which can be
 further reduced by using shortened identifiers instead of method name
 strings (it doesn't make much difference when gzipped, though).

 In terms of inlining, I've implemented the optimization of not
 instrumenting simple getters and setters, which are guaranteed not to
 raise an exception.  Everything else will probably not be eligible for
 inlining.  But I do provide an annotation which you can use to exclude
 your hot methods from instrumentation.

  I looked at implementing perfect stack traces as an AST visitor, but
  decided that the size cost, speed cost for inlining, and potential
  data-leakage for large apps would outweigh the marginal gain of having
  line-level resolution in deployed apps.

 I'm not sure if that's necessarily the case. However, the capability
 you've implemented may very well be sufficient.  I'm looking forward
 to testing out your code when I have more time.

  Those tradeoffs do make sense
  for development and QA versions of an app, but there was only a
  limited amount of time allocated for implementing stack traces.

 Yes, I can tell you from experience that what I did was pretty hairy
 and definitely took a good amount of time.  There are lots of corner
 cases to consider when rewriting a Java AST, as you probably know.
 Just to give a tiny example - you can't insert anything before a
 super() statement.  But at this point I have them all covered.

 I'm not yet sure if I'll be open-sourcing my code.  I need to support
 my business, which isn't making much from online ad revenue, and I was
 hoping  some of the enterprises using GWT might be happy to pay for my
 stack trace system.  There are a few commercial tools in the GWT
 space, such aswww.instantiations.com/GWTDesigner, but I'm not sure
 how successful they are.  I'd love to get some feedback from you guys
 about this idea.  I can go both ways at this point.

  Your approach sounds complementary to the existing implementation.

 That's what I was hoping.

 Thanks,
 Alex



 On Thu, May 7, 2009 at 9:50 AM, BobV b...@google.com wrote:
  On Wed, May 6, 2009 at 4:49 PM, Alex Epshteyn
  alexander.epsht...@gmail.com wrote:
  I'm using static code rewriting at the Java source level to maintain a
  virtual stack.  It's actually working out very well so far.  Getting
  surprisingly good results for code size, efficiency, and correctness.

  Could you provide some numbers in terms of raw and gzipped
  before/after bytes?  Also, how does this interact with method and
  function inlining?

  I want to decide whether it's worth the effort to continue developing
  my system.   So my questions are does StackTraceCreator work with all
  browsers and is your symbol translation system ready to be used?  Are
  there any limitations with your approach?  Perhaps there is some area
  where my technique could provide better information to the programmer?

  StackTraceCreator is invoked in Throwable's initalizer and will
  extract as much data as the browser provides.  On Mozilla, you'll get
  a full stack trace.  On other browsers it crawls the caller chain, but
  since the caller chain isn't a proper series of activation records,
  and there's a limitation on reentrant functions.  In the end, it
  provides method-level resolution.  The symbol map file has enough data
  to cook a respectable StackTraceElement that makes IDE integration not
  unreasonable.

  I looked at implementing perfect stack traces as an AST visitor, but
  decided that the size cost, speed cost for inlining, and potential
  data-leakage for large apps would outweigh the marginal gain of having
  line-level resolution in deployed apps.  Those tradeoffs do make sense
  for development and QA versions of an app, but there was only a
  limited amount of time allocated for implementing stack traces.

  Your approach sounds complementary to the existing implementation.

  --
  Bob Vawter
  Google Web Toolkit Team
 


--~--~-~--~~~---~--~~
http://groups.google.com/group/Google-Web-Toolkit-Contributors

[gwt-contrib] Re: GWT emulation of HTML5/CSS3 features

2009-07-02 Thread Ray Cromwell
On Thu, Jul 2, 2009 at 8:03 AM, Joel Webber j...@google.com wrote:


 CSS Animations:
   I think we need to actually measure the performance difference before
 deciding whether it's even worth the trouble. I suspect that there may not
 be much of one (though of course I could be wrong), given that it has to do
 the same work, possibly including layout, regardless of how it's specified.
 And CSS animations aren't as general as programmatic ones. That said, there
 might be some utility in having CssResource parse them automatically and
 write the necessary code for you on older browsers (though I haven't
 assessed the feasibility of doing so).


It might be useful however to create an animation library that consists of
declarative types, as well as custom animation types. If you compose
declarative types, you potentially get CSS Animations or SMIL or HTML+TIME
(IE), if you include a custom type (uses Java code) in the composition, then
you get a pure programmatic fallback.

Think of it as a type-safe enumeration pattern, where some types have
deferred bindings (CSS Anim, SMIL, or pure JS) and others are just pure-JS.



 Canvas:
   This is a nasty case, because Canvas cannot be implemented sanely or
 efficiently on top of VML, which is the only game in IE town. Existing
 canvas-on-VML implementations notwithstanding -- they have wildly different
 performance semantics, which is pretty unacceptable in my opinion.


It's possible to use Flash, but in general, performance can't come close to
matching HTML5 canvas, not just because IE Javascript is so slow, but also
because marshalling/unmarshalling between JS and Flash is slow. A bright
spot is Silverlight, since the JS-Silverlight call mechanism is pretty
efficient. On the downside, you can't depend on Silverlight.

Canvas is also split, since some Canvas impls support text rendering and
others do not.



 SVG:
   Things are a bit brighter here. There are some things (foreign objects
 and certain gradient patterns come to mind) that SVG can do, which VML
 cannot. But a sane navigation of the common features could lead to a quite
 usable and efficient vector graphics library. There's the existing GWTCanvas
 that Jaime wrote a while back as a starting point (which uses Canvas rather
 than SVG), but it appears to me that SVG performance has gotten a lot better
 since that was written, so it's probably worth reconsidering that approach.


Brad Neuberg is actually working on a fairly complete SVG shim for IE using
Flash, it appears performance and compatibility are good.


 audio, video:
 I'm not terribly bullish on these. audio is at least theoretically
 supportable using Flash, and I could see something like the SoundManager2 js
 library taking advantage of it. But video is rife with codec licensing
 problems that seem unlikely to get resolved any time soon (If anyone wants
 to debate the ins and outs of codec licensing, let's *please* do so on
 another thread, because I can tell you from experience that the thread won't
 converge).


There's also the case that doing anything more interesting with video
other than playback means accessing frame pixel data, and shipping them from
Flash back into the browser would be *VERY* inefficient and slow.

-Ray



 And of course, there are probably others I'm not thinking of, so feel free
 to chime in with ideas.

 joel.

 On Wed, Jul 1, 2009 at 1:09 AM, nicolas de loof 
 nicolas.del...@gmail.comwrote:

 Transparent support for CSS3/HTML5 on all browsers including IE would be a
 killer feature !+1

 2009/7/1 tfreitas tfrei...@gmail.com


 +1

 On Jun 29, 10:24 am, dflorey daniel.flo...@gmail.com wrote:
  Hi,
  I've been wondering how GWT should deal with upcoming new features in
  HTML5/CSS3.
  There are several areas where functionality that has been implemented
  in GWT is now also available in the upcoming rendering engines.
 
  GWT is creating highly optimized JavaScript and the JavaScript-engines
  are getting better and better... but: My guess is that for example
  animations will be smoother when using CSS3 animations instead of
  JavaScript based animations.
  Same about rounded corners/shadows and stuff alike. In GWT you'll
  typically use DecoratedPanel to implement rounded corners with
  shadows. But Firefox3.5 and the latest Safari and Chrome releases also
  support css-based rounded borders and shadows.
 
  So my proposal would be to use deferred binding to emulate these
  features on browsers that do not support the latest features (IE8...)
  and to use a lightweight css based impl on WebKit/Firefox 3.5.
 
  In my example of DecoratedPanel the 9x9 approach should be kept for IE
  and a null impl with css based rounded corners should be available for
  Firefox (css have to match the given theme).
  Animations that come with the standard widgets should also be able to
  fallback to css based animations when available.
 
  I've been also reading some posts about the new datagrid html
  extension and thought it 

[gwt-contrib] NewParenthesisRemovalOptimization

2009-07-02 Thread cromwellian

Reviewers: scottb,

Description:
This patch removes trailing parenthesis from Javascript 'new' operators
if there
are no constructor arguments.

new Foo() - new Foo

Now with fixes based on Scott's review, as well as some inline comments
in case future archaeologists after the apocalypse discover this code
and want to know the motivation.


Please review this at http://gwt-code-reviews.appspot.com/47808

Affected files:
   dev/core/src/com/google/gwt/dev/js/JsToStringGenerationVisitor.java


Index: dev/core/src/com/google/gwt/dev/js/JsToStringGenerationVisitor.java
===
--- dev/core/src/com/google/gwt/dev/js/JsToStringGenerationVisitor.java  
(revision 5638)
+++ dev/core/src/com/google/gwt/dev/js/JsToStringGenerationVisitor.java  
(working copy)
@@ -583,16 +583,19 @@
_rparen();
  }

-_lparen();
-boolean sep = false;
-for (Object element : x.getArguments()) {
-  JsExpression arg = (JsExpression) element;
-  sep = _sepCommaOptSpace(sep);
-  _parenPushIfCommaExpr(arg);
-  accept(arg);
-  _parenPopIfCommaExpr(arg);
+// if an constructor call has no arguments, it may simply be
+// replaced with new Constructor with no parenthesis
+if (x.getArguments().size()  0) {
+  _lparen();
+  boolean sep = false;
+  for (JsExpression arg : x.getArguments()) {
+sep = _sepCommaOptSpace(sep);
+_parenPushIfCommaExpr(arg);
+accept(arg);
+_parenPopIfCommaExpr(arg);
+  }
+  _rparen();
  }
-_rparen();

  return false;
}



--~--~-~--~~~---~--~~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~--~~~~--~~--~--~---



[gwt-contrib] Re: NewParenthesisRemovalOptimization

2009-07-02 Thread rice


http://gwt-code-reviews.appspot.com/47808/diff/1/2
File dev/core/src/com/google/gwt/dev/js/JsToStringGenerationVisitor.java
(right):

http://gwt-code-reviews.appspot.com/47808/diff/1/2#newcode587
Line 587: // replaced with new Constructor with no parenthesis
parentheses (plural)

http://gwt-code-reviews.appspot.com/47808/diff/1/2#newcode588
Line 588: if (x.getArguments().size()  0) {
Possible to call getArguments only once?

http://gwt-code-reviews.appspot.com/47808

--~--~-~--~~~---~--~~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~--~~~~--~~--~--~---



[gwt-contrib] [google-web-toolkit commit] r5660 - Creating 1.7 branch from 1.6

2009-07-02 Thread codesite-noreply

Author: fabb...@google.com
Date: Thu Jul  2 10:40:03 2009
New Revision: 5660

Added:
releases/1.7/
   - copied from r5659, /releases/1.6/

Log:
Creating 1.7 branch from 1.6

--~--~-~--~~~---~--~~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~--~~~~--~~--~--~---



[gwt-contrib] Issue3796 Patch

2009-07-02 Thread cromwellian

Reviewers: ,

Description:
Syntax error due to inlining of numeric literal into jsni function

Java code:
public class Main implements EntryPoint {
   private native static String toFixed(double value, int n) /*-{
 return value.toFixed(n);
   }-*/;

   public void onModuleLoad() {
 Window.alert(toFixed(42.0, 2));
   }
}

Output:
$wnd.alert(42.toFixed(2))
// syntax error 42.toFixed(2) should be (42).toFixed(2)


This patch handles both invocations (42.method()) and name refs
(42.field).


Please review this at http://gwt-code-reviews.appspot.com/47809

Affected files:
   dev/core/src/com/google/gwt/dev/js/JsToStringGenerationVisitor.java


Index: dev/core/src/com/google/gwt/dev/js/JsToStringGenerationVisitor.java
===
--- dev/core/src/com/google/gwt/dev/js/JsToStringGenerationVisitor.java  
(revision 5638)
+++ dev/core/src/com/google/gwt/dev/js/JsToStringGenerationVisitor.java  
(working copy)
@@ -982,6 +982,14 @@
  p.print(CHARS_IF);
}

+  // Issue #3796, inlining of numeric literals can produce illegal JS
+  // expressions. x = 42, x.method() is legal. 42.method() is illegal.
+  // The fix is to add parentheses, e.g. (42).method()
+  private boolean _isWeirdLiteralDot(JsExpression parent, JsExpression  
child) {
+return child instanceof JsNumberLiteral  (parent instanceof  
JsInvocation
+|| parent instanceof JsNameRef);
+  }
+
private void _in() {
  p.print(CHARS_IN);
}
@@ -1044,9 +1052,10 @@
boolean wrongAssoc) {
  int parentPrec = JsPrecedenceVisitor.exec(parent);
  int childPrec = JsPrecedenceVisitor.exec(child);
-return (parentPrec  childPrec || (parentPrec == childPrec   
wrongAssoc));
+return (parentPrec  childPrec || (parentPrec == childPrec   
wrongAssoc) ||
+_isWeirdLiteralDot(parent, child));
}
-
+
private boolean _parenPop(JsExpression parent, JsExpression child,
boolean wrongAssoc) {
  boolean doPop = _parenCalc(parent, child, wrongAssoc);



--~--~-~--~~~---~--~~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~--~~~~--~~--~--~---



[gwt-contrib] ClientBundle inheritence issues

2009-07-02 Thread nwolf

Reviewers: robertvawter_google.com,

Description:
http://b/issue?id=1958188

Please review this at http://gwt-code-reviews.appspot.com/48805

Affected files:
   rg/CssResourceGenerator.java


Index: rg/CssResourceGenerator.java
===
--- rg/CssResourceGenerator.java(revision 5514)
+++ rg/CssResourceGenerator.java(working copy)
@@ -918,10 +918,18 @@
String functionName =  
def.getValues().get(0).isIdentValue().getIdent();

// Find the method
-  JMethod method = context.getClientBundleType().findMethod(
-  functionName, new JType[0]);
-
-  if (method == null) {
+  JMethod methods[] =  
context.getClientBundleType().getOverridableMethods();
+  boolean foundMethod = false;
+  if (methods != null) {
+for (JMethod method : methods) {
+  if (method.getName().equals(functionName)) {
+foundMethod = true;
+break;
+  }
+}
+  }
+
+  if (!foundMethod) {
  logger.log(TreeLogger.ERROR, Unable to find DataResource  
method 
  + functionName +  in 
  + context.getClientBundleType().getQualifiedSourceName());



--~--~-~--~~~---~--~~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~--~~~~--~~--~--~---



[gwt-contrib] ArrayAndObjectLiteralOptimization

2009-07-02 Thread cromwellian

Reviewers: scottb, jgw,

Description:

While fixing the other stuff in JsToStringGeneration, this seemed like
an easy one to add, but its effect is close to zero on most GWT code
bases.

new Array() - []
new Object() - {}

See
http://code.google.com/p/google-web-toolkit/wiki/ArrayAndObjectLiteralOptimization

It would only really help if some really bad Javascript programmers
wrote some really bad JSNI code.

Probably not worth committing, but review at your pleasure.


Please review this at http://gwt-code-reviews.appspot.com/47810

Affected files:
   dev/core/src/com/google/gwt/dev/js/JsToStringGenerationVisitor.java


Index: dev/core/src/com/google/gwt/dev/js/JsToStringGenerationVisitor.java
===
--- dev/core/src/com/google/gwt/dev/js/JsToStringGenerationVisitor.java  
(revision 5638)
+++ dev/core/src/com/google/gwt/dev/js/JsToStringGenerationVisitor.java  
(working copy)
@@ -570,10 +570,25 @@

@Override
public boolean visit(JsNew x, JsContextJsExpression ctx) {
+JsExpression ctorExpr = x.getConstructorExpression();
+// Implementation of wiki/ArrayAndObjectLiteralOptimization
+if(ctorExpr instanceof JsNameRef) {
+  String nameRef = ((JsNameRef)ctorExpr).getIdent();
+  if(Array.equals(nameRef)) {
+_lsquare();
+_rsquare();
+return false;
+  }
+  else if(Object.equals(nameRef)) {
+_lbrace();
+_rbrace();
+return false;
+  }
+}
+
  _new();
  _space();

-JsExpression ctorExpr = x.getConstructorExpression();
  boolean needsParens = JsConstructExpressionVisitor.exec(ctorExpr);
  if (needsParens) {
_lparen();



--~--~-~--~~~---~--~~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~--~~~~--~~--~--~---



[gwt-contrib] IE Access is denied javascript exception

2009-07-02 Thread todd.sei...@gmail.com

Many users with IE 6-8 experience trouble loading my site the first
time they try to access it. The site either never tries to load or
else they get an access is denied error. I have tracked the access
is denied error to the maybeCreateGwtFrame method in
module.nocache.js. It is being throw on the line 204 ( var doc =
win.document;).

If the user refreshes the application will load perfectly. What I
tried doing is wrapping those lines with a try block then redirecting
however it doesn't appear to catch the exception thrown.

I also have cut down my initial code from 700KB to 20KB with code
splitting thinking that that might ease the situation. All it helped
do is get to the exception quicker. (P.S. thank you for code
spllitting)

Does anyone have any suggestions for me to try?
--~--~-~--~~~---~--~~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~--~~~~--~~--~--~---



[gwt-contrib] Re: ArrayAndObjectLiteralOptimization

2009-07-02 Thread jgw

On 2009/07/02 20:24:57, cromwellian wrote:


Hey, every little bit counts. LGTM.

http://gwt-code-reviews.appspot.com/47810

--~--~-~--~~~---~--~~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~--~~~~--~~--~--~---



[gwt-contrib] Improve correctness of UnicodeEscapingTest

2009-07-02 Thread bobv

Reviewers: jat,

Message:
Requesting review.

Description:
Splits UnicodeEscapingTest.testClientToServerBMP() into two methods so
that failures are correctly reported. The current implementation will
call finishTest() twice, which will desynchronize the junit framework,
making failures harder to pin down.

Extends the WebKit client-side escaping regex to pass all tests on
Safari 4.  The tests were failing due to sequences of combining
characters not being handled correctly as well as codepoints getting
switched out due to normalization.

Removes support for Safari2.

Please review this at http://gwt-code-reviews.appspot.com/48806

Affected files:
   M  
user/src/com/google/gwt/user/client/rpc/impl/ClientSerializationStreamWriter.java
   M user/test/com/google/gwt/user/client/rpc/UnicodeEscapingTest.java



--~--~-~--~~~---~--~~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~--~~~~--~~--~--~---



[gwt-contrib] Re: Improve correctness of UnicodeEscapingTest

2009-07-02 Thread jat

LGTM other than removing the Safari2 support.


http://gwt-code-reviews.appspot.com/48806/diff/1/3
File user/test/com/google/gwt/user/client/rpc/UnicodeEscapingTest.java
(left):

http://gwt-code-reviews.appspot.com/48806/diff/1/3#oldcode66
Line 66: private static native boolean isSafari2() /*-{
Don't we still need this?  Until we official drop support for Safari2
(and our build doesn't test it), I think we need to keep the test
passing there.

http://gwt-code-reviews.appspot.com/48806

--~--~-~--~~~---~--~~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~--~~~~--~~--~--~---



[gwt-contrib] Re: ArrayAndObjectLiteralOptimization

2009-07-02 Thread mmastrac . alternate

There's a few corner cases in which this optimization may change the
meaning of code:

1.  Name scoping of builtins using locals/builtins:

var Array = function() { this.toString = function() { return bleh; }
};
x = new Array()
alert(x);

var x = { Array: function() { this.toString = function() { return
bleh; } } };
with (x) {
y = new Array();
}
alert(y);

2. Parameters to constructor:

new Object(1) - wraps the object in the parameter so that it has a
different identity.  This shouldn't be modified.

new Array(1,2,3) - wraps the parameters in a new array.  This is always
equivalent to [1,2,3] (with the exception of cases that fall under 1
above).


http://gwt-code-reviews.appspot.com/47810

--~--~-~--~~~---~--~~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~--~~~~--~~--~--~---



[gwt-contrib] Re: Improve correctness of UnicodeEscapingTest

2009-07-02 Thread jgw

On 2009/07/02 20:58:49, jat wrote:
 LGTM other than removing the Safari2 support.

 http://gwt-code-reviews.appspot.com/48806/diff/1/3
 File user/test/com/google/gwt/user/client/rpc/UnicodeEscapingTest.java
(left):

 http://gwt-code-reviews.appspot.com/48806/diff/1/3#oldcode66
 Line 66: private static native boolean isSafari2() /*-{
 Don't we still need this?  Until we official drop support for Safari2
(and our
 build doesn't test it), I think we need to keep the test passing
there.

We (and just about everyone else) officially dropped support for Safari
2 some time ago. It was uncontroversial when discussed on gwt-contrib.

http://gwt-code-reviews.appspot.com/48806

--~--~-~--~~~---~--~~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~--~~~~--~~--~--~---



[gwt-contrib] Re: Improve correctness of UnicodeEscapingTest

2009-07-02 Thread John Tamplin
On Thu, Jul 2, 2009 at 5:05 PM, j...@google.com wrote:

 We (and just about everyone else) officially dropped support for Safari
 2 some time ago. It was uncontroversial when discussed on gwt-contrib.


Ok -- Eric misinformed me about still running the Safari2 tests.

In that case, we should remove its associated regex and the webkit version
check that goes with it.

-- 
John A. Tamplin
Software Engineer (GWT), Google

--~--~-~--~~~---~--~~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~--~~~~--~~--~--~---



[gwt-contrib] Re: Improve correctness of UnicodeEscapingTest

2009-07-02 Thread bobv

http://gwt-code-reviews.appspot.com/48806

--~--~-~--~~~---~--~~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~--~~~~--~~--~--~---



[gwt-contrib] Re: ArrayAndObjectLiteralOptimization

2009-07-02 Thread Joel Webber
Oh crap. Good point, Matthew. I'm with Ray -- probably not worth it, given
this potential problem.

On Thu, Jul 2, 2009 at 5:36 PM, Ray Cromwell cromwell...@gmail.com wrote:



 On Thu, Jul 2, 2009 at 2:02 PM, mmastrac.altern...@gmail.com wrote:

 There's a few corner cases in which this optimization may change the
 meaning of code:

 1.  Name scoping of builtins using locals/builtins:

 var Array = function() { this.toString = function() { return bleh; }
 };
 x = new Array()
 alert(x);


 Ugh, you're right. Trapping this would be kind of tricky. I suppose I could
 keep track of any vars in scope that shadow Array/Object. There's also the
 case where
 an insane person modifies the global Array ($wnd.Array = ...) Would be nice
 if it implicity invoked Array's prototype constructor.





 var x = { Array: function() { this.toString = function() { return
 bleh; } } };
 with (x) {
   y = new Array();
 }
 alert(y);


 This one is easy. GWT's Javascript parser does not support 'with'. It's
 banned.



 2. Parameters to constructor:

 new Object(1) - wraps the object in the parameter so that it has a
 different identity.  This shouldn't be modified.

 new Array(1,2,3) - wraps the parameters in a new array.  This is always
 equivalent to [1,2,3] (with the exception of cases that fall under 1
 above).


 This case can be handled.

 Given the complexity of tracking variable shadowing vs the benefit this
 patch provides, I'm not sure it's worth it. For example, in Showcase,
 there's only a single call to new Array() in the entire output.

 -Ray





 http://gwt-code-reviews.appspot.com/47810




--~--~-~--~~~---~--~~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~--~~~~--~~--~--~---



[gwt-contrib] Re: Issue3796 Patch

2009-07-02 Thread Ray Cromwell
Wow, you're right! I never thought of trying that. I'll leave it to Scott
whether he wants me to change this in favor of saving a character, since the
implementation would have to be hoisted out of the parenCheck stuff, and
this problem occurs very rarely.
-Ray


On Thu, Jul 2, 2009 at 2:50 PM, Ian Petersen ispet...@gmail.com wrote:


 On Thu, Jul 2, 2009 at 12:53 PM, cromwell...@gmail.com wrote:
  Reviewers: ,
 
  Description:
  Syntax error due to inlining of numeric literal into jsni function
 
  Java code:
  public class Main implements EntryPoint {
private native static String toFixed(double value, int n) /*-{
  return value.toFixed(n);
}-*/;
 
public void onModuleLoad() {
  Window.alert(toFixed(42.0, 2));
}
  }
 
  Output:
  $wnd.alert(42.toFixed(2))
  // syntax error 42.toFixed(2) should be (42).toFixed(2)
 
 
  This patch handles both invocations (42.method()) and name refs
  (42.field).

 I think you can solve the same problem by inserting a space between
 the ending digit and the period, which would save you one character
 per instance if I'm remembering my JS syntax correctly.

 Ian

 


--~--~-~--~~~---~--~~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~--~~~~--~~--~--~---



[gwt-contrib] Reduction of JavaScript class declarations.

2009-07-02 Thread Andrés Testi

Having a function like:

  function d(){
return function(){};
  }

... class declarations like:

  function Foo(){}

... could be reduced to:

  var Foo=d()

... reducing compiled code by 5 characters for each declaration.


- Andrés


--~--~-~--~~~---~--~~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~--~~~~--~~--~--~---



[gwt-contrib] Re: Reduction of JavaScript class declarations.

2009-07-02 Thread Andrés Testi

Even more code reduction could be done declaring all vars in the same
place:

function Foo1(){}
function Foo2(){}
function Foo3(){}

... could be reduced to

var Foo1=d(),Foo2=d(),Foo3=d();

- Andrés


On 2 jul, 19:11, Andrés Testi andres.a.te...@gmail.com wrote:
 Having a function like:

   function d(){
     return function(){};
   }

 ... class declarations like:

   function Foo(){}

 ... could be reduced to:

   var Foo=d()

 ... reducing compiled code by 5 characters for each declaration.

 - Andrés
--~--~-~--~~~---~--~~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~--~~~~--~~--~--~---



[gwt-contrib] Re: NewParenthesisRemovalOptimization

2009-07-02 Thread Ian Petersen

On Thu, Jul 2, 2009 at 12:14 PM, cromwell...@gmail.com wrote:
 Reviewers: scottb,

 Description:
 This patch removes trailing parenthesis from Javascript 'new' operators
 if there
 are no constructor arguments.

 new Foo() - new Foo

 Now with fixes based on Scott's review, as well as some inline comments
 in case future archaeologists after the apocalypse discover this code
 and want to know the motivation.

Had a pretty random thought on the way to the bathroom: new
Foo().bar() is equivalent to (new Foo).bar().  Is it equivalent to
new Foo.bar()?  I would expect not.  Does that matter?  Does the
compiler generate code that looks like new Foo.bar() with your patch
in place?

Ian

--~--~-~--~~~---~--~~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~--~~~~--~~--~--~---



[gwt-contrib] Re: NewParenthesisRemovalOptimization

2009-07-02 Thread Ray Cromwell
On Thu, Jul 2, 2009 at 3:23 PM, Ian Petersen ispet...@gmail.com wrote:



 Had a pretty random thought on the way to the bathroom: new
 Foo().bar() is equivalent to (new Foo).bar().  Is it equivalent to
 new Foo.bar()?  I would expect not.  Does that matter?  Does the
 compiler generate code that looks like new Foo.bar() with your patch
 in place?


The compiler (the code-gen JsToStringGenerator part) has a precedence
checking routine for handling this. If you do new Foo().bar, if will replace
it with (new Foo).bar. Since the JsInvocation (new operator) is supposed
to bind tighter with the JsNameRef in the constructor expression than the
'bar' name ref is to the new.


-Ray



 Ian

 


--~--~-~--~~~---~--~~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~--~~~~--~~--~--~---



[gwt-contrib] Best practice to implement Command Pattern RPC

2009-07-02 Thread Allahbaksh Asadullah
Hi All,I am trying to implement command pattern RPC as discussed in google
io

Best Practices For Architecting Your GWT App :

http://code.google.com/intl/es-ES/events/io/sessions/GoogleWebToolkit...http://code.google.com/intl/es-ES/events/io/sessions/GoogleWebToolkitBestPractices.html


After trying a lot I am still not able to get it working. Can any one share
the working source code of Command Pattern RPC.

Regards,

Thanks.

Allahbaksh

--~--~-~--~~~---~--~~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~--~~~~--~~--~--~---



[gwt-contrib] Re: Reduction of JavaScript class declarations.

2009-07-02 Thread Scott Blum
Of course, if we go with the idea of hoisting Java constructors into the
JavaScript constructor, that stops working.
Speaking of which, we don't have to limit it to just classes with one live
constructor... two different JS constructors can share the same prototype
object.

--~--~-~--~~~---~--~~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~--~~~~--~~--~--~---



[gwt-contrib] [google-web-toolkit commit] r5663 - Roll back r5662. The overlay of WeakMapping is confusing the apicheck-nobuild target.

2009-07-02 Thread codesite-noreply

Author: r...@google.com
Date: Thu Jul  2 19:58:31 2009
New Revision: 5663

Removed:
trunk/user/src/com/google/gwt/core/client/WeakMapping.java
trunk/user/src/com/google/gwt/user/rebind/rpc/ClientDataSerializer.java
 
trunk/user/src/com/google/gwt/user/rebind/rpc/JdoDetachedStateClientDataSerializer.java
trunk/user/src/com/google/gwt/user/server/Base64Utils.java
 
trunk/user/src/com/google/gwt/user/server/rpc/impl/JdoDetachedStateServerDataSerializer.java
 
trunk/user/src/com/google/gwt/user/server/rpc/impl/ServerDataSerializer.java
trunk/user/super/com/google/gwt/user/translatable/com/google/gwt/core/
trunk/user/test/com/google/gwt/core/client/WeakMappingTest.java
trunk/user/test/com/google/gwt/user/server/Base64Test.java
Modified:
trunk/dev/core/src/com/google/gwt/dev/jjs/impl/GenerateJavaScriptAST.java
trunk/user/src/com/google/gwt/user/rebind/rpc/FieldSerializerCreator.java
 
trunk/user/src/com/google/gwt/user/server/rpc/impl/SerializabilityUtil.java
 
trunk/user/src/com/google/gwt/user/server/rpc/impl/ServerSerializationStreamReader.java
 
trunk/user/src/com/google/gwt/user/server/rpc/impl/ServerSerializationStreamWriter.java
trunk/user/super/com/google/gwt/emul/java/lang/Object.java
trunk/user/test/com/google/gwt/core/CoreSuite.java
trunk/user/test/com/google/gwt/user/RPCSuite.java

Log:
Roll back r5662.  The overlay of WeakMapping is confusing the  
apicheck-nobuild target.

TBR: bobv



Modified:  
trunk/dev/core/src/com/google/gwt/dev/jjs/impl/GenerateJavaScriptAST.java
==
---  
trunk/dev/core/src/com/google/gwt/dev/jjs/impl/GenerateJavaScriptAST.java   
 
(original)
+++  
trunk/dev/core/src/com/google/gwt/dev/jjs/impl/GenerateJavaScriptAST.java   
 
Thu Jul  2 19:58:31 2009
@@ -1949,7 +1949,6 @@
  specialObfuscatedIdents.put(finalize, fZ);

  // Object fields
-specialObfuscatedIdents.put(expando, eX);
  specialObfuscatedIdents.put(typeId, tI);
  specialObfuscatedIdents.put(typeMarker, tM);


Modified:  
trunk/user/src/com/google/gwt/user/rebind/rpc/FieldSerializerCreator.java
==
---  
trunk/user/src/com/google/gwt/user/rebind/rpc/FieldSerializerCreator.java   
 
(original)
+++  
trunk/user/src/com/google/gwt/user/rebind/rpc/FieldSerializerCreator.java   
 
Thu Jul  2 19:58:31 2009
@@ -16,7 +16,6 @@
  package com.google.gwt.user.rebind.rpc;

  import com.google.gwt.core.client.UnsafeNativeLong;
-import com.google.gwt.core.client.WeakMapping;
  import com.google.gwt.core.ext.GeneratorContext;
  import com.google.gwt.core.ext.TreeLogger;
  import com.google.gwt.core.ext.typeinfo.JArrayType;
@@ -47,8 +46,6 @@
   * fully qualified type names everywhere
   */
  public class FieldSerializerCreator {
-
-  private final static String WEAK_MAPPING_CLASS_NAME =  
WeakMapping.class.getName();

private final JClassType serializableClass;

@@ -351,13 +348,6 @@
writeEnumDeserializationStatements(serializableClass.isEnum());
  } else {
writeClassDeserializationStatements();
-
-  for (ClientDataSerializer serializer :  
ClientDataSerializer.getSerializers()) {
-if (serializer.shouldSerialize(serializableClass)) {
-  sourceWriter.println(WEAK_MAPPING_CLASS_NAME + .set(instance, 
-  + \ + serializer.getName() + \,  
streamReader.readString()););
-}
-  }
  }
  sourceWriter.outdent();
  sourceWriter.println(});
@@ -465,14 +455,6 @@
writeEnumSerializationStatements(serializableClass.isEnum());
  } else {
writeClassSerializationStatements();
-
-  for (ClientDataSerializer serializer :  
ClientDataSerializer.getSerializers()) {
-if (serializer.shouldSerialize(serializableClass)) {
-  sourceWriter.println(streamWriter.writeString((String) 
-  + WEAK_MAPPING_CLASS_NAME + .get(instance, \
-  + serializer.getName() + \)););
-}
-  }
  }

  sourceWriter.outdent();

Modified:  
trunk/user/src/com/google/gwt/user/server/rpc/impl/SerializabilityUtil.java
==
---  
trunk/user/src/com/google/gwt/user/server/rpc/impl/SerializabilityUtil.java 
 
(original)
+++  
trunk/user/src/com/google/gwt/user/server/rpc/impl/SerializabilityUtil.java 
 
Thu Jul  2 19:58:31 2009
@@ -250,13 +250,6 @@
}

private static boolean fieldQualifiesForSerialization(Field field) {
-// Check if the field will be handled by a ServerDataSerializer; if  
so, skip it here.
-for (ServerDataSerializer serializer :  
ServerDataSerializer.getSerializers()) {
-  if (serializer.shouldSkipField(field)) {
-return false;
-  }
-}
-
  if (Throwable.class == field.getDeclaringClass()) {
/**
 * Only serialize Throwable's