fix(transpiler): only call transform/visit when defined

Our custom ParseTree classes should not expect that every
transformer/visitor defines the methods to transform/visit them.
This commit is contained in:
Vojta Jina 2014-10-09 15:08:30 -07:00
parent d1b90e125b
commit 94e556465b

View File

@ -18,12 +18,18 @@ export class ClassFieldDeclaration extends ParseTree {
}
visit(visitor) {
if (visitor.visitClassFieldDeclaration) {
visitor.visitClassFieldDeclaration(this);
}
}
transform(transformer) {
if (transformer.transformClassFieldDeclaration) {
return transformer.transformClassFieldDeclaration(this);
}
return this;
}
}
var CLASS_FIELD_DECLARATION = ParseTreeType.CLASS_FIELD_DECLARATION;
@ -54,15 +60,21 @@ export class PropertyConstructorAssignment extends PropertyMethodAssignment {
* @param {ParseTreeTransformer} transformer
*/
transform(transformer) {
if (transformer.transformPropertyConstructorAssignment) {
return transformer.transformPropertyConstructorAssignment(this);
}
return this;
}
/**
* @param {ParseTreeVisitor} visitor
*/
visit(visitor) {
if (visitor.visitPropertyConstructorAssignment) {
visitor.visitPropertyConstructorAssignment(this);
}
}
/**
* @type {ParseTreeType}
@ -89,15 +101,21 @@ export class NamedParameterList extends ParseTree {
* @param {ParseTreeTransformer} transformer
*/
transform(transformer) {
if (transformer.transformNamedParameterList) {
return transformer.transformNamedParameterList(this);
}
return this;
}
/**
* @param {ParseTreeVisitor} visitor
*/
visit(visitor) {
if (visitor.visitNamedParameterList) {
visitor.visitNamedParameterList(this);
}
}
/**
* @type {ParseTreeType}
@ -126,15 +144,21 @@ export class ObjectPatternBindingElement extends ParseTree {
* @param {ParseTreeTransformer} transformer
*/
transform(transformer) {
if (transformer.transformObjectPatternBindingElement) {
return transformer.transformObjectPatternBindingElement(this);
}
return this;
}
/**
* @param {ParseTreeVisitor} visitor
*/
visit(visitor) {
if (visitor.visitObjectPatternBindingElement) {
visitor.visitObjectPatternBindingElement(this);
}
}
/**
* @type {ParseTreeType}