var Packer = Base.extend({\r
minify: function(script) {\r
script = script.replace(Packer.CONTINUE, "");\r
var Packer = Base.extend({\r
minify: function(script) {\r
script = script.replace(Packer.CONTINUE, "");\r
if (shrink) script = this._shrinkVariables(script);\r
if (base62) script = this._base62Encode(script); \r
return script;\r
if (shrink) script = this._shrinkVariables(script);\r
if (base62) script = this._base62Encode(script); \r
return script;\r
// identify blocks, particularly identify function blocks (which define scope)\r
var BLOCK = /(function\s*[\w$]*\s*\(\s*([^\)]*)\s*\)\s*)?(\{([^{}]*)\})/;\r
var VAR_ = /var\s+/g;\r
// identify blocks, particularly identify function blocks (which define scope)\r
var BLOCK = /(function\s*[\w$]*\s*\(\s*([^\)]*)\s*\)\s*)?(\{([^{}]*)\})/;\r
var VAR_ = /var\s+/g;\r
var COMMA = /\s*,\s*/;\r
var blocks = []; // store program blocks (anything between braces {})\r
// encoder for program blocks\r
var COMMA = /\s*,\s*/;\r
var blocks = []; // store program blocks (anything between braces {})\r
// encoder for program blocks\r
// process each identifier\r
var count = 0, shortId;\r
forEach (ids, function(id) {\r
// process each identifier\r
var count = 0, shortId;\r
forEach (ids, function(id) {\r
// find the next free short name (check everything in the current scope)\r
do shortId = encode52(count++);\r
while (new RegExp("[^\\w$.]" + shortId + "[^\\w$:]").test(block));\r
// find the next free short name (check everything in the current scope)\r
do shortId = encode52(count++);\r
while (new RegExp("[^\\w$.]" + shortId + "[^\\w$:]").test(block));\r
var decode = function(script) {\r
while (ENCODED.test(script)) {\r
script = script.replace(global(ENCODED), function(match, index) {\r
var decode = function(script) {\r
while (ENCODED.test(script)) {\r
script = script.replace(global(ENCODED), function(match, index) {\r
"replace(new RegExp('\\\\b'+e(c)+'\\\\b','g'),k[c]);return p}('%1',%2,%3,'%4'.split('|'),0,{}))",\r
\r
init: function() {\r
"replace(new RegExp('\\\\b'+e(c)+'\\\\b','g'),k[c]);return p}('%1',%2,%3,'%4'.split('|'),0,{}))",\r
\r
init: function() {\r
- this.data = reduce(this.data, new RegGrp, function(data, replacement, expression) {\r
+ this.data = reduce(this.data, function(data, replacement, expression) {\r
"\\(\\s*;\\s*;\\s*\\)": "(;;)", // for (;;) loops\r
"throw[^};]+[};]": IGNORE, // a safari 1.3 bug\r
";+\\s*([};])": "$1"\r
"\\(\\s*;\\s*;\\s*\\)": "(;;)", // for (;;) loops\r
"throw[^};]+[};]": IGNORE, // a safari 1.3 bug\r
";+\\s*([};])": "$1"\r
"([\\[(\\^=,{}:;&|!*?])\\s*(REGEXP)": "$1$2"\r
},\r
\r
javascript: new RegGrp({\r
"([\\[(\\^=,{}:;&|!*?])\\s*(REGEXP)": "$1$2"\r
},\r
\r
javascript: new RegGrp({\r
COMMENT2: /\/\*[^*]*\*+([^\/][^*]*\*+)*\//.source,\r
CONDITIONAL: /\/\*@|@\*\/|\/\/@[^\n]*\n/.source,\r
COMMENT2: /\/\*[^*]*\*+([^\/][^*]*\*+)*\//.source,\r
CONDITIONAL: /\/\*@|@\*\/|\/\/@[^\n]*\n/.source,\r
STRING1: /'(\\.|[^'\\])*'/.source,\r
STRING2: /"(\\.|[^"\\])*"/.source\r
}),\r
STRING1: /'(\\.|[^'\\])*'/.source,\r
STRING2: /"(\\.|[^"\\])*"/.source\r
}),\r