support ClassExpression - fixes #21

This commit is contained in:
Sebastian McKenzie 2014-10-09 13:11:07 +11:00
parent b162bced43
commit 5d9fc19f76
3 changed files with 22 additions and 6 deletions

View File

@ -0,0 +1,7 @@
(function () {
function CLASS_NAME() {
}
return CLASS_NAME;
})()

View File

@ -1,7 +1,7 @@
var CLASS_NAME = (function () {
(function () {
function CLASS_NAME() {
}
return CLASS_NAME;
})();
})()

View File

@ -4,14 +4,23 @@ var b = require("ast-types").builders;
var _ = require("lodash");
exports.ClassDeclaration = function (node) {
return b.variableDeclaration("var", [
b.variableDeclarator(node.id, buildClass(node))
]);
};
exports.ClassExpression = function (node) {
return buildClass(node);
};
var buildClass = function (node) {
var superName = node.superClass;
var className = node.id;
var root = util.template("class", {
var container = util.template("class", {
CLASS_NAME: className
}, true);
});
var container = root.declarations[0].init;
var block = container.callee.body;
var body = block.body;
@ -31,7 +40,7 @@ exports.ClassDeclaration = function (node) {
body.push(returnStatement);
return root;
return container;
};
var buildClassBody = function (body, className, superName, node) {