diff --git a/packages/babel-helper-remap-async-to-generator/src/index.js b/packages/babel-helper-remap-async-to-generator/src/index.js index ee16627eb5..d3650c066f 100644 --- a/packages/babel-helper-remap-async-to-generator/src/index.js +++ b/packages/babel-helper-remap-async-to-generator/src/index.js @@ -87,6 +87,7 @@ function plainFunction(path: NodePath, callId: Object) { t.callExpression(container, []) ) ]); + declar._blockHoist = true; retFunction.id = asyncFnId; path.replaceWith(declar); diff --git a/packages/babel-plugin-transform-async-to-generator/test/fixtures/async-to-generator/statement/actual.js b/packages/babel-plugin-transform-async-to-generator/test/fixtures/async-to-generator/statement/actual.js index 2b301a1500..e422835657 100644 --- a/packages/babel-plugin-transform-async-to-generator/test/fixtures/async-to-generator/statement/actual.js +++ b/packages/babel-plugin-transform-async-to-generator/test/fixtures/async-to-generator/statement/actual.js @@ -1,5 +1,3 @@ -function normalFunction() {} - async function foo() { var wat = await bar(); } diff --git a/packages/babel-plugin-transform-async-to-generator/test/fixtures/async-to-generator/statement/expected.js b/packages/babel-plugin-transform-async-to-generator/test/fixtures/async-to-generator/statement/expected.js index 6f6a08626b..51140320d4 100644 --- a/packages/babel-plugin-transform-async-to-generator/test/fixtures/async-to-generator/statement/expected.js +++ b/packages/babel-plugin-transform-async-to-generator/test/fixtures/async-to-generator/statement/expected.js @@ -1,5 +1,3 @@ -function normalFunction() {} - let foo = function () { var ref = babelHelpers.asyncToGenerator(function* () { var wat = yield bar(); diff --git a/packages/babel-plugin-transform-async-to-generator/test/fixtures/export-async/import-and-export/expected.js b/packages/babel-plugin-transform-async-to-generator/test/fixtures/export-async/import-and-export/expected.js index 463c8b559a..7ea795d5ca 100644 --- a/packages/babel-plugin-transform-async-to-generator/test/fixtures/export-async/import-and-export/expected.js +++ b/packages/babel-plugin-transform-async-to-generator/test/fixtures/export-async/import-and-export/expected.js @@ -5,13 +5,13 @@ Object.defineProperty(exports, "__esModule", { }); exports.foo = undefined; -var _bar = require('bar'); - -var _bar2 = babelHelpers.interopRequireDefault(_bar); - let foo = exports.foo = function () { var ref = babelHelpers.asyncToGenerator(function* () {}); return function foo() { return ref.apply(this, arguments); }; }(); + +var _bar = require('bar'); + +var _bar2 = babelHelpers.interopRequireDefault(_bar); diff --git a/packages/babel-plugin-transform-async-to-generator/test/fixtures/regression/T6882/exec.js b/packages/babel-plugin-transform-async-to-generator/test/fixtures/regression/T6882/exec.js new file mode 100644 index 0000000000..05245197ef --- /dev/null +++ b/packages/babel-plugin-transform-async-to-generator/test/fixtures/regression/T6882/exec.js @@ -0,0 +1,3 @@ +foo(); + +async function foo() {} diff --git a/packages/babel-plugin-transform-async-to-generator/test/fixtures/regression/options.json b/packages/babel-plugin-transform-async-to-generator/test/fixtures/regression/options.json new file mode 100644 index 0000000000..94bdeeb0eb --- /dev/null +++ b/packages/babel-plugin-transform-async-to-generator/test/fixtures/regression/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["external-helpers", "transform-es2015-block-scoping", "transform-regenerator", "transform-async-to-generator"] +} diff --git a/packages/babel-plugin-transform-es2015-modules-commonjs/src/index.js b/packages/babel-plugin-transform-es2015-modules-commonjs/src/index.js index 097f17f7ce..86db8756b1 100644 --- a/packages/babel-plugin-transform-es2015-modules-commonjs/src/index.js +++ b/packages/babel-plugin-transform-es2015-modules-commonjs/src/index.js @@ -399,14 +399,21 @@ export default function () { hoistedExportsNode = buildExportsAssignment(t.identifier(name), hoistedExportsNode).expression; } - topNodes.unshift(t.expressionStatement(hoistedExportsNode)); + const node = t.expressionStatement(hoistedExportsNode); + node._blockHoist = 3; + + topNodes.unshift(node); } // add __esModule declaration if this file has any exports if (hasExports && !strict) { let buildTemplate = buildExportsModuleDeclaration; if (this.opts.loose) buildTemplate = buildLooseExportsModuleDeclaration; - topNodes.unshift(buildTemplate()); + + const declar = buildTemplate(); + declar._blockHoist = 3; + + topNodes.unshift(declar); } path.unshiftContainer("body", topNodes);