Author: [email protected]
Date: Wed Jun 24 05:26:07 2009
New Revision: 5622
Added:
releases/1.6/dev/core/src/com/google/gwt/dev/js/JsBreakUpLargeVarStatements.java
- copied, changed from r5459,
/trunk/dev/core/src/com/google/gwt/dev/js/JsBreakUpLargeVarStatements.java
releases/1.6/user/src/com/google/gwt/core/CompilerParameters.gwt.xml
- copied, changed from r5459,
/trunk/user/src/com/google/gwt/core/CompilerParameters.gwt.xml
Modified:
releases/1.6/dev/core/src/com/google/gwt/dev/CompilePerms.java
releases/1.6/dev/core/src/com/google/gwt/dev/PermutationCompiler.java
releases/1.6/dev/core/src/com/google/gwt/dev/jjs/JavaToJavaScriptCompiler.java
releases/1.6/dev/core/src/com/google/gwt/dev/js/ast/JsVars.java
releases/1.6/user/src/com/google/gwt/core/Core.gwt.xml
releases/1.6/user/test/com/google/gwt/emultest/EmulSuite.gwt.xml
Log:
Merging trunk c5459 into releases/1.6.
Modified: releases/1.6/dev/core/src/com/google/gwt/dev/CompilePerms.java
==============================================================================
--- releases/1.6/dev/core/src/com/google/gwt/dev/CompilePerms.java
(original)
+++ releases/1.6/dev/core/src/com/google/gwt/dev/CompilePerms.java Wed Jun
24 05:26:07 2009
@@ -179,7 +179,7 @@
Permutation permutation, UnifiedAst unifiedAst)
throws UnableToCompleteException {
final String js = JavaToJavaScriptCompiler.compilePermutation(logger,
- unifiedAst, permutation.getRebindAnswers());
+ unifiedAst, permutation.getRebindAnswers(),
permutation.getPropertyOracles());
return new PermutationResult() {
public String getJs() {
return js;
Modified:
releases/1.6/dev/core/src/com/google/gwt/dev/PermutationCompiler.java
==============================================================================
--- releases/1.6/dev/core/src/com/google/gwt/dev/PermutationCompiler.java
(original)
+++ releases/1.6/dev/core/src/com/google/gwt/dev/PermutationCompiler.java
Wed Jun 24 05:26:07 2009
@@ -98,7 +98,7 @@
+ permNum);
logProperties(branch, perm.getPropertyOracles());
return JavaToJavaScriptCompiler.compilePermutation(branch,
unifiedAst,
- perm.getRebindAnswers());
+ perm.getRebindAnswers(), perm.getPropertyOracles());
} finally {
PerfLogger.end();
}
Modified:
releases/1.6/dev/core/src/com/google/gwt/dev/jjs/JavaToJavaScriptCompiler.java
==============================================================================
---
releases/1.6/dev/core/src/com/google/gwt/dev/jjs/JavaToJavaScriptCompiler.java
(original)
+++
releases/1.6/dev/core/src/com/google/gwt/dev/jjs/JavaToJavaScriptCompiler.java
Wed Jun 24 05:26:07 2009
@@ -15,6 +15,7 @@
*/
package com.google.gwt.dev.jjs;
+import com.google.gwt.core.ext.PropertyOracle;
import com.google.gwt.core.ext.TreeLogger;
import com.google.gwt.core.ext.UnableToCompleteException;
import com.google.gwt.dev.jdt.RebindPermutationOracle;
@@ -59,6 +60,7 @@
import com.google.gwt.dev.jjs.impl.ResolveRebinds;
import com.google.gwt.dev.jjs.impl.TypeMap;
import com.google.gwt.dev.jjs.impl.TypeTightener;
+import com.google.gwt.dev.js.JsBreakUpLargeVarStatements;
import com.google.gwt.dev.js.JsIEBlockSizeVisitor;
import com.google.gwt.dev.js.JsInliner;
import com.google.gwt.dev.js.JsNormalizer;
@@ -102,12 +104,13 @@
* {...@link #precompile(TreeLogger, WebModeCompilerFrontEnd,
String[], JJSOptions, boolean)}
* @param rebindAnswers the set of rebind answers to resolve all
outstanding
* rebind decisions
+ * @param propertyOracles All property oracles corresponding to this
permutation.
* @return the output JavaScript
* @throws UnableToCompleteException if an error other than
* {...@link OutOfMemoryError} occurs
*/
public static String compilePermutation(TreeLogger logger,
- UnifiedAst unifiedAst, Map<String, String> rebindAnswers)
+ UnifiedAst unifiedAst, Map<String, String> rebindAnswers,
PropertyOracle[] propertyOracles)
throws UnableToCompleteException {
try {
if (JProgram.isTracingEnabled()) {
@@ -196,6 +199,8 @@
// Work around an IE7 bug,
// http://code.google.com/p/google-web-toolkit/issues/detail?id=1440
JsIEBlockSizeVisitor.exec(jsProgram);
+
+ JsBreakUpLargeVarStatements.exec(logger, jsProgram, propertyOracles);
// (12) Generate the final output text.
DefaultTextOutput out = new DefaultTextOutput(
Copied:
releases/1.6/dev/core/src/com/google/gwt/dev/js/JsBreakUpLargeVarStatements.java
(from r5459,
/trunk/dev/core/src/com/google/gwt/dev/js/JsBreakUpLargeVarStatements.java)
==============================================================================
---
/trunk/dev/core/src/com/google/gwt/dev/js/JsBreakUpLargeVarStatements.java
(original)
+++
releases/1.6/dev/core/src/com/google/gwt/dev/js/JsBreakUpLargeVarStatements.java
Wed Jun 24 05:26:07 2009
@@ -15,9 +15,12 @@
*/
package com.google.gwt.dev.js;
+import java.util.ArrayList;
+import java.util.List;
+
import com.google.gwt.core.ext.BadPropertyValueException;
-import com.google.gwt.core.ext.ConfigurationProperty;
import com.google.gwt.core.ext.PropertyOracle;
+import com.google.gwt.core.ext.TreeLogger;
import com.google.gwt.dev.jjs.InternalCompilerException;
import com.google.gwt.dev.js.ast.JsContext;
import com.google.gwt.dev.js.ast.JsModVisitor;
@@ -26,9 +29,6 @@
import com.google.gwt.dev.js.ast.JsVars;
import com.google.gwt.dev.js.ast.JsVars.JsVar;
-import java.util.ArrayList;
-import java.util.List;
-
/**
* Divides large var statements into smaller ones. Very long var
statements have
* trouble on some browsers, including the initial Safari 4 beta. See
Issue
@@ -37,8 +37,8 @@
public class JsBreakUpLargeVarStatements extends JsModVisitor {
private static final String CONFIG_PROP_MAX_VARS
= "compiler.max.vars.per.var";
- public static void exec(JsProgram program, PropertyOracle[]
propertyOracles) {
- (new JsBreakUpLargeVarStatements(propertyOracles)).accept(program);
+ public static void exec(TreeLogger logger, JsProgram program,
PropertyOracle[] propertyOracles) {
+ (new JsBreakUpLargeVarStatements(logger,
propertyOracles)).accept(program);
}
private static JsVars last(List<JsVars> list) {
@@ -47,8 +47,8 @@
private final int maxVarsPerStatement;
- private JsBreakUpLargeVarStatements(PropertyOracle[] propertyOracles) {
- maxVarsPerStatement = getMaxVarsPerStatement(propertyOracles[0]);
+ private JsBreakUpLargeVarStatements(TreeLogger logger, PropertyOracle[]
propertyOracles) {
+ maxVarsPerStatement = getMaxVarsPerStatement(logger,
propertyOracles[0]);
}
@Override
@@ -60,12 +60,12 @@
if (x.getNumVars() > maxVarsPerStatement) {
// compute a list of smaller JsVars statements
List<JsVars> smallerVars = new ArrayList<JsVars>();
- smallerVars.add(makeNewChildVars(x));
+ smallerVars.add(new JsVars());
for (JsVar var : x) {
if (last(smallerVars).getNumVars() >= maxVarsPerStatement) {
// Previous statement is full; start a new one
- smallerVars.add(makeNewChildVars(x));
+ smallerVars.add(new JsVars());
}
last(smallerVars).add(var);
}
@@ -82,25 +82,16 @@
* Look up in the specified property oracle the maximum number of
variables to
* allow per var statement.
*/
- private int getMaxVarsPerStatement(PropertyOracle propertyOracle)
+ private int getMaxVarsPerStatement(TreeLogger logger, PropertyOracle
propertyOracle)
throws InternalCompilerException, NumberFormatException {
- ConfigurationProperty prop;
+ String prop;
try {
- prop = propertyOracle.getConfigurationProperty(CONFIG_PROP_MAX_VARS);
+ prop = propertyOracle.getPropertyValue(logger, CONFIG_PROP_MAX_VARS);
} catch (BadPropertyValueException e) {
throw new InternalCompilerException("Could not find property "
+ CONFIG_PROP_MAX_VARS, e);
}
- int t = Integer.parseInt(prop.getValues().get(0));
+ int t = Integer.parseInt(prop);
return t;
- }
-
- /**
- * Make a new, empty {...@link JsVars} that is a child of x.
- */
- private JsVars makeNewChildVars(JsVars x) {
- return new JsVars(x.getSourceInfo().makeChild(
- JsBreakUpLargeVarStatements.class,
- "breaking up a large vars statement into smaller ones"));
}
}
Modified: releases/1.6/dev/core/src/com/google/gwt/dev/js/ast/JsVars.java
==============================================================================
--- releases/1.6/dev/core/src/com/google/gwt/dev/js/ast/JsVars.java
(original)
+++ releases/1.6/dev/core/src/com/google/gwt/dev/js/ast/JsVars.java Wed Jun
24 05:26:07 2009
@@ -68,6 +68,10 @@
vars.add(var);
}
+ public int getNumVars() {
+ return vars.size();
+ }
+
public boolean isEmpty() {
return vars.isEmpty();
}
Copied:
releases/1.6/user/src/com/google/gwt/core/CompilerParameters.gwt.xml (from
r5459, /trunk/user/src/com/google/gwt/core/CompilerParameters.gwt.xml)
==============================================================================
--- /trunk/user/src/com/google/gwt/core/CompilerParameters.gwt.xml
(original)
+++ releases/1.6/user/src/com/google/gwt/core/CompilerParameters.gwt.xml
Wed Jun 24 05:26:07 2009
@@ -21,6 +21,5 @@
the initial beta of Safari 4. See Issue 3455. If it is set to -1,
then there is no limit.
-->
- <define-configuration-property name='compiler.max.vars.per.var'
is-multi-valued='false' />
<set-configuration-property name='compiler.max.vars.per.var'
value='2400' />
</module>
Modified: releases/1.6/user/src/com/google/gwt/core/Core.gwt.xml
==============================================================================
--- releases/1.6/user/src/com/google/gwt/core/Core.gwt.xml (original)
+++ releases/1.6/user/src/com/google/gwt/core/Core.gwt.xml Wed Jun 24
05:26:07 2009
@@ -20,6 +20,7 @@
<module>
<inherits name="com.google.gwt.dev.jjs.intrinsic.Intrinsic" />
<inherits name="com.google.gwt.emul.Emulation" />
+ <inherits name="com.google.gwt.core.CompilerParameters" />
<define-linker name="std"
class="com.google.gwt.core.linker.IFrameLinker" />
<define-linker name="xs" class="com.google.gwt.core.linker.XSLinker" />
Modified: releases/1.6/user/test/com/google/gwt/emultest/EmulSuite.gwt.xml
==============================================================================
--- releases/1.6/user/test/com/google/gwt/emultest/EmulSuite.gwt.xml
(original)
+++ releases/1.6/user/test/com/google/gwt/emultest/EmulSuite.gwt.xml Wed
Jun 24 05:26:07 2009
@@ -13,7 +13,13 @@
<!-- limitations under the
License. -->
<module>
- <inherits name='com.google.gwt.junit.JUnit'/>
- <inherits name='org.apache.commons.Collections'/>
- <source path='java'/>
+ <inherits name='com.google.gwt.junit.JUnit' />
+ <inherits name='org.apache.commons.Collections' />
+ <source path='java' />
+
+ <!--
+ Specify some tighter compiler settings so that those compiler paths
+ are tested by the normal GWT regression suite
+ -->
+ <set-configuration-property name='compiler.max.vars.per.var' value='10'
/>
</module>
--~--~---------~--~----~------------~-------~--~----~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~----------~----~----~----~------~----~------~--~---