@meteorjs/babel 7.18.0-beta.1 → 7.18.0-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/options.js CHANGED
@@ -185,12 +185,13 @@ function getDefaultsForNode8(features) {
185
185
 
186
186
  // Ensure that async functions run in a Fiber, while also taking
187
187
  // full advantage of native async/await support in Node 8.
188
-
188
+ const isFiberDisabled = process.env.DISABLE_FIBERS || false;
189
189
  combined.plugins.push([require("./plugins/async-await.js"), {
190
190
  // Do not transform `await x` to `Promise.await(x)`, since Node
191
191
  // 8 has native support for await expressions.
192
- useNativeAsyncAwait: !process.env.DISABLE_FIBERS,
193
- isFiberDisabled: process.env.DISABLE_FIBERS,
192
+ useNativeAsyncAwait: !isFiberDisabled,
193
+ isFiberDisabled: isFiberDisabled,
194
+ overwriteFiberExit: process.env.OVERWRITE_FIBERS_EXIT === '1',
194
195
  }]);
195
196
 
196
197
  // Enable async generator functions proposal.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@meteorjs/babel",
3
3
  "author": "Meteor <dev@meteor.com>",
4
- "version": "7.18.0-beta.1",
4
+ "version": "7.18.0-beta.3",
5
5
  "license": "MIT",
6
6
  "description": "Babel wrapper package for use with Meteor",
7
7
  "keywords": [
@@ -9,14 +9,10 @@ module.exports = function (babel) {
9
9
  Function: {
10
10
  exit: function (path) {
11
11
  const node = path.node;
12
- if (!node.async || !this.opts.isFiberDisabled) {
12
+ if (!node.async) {
13
13
  return;
14
14
  }
15
15
 
16
- // The original function becomes a non-async function that
17
- // returns a Promise.
18
- node.async = false;
19
-
20
16
  // The inner function should inherit lexical environment items
21
17
  // like `this`, `super`, and `arguments` from the outer
22
18
  // function, and arrow functions provide exactly that behavior.
@@ -30,6 +26,17 @@ module.exports = function (babel) {
30
26
  !! this.opts.useNativeAsyncAwait
31
27
  );
32
28
 
29
+ if (this.opts.isFiberDisabled && this.opts.overwriteFiberExit) {
30
+ if (node.type === "ArrowFunctionExpression") {
31
+ node.body = innerFn;
32
+ }
33
+ return;
34
+ }
35
+
36
+ // The original function becomes a non-async function that
37
+ // returns a Promise.
38
+ node.async = false;
39
+
33
40
  const promiseResultExpression = t.callExpression(
34
41
  t.memberExpression(
35
42
  t.identifier("Promise"),