diff --git a/lib/6to5/transformation/transformers/spec/block-scoped-functions.js b/lib/6to5/transformation/transformers/spec/block-scoped-functions.js index 1f7f4c7ef0..9aeffc454f 100644 --- a/lib/6to5/transformation/transformers/spec/block-scoped-functions.js +++ b/lib/6to5/transformation/transformers/spec/block-scoped-functions.js @@ -3,13 +3,13 @@ var t = require("../../../types"); exports.BlockStatement = function (node, parent) { - if (t.isFunction(parent) || t.isExportDeclaration(parent)) { + if ((t.isFunction(parent) && parent.body === node) || t.isExportDeclaration(parent)) { return; } for (var i = 0; i < node.body.length; i++) { var func = node.body[i]; - if (!t.isFunctionDeclaration(i)) continue; + if (!t.isFunctionDeclaration(func)) continue; var declar = t.variableDeclaration("let", [ t.variableDeclarator(func.id, t.toExpression(func)) @@ -21,6 +21,6 @@ exports.BlockStatement = function (node, parent) { // todo: name this func.id = null; - func.body[i] = declar; + node.body[i] = declar; } };