diff --git a/src/babel/transformation/file/index.js b/src/babel/transformation/file/index.js index c8d75bd809..0e776f27b8 100644 --- a/src/babel/transformation/file/index.js +++ b/src/babel/transformation/file/index.js @@ -105,6 +105,7 @@ export default class File { let option = File.options[key]; var val = opts[key]; + if (!val && option.optional) continue; if (val == null) val = option.default || null; var optionParser = optionParsers[option.type]; @@ -131,8 +132,8 @@ export default class File { opts.basename = path.basename(opts.filename, path.extname(opts.filename)); - opts.ignore = util.arrayify(opts.ignore, util.regexify); - opts.only = util.arrayify(opts.only, util.regexify); + opts.ignore = util.arrayify(opts.ignore, util.regexify); + opts.only = util.arrayify(opts.only, util.regexify); defaults(opts, { moduleRoot: opts.sourceRoot @@ -395,6 +396,7 @@ export default class File { parseOpts.looseModules = this.isLoose("es6.modules"); parseOpts.strictMode = features.strict; + parseOpts.sourceType = "module"; // diff --git a/src/babel/transformation/file/options.json b/src/babel/transformation/file/options.json index 013b2be31f..9b18d54e15 100644 --- a/src/babel/transformation/file/options.json +++ b/src/babel/transformation/file/options.json @@ -50,6 +50,7 @@ "whitelist": { "type": "transformerList", + "optional": true, "description": "Whitelist of transformers to ONLY use", "shorthand": "l" }, diff --git a/src/babel/transformation/transformer-pass.js b/src/babel/transformation/transformer-pass.js index e2036f1d45..ccc30b03d8 100644 --- a/src/babel/transformation/transformer-pass.js +++ b/src/babel/transformation/transformer-pass.js @@ -30,7 +30,7 @@ export default class TransformerPass { // whitelist var whitelist = opts.whitelist; - if (whitelist.length) return includes(whitelist, key); + if (whitelist) return includes(whitelist, key); // experimental if (transformer.metadata.experimental && opts.experimental) return true; diff --git a/src/babel/transformation/transformers/other/runtime.js b/src/babel/transformation/transformers/other/runtime.js index ce4c11203f..55a609707a 100644 --- a/src/babel/transformation/transformers/other/runtime.js +++ b/src/babel/transformation/transformers/other/runtime.js @@ -75,7 +75,7 @@ export var metadata = { }; export function manipulateOptions(opts) { - if (opts.whitelist.length) opts.whitelist.push("es6.modules"); + if (opts.whitelist) opts.whitelist.push("es6.modules"); } export function Program(node, parent, scope, file) {