From add0a7d5fe58e9e52f8267fd16812ba92eced431 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Sat, 27 Dec 2014 21:24:29 +1100 Subject: [PATCH] better ClassDeclarations in expression contexts --- lib/6to5/transformation/transformers/es6-classes.js | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/lib/6to5/transformation/transformers/es6-classes.js b/lib/6to5/transformation/transformers/es6-classes.js index db1022a33d..86629c0f03 100644 --- a/lib/6to5/transformation/transformers/es6-classes.js +++ b/lib/6to5/transformation/transformers/es6-classes.js @@ -9,10 +9,15 @@ exports.ClassDeclaration = function (node, parent, file, scope) { } var newNode = new Class(node, file, scope, closure).run(); - if (closure || t.isFunctionExpression(newNode)) { - return t.variableDeclaration("let", [ - t.variableDeclarator(node.id, newNode) - ]); + if (closure) { + // declaration in an expression context... + // export default class Foo {} + scope.push({ + kind: "var", + key: node.id.key, + id: node.id + }); + return t.assignmentExpression("=", node.id, newNode); } else { return newNode; }