r70281 - in /trunk/libjavascript-packer-perl: ./ debian/ inc/ lib/JavaScript/ t/ t/scripts/

jawnsy-guest at users.alioth.debian.org jawnsy-guest at users.alioth.debian.org
Thu Mar 3 04:21:43 UTC 2011


Author: jawnsy-guest
Date: Thu Mar  3 04:21:29 2011
New Revision: 70281

URL: http://svn.debian.org/wsvn/pkg-perl/?sc=1&rev=70281
Log:
* New upstream release
* Bump debhelper compat to 8
* Update copyright information
* Update version mangle (no longer show development versions,
  and match new version format)

Added:
    trunk/libjavascript-packer-perl/inc/
      - copied from r70279, branches/upstream/libjavascript-packer-perl/current/inc/
    trunk/libjavascript-packer-perl/t/scripts/s10-expected.js
      - copied unchanged from r70279, branches/upstream/libjavascript-packer-perl/current/t/scripts/s10-expected.js
    trunk/libjavascript-packer-perl/t/scripts/s10.js
      - copied unchanged from r70279, branches/upstream/libjavascript-packer-perl/current/t/scripts/s10.js
    trunk/libjavascript-packer-perl/t/scripts/s7-expected.js
      - copied unchanged from r70279, branches/upstream/libjavascript-packer-perl/current/t/scripts/s7-expected.js
    trunk/libjavascript-packer-perl/t/scripts/s7.js
      - copied unchanged from r70279, branches/upstream/libjavascript-packer-perl/current/t/scripts/s7.js
    trunk/libjavascript-packer-perl/t/scripts/s8-expected.js
      - copied unchanged from r70279, branches/upstream/libjavascript-packer-perl/current/t/scripts/s8-expected.js
    trunk/libjavascript-packer-perl/t/scripts/s8.js
      - copied unchanged from r70279, branches/upstream/libjavascript-packer-perl/current/t/scripts/s8.js
    trunk/libjavascript-packer-perl/t/scripts/s9-expected.js
      - copied unchanged from r70279, branches/upstream/libjavascript-packer-perl/current/t/scripts/s9-expected.js
    trunk/libjavascript-packer-perl/t/scripts/s9.js
      - copied unchanged from r70279, branches/upstream/libjavascript-packer-perl/current/t/scripts/s9.js
Removed:
    trunk/libjavascript-packer-perl/META.yml
Modified:
    trunk/libjavascript-packer-perl/.cvsignore
    trunk/libjavascript-packer-perl/.gitignore
    trunk/libjavascript-packer-perl/Changes
    trunk/libjavascript-packer-perl/MANIFEST
    trunk/libjavascript-packer-perl/Makefile.PL
    trunk/libjavascript-packer-perl/README
    trunk/libjavascript-packer-perl/debian/changelog
    trunk/libjavascript-packer-perl/debian/compat
    trunk/libjavascript-packer-perl/debian/control
    trunk/libjavascript-packer-perl/debian/copyright
    trunk/libjavascript-packer-perl/debian/watch
    trunk/libjavascript-packer-perl/lib/JavaScript/Packer.pm
    trunk/libjavascript-packer-perl/t/01-io.t
    trunk/libjavascript-packer-perl/t/scripts/s2-expected.js
    trunk/libjavascript-packer-perl/t/scripts/s3-expected.js
    trunk/libjavascript-packer-perl/t/scripts/s4-expected.js
    trunk/libjavascript-packer-perl/t/scripts/s5-expected.js

Modified: trunk/libjavascript-packer-perl/.cvsignore
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libjavascript-packer-perl/.cvsignore?rev=70281&op=diff
==============================================================================
--- trunk/libjavascript-packer-perl/.cvsignore (original)
+++ trunk/libjavascript-packer-perl/.cvsignore Thu Mar  3 04:21:29 2011
@@ -1,10 +1,15 @@
-blib*
-Makefile
-Makefile.old
-Build
-_build*
-pm_to_blib*
-*.tar.gz
-JavaScript-Packer-*
-t/scripts/*-got.js
+/blib*
+/Makefile
+/Makefile.old
+/Makefile.bak
+/MANIFEST.bak
+/META.yml
+/MYMETA.yml
+/Build
+/_build*
+/pm_to_blib*
+/*.tar.gz
+/JavaScript-Packer-*
+/t/scripts/*-got.js
+/inc
 .DS_Store

Modified: trunk/libjavascript-packer-perl/.gitignore
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libjavascript-packer-perl/.gitignore?rev=70281&op=diff
==============================================================================
--- trunk/libjavascript-packer-perl/.gitignore (original)
+++ trunk/libjavascript-packer-perl/.gitignore Thu Mar  3 04:21:29 2011
@@ -1,10 +1,15 @@
-blib*
-Makefile
-Makefile.old
-Build
-_build*
-pm_to_blib*
-*.tar.gz
-JavaScript-Packer-*
-t/scripts/*-got.js
+/blib*
+/Makefile
+/Makefile.old
+/Makefile.bak
+/MANIFEST.bak
+/META.yml
+/MYMETA.yml
+/Build
+/_build*
+/pm_to_blib*
+/*.tar.gz
+/JavaScript-Packer-*
+/t/scripts/*-got.js
+/inc
 .DS_Store

Modified: trunk/libjavascript-packer-perl/Changes
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libjavascript-packer-perl/Changes?rev=70281&op=diff
==============================================================================
--- trunk/libjavascript-packer-perl/Changes (original)
+++ trunk/libjavascript-packer-perl/Changes Thu Mar  3 04:21:29 2011
@@ -1,7 +1,53 @@
 Revision history for JavaScript-Packer
 
-0.05_02 2010-08-06
-    - Moved regexp grouping stuff to Regexp::RegGrp
+1.002001    2011-03-01
+    - Changed requirements to Regexp::RegGrp 1.000001 due to "undefined submatches bug" in Regexp::RegGrp.
+
+1.002   2011-01-28
+    - Bugfix: Added missing testfile.
+
+1.001   2011-01-27
+    - Bugfix: Removed restore pattern.
+    - Added test.
+
+1.000   2011-01-17
+    - Changed versioning.
+    - Raised major version due to changes in versioning.
+    - Changed requirements to Regexp::RegGrp 1.000 due to changes in versioning.
+
+0.0601  2011-01-05
+    - Changed requirements to Regexp::RegGrp 0.04
+
+0.06    2010-12-03
+    - Raised version number.
+
+0.05_08 2010-10-05
+    - Removed the ridiculous missing semicolon fix.
+    - Changed required perl version to 5.8.9.
+
+0.05_07 2010-09-28
+    - Bugfix: Fixed Regexp.
+
+0.05_06 2010-09-28
+    - Bugfix: Fixed Regexp.
+
+0.05_05 2010-09-28
+    - Added handling for missing semicolons. THIS WILL BE REMOVED IN FUTURE VERSIONS.
+    - Added handling for functions as arguments.
+    - Added remove_copyright option.
+    - Added copyright comment option.
+    - Added tests.
+
+0.05_04 2010-09-22
+    - Added option to define compression level via comment.
+    - Added tests.
+
+0.05_03 2010-09-13
+    - Changed requirements to Regexp::RegGrp 0.0201.
+
+0.05_02 2010-09-07
+    - Moved regexp grouping stuff to Regexp::RegGrp.
+    - Switched to Module::Install.
 
 0.0402  2010-07-29
     - Bugfix: Removed match variable from _process_minify()

Modified: trunk/libjavascript-packer-perl/MANIFEST
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libjavascript-packer-perl/MANIFEST?rev=70281&op=diff
==============================================================================
--- trunk/libjavascript-packer-perl/MANIFEST (original)
+++ trunk/libjavascript-packer-perl/MANIFEST Thu Mar  3 04:21:29 2011
@@ -1,6 +1,17 @@
 .cvsignore
 .gitignore
 Changes
+inc/Module/AutoInstall.pm
+inc/Module/Install.pm
+inc/Module/Install/AutoInstall.pm
+inc/Module/Install/Base.pm
+inc/Module/Install/Can.pm
+inc/Module/Install/Fetch.pm
+inc/Module/Install/Include.pm
+inc/Module/Install/Makefile.pm
+inc/Module/Install/Metadata.pm
+inc/Module/Install/Win32.pm
+inc/Module/Install/WriteAll.pm
 lib/JavaScript/Packer.pm
 Makefile.PL
 MANIFEST
@@ -18,4 +29,11 @@
 t/scripts/s4.js
 t/scripts/s5-expected.js
 t/scripts/s5.js
-META.yml                                 Module meta-data (added by MakeMaker)
+t/scripts/s7-expected.js
+t/scripts/s7.js
+t/scripts/s8-expected.js
+t/scripts/s8.js
+t/scripts/s9-expected.js
+t/scripts/s9.js
+t/scripts/s10-expected.js
+t/scripts/s10.js

Modified: trunk/libjavascript-packer-perl/Makefile.PL
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libjavascript-packer-perl/Makefile.PL?rev=70281&op=diff
==============================================================================
--- trunk/libjavascript-packer-perl/Makefile.PL (original)
+++ trunk/libjavascript-packer-perl/Makefile.PL Thu Mar  3 04:21:29 2011
@@ -1,33 +1,15 @@
-use 5.008;
 use strict;
 use warnings;
-use ExtUtils::MakeMaker;
 
-WriteMakefile(
-    'NAME'          => 'JavaScript::Packer',
-    'AUTHOR'        => 'Merten Falk <nevesenin at cpan.org>',
-    'VERSION_FROM'  => 'lib/JavaScript/Packer.pm',
-    'ABSTRACT_FROM' => 'lib/JavaScript/Packer.pm',
-    (
-        $ExtUtils::MakeMaker::VERSION >= 6.3002
-        ? ('LICENSE'=> 'perl')
-        : ()
-    ),
-    'PL_FILES'          => {},
-    'PREREQ_PM'         => {
-        'Test::More'        => 0,
-        'Regexp::RegGrp'    => 0
-    },
-    'META_MERGE'        => {
-        'resources'     => {
-            'repository'    => 'http://github.com/nevesenin/javascript-packer-perl'
-        }
-    },
-    'dist'  => {
-        'COMPRESS'  => 'gzip -9f',
-        'SUFFIX' => 'gz'
-    },
-    'clean' => {
-        'FILES' => 'JavaScript-Packer-*'
-    },
-);
+use inc::Module::Install;
+
+all_from        'lib/JavaScript/Packer.pm';
+test_requires   'Test::More'        => 0;
+requires        'Regexp::RegGrp'    => "1.000001";
+
+repository 'http://github.com/nevesenin/javascript-packer-perl';
+
+clean_files 't/scripts/s*-got.js';
+
+auto_install();
+WriteAll();

Modified: trunk/libjavascript-packer-perl/README
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libjavascript-packer-perl/README?rev=70281&op=diff
==============================================================================
--- trunk/libjavascript-packer-perl/README (original)
+++ trunk/libjavascript-packer-perl/README Thu Mar  3 04:21:29 2011
@@ -1,16 +1,4 @@
 JavaScript-Packer
-
-The README is used to introduce the module and provide instructions on
-how to install the module, any machine dependencies it may have (for
-example C compilers and installed libraries) and any other information
-that should be provided before the module is installed.
-
-A README file is required for CPAN modules since CPAN extracts the README
-file from a module distribution so that people browsing the archive
-can use it to get an idea of the module's uses. It is usually a good idea
-to provide version information here so that people can decide whether
-fixes for the module are worth downloading.
-
 
 INSTALLATION
 
@@ -45,7 +33,7 @@
 
 COPYRIGHT AND LICENCE
 
-Copyright (C) 2008 - 2010 Merten Falk
+Copyright (C) 2008 - 2011 Merten Falk
 
 This program is free software; you can redistribute it and/or modify it
 under the same terms as Perl itself.

Modified: trunk/libjavascript-packer-perl/debian/changelog
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libjavascript-packer-perl/debian/changelog?rev=70281&op=diff
==============================================================================
--- trunk/libjavascript-packer-perl/debian/changelog (original)
+++ trunk/libjavascript-packer-perl/debian/changelog Thu Mar  3 04:21:29 2011
@@ -1,9 +1,15 @@
-libjavascript-packer-perl (0.05.01-1) UNRELEASED; urgency=low
+libjavascript-packer-perl (1.002001-1) UNRELEASED; urgency=low
+
+  WAITS FOR: libregexp-reggrp-perl
+
+  [ Jonathan Yu ]
+  * New upstream release
+  * Bump debhelper compat to 8
+  * Update copyright information
+  * Update version mangle (no longer show development versions,
+    and match new version format)
 
   [ Nicholas Bamber ]
-  WAITS FOR: libregexp-reggrp-perl
-
-  * debian/watch: Add more versionmangle clauses so 0.05_01 -> 0.05.01
   * Added myself to uploaders
   * New upstream release
   * Upped standards version to 3.9.1
@@ -12,7 +18,7 @@
   [ Ansgar Burchardt ]
   * Update my email address.
 
- -- Nicholas Bamber <nicholas at periapt.co.uk>  Mon, 06 Sep 2010 16:02:45 +0100
+ -- Jonathan Yu <jawnsy at cpan.org>  Wed, 02 Mar 2011 23:34:50 -0500
 
 libjavascript-packer-perl (0.04.01-1) unstable; urgency=low
 

Modified: trunk/libjavascript-packer-perl/debian/compat
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libjavascript-packer-perl/debian/compat?rev=70281&op=diff
==============================================================================
--- trunk/libjavascript-packer-perl/debian/compat (original)
+++ trunk/libjavascript-packer-perl/debian/compat Thu Mar  3 04:21:29 2011
@@ -1,1 +1,1 @@
-7
+8

Modified: trunk/libjavascript-packer-perl/debian/control
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libjavascript-packer-perl/debian/control?rev=70281&op=diff
==============================================================================
--- trunk/libjavascript-packer-perl/debian/control (original)
+++ trunk/libjavascript-packer-perl/debian/control Thu Mar  3 04:21:29 2011
@@ -1,8 +1,9 @@
 Source: libjavascript-packer-perl
 Section: perl
 Priority: optional
-Build-Depends: debhelper (>= 7)
-Build-Depends-Indep: perl, libtest-pod-perl
+Build-Depends: debhelper (>= 8)
+Build-Depends-Indep: perl,
+ libtest-pod-perl
 Maintainer: Debian Perl Group <pkg-perl-maintainers at lists.alioth.debian.org>
 Uploaders: Ernesto Hernández-Novich (USB) <emhn at usb.ve>,
  Jonathan Yu <jawnsy at cpan.org>, Ansgar Burchardt <ansgar at debian.org>,

Modified: trunk/libjavascript-packer-perl/debian/copyright
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libjavascript-packer-perl/debian/copyright?rev=70281&op=diff
==============================================================================
--- trunk/libjavascript-packer-perl/debian/copyright (original)
+++ trunk/libjavascript-packer-perl/debian/copyright Thu Mar  3 04:21:29 2011
@@ -4,13 +4,19 @@
 Name: JavaScript-Packer
 
 Files: *
-Copyright: 2010, Merten Falk <nevesenin at cpan.org>
+Copyright: 2008-2011, Merten Falk <nevesenin at cpan.org>
+License: Artistic or GPL-1+
+
+Files: inc/Module/*
+Copyright: 2002-2010, Adam Kennedy <adamk at cpan.org>
+ 2002-2010, Audrey Tang <autrijus at autrijus.org>
+ 2002-2010, Brian Ingerson <ingy at cpan.org>
 License: Artistic or GPL-1+
 
 Files: debian/*
 Copyright: 2009, Ernesto Hernández-Novich (USB) <emhn at usb.ve>
  2010, Ansgar Burchardt <ansgar at debian.org>
- 2010, Jonathan Yu <jawnsy at cpan.org>
+ 2010-2011, Jonathan Yu <jawnsy at cpan.org>
  2010, Nicholas Bamber <nicholas at periapt.co.uk>
 License: Artistic or GPL-1+
 
@@ -18,8 +24,8 @@
  This program is free software; you can redistribute it and/or modify
  it under the terms of the Artistic License, which comes with Perl.
  .
- On Debian GNU/Linux systems, the complete text of the Artistic License
- can be found in `/usr/share/common-licenses/Artistic'.
+ On Debian systems, the complete text of the Artistic License can be
+ found in `/usr/share/common-licenses/Artistic'.
 
 License: GPL-1+
  This program is free software; you can redistribute it and/or modify
@@ -27,5 +33,5 @@
  the Free Software Foundation; either version 1, or (at your option)
  any later version.
  .
- On Debian GNU/Linux systems, the complete text of version 1 of the
- General Public License can be found in `/usr/share/common-licenses/GPL-1'.
+ On Debian systems, the complete text of version 1 of the GNU General
+ Public License can be found in `/usr/share/common-licenses/GPL-1'.

Modified: trunk/libjavascript-packer-perl/debian/watch
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libjavascript-packer-perl/debian/watch?rev=70281&op=diff
==============================================================================
--- trunk/libjavascript-packer-perl/debian/watch (original)
+++ trunk/libjavascript-packer-perl/debian/watch Thu Mar  3 04:21:29 2011
@@ -1,3 +1,4 @@
 version=3
-opts=uversionmangle=s/\.(\d\d)$/.$1.00/;s/\.(\d\d)_(\d+)/.$1.$2/;s/\.(\d\d)(\d+)/.$1.$2/ \
-http://search.cpan.org/dist/JavaScript-Packer/   .*/JavaScript-Packer-v?(\d[\d.-_]+)\.(?:tar(?:\.gz|\.bz2)?|tgz|zip)$
+opts="uversionmangle=s/\.\d\d\d\d$/$&00/;s/\.\d\d\d$/$&000/;s/\.\d\d$/$&0000/" \
+	http://search.cpan.org/dist/JavaScript-Packer/ \
+	.*/JavaScript-Packer-v?(\d[\d.-]+)\.(?:tar(?:\.gz|\.bz2)?|tgz|zip)$

Modified: trunk/libjavascript-packer-perl/lib/JavaScript/Packer.pm
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libjavascript-packer-perl/lib/JavaScript/Packer.pm?rev=70281&op=diff
==============================================================================
--- trunk/libjavascript-packer-perl/lib/JavaScript/Packer.pm (original)
+++ trunk/libjavascript-packer-perl/lib/JavaScript/Packer.pm Thu Mar  3 04:21:29 2011
@@ -1,6 +1,6 @@
 package JavaScript::Packer;
 
-use 5.008;
+use 5.008009;
 use warnings;
 use strict;
 use Carp;
@@ -8,17 +8,19 @@
 
 # =========================================================================== #
 
-our $VERSION = '0.05_01';
+our $VERSION = '1.002001';
+
+our $PACKER_COMMENT     = '\/\*\s*JavaScript::Packer\s*(\w+)\s*\*\/';
+our $COPYRIGHT_COMMENT  = '(\/\*(?>[^\*]|\*[^\/])*copyright(?>[^\*]|\*[^\/])*\*\/)';
 
 our $SHRINK_VARS = {
-    ENCODED_DATA    => qr~\x01(\d+)\x01~,
-    BLOCK           => qr/(((catch|do|if|while|with|function)\b[^~{};]*(\(\s*[^{};]*\s*\))\s*)?(\{[^{}]*\}))/,
+    BLOCK           => qr/(((catch|do|if|while|with|function)\b[^~{};]*(\(\s*[^{};]*\s*\))\s*)?(\{[^{}]*\}))/,  # function ( arg ) { ... }
+    ENCODED_BLOCK   => qr/~#?(\d+)~/,
+    CALLER          => qr/((?>[a-zA-Z0-9_\x24\.]+)\s*\([^\(\)]*\))(?=[,\)])/,                                   # do_something( arg1, arg2 ) as argument of another function call
     BRACKETS        => qr/\{[^{}]*\}|\[[^\[\]]*\]|\([^\(\)]*\)|~[^~]+~/,
-    ENCODED_BLOCK   => qr/~#?(\d+)~/,
     IDENTIFIER      => qr~[a-zA-Z_\x24][a-zA-Z_0-9\\x24]*~,
     SCOPED          => qr/~#(\d+)~/,
-    VAR             => qr~\bvar\b~,
-    VARS            => qr~\b(?:var|function)\s+((?>[a-zA-Z0-9_\x24]+))~,
+    VARS            => qr~\b(?:var|function)\s+((?>[a-zA-Z0-9_\x24]+))~,                                        # var x, funktion blah
     PREFIX          => qr~\x02~,
     SHRUNK          => qr~\x02\d+\b~
 };
@@ -302,14 +304,9 @@
 
     map {
         $self->{$_}->{reggrp} = Regexp::RegGrp->new( { reggrp => $self->{$_}->{reggrp_data} } );
-    } ( 'comments', 'clean', 'whitespace', 'data_store', 'concat', 'trim' );
-
-    $self->{data_store}->{reggrp} = Regexp::RegGrp->new(
-        {
-            reggrp          => $self->{data_store}->{reggrp_data},
-            restore_pattern => $SHRINK_VARS->{ENCODED_DATA}
-        }
-    );
+    } ( 'comments', 'clean', 'whitespace', 'concat', 'trim' );
+
+    $self->{data_store}->{reggrp} = Regexp::RegGrp->new( { reggrp => $self->{data_store}->{reggrp_data} } );
 
     $self->{block_data} = [];
 
@@ -355,7 +352,7 @@
 
     if ( ref( $opts ) ne 'HASH' ) {
         carp( 'Second argument must be a hashref of options! Using defaults!' ) if ( $opts );
-        $opts = { compress => 'clean', copyright => '' };
+        $opts = { compress => 'clean', copyright => '', no_compress_comment => 0, remove_copyright => 0 };
     }
     else {
         $opts->{compress} ||= 'clean';
@@ -375,12 +372,27 @@
             $opts->{compress} = 'obfuscate';
         }
 
-        $opts->{copyright}    = ( $opts->{copyright} and $opts->{compress} eq 'clean' ) ? ( '/* ' . $opts->{copyright} . ' */' ) : '';
+        $opts->{remove_copyright}       = $opts->{remove_copyright} ? 1 : 0;
+        $opts->{no_compress_comment}    = $opts->{no_compress_comment} ? 1 : 0;
+        $opts->{copyright}              = '' if ( ref( $opts->{copyright} ) );
+        $opts->{copyright}              = ( $opts->{copyright} and $opts->{compress} eq 'clean' ) ? ( '/* ' . $opts->{copyright} . ' */' ) : '';
+    }
+
+    if ( not $opts->{remove_copyright} and not $opts->{copyright} and ${$javascript} =~ /$COPYRIGHT_COMMENT/ism ) {
+        $opts->{copyright} = $1;
+    }
+
+    if ( not $opts->{no_compress_comment} and ${$javascript} =~ /$PACKER_COMMENT/ ) {
+        my $compress = $1;
+        if ( $compress eq '_no_compress_' ) {
+            return ( $cont eq 'scalar' ) ? ${$javascript} : undef;
+        }
+
+        $opts->{compress} = grep( $compress, ( 'clean', 'shrink', 'obfuscate', 'best' ) ) ? $compress : $opts->{compress};
     }
 
     ${$javascript} =~ s/\r//gsm;
     ${$javascript} .= "\n";
-
 
     $self->{comments}->{reggrp}->exec( $javascript );
     $self->{clean}->{reggrp}->exec( $javascript );
@@ -391,10 +403,10 @@
         $self->{data_store}->{reggrp}->exec( $javascript );
 
         while( ${$javascript} =~ /$SHRINK_VARS->{BLOCK}/ ) {
-            ${$javascript} =~ s/$SHRINK_VARS->{BLOCK}/$self->_encode_shrink( $1 )/egsm;
-        }
-
-        $self->_decode_shrink( $javascript, 'block_data', $SHRINK_VARS->{ENCODED_BLOCK} );
+            ${$javascript} =~ s/$SHRINK_VARS->{BLOCK}/$self->_store_block_data( $1 )/egsm;
+        }
+
+        $self->_restore_data( $javascript, 'block_data', $SHRINK_VARS->{ENCODED_BLOCK} );
 
         my %shrunk_vars = map { $_ => 1 } ( ${$javascript} =~ /$SHRINK_VARS->{SHRUNK}/g );
 
@@ -414,10 +426,6 @@
 
         $self->{block_data} = [];
     }
-    else {
-        ${$javascript} = $opts->{copyright} . ${$javascript} if ( $opts->{copyright} );
-    }
-
 
     if ( $opts->{compress} eq 'obfuscate' or $opts->{compress} eq 'best' ) {
         my $words = {};
@@ -594,6 +602,8 @@
 
     }
 
+    ${$javascript} = $opts->{copyright} . "\n" . ${$javascript} if ( $opts->{copyright} );
+
     return ${$javascript} if ( $cont eq 'scalar' );
 }
 
@@ -603,15 +613,15 @@
     $self->{$reg_name}->{reggrp}->exec( $in );
 }
 
-sub _decode_shrink {
+sub _restore_data {
     my ( $self, $string_ref, $data_name, $pattern ) = @_;
 
     while ( ${$string_ref} =~ /$pattern/ ) {
         ${$string_ref} =~ s/$pattern/$self->{$data_name}->[$1]/egsm;
     }
-};
-
-sub _encode_shrink {
+}
+
+sub _store_block_data {
     my ( $self, $match ) = @_;
 
     my ( undef, $prefix, $blocktype, $args, $block ) = $match =~ /$SHRINK_VARS->{BLOCK}/;
@@ -622,7 +632,7 @@
     my $replacement = '';
     if ( $blocktype eq 'function' ) {
 
-        $self->_decode_shrink( \$block, 'block_data', $SHRINK_VARS->{SCOPED} );
+        $self->_restore_data( \$block, 'block_data', $SHRINK_VARS->{SCOPED} );
 
         $args =~ s/\s*//g;
 
@@ -631,21 +641,25 @@
 
         $args =~ s/^\(|\)$//g;
 
+        while( $args =~ /$SHRINK_VARS->{CALLER}/ ) {
+            $args =~ s/$SHRINK_VARS->{CALLER}//gsm;
+        }
+
+        my @vars = grep( $_, split( /\s*,\s*/, $args ) );
+        my $do_shrink = grep( $_ eq '_no_shrink_', @vars ) ? 0 : 1;
+
         my %block_vars = ();
-        my $do_shrink = grep( $_ eq '_no_shrink_', split( /\s*,\s*/, $args ) ) ? 0 : 1;
-
         if ( $do_shrink ) {
-            %block_vars = map { $_ => 1 } ( $block =~ /$SHRINK_VARS->{VARS}/g ), grep( $_ ne '$super', split( /\s*,\s*/, $args ) );
-        }
-
-        $self->_decode_shrink( \$block, 'block_data', $SHRINK_VARS->{ENCODED_BLOCK} );
+            %block_vars = map { $_ => 1 } ( $block =~ /$SHRINK_VARS->{VARS}/g ), grep( $_ ne '$super', @vars );
+        }
+
+        $self->_restore_data( \$block, 'block_data', $SHRINK_VARS->{ENCODED_BLOCK} );
 
         if ( $do_shrink ) {
 
             my $cnt = 0;
             foreach my $block_var ( keys( %block_vars ) ) {
                 if ( length( $block_var ) ) {
-                    my $pattern = sprintf( "%s%d", $SHRINK_VARS->{PREFIX}, $cnt );
                     while ( $block =~ /$SHRINK_VARS->{PREFIX}\Q$cnt\E\b/ ) {
                         $cnt++;
                     }
@@ -714,7 +728,7 @@
 
 =head1 VERSION
 
-Version 0.05_01
+Version 1.002001
 
 =head1 DESCRIPTION
 
@@ -759,8 +773,25 @@
 
 =item copyright
 
-You can add a copyright notice on top of the script. The copyright notice will
-only be added if the compression value is 'clean'.
+You can add a copyright notice on top of the script.
+
+=item remove_copyright
+
+If there is a copyright notice in a comment it will only be removed if this
+option is set to a true value. Otherwise the first comment that contains the
+word "copyright" will be added at the top of the packed script. A copyright
+comment will be overwritten by a copyright notice defined with the copyright
+option.
+
+=item no_compress_comment
+
+If not set to a true value it is allowed to set a JavaScript comment that
+prevents the input being packed or defines a compression level.
+
+    /* JavaScript::Packer _no_compress_ */
+    /* JavaScript::Packer shrink */
+
+Is set by default.
 
 =back
 
@@ -837,7 +868,7 @@
 
 =head1 COPYRIGHT & LICENSE
 
-Copyright 2008-2010 Merten Falk, all rights reserved.
+Copyright 2008 - 2011 Merten Falk, all rights reserved.
 
 This program is free software; you can redistribute it and/or modify it under
 the same terms as Perl itself.

Modified: trunk/libjavascript-packer-perl/t/01-io.t
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libjavascript-packer-perl/t/01-io.t?rev=70281&op=diff
==============================================================================
--- trunk/libjavascript-packer-perl/t/01-io.t (original)
+++ trunk/libjavascript-packer-perl/t/01-io.t Thu Mar  3 04:21:29 2011
@@ -8,7 +8,7 @@
 
 use Test::More;
 
-my $not = 8;
+my $not = 16;
 
 SKIP: {
     eval( 'use JavaScript::Packer' );
@@ -22,18 +22,41 @@
     fileTest( 's3', 'obfuscate', 'compression level "obfuscate"' );
     fileTest( 's4', 'best', 'compression level "best" whith short javascript' );
     fileTest( 's5', 'best', 'compression level "best" whith long javascript' );
+    fileTest( 's7', 'clean', 'compression level "clean" function as argument' );
+    fileTest( 's8', 'shrink', 'compression level "shrink" function as argument' );
+    fileTest( 's9', 'shrink', 'compression level "shrink" with _no_shrink_ argument' );
+    fileTest( 's10', 'shrink', 'compression level "shrink" with qouted args' );
 
     my $packer = JavaScript::Packer->init();
 
     my $var = 'var x = 2;';
     $packer->minify( \$var );
     is( $var, 'var x=2;', 'string literal input and ouput' );
+
     $var = "var x = 2;\n;;;alert('hi');\nvar x = 2;";
     $packer->minify( \$var );
     is( $var, 'var x=2;var x=2;', 'scriptDebug option' );
+
     $var = "var x = 2;";
     $packer->minify( \$var, { copyright => 'BSD' } );
-    is( $var, '/* BSD */var x=2;', 'copyright option');
+    is( $var, '/* BSD */' . "\n" . 'var x=2;', 'copyright option');
+
+    $var = "/* Copyright BSD */var x = 2;";
+    $packer->minify( \$var, { remove_copyright => 1 } );
+    is( $var, 'var x=2;', 'copyright comment with remove_copyright option');
+
+    $var = "/* Copyright BSD */var x = 2;";
+    $packer->minify( \$var );
+    is( $var, '/* Copyright BSD */' . "\n" . 'var x=2;', 'copyright comment without remove_copyright option');
+
+    $var = "/* JavaScript::Packer _no_compress_ */\n\nvar x = 1;\n\n\nvar y = 2;";
+    $packer->minify( \$var );
+    is( $var, "/* JavaScript::Packer _no_compress_ */\n\nvar x = 1;\n\n\nvar y = 2;", '_no_compress_ comment');
+
+    $var = "/* JavaScript::Packer _no_compress_ */\n\nvar x = 1;\n\n\nvar y = 2;";
+    $packer->minify( \$var, { no_compress_comment => 1 } );
+    is( $var, "var x=1;var y=2;", '_no_compress_ comment with no_compress_comment option');
+
 }
 
 sub filesMatch {

Modified: trunk/libjavascript-packer-perl/t/scripts/s2-expected.js
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libjavascript-packer-perl/t/scripts/s2-expected.js?rev=70281&op=diff
==============================================================================
--- trunk/libjavascript-packer-perl/t/scripts/s2-expected.js (original)
+++ trunk/libjavascript-packer-perl/t/scripts/s2-expected.js Thu Mar  3 04:21:29 2011
@@ -1,2 +1,2 @@
-function(c){var b='blah blubb';var e=3;alert(b);var g=1;//@a
-var f=c;/*@abcd var g=1;@*/abcd var d=$H()};/*@abcd var x=1;@*/
+function(b){var a='blah blubb';var d=3;alert(a);var f=1;//@a
+var e=b;/*@abcd var f=1;@*/abcd var c=$H()};/*@abcd var x=1;@*/

Modified: trunk/libjavascript-packer-perl/t/scripts/s3-expected.js
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libjavascript-packer-perl/t/scripts/s3-expected.js?rev=70281&op=diff
==============================================================================
--- trunk/libjavascript-packer-perl/t/scripts/s3-expected.js (original)
+++ trunk/libjavascript-packer-perl/t/scripts/s3-expected.js Thu Mar  3 04:21:29 2011
@@ -1,1 +1,1 @@
-eval(function(p,a,c,k,e,r){e=String;if('0'.replace(0,e)==0){while(c--)r[e(c)]=k[c];k=[function(e){return r[e]||e}];e=function(){return'[024-9]'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('6(c){0 b=\'8 9\';0 e=3;7(b);0 5=1;//@a\n0 f=c;/*@2 0 5=1;@*/2 0 d=$4()};',[],10,'var||abcd||H|g|function|alert|blah|blubb'.split('|'),0,{}))
+eval(function(p,a,c,k,e,r){e=String;if('0'.replace(0,e)==0){while(c--)r[e(c)]=k[c];k=[function(e){return r[e]||e}];e=function(){return'[024-9]'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('2(b){0 a=\'7 9\';0 d=3;8(a);0 6=1;//@a\n0 e=b;/*@4 0 6=1;@*/4 0 c=$5()};',[],10,'var||function||abcd|H|f|blah|alert|blubb'.split('|'),0,{}))

Modified: trunk/libjavascript-packer-perl/t/scripts/s4-expected.js
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libjavascript-packer-perl/t/scripts/s4-expected.js?rev=70281&op=diff
==============================================================================
--- trunk/libjavascript-packer-perl/t/scripts/s4-expected.js (original)
+++ trunk/libjavascript-packer-perl/t/scripts/s4-expected.js Thu Mar  3 04:21:29 2011
@@ -1,2 +1,2 @@
-function(c){var b='blah blubb';var e=3;alert(b);var g=1;//@a
-var f=c;/*@abcd var g=1;@*/abcd var d=$H()};/*@abcd var x=1;@*/
+function(b){var a='blah blubb';var d=3;alert(a);var f=1;//@a
+var e=b;/*@abcd var f=1;@*/abcd var c=$H()};/*@abcd var x=1;@*/

Modified: trunk/libjavascript-packer-perl/t/scripts/s5-expected.js
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libjavascript-packer-perl/t/scripts/s5-expected.js?rev=70281&op=diff
==============================================================================
--- trunk/libjavascript-packer-perl/t/scripts/s5-expected.js (original)
+++ trunk/libjavascript-packer-perl/t/scripts/s5-expected.js Thu Mar  3 04:21:29 2011
@@ -1,1 +1,1 @@
-eval(function(p,a,c,k,e,r){e=function(c){return(c<62?'':e(parseInt(c/62)))+((c=c%62)>35?String.fromCharCode(c+29):c.toString(36))};if('0'.replace(0,e)==0){while(c--)r[e(c)]=k[c];k=[function(e){return r[e]||e}];e=function(){return'([2-9h-zB-Z]|1[0-9a-zA-Z])'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('5 I=7 3(){5 c=7 X();5 d=3(g){8(!g.2(\'F\'))n;7 B.u(\'/9\'+g.2(\'F\')+\'x.w?\'+6.h(6.l()*m)+\'=\'+6.h(6.l()*m),{v:\'2\',y:3(a){5 f=7 K(\'f\').o(a.t.1k());f.1j(\'1b\').s(3(b){5 e=7 1a();e.N=b.Z(\'N\');c[c.J]=e})}});8(g.2(\'L\')){g.2(\'L\').s(3(e){d(e)})}}n{Q:3(){5 b=C.T();b.s(3(e){d(e)})}}}5 9=7 3(){n{r:3(){5 g=$A(9.r.13);5 a=g.1c();8(!a){n}5 f=7 K(\'1d\');f.12({\'18\':\'M\',\'1o\':\'M\'});8( $(\'i\').17()){7 q.19(\'i\',{10:3(){7 B.u(\'/9\'+a+\'x.w?\'+6.h(6.l()*m)+\'=\'+6.h(6.l()*m),{v:\'2\',y:3(e){5 b=f.o(e.t); $(\'i\').o(b);7 q.G(\'i\',{H:0.E})}})},14:0.E})}O{7 B.u(\'/9\'+a+\'x.w?\'+6.h(6.l()*m)+\'=\'+6.h(6.l()*m),{v:\'2\',y:3(e){ $(\'i\').o(f.o(e.t));7 q.G(\'i\',{H:0.11})}})}}}}5 j=0;S.4.16({D:3(e){n 1i.D(e)},W:3(e){n e.15()}});3 p(b,e){b=b?b:\'/\';8(!j&&b){j=1;9.r(b);C.r(b);z()}}3 1h(b,e){8(!j){4.R(b,e)}p(b,e)}3 z(){5 e=$A(q.1f);8(e.J>0){Y("z();",1n)}O{j=0}}S.1m=3(){4.1e();4.1l(p);C.U();k=4.1g();k=k?k:\'/\';8(4.V()){8(!j){4.R(k,P)}p(k,P)}I.Q()}',[],87,'||get|function|dhtmlHistory|var|Math|new|if|content||||||||round|div_content|wait|initialLocation|random|99999|return|update|handle_location|Effect|process|each|responseText|Request|method|htm|index|onComplete|reset_wait||Ajax|menu|toJSON|01|loc|Appear|from|image|length|Element|subs|0px|src|else|null|preload|add|window|get_menu_hash|init|isFirstLoad|fromJSON|Array|setTimeout|readAttribute|afterFinish|00|setStyle|arguments|to|evalJSON|create|visible|padding|Fade|Image|img|shift|div|initialize|Queue|getCurrentLocation|handle_click|Object|select|stripScripts|addListener|onload|1000|margin'.split('|'),0,{}))
+eval(function(p,a,c,k,e,r){e=function(c){return(c<62?'':e(parseInt(c/62)))+((c=c%62)>35?String.fromCharCode(c+29):c.toString(36))};if('0'.replace(0,e)==0){while(c--)r[e(c)]=k[c];k=[function(e){return r[e]||e}];e=function(){return'([2-9h-zB-Z]|1[0-9a-zA-Z])'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('5 I=7 3(){5 c=7 Y();5 d=3(g){8(!g.2(\'F\'))n;7 B.u(\'/9\'+g.2(\'F\')+\'x.w?\'+6.h(6.l()*m)+\'=\'+6.h(6.l()*m),{v:\'2\',y:3(a){5 f=7 K(\'R\').o(a.t.1k());f.1j(\'1c\').s(3(b){5 e=7 1b();e.N=b.10(\'N\');c[c.J]=e})}});8(g.2(\'L\')){g.2(\'L\').s(3(e){d(e)})}}n{Q:3(){5 b=C.U();b.s(3(e){d(e)})}}}5 9=7 3(){n{r:3(){5 g=$A(9.r.14);5 a=g.1d();8(!a){n}5 f=7 K(\'R\');f.13({\'19\':\'M\',\'1o\':\'M\'});8( $(\'i\').18()){7 q.1a(\'i\',{11:3(){7 B.u(\'/9\'+a+\'x.w?\'+6.h(6.l()*m)+\'=\'+6.h(6.l()*m),{v:\'2\',y:3(e){5 b=f.o(e.t); $(\'i\').o(b);7 q.G(\'i\',{H:0.E})}})},15:0.E})}O{7 B.u(\'/9\'+a+\'x.w?\'+6.h(6.l()*m)+\'=\'+6.h(6.l()*m),{v:\'2\',y:3(e){ $(\'i\').o(f.o(e.t));7 q.G(\'i\',{H:0.12})}})}}}}5 j=0;T.4.17({D:3(e){n 1i.D(e)},X:3(e){n e.16()}});3 p(b,e){b=b?b:\'/\';8(!j&&b){j=1;9.r(b);C.r(b);z()}}3 1h(b,e){8(!j){4.S(b,e)}p(b,e)}3 z(){5 e=$A(q.1f);8(e.J>0){Z("z();",1n)}O{j=0}}T.1m=3(){4.1e();4.1l(p);C.V();k=4.1g();k=k?k:\'/\';8(4.W()){8(!j){4.S(k,P)}p(k,P)}I.Q()}',[],87,'||get|function|dhtmlHistory|var|Math|new|if|content||||||||round|div_content|wait|initialLocation|random|99999|return|update|handle_location|Effect|process|each|responseText|Request|method|htm|index|onComplete|reset_wait||Ajax|menu|toJSON|01|loc|Appear|from|image|length|Element|subs|0px|src|else|null|preload|div|add|window|get_menu_hash|init|isFirstLoad|fromJSON|Array|setTimeout|readAttribute|afterFinish|00|setStyle|arguments|to|evalJSON|create|visible|padding|Fade|Image|img|shift|initialize|Queue|getCurrentLocation|handle_click|Object|select|stripScripts|addListener|onload|1000|margin'.split('|'),0,{}))




More information about the Pkg-perl-cvs-commits mailing list