better ClassDeclaration contextual transformation
This commit is contained in:
@@ -3,7 +3,19 @@ var util = require("../../util");
|
||||
var t = require("../../types");
|
||||
|
||||
exports.ClassDeclaration = function (node, parent, file, scope) {
|
||||
return new Class(node, file, scope, false).run();
|
||||
var closure = true;
|
||||
if (t.isProgram(parent) || t.isBlockStatement(parent)) {
|
||||
closure = false;
|
||||
}
|
||||
|
||||
var newNode = new Class(node, file, scope, closure).run();
|
||||
if (closure || t.isFunctionExpression(newNode)) {
|
||||
return t.variableDeclaration("let", [
|
||||
t.variableDeclarator(node.id, newNode)
|
||||
]);
|
||||
} else {
|
||||
return newNode;
|
||||
}
|
||||
};
|
||||
|
||||
exports.ClassExpression = function (node, parent, file, scope) {
|
||||
|
||||
Reference in New Issue
Block a user