aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/propmangle.js3
-rw-r--r--lib/scope.js4
-rw-r--r--test/mocha/cli.js20
3 files changed, 25 insertions, 2 deletions
diff --git a/lib/propmangle.js b/lib/propmangle.js
index efb31cc1..f17909d7 100644
--- a/lib/propmangle.js
+++ b/lib/propmangle.js
@@ -78,7 +78,8 @@ function mangle_properties(ast, options) {
reserved: null,
});
- var reserved = options.reserved || [];
+ var reserved = options.reserved;
+ if (!Array.isArray(reserved)) reserved = [];
if (!options.builtins) find_builtins(reserved);
var cache = options.cache;
diff --git a/lib/scope.js b/lib/scope.js
index 8bc96072..ea43f752 100644
--- a/lib/scope.js
+++ b/lib/scope.js
@@ -377,13 +377,15 @@ AST_Symbol.DEFMETHOD("global", function(){
});
AST_Toplevel.DEFMETHOD("_default_mangler_options", function(options){
- return defaults(options, {
+ options = defaults(options, {
eval : false,
ie8 : false,
keep_fnames : false,
reserved : [],
toplevel : false,
});
+ if (!Array.isArray(options.reserved)) options.reserved = [];
+ return options;
});
AST_Toplevel.DEFMETHOD("mangle_names", function(options){
diff --git a/test/mocha/cli.js b/test/mocha/cli.js
index 0a7f8f2b..3228e4e3 100644
--- a/test/mocha/cli.js
+++ b/test/mocha/cli.js
@@ -546,4 +546,24 @@ describe("bin/uglifyjs", function () {
done();
});
});
+ it("Should work with --mangle reserved=[]", function (done) {
+ var command = uglifyjscmd + ' test/input/issue-505/input.js -m reserved=[callback]';
+
+ exec(command, function (err, stdout) {
+ if (err) throw err;
+
+ assert.strictEqual(stdout, 'function test(callback){"aaaaaaaaaaaaaaaa";callback(err,data);callback(err,data)}\n');
+ done();
+ });
+ });
+ it("Should work with --mangle reserved=false", function (done) {
+ var command = uglifyjscmd + ' test/input/issue-505/input.js -m reserved=false';
+
+ exec(command, function (err, stdout) {
+ if (err) throw err;
+
+ assert.strictEqual(stdout, 'function test(a){"aaaaaaaaaaaaaaaa";a(err,data);a(err,data)}\n');
+ done();
+ });
+ });
});