From 0b49b4b6c6e67913870d75a440dc564a1eac85c9 Mon Sep 17 00:00:00 2001 From: Andrey Belym Date: Thu, 2 Feb 2017 11:22:14 +0300 Subject: [PATCH] Disable regenerator for node>=4 --- src/compiler/es-next/load-babel-libs.js | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/compiler/es-next/load-babel-libs.js b/src/compiler/es-next/load-babel-libs.js index 5c3a141fed4..38a61d30b84 100644 --- a/src/compiler/es-next/load-babel-libs.js +++ b/src/compiler/es-next/load-babel-libs.js @@ -1,3 +1,17 @@ +import NODE_VER from '../../utils/node-version'; + +function getOptsForPresetEnv () { + var opts = { targets: { node: 'current' }, loose: true }; + + // NOTE: Disable transforming generators into state-machine for node>=4, because this versions have native generators. + // Also this versions have native template literals, regenerator do not work with them: + // https://github.com/facebook/regenerator/issues/276 + if (NODE_VER >= 4) + opts.exclude = ['transform-regenerator']; + + return opts; +} + // NOTE: lazy load heavy dependencies export default function loadBabelLibs () { return { @@ -5,6 +19,6 @@ export default function loadBabelLibs () { presetStage2: require('babel-preset-stage-2'), transformRuntime: require('babel-plugin-transform-runtime'), presetFallback: require('babel-preset-env').default(null, { loose: true }), - presetEnv: require('babel-preset-env').default(null, { targets: { node: 'current' }, loose: true }) + presetEnv: require('babel-preset-env').default(null, getOptsForPresetEnv()) }; }