From 53ed4e5eb86902cf577e990bfe4f7d917a66ea65 Mon Sep 17 00:00:00 2001 From: Diogo Franco Date: Wed, 24 Aug 2016 03:28:19 +0900 Subject: [PATCH] Support 'spec' option on babel-preset-es2015 (#3671) Allows enabling the spec options in the couple of presets that have it. Generally enables a slower, but more correct codepath. --- packages/babel-preset-es2015/src/index.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/babel-preset-es2015/src/index.js b/packages/babel-preset-es2015/src/index.js index 99d77c8f8f8f..f62ae533951a 100644 --- a/packages/babel-preset-es2015/src/index.js +++ b/packages/babel-preset-es2015/src/index.js @@ -27,13 +27,16 @@ 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'"); @@ -41,10 +44,10 @@ function preset(context, opts) { 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"),