diff --git a/src/babel/transformation/transformers/internal/module-formatter.js b/src/babel/transformation/transformers/internal/module-formatter.js index 4235eeb4fb..36f6206d72 100644 --- a/src/babel/transformation/transformers/internal/module-formatter.js +++ b/src/babel/transformation/transformers/internal/module-formatter.js @@ -7,6 +7,11 @@ export var metadata = { export var Program = { exit(program, parent, scope, file) { strict.wrap(program, function () { + // ensure that these are at the top, just like normal imports + for (var node of (file.dynamicImports: Array)) { + node._blockHoist = 3; + } + program.body = file.dynamicImports.concat(program.body); }); diff --git a/test/core/fixtures/transformation/runtime/full/expected.js b/test/core/fixtures/transformation/runtime/full/expected.js index 3f3795a497..d83975b0db 100644 --- a/test/core/fixtures/transformation/runtime/full/expected.js +++ b/test/core/fixtures/transformation/runtime/full/expected.js @@ -1,11 +1,5 @@ "use strict"; -_Object$defineProperty(exports, "__esModule", { - value: true -}); - -exports.giveWord = giveWord; - var _regeneratorRuntime = require("babel-runtime/regenerator")["default"]; var _Object$defineProperty = require("babel-runtime/core-js/object/define-property")["default"]; @@ -16,6 +10,11 @@ var _interopRequireDefault = require("babel-runtime/helpers/interop-require-defa var _interopRequireWildcard = require("babel-runtime/helpers/interop-require-wildcard")["default"]; +_Object$defineProperty(exports, "__esModule", { + value: true +}); + +exports.giveWord = giveWord; var marked0$0 = [giveWord].map(_regeneratorRuntime.mark); var _someModule = require("someModule");