diff --git a/src/extra/ast.ts b/src/extra/ast.ts index 02baff920c..5389a86a5a 100644 --- a/src/extra/ast.ts +++ b/src/extra/ast.ts @@ -905,7 +905,7 @@ export class ASTBuilder { sb.push("class"); } var typeParameters = node.typeParameters; - if (typeParameters && typeParameters.length) { + if (typeParameters != null && typeParameters.length > 0) { sb.push("<"); this.visitTypeParameter(typeParameters[0]); for (let i = 1, k = typeParameters.length; i < k; ++i) { @@ -1000,9 +1000,10 @@ export class ASTBuilder { visitEnumValueDeclaration(node: EnumValueDeclaration): void { this.visitIdentifierExpression(node.name); - if (node.initializer) { + var initializer = node.initializer; + if (initializer) { this.sb.push(" = "); - this.visitNode(node.initializer); + this.visitNode(initializer); } } @@ -1028,7 +1029,7 @@ export class ASTBuilder { sb.push("declare "); } var members = node.members; - if (members && members.length) { + if (members != null && members.length > 0) { let numMembers = members.length; sb.push("export {\n"); let indentLevel = ++this.indentLevel; @@ -1328,7 +1329,7 @@ export class ASTBuilder { sb.push("interface "); this.visitIdentifierExpression(node.name); var typeParameters = node.typeParameters; - if (typeParameters && typeParameters.length) { + if (typeParameters != null && typeParameters.length > 0) { sb.push("<"); this.visitTypeParameter(typeParameters[0]); for (let i = 1, k = typeParameters.length; i < k; ++i) { diff --git a/src/index.ts b/src/index.ts index f28bf24f9f..cb191ae928 100644 --- a/src/index.ts +++ b/src/index.ts @@ -287,6 +287,8 @@ export * from "./program"; export * from "./resolver"; export * from "./tokenizer"; export * from "./types"; +// TODO: When vTables are pulled, perhaps it would be better to extend an ASTWalker +export * from "./extra/ast"; import * as util from "./util/index"; export { util };