On Wed, May 20, 2009 at 3:13 PM, Ray Cromwell cromwell...@gmail.com wrote:
As a practical example, ClientBundle can already generate deep
expressions for Css resource injection that exhaust the stack space of
the JVM when compiling. You end up with something like:
var cssText = a + b + c +
Thanks, Joel. Committed at r5459.
http://gwt-code-reviews.appspot.com/33826
--~--~-~--~~~---~--~~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~--~~~~--~~--~--~---
http://gwt-code-reviews.appspot.com/33826/diff/1/4
File user/src/com/google/gwt/core/CompilerParameters.gwt.xml (right):
http://gwt-code-reviews.appspot.com/33826/diff/1/4#newcode25
Line 25: set-configuration-property name='compiler.max.vars.per.var'
value='4900' /
Okay, I'll change it to half.
It is still possible for super-deep expressions to come out of the
compiler. As yet it is not a practical problem, however. The depth
limit is 1. We are only bumping into such a large limit because of
the unusual encoding used for var statements.
That said, if it's a practical problem,
I'm also concerned that it only splits var statements; are we sure GWT
won't generate too deep expressions on other kind of statements?
http://gwt-code-reviews.appspot.com/33826/diff/1/6
File dev/core/src/com/google/gwt/dev/js/JsBreakUpLargeVarStatements.java
(right):
As a practical example, ClientBundle can already generate deep
expressions for Css resource injection that exhaust the stack space of
the JVM when compiling. You end up with something like:
var cssText = a + b + c + . (hundreds)
which produces a very deeply nested binary expression tree.