| 1234567891011121314151617181920212223242526272829303132 |
- #!/usr/bin/env perl
- # This script is a hack.
- #
- # Opacify all non-private names by turning them into strings.
- # That way, the Google compressor won't rename them.
- #
- # The script ignores properties whose names begin with _, because they
- # are believed to be private.
- #
- # XXX TODO FIXME: this messes with strings, so it screws up exceptions.
- my $script = join '', <>;
- # remove comments
- $script =~ s=/\*([^\*]|\*+[^\/])*\*/==g;
- $script =~ s=//.*==g;
- # stringify property names
- $script =~ s=\.([a-zA-Z0-9][_a-zA-Z0-9]*)=['$1']=g;
- # stringify sjcl
- $script =~ s=(?:var\s+)?sjcl(\.|\s*\=)=window['sjcl']$1=g;
- # stringify object notation
- $script =~ s=([\{,]\s*)([a-zA-Z0-9][_a-zA-Z0-9]*):=$1'$2':=g;
- # Export sjcl. This is a bit of a hack, and might get replaced later.
- print $script;
- # not necessary with windowization.
- # print "window\['sjcl'\] = sjcl;\n";
|