From 6d13e6b259729feda8618e6d47e590e4a29e9b0b Mon Sep 17 00:00:00 2001 From: Oleh Kuchuk Date: Wed, 1 Mar 2017 17:03:08 +0200 Subject: [PATCH] Minor optimization for handling blacklisted names (#446) --- .../src/index.js | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/packages/babel-plugin-minify-mangle-names/src/index.js b/packages/babel-plugin-minify-mangle-names/src/index.js index 1eb62d322..b900ed991 100644 --- a/packages/babel-plugin-minify-mangle-names/src/index.js +++ b/packages/babel-plugin-minify-mangle-names/src/index.js @@ -21,7 +21,7 @@ module.exports = ({ types: t, traverse }) => { } = {}) { this.charset = charset; this.program = program; - this.blacklist = blacklist; + this.blacklist = toObject(blacklist); this.keepFnName = keepFnName; this.keepClassName = keepClassName; this.eval = _eval; @@ -46,9 +46,6 @@ module.exports = ({ types: t, traverse }) => { } isBlacklist(name) { - if (Array.isArray(this.blacklist)) { - return this.blacklist.indexOf(name) !== -1; - } return hop.call(this.blacklist, name) && this.blacklist[name]; } @@ -311,6 +308,19 @@ class Charset { } } +// convert value to object +function toObject(value) { + if (!Array.isArray(value)) { + return value; + } + + const map = {}; + for (let i = 0; i < value.length; i++) { + map[value[i]] = true; + } + return map; +} + // for keepFnName function isFunction(path) { return path.isFunctionExpression()