Skip to content

Commit

Permalink
Support 'spec' option on babel-preset-es2015 (#3671)
Browse files Browse the repository at this point in the history
Allows enabling the spec options in the couple of presets that have it.

Generally enables a slower, but more correct codepath.
  • Loading branch information
Diogo Franco authored and hzoo committed Aug 23, 2016
1 parent 3bf4797 commit 53ed4e5
Showing 1 changed file with 5 additions and 2 deletions.
7 changes: 5 additions & 2 deletions packages/babel-preset-es2015/src/index.js
Expand Up @@ -27,24 +27,27 @@ function preset(context, opts) {
const moduleTypes = ["commonjs", "amd", "umd", "systemjs"];
let loose = false;
let modules = "commonjs";
let spec = false;

if (opts !== undefined) {
if (opts.loose !== undefined) loose = opts.loose;
if (opts.modules !== undefined) modules = opts.modules;
if (opts.spec !== undefined) spec = opts.spec;
}

if (typeof loose !== "boolean") throw new Error("Preset es2015 'loose' option must be a boolean.");
if (typeof spec !== "boolean") throw new Error("Preset es2015 'spec' option must be a boolean.");
if (modules !== false && moduleTypes.indexOf(modules) === -1) {
throw new Error("Preset es2015 'modules' option must be 'false' to indicate no modules\n" +
"or a module type which be be one of: 'commonjs' (default), 'amd', 'umd', 'systemjs'");
}

return {
plugins: [
[require("babel-plugin-transform-es2015-template-literals"), { loose }],
[require("babel-plugin-transform-es2015-template-literals"), { loose, spec }],
require("babel-plugin-transform-es2015-literals"),
require("babel-plugin-transform-es2015-function-name"),
[require("babel-plugin-transform-es2015-arrow-functions")],
[require("babel-plugin-transform-es2015-arrow-functions"), { spec }],
require("babel-plugin-transform-es2015-block-scoped-functions"),
[require("babel-plugin-transform-es2015-classes"), { loose }],
require("babel-plugin-transform-es2015-object-super"),
Expand Down

0 comments on commit 53ed4e5

Please sign in to comment.