Skip to content
This repository was archived by the owner on Feb 1, 2025. It is now read-only.

Add ArrowFunctionExpression to opaqueTypes#277

Merged
benjamn merged 1 commit intofacebook:masterfrom
yavorsky:arrow-functions-to-opaque
Feb 13, 2017
Merged

Add ArrowFunctionExpression to opaqueTypes#277
benjamn merged 1 commit intofacebook:masterfrom
yavorsky:arrow-functions-to-opaque

Conversation

@yavorsky
Copy link
Copy Markdown
Contributor

@yavorsky yavorsky commented Feb 13, 2017

Using arrow functions inside generators:

function* gen () {
  const a = () => { 
    return 1 
  };
};

throws:

Error: src/index.js: unknown Expression of type "ArrowFunctionExpression"
    at /Users/aqson/Development/temp/babel-preset-env-issue-160/node_modules/regenerator-transform/lib/emit.js:1035:15

But works fine with FunctionExpressions and arrow functions without BlockStatements:

function gen* {
  const a = () => 1;
};

function gen2* {
  const a = function () {
    return 1;
  };
};

The root of the problems lies in the explodeStatement method where we check node for the leaps and 2 of working cases returns false, but the one with ArrowFunctionExpression + BlockStatement - true.

Resolves: babel/babel-preset-env#160 and other cases without babel-plugin-transform-es2015-arrow-functions.

@facebook-github-bot
Copy link
Copy Markdown

Thank you for your pull request and welcome to our community. We require contributors to sign our Contributor License Agreement, and we don't seem to have you on file. In order for us to review and merge your code, please sign up at https://code.facebook.com/cla - and if you have received this in error or have any questions, please drop us a line at cla@fb.com. Thanks!

If you are contributing on behalf of someone else (eg your employer): the individual CLA is not sufficient - use https://developers.facebook.com/opensource/cla?type=company instead. Contact cla@fb.com if you have any questions.

@facebook-github-bot
Copy link
Copy Markdown

Thank you for signing our Contributor License Agreement. We can now accept your code for this (and any) Facebook open source project. Thanks!

let opaqueTypes = {
FunctionExpression: true
FunctionExpression: true,
ArrowFunctionExpression: true
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This makes a ton of sense!

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants