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
-~----------~----~----~----~------~----~------~--~---

Reply via email to