Author: j...@google.com
Date: Fri Jun 12 16:53:06 2009
New Revision: 5556

Modified:
    branches/snapshot-2009.06.02-r5498/branch-info.txt
     
branches/snapshot-2009.06.02-r5498/dev/core/src/com/google/gwt/core/ext/linker/CompilationResult.java
     
branches/snapshot-2009.06.02-r5498/dev/core/src/com/google/gwt/core/linker/IFrameLinker.java
     
branches/snapshot-2009.06.02-r5498/dev/core/test/com/google/gwt/core/linker/ScriptChunkingTest.java

Log:
Merge trunk r5554 into 6/2 snapshot branch.  This fixes a breaking API  
change
by providing default behavior.

------------------------------------------------------------------------
r5554 | sp...@google.com | 2009-06-12 18:49:54 -0400 (Fri, 12 Jun 2009) | 5  
lines

Allow CompilationResult.getStatementRanges() to return null,
and have it do so by default.

Review by: jat
------------------------------------------------------------------------

svn merge -c5554 https://google-web-toolkit.googlecode.com/svn/trunk .


Modified: branches/snapshot-2009.06.02-r5498/branch-info.txt
==============================================================================
--- branches/snapshot-2009.06.02-r5498/branch-info.txt  (original)
+++ branches/snapshot-2009.06.02-r5498/branch-info.txt  Fri Jun 12 16:53:06  
2009
@@ -26,3 +26,5 @@
     svn merge -c5532 https://google-web-toolkit.googlecode.com/svn/trunk .
  /trunk 5538 was merged into this branch (final(?) fix from 5523)
     svn merge -c5538 https://google-web-toolkit.googlecode.com/svn/trunk .
+/trunk 5554 was merged into this branch (fix breaking API change)
+   svn merge -c5554 https://google-web-toolkit.googlecode.com/svn/trunk .

Modified:  
branches/snapshot-2009.06.02-r5498/dev/core/src/com/google/gwt/core/ext/linker/CompilationResult.java
==============================================================================
---  
branches/snapshot-2009.06.02-r5498/dev/core/src/com/google/gwt/core/ext/linker/CompilationResult.java
    
(original)
+++  
branches/snapshot-2009.06.02-r5498/dev/core/src/com/google/gwt/core/ext/linker/CompilationResult.java
    
Fri Jun 12 16:53:06 2009
@@ -51,9 +51,12 @@

    /**
     * Returns the statement ranges for the JavaScript returned by
-   * {...@link #getJavaScript()}.
+   * {...@link #getJavaScript()}. Some subclasses return <code>null</code>, in
+   * which case there is no statement range information available.
     */
-  public abstract StatementRanges[] getStatementRanges();
+  public StatementRanges[] getStatementRanges() {
+    return null;
+  }

    /**
     * Return a string that uniquely identifies this compilation result.  
Typically

Modified:  
branches/snapshot-2009.06.02-r5498/dev/core/src/com/google/gwt/core/linker/IFrameLinker.java
==============================================================================
---  
branches/snapshot-2009.06.02-r5498/dev/core/src/com/google/gwt/core/linker/IFrameLinker.java
     
(original)
+++  
branches/snapshot-2009.06.02-r5498/dev/core/src/com/google/gwt/core/linker/IFrameLinker.java
     
Fri Jun 12 16:53:06 2009
@@ -58,10 +58,16 @@
     * Split a JavaScript string into multiple chunks, at statement  
boundaries.
     * Insert and end-script tag and a start-script tag in between each  
chunk.
     * This method is made default access for testing.
+   *
+   * @param ranges Describes where the statements are located within the
+   *          JavaScript code. If <code>null</code>, then return  
<code>js</code>
+   *          unchanged.
+   * @param js The JavaScript code to be split up.
+   * @param charsPerChunk The number of characters to be put in each  
script tag
     */
    static String splitPrimaryJavaScript(StatementRanges ranges, String js,
        int charsPerChunk) {
-    if (charsPerChunk < 0) {
+    if (charsPerChunk < 0 || ranges == null) {
        return js;
      }

@@ -72,8 +78,7 @@
        int start = ranges.start(i);
        int end = ranges.end(i);
        int length = end - start;
-      if (bytesInCurrentTag > 0
-          && bytesInCurrentTag + length > charsPerChunk) {
+      if (bytesInCurrentTag > 0 && bytesInCurrentTag + length >  
charsPerChunk) {
          if (lastChar(sb) != '\n') {
            sb.append('\n');
          }

Modified:  
branches/snapshot-2009.06.02-r5498/dev/core/test/com/google/gwt/core/linker/ScriptChunkingTest.java
==============================================================================
---  
branches/snapshot-2009.06.02-r5498/dev/core/test/com/google/gwt/core/linker/ScriptChunkingTest.java
      
(original)
+++  
branches/snapshot-2009.06.02-r5498/dev/core/test/com/google/gwt/core/linker/ScriptChunkingTest.java
      
Fri Jun 12 16:53:06 2009
@@ -118,4 +118,23 @@
          builder.getJavaScript(), -1);
      assertEquals(builder.getJavaScript(), split);
    }
+
+  /**
+   * Test with statement ranges not present, which should disable the  
chunking.
+   */
+  public void testNullStatementRanges() {
+    ScriptWithRangesBuilder builder = new ScriptWithRangesBuilder();
+    builder.addNonStatement("{");
+    builder.addNonStatement("{");
+    builder.addStatement("x=1;");
+    builder.addStatement("function x(){x = 2}\n");
+    builder.addStatement("x=3");
+    builder.addNonStatement("}\n{");
+    builder.addStatement("x=5");
+    builder.addNonStatement("}");
+
+    String split = IFrameLinker.splitPrimaryJavaScript(null,
+        builder.getJavaScript(), 5);
+    assertEquals(builder.getJavaScript(), split);
+  }
  }

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

Reply via email to