From 4e0454022c70ddc92b7dc992d50d5af6705974ea Mon Sep 17 00:00:00 2001 From: alexlamsl Date: Fri, 9 Jun 2017 03:07:00 +0800 Subject: [PATCH] marshal `mangle[.properties].reserved` from non-Array values --- lib/propmangle.js | 3 ++- lib/scope.js | 4 +++- 2 files changed, 5 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){