support ClassExpression - fixes #21
This commit is contained in:
parent
b162bced43
commit
5d9fc19f76
7
lib/6to5/templates/class-statement-container.js
Normal file
7
lib/6to5/templates/class-statement-container.js
Normal file
@ -0,0 +1,7 @@
|
||||
(function () {
|
||||
function CLASS_NAME() {
|
||||
|
||||
}
|
||||
|
||||
return CLASS_NAME;
|
||||
})()
|
||||
@ -1,7 +1,7 @@
|
||||
var CLASS_NAME = (function () {
|
||||
(function () {
|
||||
function CLASS_NAME() {
|
||||
|
||||
}
|
||||
|
||||
return CLASS_NAME;
|
||||
})();
|
||||
})()
|
||||
|
||||
@ -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) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user