[pkg-java] r13836 - in trunk/yui-compressor/debian: . patches

Damien Raude-Morvan drazzib at alioth.debian.org
Mon Jul 4 21:24:02 UTC 2011


Author: drazzib
Date: 2011-07-04 21:24:02 +0000 (Mon, 04 Jul 2011)
New Revision: 13836

Added:
   trunk/yui-compressor/debian/patches/decompiler.patch
   trunk/yui-compressor/debian/patches/parser.patch
   trunk/yui-compressor/debian/patches/token.patch
   trunk/yui-compressor/debian/patches/tokenstream.patch
Removed:
   trunk/yui-compressor/debian/patches/rhino17R3.diff
   trunk/yui-compressor/debian/patches/tokenstream.patch
Modified:
   trunk/yui-compressor/debian/changelog
   trunk/yui-compressor/debian/fetch-upstream
   trunk/yui-compressor/debian/patches/series
   trunk/yui-compressor/debian/rules
Log:
Re-add some part of embedded Rhino source code:

Modified: trunk/yui-compressor/debian/changelog
===================================================================
--- trunk/yui-compressor/debian/changelog	2011-07-04 14:39:10 UTC (rev 13835)
+++ trunk/yui-compressor/debian/changelog	2011-07-04 21:24:02 UTC (rev 13836)
@@ -1,13 +1,11 @@
-yui-compressor (2.4.6+rhino17R3-1) UNRELEASED; urgency=low
+yui-compressor (2.4.6+rhino17R2-1) unstable; urgency=low
 
-  * Re-add some part of embedded Rhino source code because
-    some code as not been merged into Rhino 1.7R3 release
+  * Re-add some part of embedded Rhino source code:
     (Closes: #630542).
     - d/copyright: Readd copyright notice.
     - d/fetch-upstream: Update script to download rhino source code.
-    - d/patches/tokenstream.patch: Updated for Rhino 1.7R3.
 
- -- Damien Raude-Morvan <drazzib at debian.org>  Mon, 20 Jun 2011 22:29:41 +0200
+ -- Damien Raude-Morvan <drazzib at debian.org>  Mon, 04 Jul 2011 23:23:21 +0200
 
 yui-compressor (2.4.6+debian1-1) unstable; urgency=low
 

Modified: trunk/yui-compressor/debian/fetch-upstream
===================================================================
--- trunk/yui-compressor/debian/fetch-upstream	2011-07-04 14:39:10 UTC (rev 13835)
+++ trunk/yui-compressor/debian/fetch-upstream	2011-07-04 21:24:02 UTC (rev 13836)
@@ -23,12 +23,11 @@
 rm -rf yuicompressor-$version/src/org/mozilla/javascript/*
 
 # download rhino source
-apt-get source rhino=$rhino_version
-rhino_version="$(echo $rhino_version | cut -d - -f 1)"
-#cp rhino-$rhino_version/src/org/mozilla/javascript/Decompiler.java yuicompressor-$version/src/org/mozilla/javascript
-#cp rhino-$rhino_version/src/org/mozilla/javascript/Parser.java yuicompressor-$version/src/org/mozilla/javascript
-#cp rhino-$rhino_version/src/org/mozilla/javascript/Token.java yuicompressor-$version/src/org/mozilla/javascript
-cp rhino-$rhino_version/src/org/mozilla/javascript/TokenStream.java yuicompressor-$version/src/org/mozilla/javascript
+debsnap --verbose rhino $rhino_version
+rhino_tar_version="$(echo $rhino_version | cut -d - -f 1)"
+rhino_dir_version="$(echo $rhino_tar_version | sed "s/\./_/")"
+(cd source-rhino/; tar xvzf rhino_$rhino_tar_version.orig.tar.gz)
+cp -r source-rhino/rhino$rhino_dir_version/src/org/mozilla/javascript/* yuicompressor-$version/src/org/mozilla/javascript
 
 # repack
 mv yuicompressor-$version yui-compressor-$version

Added: trunk/yui-compressor/debian/patches/decompiler.patch
===================================================================
--- trunk/yui-compressor/debian/patches/decompiler.patch	                        (rev 0)
+++ trunk/yui-compressor/debian/patches/decompiler.patch	2011-07-04 21:24:02 UTC (rev 13836)
@@ -0,0 +1,23 @@
+YUI patch for the Rhino library's Decompiler.java
+===================================================================
+--- a/src/org/mozilla/javascript/Decompiler.java.orig	2008-11-14 10:13:36.000000000 -0500
++++ b/src/org/mozilla/javascript/Decompiler.java	2008-11-14 10:13:36.000000000 -0500
+@@ -166,6 +166,18 @@
+         appendString('/' + regexp + '/' + flags);
+     }
+ 
++    void addJScriptConditionalComment(String str)
++    {
++        addToken(Token.CONDCOMMENT);
++        appendString(str);
++    }
++
++    void addPreservedComment(String str)
++    {
++        addToken(Token.KEEPCOMMENT);
++        appendString(str);
++    }
++
+     void addNumber(double n)
+     {
+         addToken(Token.NUMBER);

Added: trunk/yui-compressor/debian/patches/parser.patch
===================================================================
--- trunk/yui-compressor/debian/patches/parser.patch	                        (rev 0)
+++ trunk/yui-compressor/debian/patches/parser.patch	2011-07-04 21:24:02 UTC (rev 13836)
@@ -0,0 +1,37 @@
+YUI patch for the Rhino library's Parser.java
+===================================================================
+--- a/src/org/mozilla/javascript/Parser.java
++++ b/src/org/mozilla/javascript/Parser.java
+@@ -169,11 +169,30 @@
+     {
+         int tt = currentFlaggedToken;
+         if (tt == Token.EOF) {
+-            tt = ts.getToken();
++
++            while ((tt = ts.getToken()) == Token.CONDCOMMENT || tt == Token.KEEPCOMMENT) {
++                if (tt == Token.CONDCOMMENT) {
++                    /* Support for JScript conditional comments */
++                    decompiler.addJScriptConditionalComment(ts.getString());
++                } else {
++                    /* Support for preserved comments */
++                    decompiler.addPreservedComment(ts.getString());
++                }
++            }
++
+             if (tt == Token.EOL) {
+                 do {
+                     tt = ts.getToken();
+-                } while (tt == Token.EOL);
++
++                    if (tt == Token.CONDCOMMENT) {
++                        /* Support for JScript conditional comments */
++                        decompiler.addJScriptConditionalComment(ts.getString());
++                    } else if (tt == Token.KEEPCOMMENT) {
++                        /* Support for preserved comments */
++                        decompiler.addPreservedComment(ts.getString());
++                    }
++
++                } while (tt == Token.EOL || tt == Token.CONDCOMMENT || tt == Token.KEEPCOMMENT);
+                 tt |= TI_AFTER_EOL;
+             }
+             currentFlaggedToken = tt;

Deleted: trunk/yui-compressor/debian/patches/rhino17R3.diff
===================================================================
--- trunk/yui-compressor/debian/patches/rhino17R3.diff	2011-07-04 14:39:10 UTC (rev 13835)
+++ trunk/yui-compressor/debian/patches/rhino17R3.diff	2011-07-04 21:24:02 UTC (rev 13836)
@@ -1,83 +0,0 @@
-Description: Port this parser to new Rhino 1.7R3 AST API.
-Author: Damien Raude-Morvan <drazzib at debian.org>
-Last-Update: 2011-06-12
-Forwarded: https://github.com/yui/yuicompressor/pull/9
---- a/src/com/yahoo/platform/yui/compressor/JavaScriptCompressor.java
-+++ b/src/com/yahoo/platform/yui/compressor/JavaScriptCompressor.java
-@@ -9,6 +9,7 @@
- package com.yahoo.platform.yui.compressor;
- 
- import org.mozilla.javascript.*;
-+import org.mozilla.javascript.ast.*;
- 
- import java.io.IOException;
- import java.io.Reader;
-@@ -309,8 +310,11 @@
- 
-         CompilerEnvirons env = new CompilerEnvirons();
-         Parser parser = new Parser(env, reporter);
--        parser.parse(in, null, 1);
--        String source = parser.getEncodedSource();
-+        AstRoot ast = parser.parse(in, null, 1);
-+        IRFactory irf = new IRFactory(env, reporter);
-+        ScriptNode tree = irf.transformTree(ast);
-+
-+        String source = tree.getEncodedSource();
- 
-         int offset = 0;
-         int length = source.length();
-@@ -321,8 +325,7 @@
-             int tt = source.charAt(offset++);
-             switch (tt) {
- 
--                case Token.CONDCOMMENT:
--                case Token.KEEPCOMMENT:
-+                case Token.COMMENT:
-                 case Token.NAME:
-                 case Token.REGEXP:
-                 case Token.STRING:
-@@ -833,12 +836,14 @@
-                     parensNesting--;
-                     break;
- 
--                case Token.CONDCOMMENT:
-+                case Token.COMMENT:
-+                  //if (token.commentType == Token.CommentType.JSDOC) {
-                     if (mode == BUILDING_SYMBOL_TREE) {
-                         protectScopeFromObfuscation(currentScope);
-                         warn("Using JScript conditional comments is not recommended." + (munge ? " Moreover, using JScript conditional comments reduces the level of compression!" : ""), true);
-                     }
-                     break;
-+		  //}
- 
-                 case Token.NAME:
-                     symbol = token.getValue();
-@@ -986,7 +991,7 @@
-                     parseCatch();
-                     break;
- 
--                case Token.CONDCOMMENT:
-+                case Token.COMMENT:
-                     if (mode == BUILDING_SYMBOL_TREE) {
-                         protectScopeFromObfuscation(scope);
-                         warn("Using JScript conditional comments is not recommended." + (munge ? " Moreover, using JScript conditional comments reduces the level of compression." : ""), true);
-@@ -1276,8 +1281,7 @@
-                     }
-                     break;
- 
--                case Token.CONDCOMMENT:
--                case Token.KEEPCOMMENT:
-+                case Token.COMMENT:
-                     if (result.length() > 0 && result.charAt(result.length() - 1) != '\n') {
-                         result.append("\n");
-                     }
-@@ -1303,8 +1307,7 @@
-         // end of one file may very likely cause a syntax error)
-         if (!preserveAllSemiColons &&
-                 result.length() > 0 &&
--                getToken(-1).getType() != Token.CONDCOMMENT &&
--                getToken(-1).getType() != Token.KEEPCOMMENT) {
-+                getToken(-1).getType() != Token.COMMENT) {
-             if (result.charAt(result.length() - 1) == '\n') {
-                 result.setCharAt(result.length() - 1, ';');
-             } else {

Modified: trunk/yui-compressor/debian/patches/series
===================================================================
--- trunk/yui-compressor/debian/patches/series	2011-07-04 14:39:10 UTC (rev 13835)
+++ trunk/yui-compressor/debian/patches/series	2011-07-04 21:24:02 UTC (rev 13836)
@@ -1,4 +1,6 @@
-rhino17R3.diff
 fix_testsuite.diff
 use-system-libraries.patch
+decompiler.patch
+parser.patch
+token.patch
 tokenstream.patch

Added: trunk/yui-compressor/debian/patches/token.patch
===================================================================
--- trunk/yui-compressor/debian/patches/token.patch	                        (rev 0)
+++ trunk/yui-compressor/debian/patches/token.patch	2011-07-04 21:24:02 UTC (rev 13836)
@@ -0,0 +1,17 @@
+YUI patch for the Rhino library's Token.java
+===================================================================
+--- a/src/org/mozilla/javascript/Token.java.orig	2009-12-25 00:39:07.000000000 -0500
++++ b/src/org/mozilla/javascript/Token.java	2009-12-25 00:39:39.000000000 -0500
+@@ -258,7 +258,11 @@
+         LETEXPR        = 157,
+         WITHEXPR       = 158,
+         DEBUGGER       = 159,
+-        LAST_TOKEN     = 159;
++
++        CONDCOMMENT    = 160,
++        KEEPCOMMENT    = 161,
++
++        LAST_TOKEN     = 162;
+ 
+     public static String name(int token)
+     {

Deleted: trunk/yui-compressor/debian/patches/tokenstream.patch
===================================================================
--- trunk/yui-compressor/debian/patches/tokenstream.patch	2011-07-04 14:39:10 UTC (rev 13835)
+++ trunk/yui-compressor/debian/patches/tokenstream.patch	2011-07-04 21:24:02 UTC (rev 13836)
@@ -1,176 +0,0 @@
-YUI patch for the Rhino library's TokenStream.java
---- a/src/org/mozilla/javascript/TokenStream.java
-+++ b/src/org/mozilla/javascript/TokenStream.java
-@@ -541,7 +541,7 @@
-                 stringBufferTop = 0;
- 
-                 c = getChar();
--            strLoop: while (c != quoteChar) {
-+                while (c != quoteChar) {
-                     if (c == '\n' || c == EOF_CHAR) {
-                         ungetChar(c);
-                         tokenEnd = cursor;
-@@ -551,89 +551,47 @@
- 
-                     if (c == '\\') {
-                         // We've hit an escaped character
--                        int escapeVal;
- 
-                         c = getChar();
-+
-                         switch (c) {
--                        case 'b': c = '\b'; break;
--                        case 'f': c = '\f'; break;
--                        case 'n': c = '\n'; break;
--                        case 'r': c = '\r'; break;
--                        case 't': c = '\t'; break;
--
--                        // \v a late addition to the ECMA spec,
--                        // it is not in Java, so use 0xb
--                        case 'v': c = 0xb; break;
--
--                        case 'u':
--                            // Get 4 hex digits; if the u escape is not
--                            // followed by 4 hex digits, use 'u' + the
--                            // literal character sequence that follows.
--                            int escapeStart = stringBufferTop;
--                            addToString('u');
--                            escapeVal = 0;
--                            for (int i = 0; i != 4; ++i) {
--                                c = getChar();
--                                escapeVal = Kit.xDigitToInt(c, escapeVal);
--                                if (escapeVal < 0) {
--                                    continue strLoop;
--                                }
-+
-+                            case '\\': // backslash
-+                            case 'b':  // backspace
-+                            case 'f':  // form feed
-+                            case 'n':  // line feed
-+                            case 'r':  // carriage return
-+                            case 't':  // horizontal tab
-+                            case 'v':  // vertical tab
-+                            case 'd':  // octal sequence
-+                            case 'u':  // unicode sequence
-+                            case 'x':  // hexadecimal sequence
-+                                // Only keep the '\' character for those
-+                                // characters that need to be escaped...
-+                                // Don't escape quoting characters...
-+                                addToString('\\');
-                                 addToString(c);
--                            }
--                            // prepare for replace of stored 'u' sequence
--                            // by escape value
--                            stringBufferTop = escapeStart;
--                            c = escapeVal;
--                            break;
--                        case 'x':
--                            // Get 2 hex digits, defaulting to 'x'+literal
--                            // sequence, as above.
--                            c = getChar();
--                            escapeVal = Kit.xDigitToInt(c, 0);
--                            if (escapeVal < 0) {
--                                addToString('x');
--                                continue strLoop;
--                            } else {
--                                int c1 = c;
--                                c = getChar();
--                                escapeVal = Kit.xDigitToInt(c, escapeVal);
--                                if (escapeVal < 0) {
--                                    addToString('x');
--                                    addToString(c1);
--                                    continue strLoop;
--                                } else {
--                                    // got 2 hex digits
--                                    c = escapeVal;
--                                }
--                            }
--                            break;
-+                                break;
- 
--                        case '\n':
--                            // Remove line terminator after escape to follow
--                            // SpiderMonkey and C/C++
--                            c = getChar();
--                            continue strLoop;
--
--                        default:
--                            if ('0' <= c && c < '8') {
--                                int val = c - '0';
--                                c = getChar();
--                                if ('0' <= c && c < '8') {
--                                    val = 8 * val + c - '0';
--                                    c = getChar();
--                                    if ('0' <= c && c < '8' && val <= 037) {
--                                        // c is 3rd char of octal sequence only
--                                        // if the resulting val <= 0377
--                                        val = 8 * val + c - '0';
--                                        c = getChar();
--                                    }
-+                            case '\n':
-+                                // Remove line terminator after escape
-+                                break;
-+
-+                            default:
-+                                if (isDigit(c)) {
-+                                    // Octal representation of a character.
-+                                    // Preserve the escaping (see Y! bug #1637286)
-+                                    addToString('\\');
-                                 }
--                                ungetChar(c);
--                                c = val;
--                            }
-+                                addToString(c);
-+                                break;
-                         }
-+
-+                    } else {
-+
-+                        addToString(c);
-                     }
--                    addToString(c);
-+
-                     c = getChar();
-                 }
- 
-@@ -784,6 +742,7 @@
-                 // is it a /* or /** comment?
-                 if (matchChar('*')) {
-                     boolean lookForSlash = false;
-+                    StringBuffer sb = new StringBuffer();
-                     tokenBeg = cursor - 2;
-                     if (matchChar('*')) {
-                         lookForSlash = true;
-@@ -797,12 +756,30 @@
-                             tokenEnd = cursor - 1;
-                             parser.addError("msg.unterminated.comment");
-                             return Token.COMMENT;
--                        } else if (c == '*') {
-+                        }
-+                        sb.append((char) c);
-+                        if (c == '*') {
-                             lookForSlash = true;
-                         } else if (c == '/') {
-                             if (lookForSlash) {
-                                 tokenEnd = cursor;
--                                return Token.COMMENT;
-+                                sb.delete(sb.length()-2, sb.length());
-+                                String s1 = sb.toString();
-+                                String s2 = s1.trim();
-+                                if (s1.startsWith("!")) {
-+                                    // Remove the leading '!' ** EDIT actually don't remove it:
-+                                    // http://yuilibrary.com/projects/yuicompressor/ticket/2528008
-+                                    // this.string = s1.substring(1);
-+                                    this.string = s1;
-+                                    return Token.COMMENT;
-+                                } else if (s2.startsWith("@cc_on") ||
-+                                           s2.startsWith("@if")    ||
-+                                           s2.startsWith("@elif")  ||
-+                                           s2.startsWith("@else")  ||
-+                                           s2.startsWith("@end")) {
-+                                    this.string = s1;
-+                                    return Token.COMMENT;
-+                                }
-                             }
-                         } else {
-                             lookForSlash = false;

Added: trunk/yui-compressor/debian/patches/tokenstream.patch
===================================================================
--- trunk/yui-compressor/debian/patches/tokenstream.patch	                        (rev 0)
+++ trunk/yui-compressor/debian/patches/tokenstream.patch	2011-07-04 21:24:02 UTC (rev 13836)
@@ -0,0 +1,174 @@
+YUI patch for the Rhino library's TokenStream.java
+===================================================================
+--- a/src/org/mozilla/javascript/TokenStream.java
++++ b/src/org/mozilla/javascript/TokenStream.java
+@@ -526,7 +526,7 @@
+                 stringBufferTop = 0;
+ 
+                 c = getChar();
+-            strLoop: while (c != quoteChar) {
++                while (c != quoteChar) {
+                     if (c == '\n' || c == EOF_CHAR) {
+                         ungetChar(c);
+                         parser.addError("msg.unterminated.string.lit");
+@@ -535,89 +535,47 @@
+ 
+                     if (c == '\\') {
+                         // We've hit an escaped character
+-                        int escapeVal;
+ 
+                         c = getChar();
++
+                         switch (c) {
+-                        case 'b': c = '\b'; break;
+-                        case 'f': c = '\f'; break;
+-                        case 'n': c = '\n'; break;
+-                        case 'r': c = '\r'; break;
+-                        case 't': c = '\t'; break;
+-
+-                        // \v a late addition to the ECMA spec,
+-                        // it is not in Java, so use 0xb
+-                        case 'v': c = 0xb; break;
+-
+-                        case 'u':
+-                            // Get 4 hex digits; if the u escape is not
+-                            // followed by 4 hex digits, use 'u' + the
+-                            // literal character sequence that follows.
+-                            int escapeStart = stringBufferTop;
+-                            addToString('u');
+-                            escapeVal = 0;
+-                            for (int i = 0; i != 4; ++i) {
+-                                c = getChar();
+-                                escapeVal = Kit.xDigitToInt(c, escapeVal);
+-                                if (escapeVal < 0) {
+-                                    continue strLoop;
+-                                }
++
++                            case '\\': // backslash
++                            case 'b':  // backspace
++                            case 'f':  // form feed
++                            case 'n':  // line feed
++                            case 'r':  // carriage return
++                            case 't':  // horizontal tab
++                            case 'v':  // vertical tab
++                            case 'd':  // octal sequence
++                            case 'u':  // unicode sequence
++                            case 'x':  // hexadecimal sequence
++                                // Only keep the '\' character for those
++                                // characters that need to be escaped...
++                                // Don't escape quoting characters...
++                                addToString('\\');
+                                 addToString(c);
+-                            }
+-                            // prepare for replace of stored 'u' sequence
+-                            // by escape value
+-                            stringBufferTop = escapeStart;
+-                            c = escapeVal;
+-                            break;
+-                        case 'x':
+-                            // Get 2 hex digits, defaulting to 'x'+literal
+-                            // sequence, as above.
+-                            c = getChar();
+-                            escapeVal = Kit.xDigitToInt(c, 0);
+-                            if (escapeVal < 0) {
+-                                addToString('x');
+-                                continue strLoop;
+-                            } else {
+-                                int c1 = c;
+-                                c = getChar();
+-                                escapeVal = Kit.xDigitToInt(c, escapeVal);
+-                                if (escapeVal < 0) {
+-                                    addToString('x');
+-                                    addToString(c1);
+-                                    continue strLoop;
+-                                } else {
+-                                    // got 2 hex digits
+-                                    c = escapeVal;
+-                                }
+-                            }
+-                            break;
++                                break;
+ 
+-                        case '\n':
+-                            // Remove line terminator after escape to follow
+-                            // SpiderMonkey and C/C++
+-                            c = getChar();
+-                            continue strLoop;
+-
+-                        default:
+-                            if ('0' <= c && c < '8') {
+-                                int val = c - '0';
+-                                c = getChar();
+-                                if ('0' <= c && c < '8') {
+-                                    val = 8 * val + c - '0';
+-                                    c = getChar();
+-                                    if ('0' <= c && c < '8' && val <= 037) {
+-                                        // c is 3rd char of octal sequence only
+-                                        // if the resulting val <= 0377
+-                                        val = 8 * val + c - '0';
+-                                        c = getChar();
+-                                    }
++                            case '\n':
++                                // Remove line terminator after escape
++                                break;
++
++                            default:
++                                if (isDigit(c)) {
++                                    // Octal representation of a character.
++                                    // Preserve the escaping (see Y! bug #1637286)
++                                    addToString('\\');
+                                 }
+-                                ungetChar(c);
+-                                c = val;
+-                            }
++                                addToString(c);
++                                break;
+                         }
++
++                    } else {
++
++                        addToString(c);
+                     }
+-                    addToString(c);
++
+                     c = getChar();
+                 }
+ 
+@@ -760,16 +718,35 @@
+                 }
+                 if (matchChar('*')) {
+                     boolean lookForSlash = false;
++                    StringBuffer sb = new StringBuffer();
+                     for (;;) {
+                         c = getChar();
+                         if (c == EOF_CHAR) {
+                             parser.addError("msg.unterminated.comment");
+                             return Token.ERROR;
+-                        } else if (c == '*') {
++                        }
++                        sb.append((char) c);
++                        if (c == '*') {
+                             lookForSlash = true;
+                         } else if (c == '/') {
+                             if (lookForSlash) {
+-                                continue retry;
++                                sb.delete(sb.length()-2, sb.length());
++                                String s1 = sb.toString();
++                                String s2 = s1.trim();
++                                if (s1.startsWith("!")) {
++                                    // Remove the leading '!'
++                                    this.string = s1.substring(1);
++                                    return Token.KEEPCOMMENT;
++                                } else if (s2.startsWith("@cc_on") ||
++                                           s2.startsWith("@if")    ||
++                                           s2.startsWith("@elif")  ||
++                                           s2.startsWith("@else")  ||
++                                           s2.startsWith("@end")) {
++                                    this.string = s1;
++                                    return Token.CONDCOMMENT;
++                                } else {
++                                    continue retry;
++                                }
+                             }
+                         } else {
+                             lookForSlash = false;

Modified: trunk/yui-compressor/debian/rules
===================================================================
--- trunk/yui-compressor/debian/rules	2011-07-04 14:39:10 UTC (rev 13835)
+++ trunk/yui-compressor/debian/rules	2011-07-04 21:24:02 UTC (rev 13836)
@@ -13,7 +13,7 @@
 
 LIBRARY=yui-compressor
 VERSION=2.4.6
-RHINO_VERSION=1.7R3-2
+RHINO_VERSION=1.7R2-4
 
 install/yui-compressor::
 	# Launch tests




More information about the pkg-java-commits mailing list