add support for member expression super classes - closes #22
This commit is contained in:
@@ -13,10 +13,23 @@ exports.ClassExpression = function (node) {
|
||||
return buildClass(node);
|
||||
};
|
||||
|
||||
var getMemberExpressionObject = function (node) {
|
||||
while (node.type === "MemberExpression") {
|
||||
node = node.object;
|
||||
}
|
||||
return node;
|
||||
};
|
||||
|
||||
var buildClass = function (node) {
|
||||
var superName = node.superClass;
|
||||
var className = node.id;
|
||||
|
||||
var superClassReference = node.superClass;
|
||||
|
||||
if (superName && superName.type === "MemberExpression") {
|
||||
superClassReference = getMemberExpressionObject(superName);
|
||||
}
|
||||
|
||||
var container = util.template("class", {
|
||||
CLASS_NAME: className
|
||||
});
|
||||
@@ -32,8 +45,8 @@ var buildClass = function (node) {
|
||||
CLASS_NAME: className
|
||||
}, true));
|
||||
|
||||
container.arguments.push(superName);
|
||||
container.callee.params.push(superName);
|
||||
container.arguments.push(superClassReference);
|
||||
container.callee.params.push(superClassReference);
|
||||
}
|
||||
|
||||
buildClassBody(body, className, superName, node);
|
||||
|
||||
Reference in New Issue
Block a user