Compare commits

...

14 Commits

Author SHA1 Message Date
Mihai Bazon
e3342a3cf6 v2.4.14 2014-06-12 17:24:33 +03:00
Mihai Bazon
7bf59b5bcd Actually, even better. #475
- also handle x = + ++y, x = - --y;
- don't use parens, a space suffices.
2014-04-27 21:42:14 +03:00
Mihai Bazon
025f3e9596 Better fix for #475 2014-04-27 20:54:54 +03:00
Mihai Bazon
8258edd8a5 Fix parens in +(+x). Close #475 2014-04-27 20:51:01 +03:00
Mihai Bazon
8669ca219b Merge branch 'master' of github.com:mishoo/UglifyJS2 2014-04-24 10:56:57 +03:00
Mihai Bazon
71652690b6 Merge pull request #445 from ConradIrwin/try-statement
Handle TryStatements trees from acorn >=0.2.0
2014-04-24 10:46:53 +03:00
Mihai Bazon
37693d2812 Update tests. 2014-04-18 11:19:52 +03:00
Mihai Bazon
8fbe200012 Always quote property names that contain non-ASCII characters.
Fix #328
2014-04-18 10:48:44 +03:00
Mihai Bazon
1a34a13e33 Merge pull request #470 from ebednarz/master
Fix sourceMapIncludeSources exception in Node API
2014-04-13 12:54:12 +03:00
OiNutter
ef772b0049 add sourceMappingUrl to output in node module
If options.outSourceMap is specified the sourceMappingURL comment
should be appended to the output stream
2014-04-13 11:48:38 +02:00
ebednarz
6fcabbde08 Fix sourceMapIncludeSources exception in Node API
https://github.com/mishoo/UglifyJS2/issues/459
2014-04-13 11:16:10 +02:00
Mihai Bazon
14f290f8ab Merge pull request #454 from Arnavion/allow-colons-in-wrap_enclose
Allow colons in the pairs passed to AST_Toplevel.wrap_enclose
2014-03-24 15:10:35 +02:00
Arnavion
e2e09d5754 Allow colons in the pairs passed to AST_Toplevel.wrap_enclose 2014-03-22 18:02:21 -07:00
Conrad Irwin
514936beb8 Handle TryStatements trees from acorn >=0.2.0 2014-03-06 17:07:49 -08:00
7 changed files with 19 additions and 17 deletions

View File

@@ -295,10 +295,10 @@ var AST_Toplevel = DEFNODE("Toplevel", "globals", {
var parameters = []; var parameters = [];
arg_parameter_pairs.forEach(function(pair) { arg_parameter_pairs.forEach(function(pair) {
var split = pair.split(":"); var splitAt = pair.lastIndexOf(":");
args.push(split[0]); args.push(pair.substr(0, splitAt));
parameters.push(split[1]); parameters.push(pair.substr(splitAt + 1));
}); });
var wrapped_tl = "(function(" + parameters.join(",") + "){ '$ORIG'; })(" + args.join(",") + ")"; var wrapped_tl = "(function(" + parameters.join(",") + "){ '$ORIG'; })(" + args.join(",") + ")";

View File

@@ -51,7 +51,7 @@
start : my_start_token(M), start : my_start_token(M),
end : my_end_token(M), end : my_end_token(M),
body : from_moz(M.block).body, body : from_moz(M.block).body,
bcatch : from_moz(M.handlers[0]), bcatch : from_moz(M.handlers ? M.handlers[0] : M.handler),
bfinally : M.finalizer ? new AST_Finally(from_moz(M.finalizer)) : null bfinally : M.finalizer ? new AST_Finally(from_moz(M.finalizer)) : null
}); });
}, },

View File

@@ -996,8 +996,12 @@ function OutputStream(options) {
DEFPRINT(AST_UnaryPrefix, function(self, output){ DEFPRINT(AST_UnaryPrefix, function(self, output){
var op = self.operator; var op = self.operator;
output.print(op); output.print(op);
if (/^[a-z]/i.test(op)) if (/^[a-z]/i.test(op)
|| (/[+-]$/.test(op)
&& self.expression instanceof AST_UnaryPrefix
&& /^[+-]/.test(self.expression.operator))) {
output.space(); output.space();
}
self.expression.print(output); self.expression.print(output);
}); });
DEFPRINT(AST_UnaryPostfix, function(self, output){ DEFPRINT(AST_UnaryPostfix, function(self, output){

View File

@@ -168,14 +168,7 @@ function is_identifier_char(ch) {
}; };
function is_identifier_string(str){ function is_identifier_string(str){
var i = str.length; return /^[a-z_$][a-z0-9_$]*$/i.test(str);
if (i == 0) return false;
if (!is_identifier_start(str.charCodeAt(0))) return false;
while (--i >= 0) {
if (!is_identifier_char(str.charAt(i)))
return false;
}
return true;
}; };
function parse_js_number(num) { function parse_js_number(num) {

View File

@@ -3,7 +3,7 @@
"description": "JavaScript parser, mangler/compressor and beautifier toolkit", "description": "JavaScript parser, mangler/compressor and beautifier toolkit",
"homepage": "http://lisperator.net/uglifyjs", "homepage": "http://lisperator.net/uglifyjs",
"main": "tools/node.js", "main": "tools/node.js",
"version": "2.4.13", "version": "2.4.14",
"engines": { "node" : ">=0.4.0" }, "engines": { "node" : ">=0.4.0" },
"maintainers": [{ "maintainers": [{
"name": "Mihai Bazon", "name": "Mihai Bazon",

View File

@@ -26,7 +26,7 @@ dot_properties: {
a.foo = "bar"; a.foo = "bar";
a["if"] = "if"; a["if"] = "if";
a["*"] = "asterisk"; a["*"] = "asterisk";
a.\u0EB3 = "unicode"; a["\u0EB3"] = "unicode";
a[""] = "whitespace"; a[""] = "whitespace";
a["1_1"] = "foo"; a["1_1"] = "foo";
} }
@@ -48,7 +48,7 @@ dot_properties_es5: {
a.foo = "bar"; a.foo = "bar";
a.if = "if"; a.if = "if";
a["*"] = "asterisk"; a["*"] = "asterisk";
a.\u0EB3 = "unicode"; a["\u0EB3"] = "unicode";
a[""] = "whitespace"; a[""] = "whitespace";
} }
} }

View File

@@ -115,7 +115,7 @@ exports.minify = function(files, options) {
if (options.sourceMapIncludeSources) { if (options.sourceMapIncludeSources) {
for (var file in sourcesContent) { for (var file in sourcesContent) {
if (sourcesContent.hasOwnProperty(file)) { if (sourcesContent.hasOwnProperty(file)) {
options.source_map.get().setSourceContent(file, sourcesContent[file]); output.source_map.get().setSourceContent(file, sourcesContent[file]);
} }
} }
} }
@@ -126,6 +126,11 @@ exports.minify = function(files, options) {
} }
var stream = UglifyJS.OutputStream(output); var stream = UglifyJS.OutputStream(output);
toplevel.print(stream); toplevel.print(stream);
if(options.outSourceMap){
stream += "\n//# sourceMappingURL=" + options.outSourceMap;
}
return { return {
code : stream + "", code : stream + "",
map : output.source_map + "" map : output.source_map + ""