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:
parent
d1b90e125b
commit
94e556465b
@ -18,11 +18,17 @@ export class ClassFieldDeclaration extends ParseTree {
|
|||||||
}
|
}
|
||||||
|
|
||||||
visit(visitor) {
|
visit(visitor) {
|
||||||
visitor.visitClassFieldDeclaration(this);
|
if (visitor.visitClassFieldDeclaration) {
|
||||||
|
visitor.visitClassFieldDeclaration(this);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
transform(transformer) {
|
transform(transformer) {
|
||||||
return transformer.transformClassFieldDeclaration(this);
|
if (transformer.transformClassFieldDeclaration) {
|
||||||
|
return transformer.transformClassFieldDeclaration(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
return this;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -54,14 +60,20 @@ export class PropertyConstructorAssignment extends PropertyMethodAssignment {
|
|||||||
* @param {ParseTreeTransformer} transformer
|
* @param {ParseTreeTransformer} transformer
|
||||||
*/
|
*/
|
||||||
transform(transformer) {
|
transform(transformer) {
|
||||||
return transformer.transformPropertyConstructorAssignment(this);
|
if (transformer.transformPropertyConstructorAssignment) {
|
||||||
|
return transformer.transformPropertyConstructorAssignment(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {ParseTreeVisitor} visitor
|
* @param {ParseTreeVisitor} visitor
|
||||||
*/
|
*/
|
||||||
visit(visitor) {
|
visit(visitor) {
|
||||||
visitor.visitPropertyConstructorAssignment(this);
|
if (visitor.visitPropertyConstructorAssignment) {
|
||||||
|
visitor.visitPropertyConstructorAssignment(this);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -89,14 +101,20 @@ export class NamedParameterList extends ParseTree {
|
|||||||
* @param {ParseTreeTransformer} transformer
|
* @param {ParseTreeTransformer} transformer
|
||||||
*/
|
*/
|
||||||
transform(transformer) {
|
transform(transformer) {
|
||||||
return transformer.transformNamedParameterList(this);
|
if (transformer.transformNamedParameterList) {
|
||||||
|
return transformer.transformNamedParameterList(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {ParseTreeVisitor} visitor
|
* @param {ParseTreeVisitor} visitor
|
||||||
*/
|
*/
|
||||||
visit(visitor) {
|
visit(visitor) {
|
||||||
visitor.visitNamedParameterList(this);
|
if (visitor.visitNamedParameterList) {
|
||||||
|
visitor.visitNamedParameterList(this);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -126,14 +144,20 @@ export class ObjectPatternBindingElement extends ParseTree {
|
|||||||
* @param {ParseTreeTransformer} transformer
|
* @param {ParseTreeTransformer} transformer
|
||||||
*/
|
*/
|
||||||
transform(transformer) {
|
transform(transformer) {
|
||||||
return transformer.transformObjectPatternBindingElement(this);
|
if (transformer.transformObjectPatternBindingElement) {
|
||||||
|
return transformer.transformObjectPatternBindingElement(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {ParseTreeVisitor} visitor
|
* @param {ParseTreeVisitor} visitor
|
||||||
*/
|
*/
|
||||||
visit(visitor) {
|
visit(visitor) {
|
||||||
visitor.visitObjectPatternBindingElement(this);
|
if (visitor.visitObjectPatternBindingElement) {
|
||||||
|
visitor.visitObjectPatternBindingElement(this);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
x
Reference in New Issue
Block a user