From 14dcdc0d4a3258a7c3b89ef9ddebe57f9484585e Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Thu, 9 Oct 2014 18:56:48 +1100 Subject: [PATCH] check whitelist and blacklist for valid transformer names --- lib/6to5/transform.js | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/lib/6to5/transform.js b/lib/6to5/transform.js index 4c185f21af..93a506bfc2 100644 --- a/lib/6to5/transform.js +++ b/lib/6to5/transform.js @@ -4,6 +4,14 @@ var path = require("path"); var util = require("./util"); var _ = require("lodash"); +var ensureTransformerNames = function (type, keys) { + _.each(keys, function (key) { + if (!transform.transformers[key]) { + throw new ReferenceError("unknown transformer " + key + " specified in " + type); + } + }); +}; + var transform = module.exports = function (code, opts) { opts = opts || {}; code = (code || "") + ""; @@ -16,6 +24,9 @@ var transform = module.exports = function (code, opts) { format: {} }); + ensureTransformerNames("blacklist", opts.blacklist); + ensureTransformerNames("whitelist", opts.whitelist); + return util.parse(opts.filename, code, function (tree) { return transform._run(code, tree, opts); }); @@ -92,6 +103,7 @@ transform.test = function (actual, expect, opts) { }; transform.transformers = { + modules: require("./transformers/modules"), computedPropertyNames: require("./transformers/computed-property-names"), propertyNameShorthand: require("./transformers/property-name-shorthand"), constants: require("./transformers/constants"), @@ -105,7 +117,6 @@ transform.transformers = { destructuring: require("./transformers/destructuring"), generators: require("./transformers/generators"), blockBinding: require("./transformers/block-binding"), - modules: require("./transformers/modules"), restParameters: require("./transformers/rest-parameters"), forOf: require("./transformers/for-of"), unicodeRegex: require("./transformers/unicode-regex")