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() {
|
function CLASS_NAME() {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return CLASS_NAME;
|
return CLASS_NAME;
|
||||||
})();
|
})()
|
||||||
|
|||||||
@ -4,14 +4,23 @@ var b = require("ast-types").builders;
|
|||||||
var _ = require("lodash");
|
var _ = require("lodash");
|
||||||
|
|
||||||
exports.ClassDeclaration = function (node) {
|
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 superName = node.superClass;
|
||||||
var className = node.id;
|
var className = node.id;
|
||||||
|
|
||||||
var root = util.template("class", {
|
var container = util.template("class", {
|
||||||
CLASS_NAME: className
|
CLASS_NAME: className
|
||||||
}, true);
|
});
|
||||||
|
|
||||||
var container = root.declarations[0].init;
|
|
||||||
var block = container.callee.body;
|
var block = container.callee.body;
|
||||||
var body = block.body;
|
var body = block.body;
|
||||||
|
|
||||||
@ -31,7 +40,7 @@ exports.ClassDeclaration = function (node) {
|
|||||||
|
|
||||||
body.push(returnStatement);
|
body.push(returnStatement);
|
||||||
|
|
||||||
return root;
|
return container;
|
||||||
};
|
};
|
||||||
|
|
||||||
var buildClassBody = function (body, className, superName, node) {
|
var buildClassBody = function (body, className, superName, node) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user