From 9a77a7dbaadebbf1d6f6f176f64870f1fe3148ff Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Mon, 2 Mar 2015 12:25:08 +1100 Subject: [PATCH] ensure function expression body is a block statement - fixes babel/babel-eslint#20 --- eslint/babel-eslint-parser/acorn-to-esprima.js | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/eslint/babel-eslint-parser/acorn-to-esprima.js b/eslint/babel-eslint-parser/acorn-to-esprima.js index a7df3060d2..b8e8540a9e 100644 --- a/eslint/babel-eslint-parser/acorn-to-esprima.js +++ b/eslint/babel-eslint-parser/acorn-to-esprima.js @@ -45,11 +45,6 @@ var astTransformVisitor = { delete node.name; } - if (t.isFunction(node) && node.async) { - node.generator = true; - node.async - false; - } - if (t.isAwaitExpression(node)) { node.type = "YieldExpression"; } @@ -98,6 +93,16 @@ var astTransformVisitor = { if (t.isArrowFunctionExpression(node)) { node.type = "FunctionExpression"; + if (node.body.type !== "BlockStatement") { + node.body = t.inherits(t.blockStatement([ + node.body + ]), node); + } + } + + if (t.isFunction(node) && node.async) { + node.generator = true; + node.async - false; } } };