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