Usage and features
JSXS is in BETA test since 1 april 2009. Its possible the output compressed code not be a comptatible javascript code. Your browser can return a syntax error after the evaluation of it. I really appreciate your taking the time to report an issue.
Requirement
JSXS require a minimum of php 5.1.0 . works on all plateforms.
Options
compatibility : add semi-colons at the end of block (like function, object...) if necessary. Currently, works only if shrink option is actived.
reduce : removes blank spaces and comments.
shrink : reduces the names of variables to shorter.
concatString : all strings concatenated with the operator of addition are merged.
Features
adding semicolumn if necessary : In javascript language, the end of line can be interpreted as a semicolumn, so your code without blankspace is probably wrong. This feature adds semicolumns for prevent syntax error.
remove multiple and unused semicolumn : Multiple ending semicolumn, and semicolumn before ending block are removed, except in for statements.
remove blankspace and endline : simple and usefull.
reduce variable names : The names of variable in non-global context are reduced to the smallest possible name, with none conflict. It's the same with function names.
concat string : Two string separated by + can be concatened.
Examples
// uncompressed function test (arg1) { var func = function (arg1) { return arg1+2; } return 'your value' + ' : ' + arg1 + func(arg1); } // compressed function test(b){var c=function(a){return a+2};return'your value : '+b+c(b)}
- removed white space.
- concatened string : 'your value' + ' : ' => 'your value : '.
- reduced variable names : arg1 => b, func => c, arg1 => a.
- removed semicolumn : ...func(arg1); => ...c(b).
- adding semicolumn for compatibility "} return 'your val..." => "};return'your val...".
... }else if(!c){b=0 break main};b=0};return!!b}, ...
maybe some issue about block labels?
anyway, the compressor looks promising. :)
great work. and please tell me if you have any thoughts, I'm interested in the project. ty, cya.
I'm curious though, why this one instead of YUI Compressor? What are the main benefits?
After testing, I think it's missing semicolumn before break in your code (yes, in javascript standard, it's not required if there is end of line after it)
@Kyle Simpson
There are many differences. Soon I'll write a table comparaison between JSXS and the other tools.
d'oh. I really missed a semicolon there (and in some parts of the code). Now, there are semicolons and I just tested again.
Now, for some reason, it's adding a semicolon to a do{} block; so the interpreter is now asking for a while statement.
note: i just removed this semicolon and the compressed script is working perfectly. And, regardless of this little problem, this is now the official compressor of my JavaScript project, since it did the best job with compression. Thanks. ;)
Thanks you for debugging :)
Cheers.
time to be happy. I've learn this publish and if I could I desire to counsel you few fascinating things or tips.
Maybe you could write subsequent articles referring to this
article. I desire to learn even more issues approximately it!