=== tests/cases/conformance/parser/ecmascript5/parserRealSource14.ts ===
// Copyright (c) Microsoft. All rights reserved. Licensed under the Apache License, Version 2.0.
// See LICENSE.txt in the project root for complete license information.
///
module TypeScript {
>TypeScript : typeof TypeScript
export function lastOf(items: any[]): any {
>lastOf : (items: any[]) => any
>items : any[]
return (items === null || items.length === 0) ? null : items[items.length - 1];
>(items === null || items.length === 0) ? null : items[items.length - 1] : any
>(items === null || items.length === 0) : boolean
>items === null || items.length === 0 : boolean
>items === null : boolean
>items : any[]
>null : null
>items.length === 0 : boolean
>items.length : number
>items : any[]
>length : number
>0 : 0
>null : null
>items[items.length - 1] : any
>items : any[]
>items.length - 1 : number
>items.length : number
>items : any[]
>length : number
>1 : 1
}
export function max(a: number, b: number): number {
>max : (a: number, b: number) => number
>a : number
>b : number
return a >= b ? a : b;
>a >= b ? a : b : number
>a >= b : boolean
>a : number
>b : number
>a : number
>b : number
}
export function min(a: number, b: number): number {
>min : (a: number, b: number) => number
>a : number
>b : number
return a <= b ? a : b;
>a <= b ? a : b : number
>a <= b : boolean
>a : number
>b : number
>a : number
>b : number
}
//
// Helper class representing a path from a root ast node to a (grand)child ast node.
// This is helpful as our tree don't have parents.
//
export class AstPath {
>AstPath : AstPath
public asts: TypeScript.AST[] = [];
>asts : TypeScript.AST[]
>TypeScript : any
>[] : undefined[]
public top: number = -1;
>top : number
>-1 : -1
>1 : 1
static reverseIndexOf(items: any[], index: number): any {
>reverseIndexOf : (items: any[], index: number) => any
>items : any[]
>index : number
return (items === null || items.length <= index) ? null : items[items.length - index - 1];
>(items === null || items.length <= index) ? null : items[items.length - index - 1] : any
>(items === null || items.length <= index) : boolean
>items === null || items.length <= index : boolean
>items === null : boolean
>items : any[]
>null : null
>items.length <= index : boolean
>items.length : number
>items : any[]
>length : number
>index : number
>null : null
>items[items.length - index - 1] : any
>items : any[]
>items.length - index - 1 : number
>items.length - index : number
>items.length : number
>items : any[]
>length : number
>index : number
>1 : 1
}
public clone(): AstPath {
>clone : () => AstPath
var clone = new AstPath();
>clone : AstPath
>new AstPath() : AstPath
>AstPath : typeof AstPath
clone.asts = this.asts.map((value) => { return value; });
>clone.asts = this.asts.map((value) => { return value; }) : TypeScript.AST[]
>clone.asts : TypeScript.AST[]
>clone : AstPath
>asts : TypeScript.AST[]
>this.asts.map((value) => { return value; }) : TypeScript.AST[]
>this.asts.map : (callbackfn: (value: TypeScript.AST, index: number, array: TypeScript.AST[]) => U, thisArg?: any) => U[]
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>map : (callbackfn: (value: TypeScript.AST, index: number, array: TypeScript.AST[]) => U, thisArg?: any) => U[]
>(value) => { return value; } : (value: TypeScript.AST) => TypeScript.AST
>value : TypeScript.AST
>value : TypeScript.AST
clone.top = this.top;
>clone.top = this.top : number
>clone.top : number
>clone : AstPath
>top : number
>this.top : number
>this : this
>top : number
return clone;
>clone : AstPath
}
public pop(): TypeScript.AST {
>pop : () => TypeScript.AST
>TypeScript : any
var head = this.ast();
>head : TypeScript.AST
>this.ast() : TypeScript.AST
>this.ast : () => TypeScript.AST
>this : this
>ast : () => TypeScript.AST
this.up();
>this.up() : void
>this.up : () => void
>this : this
>up : () => void
while (this.asts.length > this.count()) {
>this.asts.length > this.count() : boolean
>this.asts.length : number
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>length : number
>this.count() : number
>this.count : () => number
>this : this
>count : () => number
this.asts.pop();
>this.asts.pop() : TypeScript.AST
>this.asts.pop : () => TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>pop : () => TypeScript.AST
}
return head;
>head : TypeScript.AST
}
public push(ast: TypeScript.AST) {
>push : (ast: TypeScript.AST) => void
>ast : TypeScript.AST
>TypeScript : any
while (this.asts.length > this.count()) {
>this.asts.length > this.count() : boolean
>this.asts.length : number
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>length : number
>this.count() : number
>this.count : () => number
>this : this
>count : () => number
this.asts.pop();
>this.asts.pop() : TypeScript.AST
>this.asts.pop : () => TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>pop : () => TypeScript.AST
}
this.top = this.asts.length;
>this.top = this.asts.length : number
>this.top : number
>this : this
>top : number
>this.asts.length : number
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>length : number
this.asts.push(ast);
>this.asts.push(ast) : number
>this.asts.push : (...items: TypeScript.AST[]) => number
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>push : (...items: TypeScript.AST[]) => number
>ast : TypeScript.AST
}
public up() {
>up : () => void
if (this.top <= -1)
>this.top <= -1 : boolean
>this.top : number
>this : this
>top : number
>-1 : -1
>1 : 1
throw new Error("Invalid call to 'up'");
>new Error("Invalid call to 'up'") : Error
>Error : ErrorConstructor
>"Invalid call to 'up'" : "Invalid call to 'up'"
this.top--;
>this.top-- : number
>this.top : number
>this : this
>top : number
}
public down() {
>down : () => void
if (this.top == this.ast.length - 1)
>this.top == this.ast.length - 1 : boolean
>this.top : number
>this : this
>top : number
>this.ast.length - 1 : number
>this.ast.length : number
>this.ast : () => TypeScript.AST
>this : this
>ast : () => TypeScript.AST
>length : number
>1 : 1
throw new Error("Invalid call to 'down'");
>new Error("Invalid call to 'down'") : Error
>Error : ErrorConstructor
>"Invalid call to 'down'" : "Invalid call to 'down'"
this.top++;
>this.top++ : number
>this.top : number
>this : this
>top : number
}
public nodeType(): TypeScript.NodeType {
>nodeType : () => TypeScript.NodeType
>TypeScript : any
if (this.ast() == null)
>this.ast() == null : boolean
>this.ast() : TypeScript.AST
>this.ast : () => TypeScript.AST
>this : this
>ast : () => TypeScript.AST
>null : null
return TypeScript.NodeType.None;
>TypeScript.NodeType.None : any
>TypeScript.NodeType : any
>TypeScript : typeof TypeScript
>NodeType : any
>None : any
return this.ast().nodeType;
>this.ast().nodeType : any
>this.ast() : TypeScript.AST
>this.ast : () => TypeScript.AST
>this : this
>ast : () => TypeScript.AST
>nodeType : any
}
public ast() {
>ast : () => TypeScript.AST
return AstPath.reverseIndexOf(this.asts, this.asts.length - (this.top + 1));
>AstPath.reverseIndexOf(this.asts, this.asts.length - (this.top + 1)) : TypeScript.AST
>TypeScript : any
>AstPath.reverseIndexOf(this.asts, this.asts.length - (this.top + 1)) : any
>AstPath.reverseIndexOf : (items: any[], index: number) => any
>AstPath : typeof AstPath
>reverseIndexOf : (items: any[], index: number) => any
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.asts.length - (this.top + 1) : number
>this.asts.length : number
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>length : number
>(this.top + 1) : number
>this.top + 1 : number
>this.top : number
>this : this
>top : number
>1 : 1
}
public parent() {
>parent : () => TypeScript.AST
return AstPath.reverseIndexOf(this.asts, this.asts.length - this.top);
>AstPath.reverseIndexOf(this.asts, this.asts.length - this.top) : TypeScript.AST
>TypeScript : any
>AstPath.reverseIndexOf(this.asts, this.asts.length - this.top) : any
>AstPath.reverseIndexOf : (items: any[], index: number) => any
>AstPath : typeof AstPath
>reverseIndexOf : (items: any[], index: number) => any
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.asts.length - this.top : number
>this.asts.length : number
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>length : number
>this.top : number
>this : this
>top : number
}
public count() {
>count : () => number
return this.top + 1;
>this.top + 1 : number
>this.top : number
>this : this
>top : number
>1 : 1
}
public get(index: number): TypeScript.AST {
>get : (index: number) => TypeScript.AST
>index : number
>TypeScript : any
return this.asts[index];
>this.asts[index] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>index : number
}
public isNameOfClass(): boolean {
>isNameOfClass : () => boolean
if (this.ast() === null || this.parent() === null)
>this.ast() === null || this.parent() === null : boolean
>this.ast() === null : boolean
>this.ast() : TypeScript.AST
>this.ast : () => TypeScript.AST
>this : this
>ast : () => TypeScript.AST
>null : null
>this.parent() === null : boolean
>this.parent() : TypeScript.AST
>this.parent : () => TypeScript.AST
>this : this
>parent : () => TypeScript.AST
>null : null
return false;
>false : false
return (this.ast().nodeType === TypeScript.NodeType.Name) &&
>(this.ast().nodeType === TypeScript.NodeType.Name) && (this.parent().nodeType === TypeScript.NodeType.ClassDeclaration) && ((this.parent()).name === this.ast()) : boolean
>(this.ast().nodeType === TypeScript.NodeType.Name) && (this.parent().nodeType === TypeScript.NodeType.ClassDeclaration) : boolean
>(this.ast().nodeType === TypeScript.NodeType.Name) : boolean
>this.ast().nodeType === TypeScript.NodeType.Name : boolean
>this.ast().nodeType : any
>this.ast() : TypeScript.AST
>this.ast : () => TypeScript.AST
>this : this
>ast : () => TypeScript.AST
>nodeType : any
>TypeScript.NodeType.Name : any
>TypeScript.NodeType : any
>TypeScript : typeof TypeScript
>NodeType : any
>Name : any
(this.parent().nodeType === TypeScript.NodeType.ClassDeclaration) &&
>(this.parent().nodeType === TypeScript.NodeType.ClassDeclaration) : boolean
>this.parent().nodeType === TypeScript.NodeType.ClassDeclaration : boolean
>this.parent().nodeType : any
>this.parent() : TypeScript.AST
>this.parent : () => TypeScript.AST
>this : this
>parent : () => TypeScript.AST
>nodeType : any
>TypeScript.NodeType.ClassDeclaration : any
>TypeScript.NodeType : any
>TypeScript : typeof TypeScript
>NodeType : any
>ClassDeclaration : any
((this.parent()).name === this.ast());
>((this.parent()).name === this.ast()) : boolean
>(this.parent()).name === this.ast() : boolean
>(this.parent()).name : any
>(this.parent()) : TypeScript.InterfaceDeclaration
>this.parent() : TypeScript.InterfaceDeclaration
>TypeScript : any
>this.parent() : TypeScript.AST
>this.parent : () => TypeScript.AST
>this : this
>parent : () => TypeScript.AST
>name : any
>this.ast() : TypeScript.AST
>this.ast : () => TypeScript.AST
>this : this
>ast : () => TypeScript.AST
}
public isNameOfInterface(): boolean {
>isNameOfInterface : () => boolean
if (this.ast() === null || this.parent() === null)
>this.ast() === null || this.parent() === null : boolean
>this.ast() === null : boolean
>this.ast() : TypeScript.AST
>this.ast : () => TypeScript.AST
>this : this
>ast : () => TypeScript.AST
>null : null
>this.parent() === null : boolean
>this.parent() : TypeScript.AST
>this.parent : () => TypeScript.AST
>this : this
>parent : () => TypeScript.AST
>null : null
return false;
>false : false
return (this.ast().nodeType === TypeScript.NodeType.Name) &&
>(this.ast().nodeType === TypeScript.NodeType.Name) && (this.parent().nodeType === TypeScript.NodeType.InterfaceDeclaration) && ((this.parent()).name === this.ast()) : boolean
>(this.ast().nodeType === TypeScript.NodeType.Name) && (this.parent().nodeType === TypeScript.NodeType.InterfaceDeclaration) : boolean
>(this.ast().nodeType === TypeScript.NodeType.Name) : boolean
>this.ast().nodeType === TypeScript.NodeType.Name : boolean
>this.ast().nodeType : any
>this.ast() : TypeScript.AST
>this.ast : () => TypeScript.AST
>this : this
>ast : () => TypeScript.AST
>nodeType : any
>TypeScript.NodeType.Name : any
>TypeScript.NodeType : any
>TypeScript : typeof TypeScript
>NodeType : any
>Name : any
(this.parent().nodeType === TypeScript.NodeType.InterfaceDeclaration) &&
>(this.parent().nodeType === TypeScript.NodeType.InterfaceDeclaration) : boolean
>this.parent().nodeType === TypeScript.NodeType.InterfaceDeclaration : boolean
>this.parent().nodeType : any
>this.parent() : TypeScript.AST
>this.parent : () => TypeScript.AST
>this : this
>parent : () => TypeScript.AST
>nodeType : any
>TypeScript.NodeType.InterfaceDeclaration : any
>TypeScript.NodeType : any
>TypeScript : typeof TypeScript
>NodeType : any
>InterfaceDeclaration : any
((this.parent()).name === this.ast());
>((this.parent()).name === this.ast()) : boolean
>(this.parent()).name === this.ast() : boolean
>(this.parent()).name : any
>(this.parent()) : TypeScript.InterfaceDeclaration
>this.parent() : TypeScript.InterfaceDeclaration
>TypeScript : any
>this.parent() : TypeScript.AST
>this.parent : () => TypeScript.AST
>this : this
>parent : () => TypeScript.AST
>name : any
>this.ast() : TypeScript.AST
>this.ast : () => TypeScript.AST
>this : this
>ast : () => TypeScript.AST
}
public isNameOfArgument(): boolean {
>isNameOfArgument : () => boolean
if (this.ast() === null || this.parent() === null)
>this.ast() === null || this.parent() === null : boolean
>this.ast() === null : boolean
>this.ast() : TypeScript.AST
>this.ast : () => TypeScript.AST
>this : this
>ast : () => TypeScript.AST
>null : null
>this.parent() === null : boolean
>this.parent() : TypeScript.AST
>this.parent : () => TypeScript.AST
>this : this
>parent : () => TypeScript.AST
>null : null
return false;
>false : false
return (this.ast().nodeType === TypeScript.NodeType.Name) &&
>(this.ast().nodeType === TypeScript.NodeType.Name) && (this.parent().nodeType === TypeScript.NodeType.ArgDecl) && ((this.parent()).id === this.ast()) : boolean
>(this.ast().nodeType === TypeScript.NodeType.Name) && (this.parent().nodeType === TypeScript.NodeType.ArgDecl) : boolean
>(this.ast().nodeType === TypeScript.NodeType.Name) : boolean
>this.ast().nodeType === TypeScript.NodeType.Name : boolean
>this.ast().nodeType : any
>this.ast() : TypeScript.AST
>this.ast : () => TypeScript.AST
>this : this
>ast : () => TypeScript.AST
>nodeType : any
>TypeScript.NodeType.Name : any
>TypeScript.NodeType : any
>TypeScript : typeof TypeScript
>NodeType : any
>Name : any
(this.parent().nodeType === TypeScript.NodeType.ArgDecl) &&
>(this.parent().nodeType === TypeScript.NodeType.ArgDecl) : boolean
>this.parent().nodeType === TypeScript.NodeType.ArgDecl : boolean
>this.parent().nodeType : any
>this.parent() : TypeScript.AST
>this.parent : () => TypeScript.AST
>this : this
>parent : () => TypeScript.AST
>nodeType : any
>TypeScript.NodeType.ArgDecl : any
>TypeScript.NodeType : any
>TypeScript : typeof TypeScript
>NodeType : any
>ArgDecl : any
((this.parent()).id === this.ast());
>((this.parent()).id === this.ast()) : boolean
>(this.parent()).id === this.ast() : boolean
>(this.parent()).id : any
>(this.parent()) : TypeScript.ArgDecl
>this.parent() : TypeScript.ArgDecl
>TypeScript : any
>this.parent() : TypeScript.AST
>this.parent : () => TypeScript.AST
>this : this
>parent : () => TypeScript.AST
>id : any
>this.ast() : TypeScript.AST
>this.ast : () => TypeScript.AST
>this : this
>ast : () => TypeScript.AST
}
public isNameOfVariable(): boolean {
>isNameOfVariable : () => boolean
if (this.ast() === null || this.parent() === null)
>this.ast() === null || this.parent() === null : boolean
>this.ast() === null : boolean
>this.ast() : TypeScript.AST
>this.ast : () => TypeScript.AST
>this : this
>ast : () => TypeScript.AST
>null : null
>this.parent() === null : boolean
>this.parent() : TypeScript.AST
>this.parent : () => TypeScript.AST
>this : this
>parent : () => TypeScript.AST
>null : null
return false;
>false : false
return (this.ast().nodeType === TypeScript.NodeType.Name) &&
>(this.ast().nodeType === TypeScript.NodeType.Name) && (this.parent().nodeType === TypeScript.NodeType.VarDecl) && ((this.parent()).id === this.ast()) : boolean
>(this.ast().nodeType === TypeScript.NodeType.Name) && (this.parent().nodeType === TypeScript.NodeType.VarDecl) : boolean
>(this.ast().nodeType === TypeScript.NodeType.Name) : boolean
>this.ast().nodeType === TypeScript.NodeType.Name : boolean
>this.ast().nodeType : any
>this.ast() : TypeScript.AST
>this.ast : () => TypeScript.AST
>this : this
>ast : () => TypeScript.AST
>nodeType : any
>TypeScript.NodeType.Name : any
>TypeScript.NodeType : any
>TypeScript : typeof TypeScript
>NodeType : any
>Name : any
(this.parent().nodeType === TypeScript.NodeType.VarDecl) &&
>(this.parent().nodeType === TypeScript.NodeType.VarDecl) : boolean
>this.parent().nodeType === TypeScript.NodeType.VarDecl : boolean
>this.parent().nodeType : any
>this.parent() : TypeScript.AST
>this.parent : () => TypeScript.AST
>this : this
>parent : () => TypeScript.AST
>nodeType : any
>TypeScript.NodeType.VarDecl : any
>TypeScript.NodeType : any
>TypeScript : typeof TypeScript
>NodeType : any
>VarDecl : any
((this.parent()).id === this.ast());
>((this.parent()).id === this.ast()) : boolean
>(this.parent()).id === this.ast() : boolean
>(this.parent()).id : any
>(this.parent()) : TypeScript.VarDecl
>this.parent() : TypeScript.VarDecl
>TypeScript : any
>this.parent() : TypeScript.AST
>this.parent : () => TypeScript.AST
>this : this
>parent : () => TypeScript.AST
>id : any
>this.ast() : TypeScript.AST
>this.ast : () => TypeScript.AST
>this : this
>ast : () => TypeScript.AST
}
public isNameOfModule(): boolean {
>isNameOfModule : () => boolean
if (this.ast() === null || this.parent() === null)
>this.ast() === null || this.parent() === null : boolean
>this.ast() === null : boolean
>this.ast() : TypeScript.AST
>this.ast : () => TypeScript.AST
>this : this
>ast : () => TypeScript.AST
>null : null
>this.parent() === null : boolean
>this.parent() : TypeScript.AST
>this.parent : () => TypeScript.AST
>this : this
>parent : () => TypeScript.AST
>null : null
return false;
>false : false
return (this.ast().nodeType === TypeScript.NodeType.Name) &&
>(this.ast().nodeType === TypeScript.NodeType.Name) && (this.parent().nodeType === TypeScript.NodeType.ModuleDeclaration) && ((this.parent()).name === this.ast()) : boolean
>(this.ast().nodeType === TypeScript.NodeType.Name) && (this.parent().nodeType === TypeScript.NodeType.ModuleDeclaration) : boolean
>(this.ast().nodeType === TypeScript.NodeType.Name) : boolean
>this.ast().nodeType === TypeScript.NodeType.Name : boolean
>this.ast().nodeType : any
>this.ast() : TypeScript.AST
>this.ast : () => TypeScript.AST
>this : this
>ast : () => TypeScript.AST
>nodeType : any
>TypeScript.NodeType.Name : any
>TypeScript.NodeType : any
>TypeScript : typeof TypeScript
>NodeType : any
>Name : any
(this.parent().nodeType === TypeScript.NodeType.ModuleDeclaration) &&
>(this.parent().nodeType === TypeScript.NodeType.ModuleDeclaration) : boolean
>this.parent().nodeType === TypeScript.NodeType.ModuleDeclaration : boolean
>this.parent().nodeType : any
>this.parent() : TypeScript.AST
>this.parent : () => TypeScript.AST
>this : this
>parent : () => TypeScript.AST
>nodeType : any
>TypeScript.NodeType.ModuleDeclaration : any
>TypeScript.NodeType : any
>TypeScript : typeof TypeScript
>NodeType : any
>ModuleDeclaration : any
((this.parent()).name === this.ast());
>((this.parent()).name === this.ast()) : boolean
>(this.parent()).name === this.ast() : boolean
>(this.parent()).name : any
>(this.parent()) : TypeScript.ModuleDeclaration
>this.parent() : TypeScript.ModuleDeclaration
>TypeScript : any
>this.parent() : TypeScript.AST
>this.parent : () => TypeScript.AST
>this : this
>parent : () => TypeScript.AST
>name : any
>this.ast() : TypeScript.AST
>this.ast : () => TypeScript.AST
>this : this
>ast : () => TypeScript.AST
}
public isNameOfFunction(): boolean {
>isNameOfFunction : () => boolean
if (this.ast() === null || this.parent() === null)
>this.ast() === null || this.parent() === null : boolean
>this.ast() === null : boolean
>this.ast() : TypeScript.AST
>this.ast : () => TypeScript.AST
>this : this
>ast : () => TypeScript.AST
>null : null
>this.parent() === null : boolean
>this.parent() : TypeScript.AST
>this.parent : () => TypeScript.AST
>this : this
>parent : () => TypeScript.AST
>null : null
return false;
>false : false
return (this.ast().nodeType === TypeScript.NodeType.Name) &&
>(this.ast().nodeType === TypeScript.NodeType.Name) && (this.parent().nodeType === TypeScript.NodeType.FuncDecl) && ((this.parent()).name === this.ast()) : boolean
>(this.ast().nodeType === TypeScript.NodeType.Name) && (this.parent().nodeType === TypeScript.NodeType.FuncDecl) : boolean
>(this.ast().nodeType === TypeScript.NodeType.Name) : boolean
>this.ast().nodeType === TypeScript.NodeType.Name : boolean
>this.ast().nodeType : any
>this.ast() : TypeScript.AST
>this.ast : () => TypeScript.AST
>this : this
>ast : () => TypeScript.AST
>nodeType : any
>TypeScript.NodeType.Name : any
>TypeScript.NodeType : any
>TypeScript : typeof TypeScript
>NodeType : any
>Name : any
(this.parent().nodeType === TypeScript.NodeType.FuncDecl) &&
>(this.parent().nodeType === TypeScript.NodeType.FuncDecl) : boolean
>this.parent().nodeType === TypeScript.NodeType.FuncDecl : boolean
>this.parent().nodeType : any
>this.parent() : TypeScript.AST
>this.parent : () => TypeScript.AST
>this : this
>parent : () => TypeScript.AST
>nodeType : any
>TypeScript.NodeType.FuncDecl : any
>TypeScript.NodeType : any
>TypeScript : typeof TypeScript
>NodeType : any
>FuncDecl : any
((this.parent()).name === this.ast());
>((this.parent()).name === this.ast()) : boolean
>(this.parent()).name === this.ast() : boolean
>(this.parent()).name : any
>(this.parent()) : TypeScript.FuncDecl
>this.parent() : TypeScript.FuncDecl
>TypeScript : any
>this.parent() : TypeScript.AST
>this.parent : () => TypeScript.AST
>this : this
>parent : () => TypeScript.AST
>name : any
>this.ast() : TypeScript.AST
>this.ast : () => TypeScript.AST
>this : this
>ast : () => TypeScript.AST
}
public isChildOfScript(): boolean {
>isChildOfScript : () => boolean
var ast = lastOf(this.asts);
>ast : any
>lastOf(this.asts) : any
>lastOf : (items: any[]) => any
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
return this.count() >= 3 &&
>this.count() >= 3 && this.asts[this.top] === ast && this.asts[this.top - 1].nodeType === TypeScript.NodeType.List && this.asts[this.top - 2].nodeType === TypeScript.NodeType.Script : boolean
>this.count() >= 3 && this.asts[this.top] === ast && this.asts[this.top - 1].nodeType === TypeScript.NodeType.List : boolean
>this.count() >= 3 && this.asts[this.top] === ast : boolean
>this.count() >= 3 : boolean
>this.count() : number
>this.count : () => number
>this : this
>count : () => number
>3 : 3
this.asts[this.top] === ast &&
>this.asts[this.top] === ast : boolean
>this.asts[this.top] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top : number
>this : this
>top : number
>ast : any
this.asts[this.top - 1].nodeType === TypeScript.NodeType.List &&
>this.asts[this.top - 1].nodeType === TypeScript.NodeType.List : boolean
>this.asts[this.top - 1].nodeType : any
>this.asts[this.top - 1] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 1 : number
>this.top : number
>this : this
>top : number
>1 : 1
>nodeType : any
>TypeScript.NodeType.List : any
>TypeScript.NodeType : any
>TypeScript : typeof TypeScript
>NodeType : any
>List : any
this.asts[this.top - 2].nodeType === TypeScript.NodeType.Script;
>this.asts[this.top - 2].nodeType === TypeScript.NodeType.Script : boolean
>this.asts[this.top - 2].nodeType : any
>this.asts[this.top - 2] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 2 : number
>this.top : number
>this : this
>top : number
>2 : 2
>nodeType : any
>TypeScript.NodeType.Script : any
>TypeScript.NodeType : any
>TypeScript : typeof TypeScript
>NodeType : any
>Script : any
}
public isChildOfModule(): boolean {
>isChildOfModule : () => boolean
var ast = lastOf(this.asts);
>ast : any
>lastOf(this.asts) : any
>lastOf : (items: any[]) => any
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
return this.count() >= 3 &&
>this.count() >= 3 && this.asts[this.top] === ast && this.asts[this.top - 1].nodeType === TypeScript.NodeType.List && this.asts[this.top - 2].nodeType === TypeScript.NodeType.ModuleDeclaration : boolean
>this.count() >= 3 && this.asts[this.top] === ast && this.asts[this.top - 1].nodeType === TypeScript.NodeType.List : boolean
>this.count() >= 3 && this.asts[this.top] === ast : boolean
>this.count() >= 3 : boolean
>this.count() : number
>this.count : () => number
>this : this
>count : () => number
>3 : 3
this.asts[this.top] === ast &&
>this.asts[this.top] === ast : boolean
>this.asts[this.top] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top : number
>this : this
>top : number
>ast : any
this.asts[this.top - 1].nodeType === TypeScript.NodeType.List &&
>this.asts[this.top - 1].nodeType === TypeScript.NodeType.List : boolean
>this.asts[this.top - 1].nodeType : any
>this.asts[this.top - 1] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 1 : number
>this.top : number
>this : this
>top : number
>1 : 1
>nodeType : any
>TypeScript.NodeType.List : any
>TypeScript.NodeType : any
>TypeScript : typeof TypeScript
>NodeType : any
>List : any
this.asts[this.top - 2].nodeType === TypeScript.NodeType.ModuleDeclaration;
>this.asts[this.top - 2].nodeType === TypeScript.NodeType.ModuleDeclaration : boolean
>this.asts[this.top - 2].nodeType : any
>this.asts[this.top - 2] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 2 : number
>this.top : number
>this : this
>top : number
>2 : 2
>nodeType : any
>TypeScript.NodeType.ModuleDeclaration : any
>TypeScript.NodeType : any
>TypeScript : typeof TypeScript
>NodeType : any
>ModuleDeclaration : any
}
public isChildOfClass(): boolean {
>isChildOfClass : () => boolean
var ast = lastOf(this.asts);
>ast : any
>lastOf(this.asts) : any
>lastOf : (items: any[]) => any
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
return this.count() >= 3 &&
>this.count() >= 3 && this.asts[this.top] === ast && this.asts[this.top - 1].nodeType === TypeScript.NodeType.List && this.asts[this.top - 2].nodeType === TypeScript.NodeType.ClassDeclaration : boolean
>this.count() >= 3 && this.asts[this.top] === ast && this.asts[this.top - 1].nodeType === TypeScript.NodeType.List : boolean
>this.count() >= 3 && this.asts[this.top] === ast : boolean
>this.count() >= 3 : boolean
>this.count() : number
>this.count : () => number
>this : this
>count : () => number
>3 : 3
this.asts[this.top] === ast &&
>this.asts[this.top] === ast : boolean
>this.asts[this.top] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top : number
>this : this
>top : number
>ast : any
this.asts[this.top - 1].nodeType === TypeScript.NodeType.List &&
>this.asts[this.top - 1].nodeType === TypeScript.NodeType.List : boolean
>this.asts[this.top - 1].nodeType : any
>this.asts[this.top - 1] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 1 : number
>this.top : number
>this : this
>top : number
>1 : 1
>nodeType : any
>TypeScript.NodeType.List : any
>TypeScript.NodeType : any
>TypeScript : typeof TypeScript
>NodeType : any
>List : any
this.asts[this.top - 2].nodeType === TypeScript.NodeType.ClassDeclaration;
>this.asts[this.top - 2].nodeType === TypeScript.NodeType.ClassDeclaration : boolean
>this.asts[this.top - 2].nodeType : any
>this.asts[this.top - 2] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 2 : number
>this.top : number
>this : this
>top : number
>2 : 2
>nodeType : any
>TypeScript.NodeType.ClassDeclaration : any
>TypeScript.NodeType : any
>TypeScript : typeof TypeScript
>NodeType : any
>ClassDeclaration : any
}
public isArgumentOfClassConstructor(): boolean {
>isArgumentOfClassConstructor : () => boolean
var ast = lastOf(this.asts);
>ast : any
>lastOf(this.asts) : any
>lastOf : (items: any[]) => any
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
return this.count() >= 5 &&
>this.count() >= 5 && this.asts[this.top] === ast && this.asts[this.top - 1].nodeType === TypeScript.NodeType.List && this.asts[this.top - 2].nodeType === TypeScript.NodeType.FuncDecl && this.asts[this.top - 3].nodeType === TypeScript.NodeType.List && this.asts[this.top - 4].nodeType === TypeScript.NodeType.ClassDeclaration && ((this.asts[this.top - 2]).isConstructor) && ((this.asts[this.top - 2]).arguments === this.asts[this.top - 1]) && ((this.asts[this.top - 4]).constructorDecl === this.asts[this.top - 2]) : boolean
>this.count() >= 5 && this.asts[this.top] === ast && this.asts[this.top - 1].nodeType === TypeScript.NodeType.List && this.asts[this.top - 2].nodeType === TypeScript.NodeType.FuncDecl && this.asts[this.top - 3].nodeType === TypeScript.NodeType.List && this.asts[this.top - 4].nodeType === TypeScript.NodeType.ClassDeclaration && ((this.asts[this.top - 2]).isConstructor) && ((this.asts[this.top - 2]).arguments === this.asts[this.top - 1]) : boolean
>this.count() >= 5 && this.asts[this.top] === ast && this.asts[this.top - 1].nodeType === TypeScript.NodeType.List && this.asts[this.top - 2].nodeType === TypeScript.NodeType.FuncDecl && this.asts[this.top - 3].nodeType === TypeScript.NodeType.List && this.asts[this.top - 4].nodeType === TypeScript.NodeType.ClassDeclaration && ((this.asts[this.top - 2]).isConstructor) : any
>this.count() >= 5 && this.asts[this.top] === ast && this.asts[this.top - 1].nodeType === TypeScript.NodeType.List && this.asts[this.top - 2].nodeType === TypeScript.NodeType.FuncDecl && this.asts[this.top - 3].nodeType === TypeScript.NodeType.List && this.asts[this.top - 4].nodeType === TypeScript.NodeType.ClassDeclaration : boolean
>this.count() >= 5 && this.asts[this.top] === ast && this.asts[this.top - 1].nodeType === TypeScript.NodeType.List && this.asts[this.top - 2].nodeType === TypeScript.NodeType.FuncDecl && this.asts[this.top - 3].nodeType === TypeScript.NodeType.List : boolean
>this.count() >= 5 && this.asts[this.top] === ast && this.asts[this.top - 1].nodeType === TypeScript.NodeType.List && this.asts[this.top - 2].nodeType === TypeScript.NodeType.FuncDecl : boolean
>this.count() >= 5 && this.asts[this.top] === ast && this.asts[this.top - 1].nodeType === TypeScript.NodeType.List : boolean
>this.count() >= 5 && this.asts[this.top] === ast : boolean
>this.count() >= 5 : boolean
>this.count() : number
>this.count : () => number
>this : this
>count : () => number
>5 : 5
this.asts[this.top] === ast &&
>this.asts[this.top] === ast : boolean
>this.asts[this.top] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top : number
>this : this
>top : number
>ast : any
this.asts[this.top - 1].nodeType === TypeScript.NodeType.List &&
>this.asts[this.top - 1].nodeType === TypeScript.NodeType.List : boolean
>this.asts[this.top - 1].nodeType : any
>this.asts[this.top - 1] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 1 : number
>this.top : number
>this : this
>top : number
>1 : 1
>nodeType : any
>TypeScript.NodeType.List : any
>TypeScript.NodeType : any
>TypeScript : typeof TypeScript
>NodeType : any
>List : any
this.asts[this.top - 2].nodeType === TypeScript.NodeType.FuncDecl &&
>this.asts[this.top - 2].nodeType === TypeScript.NodeType.FuncDecl : boolean
>this.asts[this.top - 2].nodeType : any
>this.asts[this.top - 2] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 2 : number
>this.top : number
>this : this
>top : number
>2 : 2
>nodeType : any
>TypeScript.NodeType.FuncDecl : any
>TypeScript.NodeType : any
>TypeScript : typeof TypeScript
>NodeType : any
>FuncDecl : any
this.asts[this.top - 3].nodeType === TypeScript.NodeType.List &&
>this.asts[this.top - 3].nodeType === TypeScript.NodeType.List : boolean
>this.asts[this.top - 3].nodeType : any
>this.asts[this.top - 3] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 3 : number
>this.top : number
>this : this
>top : number
>3 : 3
>nodeType : any
>TypeScript.NodeType.List : any
>TypeScript.NodeType : any
>TypeScript : typeof TypeScript
>NodeType : any
>List : any
this.asts[this.top - 4].nodeType === TypeScript.NodeType.ClassDeclaration &&
>this.asts[this.top - 4].nodeType === TypeScript.NodeType.ClassDeclaration : boolean
>this.asts[this.top - 4].nodeType : any
>this.asts[this.top - 4] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 4 : number
>this.top : number
>this : this
>top : number
>4 : 4
>nodeType : any
>TypeScript.NodeType.ClassDeclaration : any
>TypeScript.NodeType : any
>TypeScript : typeof TypeScript
>NodeType : any
>ClassDeclaration : any
((this.asts[this.top - 2]).isConstructor) &&
>((this.asts[this.top - 2]).isConstructor) : any
>(this.asts[this.top - 2]).isConstructor : any
>(this.asts[this.top - 2]) : TypeScript.FuncDecl
>this.asts[this.top - 2] : TypeScript.FuncDecl
>TypeScript : any
>this.asts[this.top - 2] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 2 : number
>this.top : number
>this : this
>top : number
>2 : 2
>isConstructor : any
((this.asts[this.top - 2]).arguments === this.asts[this.top - 1]) &&
>((this.asts[this.top - 2]).arguments === this.asts[this.top - 1]) : boolean
>(this.asts[this.top - 2]).arguments === this.asts[this.top - 1] : boolean
>(this.asts[this.top - 2]).arguments : any
>(this.asts[this.top - 2]) : TypeScript.FuncDecl
>this.asts[this.top - 2] : TypeScript.FuncDecl
>TypeScript : any
>this.asts[this.top - 2] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 2 : number
>this.top : number
>this : this
>top : number
>2 : 2
>arguments : any
>this.asts[this.top - 1] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 1 : number
>this.top : number
>this : this
>top : number
>1 : 1
((this.asts[this.top - 4]).constructorDecl === this.asts[this.top - 2]);
>((this.asts[this.top - 4]).constructorDecl === this.asts[this.top - 2]) : boolean
>(this.asts[this.top - 4]).constructorDecl === this.asts[this.top - 2] : boolean
>(this.asts[this.top - 4]).constructorDecl : any
>(this.asts[this.top - 4]) : TypeScript.ClassDeclaration
>this.asts[this.top - 4] : TypeScript.ClassDeclaration
>TypeScript : any
>this.asts[this.top - 4] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 4 : number
>this.top : number
>this : this
>top : number
>4 : 4
>constructorDecl : any
>this.asts[this.top - 2] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 2 : number
>this.top : number
>this : this
>top : number
>2 : 2
}
public isChildOfInterface(): boolean {
>isChildOfInterface : () => boolean
var ast = lastOf(this.asts);
>ast : any
>lastOf(this.asts) : any
>lastOf : (items: any[]) => any
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
return this.count() >= 3 &&
>this.count() >= 3 && this.asts[this.top] === ast && this.asts[this.top - 1].nodeType === TypeScript.NodeType.List && this.asts[this.top - 2].nodeType === TypeScript.NodeType.InterfaceDeclaration : boolean
>this.count() >= 3 && this.asts[this.top] === ast && this.asts[this.top - 1].nodeType === TypeScript.NodeType.List : boolean
>this.count() >= 3 && this.asts[this.top] === ast : boolean
>this.count() >= 3 : boolean
>this.count() : number
>this.count : () => number
>this : this
>count : () => number
>3 : 3
this.asts[this.top] === ast &&
>this.asts[this.top] === ast : boolean
>this.asts[this.top] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top : number
>this : this
>top : number
>ast : any
this.asts[this.top - 1].nodeType === TypeScript.NodeType.List &&
>this.asts[this.top - 1].nodeType === TypeScript.NodeType.List : boolean
>this.asts[this.top - 1].nodeType : any
>this.asts[this.top - 1] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 1 : number
>this.top : number
>this : this
>top : number
>1 : 1
>nodeType : any
>TypeScript.NodeType.List : any
>TypeScript.NodeType : any
>TypeScript : typeof TypeScript
>NodeType : any
>List : any
this.asts[this.top - 2].nodeType === TypeScript.NodeType.InterfaceDeclaration;
>this.asts[this.top - 2].nodeType === TypeScript.NodeType.InterfaceDeclaration : boolean
>this.asts[this.top - 2].nodeType : any
>this.asts[this.top - 2] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 2 : number
>this.top : number
>this : this
>top : number
>2 : 2
>nodeType : any
>TypeScript.NodeType.InterfaceDeclaration : any
>TypeScript.NodeType : any
>TypeScript : typeof TypeScript
>NodeType : any
>InterfaceDeclaration : any
}
public isTopLevelImplicitModule() {
>isTopLevelImplicitModule : () => any
return this.count() >= 1 &&
>this.count() >= 1 && this.asts[this.top].nodeType === TypeScript.NodeType.ModuleDeclaration && TypeScript.hasFlag((this.asts[this.top]).modFlags, TypeScript.ModuleFlags.IsWholeFile) : any
>this.count() >= 1 && this.asts[this.top].nodeType === TypeScript.NodeType.ModuleDeclaration : boolean
>this.count() >= 1 : boolean
>this.count() : number
>this.count : () => number
>this : this
>count : () => number
>1 : 1
this.asts[this.top].nodeType === TypeScript.NodeType.ModuleDeclaration &&
>this.asts[this.top].nodeType === TypeScript.NodeType.ModuleDeclaration : boolean
>this.asts[this.top].nodeType : any
>this.asts[this.top] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top : number
>this : this
>top : number
>nodeType : any
>TypeScript.NodeType.ModuleDeclaration : any
>TypeScript.NodeType : any
>TypeScript : typeof TypeScript
>NodeType : any
>ModuleDeclaration : any
TypeScript.hasFlag((this.asts[this.top]).modFlags, TypeScript.ModuleFlags.IsWholeFile);
>TypeScript.hasFlag((this.asts[this.top]).modFlags, TypeScript.ModuleFlags.IsWholeFile) : any
>TypeScript.hasFlag : any
>TypeScript : typeof TypeScript
>hasFlag : any
>(this.asts[this.top]).modFlags : any
>(this.asts[this.top]) : TypeScript.ModuleDeclaration
>this.asts[this.top] : TypeScript.ModuleDeclaration
>TypeScript : any
>this.asts[this.top] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top : number
>this : this
>top : number
>modFlags : any
>TypeScript.ModuleFlags.IsWholeFile : any
>TypeScript.ModuleFlags : any
>TypeScript : typeof TypeScript
>ModuleFlags : any
>IsWholeFile : any
}
public isBodyOfTopLevelImplicitModule() {
>isBodyOfTopLevelImplicitModule : () => any
return this.count() >= 2 &&
>this.count() >= 2 && this.asts[this.top - 0].nodeType === TypeScript.NodeType.List && this.asts[this.top - 1].nodeType === TypeScript.NodeType.ModuleDeclaration && (this.asts[this.top - 1]).members == this.asts[this.top - 0] && TypeScript.hasFlag((this.asts[this.top - 1]).modFlags, TypeScript.ModuleFlags.IsWholeFile) : any
>this.count() >= 2 && this.asts[this.top - 0].nodeType === TypeScript.NodeType.List && this.asts[this.top - 1].nodeType === TypeScript.NodeType.ModuleDeclaration && (this.asts[this.top - 1]).members == this.asts[this.top - 0] : boolean
>this.count() >= 2 && this.asts[this.top - 0].nodeType === TypeScript.NodeType.List && this.asts[this.top - 1].nodeType === TypeScript.NodeType.ModuleDeclaration : boolean
>this.count() >= 2 && this.asts[this.top - 0].nodeType === TypeScript.NodeType.List : boolean
>this.count() >= 2 : boolean
>this.count() : number
>this.count : () => number
>this : this
>count : () => number
>2 : 2
this.asts[this.top - 0].nodeType === TypeScript.NodeType.List &&
>this.asts[this.top - 0].nodeType === TypeScript.NodeType.List : boolean
>this.asts[this.top - 0].nodeType : any
>this.asts[this.top - 0] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 0 : number
>this.top : number
>this : this
>top : number
>0 : 0
>nodeType : any
>TypeScript.NodeType.List : any
>TypeScript.NodeType : any
>TypeScript : typeof TypeScript
>NodeType : any
>List : any
this.asts[this.top - 1].nodeType === TypeScript.NodeType.ModuleDeclaration &&
>this.asts[this.top - 1].nodeType === TypeScript.NodeType.ModuleDeclaration : boolean
>this.asts[this.top - 1].nodeType : any
>this.asts[this.top - 1] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 1 : number
>this.top : number
>this : this
>top : number
>1 : 1
>nodeType : any
>TypeScript.NodeType.ModuleDeclaration : any
>TypeScript.NodeType : any
>TypeScript : typeof TypeScript
>NodeType : any
>ModuleDeclaration : any
(this.asts[this.top - 1]).members == this.asts[this.top - 0] &&
>(this.asts[this.top - 1]).members == this.asts[this.top - 0] : boolean
>(this.asts[this.top - 1]).members : any
>(this.asts[this.top - 1]) : TypeScript.ModuleDeclaration
>this.asts[this.top - 1] : TypeScript.ModuleDeclaration
>TypeScript : any
>this.asts[this.top - 1] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 1 : number
>this.top : number
>this : this
>top : number
>1 : 1
>members : any
>this.asts[this.top - 0] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 0 : number
>this.top : number
>this : this
>top : number
>0 : 0
TypeScript.hasFlag((this.asts[this.top - 1]).modFlags, TypeScript.ModuleFlags.IsWholeFile);
>TypeScript.hasFlag((this.asts[this.top - 1]).modFlags, TypeScript.ModuleFlags.IsWholeFile) : any
>TypeScript.hasFlag : any
>TypeScript : typeof TypeScript
>hasFlag : any
>(this.asts[this.top - 1]).modFlags : any
>(this.asts[this.top - 1]) : TypeScript.ModuleDeclaration
>this.asts[this.top - 1] : TypeScript.ModuleDeclaration
>TypeScript : any
>this.asts[this.top - 1] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 1 : number
>this.top : number
>this : this
>top : number
>1 : 1
>modFlags : any
>TypeScript.ModuleFlags.IsWholeFile : any
>TypeScript.ModuleFlags : any
>TypeScript : typeof TypeScript
>ModuleFlags : any
>IsWholeFile : any
}
public isBodyOfScript(): boolean {
>isBodyOfScript : () => boolean
return this.count() >= 2 &&
>this.count() >= 2 && this.asts[this.top - 1].nodeType === TypeScript.NodeType.Script && (this.asts[this.top - 1]).bod == this.asts[this.top - 0] : boolean
>this.count() >= 2 && this.asts[this.top - 1].nodeType === TypeScript.NodeType.Script : boolean
>this.count() >= 2 : boolean
>this.count() : number
>this.count : () => number
>this : this
>count : () => number
>2 : 2
this.asts[this.top - 1].nodeType === TypeScript.NodeType.Script &&
>this.asts[this.top - 1].nodeType === TypeScript.NodeType.Script : boolean
>this.asts[this.top - 1].nodeType : any
>this.asts[this.top - 1] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 1 : number
>this.top : number
>this : this
>top : number
>1 : 1
>nodeType : any
>TypeScript.NodeType.Script : any
>TypeScript.NodeType : any
>TypeScript : typeof TypeScript
>NodeType : any
>Script : any
(this.asts[this.top - 1]).bod == this.asts[this.top - 0];
>(this.asts[this.top - 1]).bod == this.asts[this.top - 0] : boolean
>(this.asts[this.top - 1]).bod : any
>(this.asts[this.top - 1]) : TypeScript.Script
>this.asts[this.top - 1] : TypeScript.Script
>TypeScript : any
>this.asts[this.top - 1] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 1 : number
>this.top : number
>this : this
>top : number
>1 : 1
>bod : any
>this.asts[this.top - 0] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 0 : number
>this.top : number
>this : this
>top : number
>0 : 0
}
public isBodyOfSwitch(): boolean {
>isBodyOfSwitch : () => boolean
return this.count() >= 2 &&
>this.count() >= 2 && this.asts[this.top - 1].nodeType === TypeScript.NodeType.Switch && (this.asts[this.top - 1]).caseList == this.asts[this.top - 0] : boolean
>this.count() >= 2 && this.asts[this.top - 1].nodeType === TypeScript.NodeType.Switch : boolean
>this.count() >= 2 : boolean
>this.count() : number
>this.count : () => number
>this : this
>count : () => number
>2 : 2
this.asts[this.top - 1].nodeType === TypeScript.NodeType.Switch &&
>this.asts[this.top - 1].nodeType === TypeScript.NodeType.Switch : boolean
>this.asts[this.top - 1].nodeType : any
>this.asts[this.top - 1] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 1 : number
>this.top : number
>this : this
>top : number
>1 : 1
>nodeType : any
>TypeScript.NodeType.Switch : any
>TypeScript.NodeType : any
>TypeScript : typeof TypeScript
>NodeType : any
>Switch : any
(this.asts[this.top - 1]).caseList == this.asts[this.top - 0];
>(this.asts[this.top - 1]).caseList == this.asts[this.top - 0] : boolean
>(this.asts[this.top - 1]).caseList : any
>(this.asts[this.top - 1]) : TypeScript.SwitchStatement
>this.asts[this.top - 1] : TypeScript.SwitchStatement
>TypeScript : any
>this.asts[this.top - 1] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 1 : number
>this.top : number
>this : this
>top : number
>1 : 1
>caseList : any
>this.asts[this.top - 0] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 0 : number
>this.top : number
>this : this
>top : number
>0 : 0
}
public isBodyOfModule(): boolean {
>isBodyOfModule : () => boolean
return this.count() >= 2 &&
>this.count() >= 2 && this.asts[this.top - 1].nodeType === TypeScript.NodeType.ModuleDeclaration && (this.asts[this.top - 1]).members == this.asts[this.top - 0] : boolean
>this.count() >= 2 && this.asts[this.top - 1].nodeType === TypeScript.NodeType.ModuleDeclaration : boolean
>this.count() >= 2 : boolean
>this.count() : number
>this.count : () => number
>this : this
>count : () => number
>2 : 2
this.asts[this.top - 1].nodeType === TypeScript.NodeType.ModuleDeclaration &&
>this.asts[this.top - 1].nodeType === TypeScript.NodeType.ModuleDeclaration : boolean
>this.asts[this.top - 1].nodeType : any
>this.asts[this.top - 1] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 1 : number
>this.top : number
>this : this
>top : number
>1 : 1
>nodeType : any
>TypeScript.NodeType.ModuleDeclaration : any
>TypeScript.NodeType : any
>TypeScript : typeof TypeScript
>NodeType : any
>ModuleDeclaration : any
(this.asts[this.top - 1]).members == this.asts[this.top - 0];
>(this.asts[this.top - 1]).members == this.asts[this.top - 0] : boolean
>(this.asts[this.top - 1]).members : any
>(this.asts[this.top - 1]) : TypeScript.ModuleDeclaration
>this.asts[this.top - 1] : TypeScript.ModuleDeclaration
>TypeScript : any
>this.asts[this.top - 1] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 1 : number
>this.top : number
>this : this
>top : number
>1 : 1
>members : any
>this.asts[this.top - 0] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 0 : number
>this.top : number
>this : this
>top : number
>0 : 0
}
public isBodyOfClass(): boolean {
>isBodyOfClass : () => boolean
return this.count() >= 2 &&
>this.count() >= 2 && this.asts[this.top - 1].nodeType === TypeScript.NodeType.ClassDeclaration && (this.asts[this.top - 1]).members == this.asts[this.top - 0] : boolean
>this.count() >= 2 && this.asts[this.top - 1].nodeType === TypeScript.NodeType.ClassDeclaration : boolean
>this.count() >= 2 : boolean
>this.count() : number
>this.count : () => number
>this : this
>count : () => number
>2 : 2
this.asts[this.top - 1].nodeType === TypeScript.NodeType.ClassDeclaration &&
>this.asts[this.top - 1].nodeType === TypeScript.NodeType.ClassDeclaration : boolean
>this.asts[this.top - 1].nodeType : any
>this.asts[this.top - 1] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 1 : number
>this.top : number
>this : this
>top : number
>1 : 1
>nodeType : any
>TypeScript.NodeType.ClassDeclaration : any
>TypeScript.NodeType : any
>TypeScript : typeof TypeScript
>NodeType : any
>ClassDeclaration : any
(this.asts[this.top - 1]).members == this.asts[this.top - 0];
>(this.asts[this.top - 1]).members == this.asts[this.top - 0] : boolean
>(this.asts[this.top - 1]).members : any
>(this.asts[this.top - 1]) : TypeScript.ClassDeclaration
>this.asts[this.top - 1] : TypeScript.ClassDeclaration
>TypeScript : any
>this.asts[this.top - 1] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 1 : number
>this.top : number
>this : this
>top : number
>1 : 1
>members : any
>this.asts[this.top - 0] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 0 : number
>this.top : number
>this : this
>top : number
>0 : 0
}
public isBodyOfFunction(): boolean {
>isBodyOfFunction : () => boolean
return this.count() >= 2 &&
>this.count() >= 2 && this.asts[this.top - 1].nodeType === TypeScript.NodeType.FuncDecl && (this.asts[this.top - 1]).bod == this.asts[this.top - 0] : boolean
>this.count() >= 2 && this.asts[this.top - 1].nodeType === TypeScript.NodeType.FuncDecl : boolean
>this.count() >= 2 : boolean
>this.count() : number
>this.count : () => number
>this : this
>count : () => number
>2 : 2
this.asts[this.top - 1].nodeType === TypeScript.NodeType.FuncDecl &&
>this.asts[this.top - 1].nodeType === TypeScript.NodeType.FuncDecl : boolean
>this.asts[this.top - 1].nodeType : any
>this.asts[this.top - 1] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 1 : number
>this.top : number
>this : this
>top : number
>1 : 1
>nodeType : any
>TypeScript.NodeType.FuncDecl : any
>TypeScript.NodeType : any
>TypeScript : typeof TypeScript
>NodeType : any
>FuncDecl : any
(this.asts[this.top - 1]).bod == this.asts[this.top - 0];
>(this.asts[this.top - 1]).bod == this.asts[this.top - 0] : boolean
>(this.asts[this.top - 1]).bod : any
>(this.asts[this.top - 1]) : TypeScript.FuncDecl
>this.asts[this.top - 1] : TypeScript.FuncDecl
>TypeScript : any
>this.asts[this.top - 1] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 1 : number
>this.top : number
>this : this
>top : number
>1 : 1
>bod : any
>this.asts[this.top - 0] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 0 : number
>this.top : number
>this : this
>top : number
>0 : 0
}
public isBodyOfInterface(): boolean {
>isBodyOfInterface : () => boolean
return this.count() >= 2 &&
>this.count() >= 2 && this.asts[this.top - 1].nodeType === TypeScript.NodeType.InterfaceDeclaration && (this.asts[this.top - 1]).members == this.asts[this.top - 0] : boolean
>this.count() >= 2 && this.asts[this.top - 1].nodeType === TypeScript.NodeType.InterfaceDeclaration : boolean
>this.count() >= 2 : boolean
>this.count() : number
>this.count : () => number
>this : this
>count : () => number
>2 : 2
this.asts[this.top - 1].nodeType === TypeScript.NodeType.InterfaceDeclaration &&
>this.asts[this.top - 1].nodeType === TypeScript.NodeType.InterfaceDeclaration : boolean
>this.asts[this.top - 1].nodeType : any
>this.asts[this.top - 1] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 1 : number
>this.top : number
>this : this
>top : number
>1 : 1
>nodeType : any
>TypeScript.NodeType.InterfaceDeclaration : any
>TypeScript.NodeType : any
>TypeScript : typeof TypeScript
>NodeType : any
>InterfaceDeclaration : any
(this.asts[this.top - 1]).members == this.asts[this.top - 0];
>(this.asts[this.top - 1]).members == this.asts[this.top - 0] : boolean
>(this.asts[this.top - 1]).members : any
>(this.asts[this.top - 1]) : TypeScript.InterfaceDeclaration
>this.asts[this.top - 1] : TypeScript.InterfaceDeclaration
>TypeScript : any
>this.asts[this.top - 1] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 1 : number
>this.top : number
>this : this
>top : number
>1 : 1
>members : any
>this.asts[this.top - 0] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 0 : number
>this.top : number
>this : this
>top : number
>0 : 0
}
public isBodyOfBlock(): boolean {
>isBodyOfBlock : () => boolean
return this.count() >= 2 &&
>this.count() >= 2 && this.asts[this.top - 1].nodeType === TypeScript.NodeType.Block && (this.asts[this.top - 1]).statements == this.asts[this.top - 0] : boolean
>this.count() >= 2 && this.asts[this.top - 1].nodeType === TypeScript.NodeType.Block : boolean
>this.count() >= 2 : boolean
>this.count() : number
>this.count : () => number
>this : this
>count : () => number
>2 : 2
this.asts[this.top - 1].nodeType === TypeScript.NodeType.Block &&
>this.asts[this.top - 1].nodeType === TypeScript.NodeType.Block : boolean
>this.asts[this.top - 1].nodeType : any
>this.asts[this.top - 1] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 1 : number
>this.top : number
>this : this
>top : number
>1 : 1
>nodeType : any
>TypeScript.NodeType.Block : any
>TypeScript.NodeType : any
>TypeScript : typeof TypeScript
>NodeType : any
>Block : any
(this.asts[this.top - 1]).statements == this.asts[this.top - 0];
>(this.asts[this.top - 1]).statements == this.asts[this.top - 0] : boolean
>(this.asts[this.top - 1]).statements : any
>(this.asts[this.top - 1]) : TypeScript.Block
>this.asts[this.top - 1] : TypeScript.Block
>TypeScript : any
>this.asts[this.top - 1] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 1 : number
>this.top : number
>this : this
>top : number
>1 : 1
>statements : any
>this.asts[this.top - 0] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 0 : number
>this.top : number
>this : this
>top : number
>0 : 0
}
public isBodyOfFor(): boolean {
>isBodyOfFor : () => boolean
return this.count() >= 2 &&
>this.count() >= 2 && this.asts[this.top - 1].nodeType === TypeScript.NodeType.For && (this.asts[this.top - 1]).body == this.asts[this.top - 0] : boolean
>this.count() >= 2 && this.asts[this.top - 1].nodeType === TypeScript.NodeType.For : boolean
>this.count() >= 2 : boolean
>this.count() : number
>this.count : () => number
>this : this
>count : () => number
>2 : 2
this.asts[this.top - 1].nodeType === TypeScript.NodeType.For &&
>this.asts[this.top - 1].nodeType === TypeScript.NodeType.For : boolean
>this.asts[this.top - 1].nodeType : any
>this.asts[this.top - 1] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 1 : number
>this.top : number
>this : this
>top : number
>1 : 1
>nodeType : any
>TypeScript.NodeType.For : any
>TypeScript.NodeType : any
>TypeScript : typeof TypeScript
>NodeType : any
>For : any
(this.asts[this.top - 1]).body == this.asts[this.top - 0];
>(this.asts[this.top - 1]).body == this.asts[this.top - 0] : boolean
>(this.asts[this.top - 1]).body : any
>(this.asts[this.top - 1]) : TypeScript.ForStatement
>this.asts[this.top - 1] : TypeScript.ForStatement
>TypeScript : any
>this.asts[this.top - 1] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 1 : number
>this.top : number
>this : this
>top : number
>1 : 1
>body : any
>this.asts[this.top - 0] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 0 : number
>this.top : number
>this : this
>top : number
>0 : 0
}
public isBodyOfCase(): boolean {
>isBodyOfCase : () => boolean
return this.count() >= 2 &&
>this.count() >= 2 && this.asts[this.top - 1].nodeType === TypeScript.NodeType.Case && (this.asts[this.top - 1]).body == this.asts[this.top - 0] : boolean
>this.count() >= 2 && this.asts[this.top - 1].nodeType === TypeScript.NodeType.Case : boolean
>this.count() >= 2 : boolean
>this.count() : number
>this.count : () => number
>this : this
>count : () => number
>2 : 2
this.asts[this.top - 1].nodeType === TypeScript.NodeType.Case &&
>this.asts[this.top - 1].nodeType === TypeScript.NodeType.Case : boolean
>this.asts[this.top - 1].nodeType : any
>this.asts[this.top - 1] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 1 : number
>this.top : number
>this : this
>top : number
>1 : 1
>nodeType : any
>TypeScript.NodeType.Case : any
>TypeScript.NodeType : any
>TypeScript : typeof TypeScript
>NodeType : any
>Case : any
(this.asts[this.top - 1]).body == this.asts[this.top - 0];
>(this.asts[this.top - 1]).body == this.asts[this.top - 0] : boolean
>(this.asts[this.top - 1]).body : any
>(this.asts[this.top - 1]) : TypeScript.CaseStatement
>this.asts[this.top - 1] : TypeScript.CaseStatement
>TypeScript : any
>this.asts[this.top - 1] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 1 : number
>this.top : number
>this : this
>top : number
>1 : 1
>body : any
>this.asts[this.top - 0] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 0 : number
>this.top : number
>this : this
>top : number
>0 : 0
}
public isBodyOfTry(): boolean {
>isBodyOfTry : () => boolean
return this.count() >= 2 &&
>this.count() >= 2 && this.asts[this.top - 1].nodeType === TypeScript.NodeType.Try && (this.asts[this.top - 1]).body == this.asts[this.top - 0] : boolean
>this.count() >= 2 && this.asts[this.top - 1].nodeType === TypeScript.NodeType.Try : boolean
>this.count() >= 2 : boolean
>this.count() : number
>this.count : () => number
>this : this
>count : () => number
>2 : 2
this.asts[this.top - 1].nodeType === TypeScript.NodeType.Try &&
>this.asts[this.top - 1].nodeType === TypeScript.NodeType.Try : boolean
>this.asts[this.top - 1].nodeType : any
>this.asts[this.top - 1] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 1 : number
>this.top : number
>this : this
>top : number
>1 : 1
>nodeType : any
>TypeScript.NodeType.Try : any
>TypeScript.NodeType : any
>TypeScript : typeof TypeScript
>NodeType : any
>Try : any
(this.asts[this.top - 1]).body == this.asts[this.top - 0];
>(this.asts[this.top - 1]).body == this.asts[this.top - 0] : boolean
>(this.asts[this.top - 1]).body : any
>(this.asts[this.top - 1]) : TypeScript.Try
>this.asts[this.top - 1] : TypeScript.Try
>TypeScript : any
>this.asts[this.top - 1] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 1 : number
>this.top : number
>this : this
>top : number
>1 : 1
>body : any
>this.asts[this.top - 0] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 0 : number
>this.top : number
>this : this
>top : number
>0 : 0
}
public isBodyOfCatch(): boolean {
>isBodyOfCatch : () => boolean
return this.count() >= 2 &&
>this.count() >= 2 && this.asts[this.top - 1].nodeType === TypeScript.NodeType.Catch && (this.asts[this.top - 1]).body == this.asts[this.top - 0] : boolean
>this.count() >= 2 && this.asts[this.top - 1].nodeType === TypeScript.NodeType.Catch : boolean
>this.count() >= 2 : boolean
>this.count() : number
>this.count : () => number
>this : this
>count : () => number
>2 : 2
this.asts[this.top - 1].nodeType === TypeScript.NodeType.Catch &&
>this.asts[this.top - 1].nodeType === TypeScript.NodeType.Catch : boolean
>this.asts[this.top - 1].nodeType : any
>this.asts[this.top - 1] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 1 : number
>this.top : number
>this : this
>top : number
>1 : 1
>nodeType : any
>TypeScript.NodeType.Catch : any
>TypeScript.NodeType : any
>TypeScript : typeof TypeScript
>NodeType : any
>Catch : any
(this.asts[this.top - 1]).body == this.asts[this.top - 0];
>(this.asts[this.top - 1]).body == this.asts[this.top - 0] : boolean
>(this.asts[this.top - 1]).body : any
>(this.asts[this.top - 1]) : TypeScript.Catch
>this.asts[this.top - 1] : TypeScript.Catch
>TypeScript : any
>this.asts[this.top - 1] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 1 : number
>this.top : number
>this : this
>top : number
>1 : 1
>body : any
>this.asts[this.top - 0] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 0 : number
>this.top : number
>this : this
>top : number
>0 : 0
}
public isBodyOfDoWhile(): boolean {
>isBodyOfDoWhile : () => boolean
return this.count() >= 2 &&
>this.count() >= 2 && this.asts[this.top - 1].nodeType === TypeScript.NodeType.DoWhile && (this.asts[this.top - 1]).body == this.asts[this.top - 0] : boolean
>this.count() >= 2 && this.asts[this.top - 1].nodeType === TypeScript.NodeType.DoWhile : boolean
>this.count() >= 2 : boolean
>this.count() : number
>this.count : () => number
>this : this
>count : () => number
>2 : 2
this.asts[this.top - 1].nodeType === TypeScript.NodeType.DoWhile &&
>this.asts[this.top - 1].nodeType === TypeScript.NodeType.DoWhile : boolean
>this.asts[this.top - 1].nodeType : any
>this.asts[this.top - 1] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 1 : number
>this.top : number
>this : this
>top : number
>1 : 1
>nodeType : any
>TypeScript.NodeType.DoWhile : any
>TypeScript.NodeType : any
>TypeScript : typeof TypeScript
>NodeType : any
>DoWhile : any
(this.asts[this.top - 1]).body == this.asts[this.top - 0];
>(this.asts[this.top - 1]).body == this.asts[this.top - 0] : boolean
>(this.asts[this.top - 1]).body : any
>(this.asts[this.top - 1]) : TypeScript.DoWhileStatement
>this.asts[this.top - 1] : TypeScript.DoWhileStatement
>TypeScript : any
>this.asts[this.top - 1] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 1 : number
>this.top : number
>this : this
>top : number
>1 : 1
>body : any
>this.asts[this.top - 0] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 0 : number
>this.top : number
>this : this
>top : number
>0 : 0
}
public isBodyOfWhile(): boolean {
>isBodyOfWhile : () => boolean
return this.count() >= 2 &&
>this.count() >= 2 && this.asts[this.top - 1].nodeType === TypeScript.NodeType.While && (this.asts[this.top - 1]).body == this.asts[this.top - 0] : boolean
>this.count() >= 2 && this.asts[this.top - 1].nodeType === TypeScript.NodeType.While : boolean
>this.count() >= 2 : boolean
>this.count() : number
>this.count : () => number
>this : this
>count : () => number
>2 : 2
this.asts[this.top - 1].nodeType === TypeScript.NodeType.While &&
>this.asts[this.top - 1].nodeType === TypeScript.NodeType.While : boolean
>this.asts[this.top - 1].nodeType : any
>this.asts[this.top - 1] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 1 : number
>this.top : number
>this : this
>top : number
>1 : 1
>nodeType : any
>TypeScript.NodeType.While : any
>TypeScript.NodeType : any
>TypeScript : typeof TypeScript
>NodeType : any
>While : any
(this.asts[this.top - 1]).body == this.asts[this.top - 0];
>(this.asts[this.top - 1]).body == this.asts[this.top - 0] : boolean
>(this.asts[this.top - 1]).body : any
>(this.asts[this.top - 1]) : TypeScript.WhileStatement
>this.asts[this.top - 1] : TypeScript.WhileStatement
>TypeScript : any
>this.asts[this.top - 1] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 1 : number
>this.top : number
>this : this
>top : number
>1 : 1
>body : any
>this.asts[this.top - 0] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 0 : number
>this.top : number
>this : this
>top : number
>0 : 0
}
public isBodyOfForIn(): boolean {
>isBodyOfForIn : () => boolean
return this.count() >= 2 &&
>this.count() >= 2 && this.asts[this.top - 1].nodeType === TypeScript.NodeType.ForIn && (this.asts[this.top - 1]).body == this.asts[this.top - 0] : boolean
>this.count() >= 2 && this.asts[this.top - 1].nodeType === TypeScript.NodeType.ForIn : boolean
>this.count() >= 2 : boolean
>this.count() : number
>this.count : () => number
>this : this
>count : () => number
>2 : 2
this.asts[this.top - 1].nodeType === TypeScript.NodeType.ForIn &&
>this.asts[this.top - 1].nodeType === TypeScript.NodeType.ForIn : boolean
>this.asts[this.top - 1].nodeType : any
>this.asts[this.top - 1] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 1 : number
>this.top : number
>this : this
>top : number
>1 : 1
>nodeType : any
>TypeScript.NodeType.ForIn : any
>TypeScript.NodeType : any
>TypeScript : typeof TypeScript
>NodeType : any
>ForIn : any
(this.asts[this.top - 1]).body == this.asts[this.top - 0];
>(this.asts[this.top - 1]).body == this.asts[this.top - 0] : boolean
>(this.asts[this.top - 1]).body : any
>(this.asts[this.top - 1]) : TypeScript.ForInStatement
>this.asts[this.top - 1] : TypeScript.ForInStatement
>TypeScript : any
>this.asts[this.top - 1] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 1 : number
>this.top : number
>this : this
>top : number
>1 : 1
>body : any
>this.asts[this.top - 0] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 0 : number
>this.top : number
>this : this
>top : number
>0 : 0
}
public isBodyOfWith(): boolean {
>isBodyOfWith : () => boolean
return this.count() >= 2 &&
>this.count() >= 2 && this.asts[this.top - 1].nodeType === TypeScript.NodeType.With && (this.asts[this.top - 1]).body == this.asts[this.top - 0] : boolean
>this.count() >= 2 && this.asts[this.top - 1].nodeType === TypeScript.NodeType.With : boolean
>this.count() >= 2 : boolean
>this.count() : number
>this.count : () => number
>this : this
>count : () => number
>2 : 2
this.asts[this.top - 1].nodeType === TypeScript.NodeType.With &&
>this.asts[this.top - 1].nodeType === TypeScript.NodeType.With : boolean
>this.asts[this.top - 1].nodeType : any
>this.asts[this.top - 1] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 1 : number
>this.top : number
>this : this
>top : number
>1 : 1
>nodeType : any
>TypeScript.NodeType.With : any
>TypeScript.NodeType : any
>TypeScript : typeof TypeScript
>NodeType : any
>With : any
(this.asts[this.top - 1]).body == this.asts[this.top - 0];
>(this.asts[this.top - 1]).body == this.asts[this.top - 0] : boolean
>(this.asts[this.top - 1]).body : any
>(this.asts[this.top - 1]) : TypeScript.WithStatement
>this.asts[this.top - 1] : TypeScript.WithStatement
>TypeScript : any
>this.asts[this.top - 1] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 1 : number
>this.top : number
>this : this
>top : number
>1 : 1
>body : any
>this.asts[this.top - 0] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 0 : number
>this.top : number
>this : this
>top : number
>0 : 0
}
public isBodyOfFinally(): boolean {
>isBodyOfFinally : () => boolean
return this.count() >= 2 &&
>this.count() >= 2 && this.asts[this.top - 1].nodeType === TypeScript.NodeType.Finally && (this.asts[this.top - 1]).body == this.asts[this.top - 0] : boolean
>this.count() >= 2 && this.asts[this.top - 1].nodeType === TypeScript.NodeType.Finally : boolean
>this.count() >= 2 : boolean
>this.count() : number
>this.count : () => number
>this : this
>count : () => number
>2 : 2
this.asts[this.top - 1].nodeType === TypeScript.NodeType.Finally &&
>this.asts[this.top - 1].nodeType === TypeScript.NodeType.Finally : boolean
>this.asts[this.top - 1].nodeType : any
>this.asts[this.top - 1] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 1 : number
>this.top : number
>this : this
>top : number
>1 : 1
>nodeType : any
>TypeScript.NodeType.Finally : any
>TypeScript.NodeType : any
>TypeScript : typeof TypeScript
>NodeType : any
>Finally : any
(this.asts[this.top - 1]).body == this.asts[this.top - 0];
>(this.asts[this.top - 1]).body == this.asts[this.top - 0] : boolean
>(this.asts[this.top - 1]).body : any
>(this.asts[this.top - 1]) : TypeScript.Finally
>this.asts[this.top - 1] : TypeScript.Finally
>TypeScript : any
>this.asts[this.top - 1] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 1 : number
>this.top : number
>this : this
>top : number
>1 : 1
>body : any
>this.asts[this.top - 0] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 0 : number
>this.top : number
>this : this
>top : number
>0 : 0
}
public isCaseOfSwitch(): boolean {
>isCaseOfSwitch : () => boolean
return this.count() >= 3 &&
>this.count() >= 3 && this.asts[this.top - 2].nodeType === TypeScript.NodeType.Switch && this.asts[this.top - 1].nodeType === TypeScript.NodeType.List && (this.asts[this.top - 2]).caseList == this.asts[this.top - 1] : boolean
>this.count() >= 3 && this.asts[this.top - 2].nodeType === TypeScript.NodeType.Switch && this.asts[this.top - 1].nodeType === TypeScript.NodeType.List : boolean
>this.count() >= 3 && this.asts[this.top - 2].nodeType === TypeScript.NodeType.Switch : boolean
>this.count() >= 3 : boolean
>this.count() : number
>this.count : () => number
>this : this
>count : () => number
>3 : 3
this.asts[this.top - 2].nodeType === TypeScript.NodeType.Switch &&
>this.asts[this.top - 2].nodeType === TypeScript.NodeType.Switch : boolean
>this.asts[this.top - 2].nodeType : any
>this.asts[this.top - 2] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 2 : number
>this.top : number
>this : this
>top : number
>2 : 2
>nodeType : any
>TypeScript.NodeType.Switch : any
>TypeScript.NodeType : any
>TypeScript : typeof TypeScript
>NodeType : any
>Switch : any
this.asts[this.top - 1].nodeType === TypeScript.NodeType.List &&
>this.asts[this.top - 1].nodeType === TypeScript.NodeType.List : boolean
>this.asts[this.top - 1].nodeType : any
>this.asts[this.top - 1] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 1 : number
>this.top : number
>this : this
>top : number
>1 : 1
>nodeType : any
>TypeScript.NodeType.List : any
>TypeScript.NodeType : any
>TypeScript : typeof TypeScript
>NodeType : any
>List : any
(this.asts[this.top - 2]).caseList == this.asts[this.top - 1];
>(this.asts[this.top - 2]).caseList == this.asts[this.top - 1] : boolean
>(this.asts[this.top - 2]).caseList : any
>(this.asts[this.top - 2]) : TypeScript.SwitchStatement
>this.asts[this.top - 2] : TypeScript.SwitchStatement
>TypeScript : any
>this.asts[this.top - 2] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 2 : number
>this.top : number
>this : this
>top : number
>2 : 2
>caseList : any
>this.asts[this.top - 1] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 1 : number
>this.top : number
>this : this
>top : number
>1 : 1
}
public isDefaultCaseOfSwitch(): boolean {
>isDefaultCaseOfSwitch : () => boolean
return this.count() >= 3 &&
>this.count() >= 3 && this.asts[this.top - 2].nodeType === TypeScript.NodeType.Switch && this.asts[this.top - 1].nodeType === TypeScript.NodeType.List && (this.asts[this.top - 2]).caseList == this.asts[this.top - 1] && (this.asts[this.top - 2]).defaultCase == this.asts[this.top - 0] : boolean
>this.count() >= 3 && this.asts[this.top - 2].nodeType === TypeScript.NodeType.Switch && this.asts[this.top - 1].nodeType === TypeScript.NodeType.List && (this.asts[this.top - 2]).caseList == this.asts[this.top - 1] : boolean
>this.count() >= 3 && this.asts[this.top - 2].nodeType === TypeScript.NodeType.Switch && this.asts[this.top - 1].nodeType === TypeScript.NodeType.List : boolean
>this.count() >= 3 && this.asts[this.top - 2].nodeType === TypeScript.NodeType.Switch : boolean
>this.count() >= 3 : boolean
>this.count() : number
>this.count : () => number
>this : this
>count : () => number
>3 : 3
this.asts[this.top - 2].nodeType === TypeScript.NodeType.Switch &&
>this.asts[this.top - 2].nodeType === TypeScript.NodeType.Switch : boolean
>this.asts[this.top - 2].nodeType : any
>this.asts[this.top - 2] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 2 : number
>this.top : number
>this : this
>top : number
>2 : 2
>nodeType : any
>TypeScript.NodeType.Switch : any
>TypeScript.NodeType : any
>TypeScript : typeof TypeScript
>NodeType : any
>Switch : any
this.asts[this.top - 1].nodeType === TypeScript.NodeType.List &&
>this.asts[this.top - 1].nodeType === TypeScript.NodeType.List : boolean
>this.asts[this.top - 1].nodeType : any
>this.asts[this.top - 1] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 1 : number
>this.top : number
>this : this
>top : number
>1 : 1
>nodeType : any
>TypeScript.NodeType.List : any
>TypeScript.NodeType : any
>TypeScript : typeof TypeScript
>NodeType : any
>List : any
(this.asts[this.top - 2]).caseList == this.asts[this.top - 1] &&
>(this.asts[this.top - 2]).caseList == this.asts[this.top - 1] : boolean
>(this.asts[this.top - 2]).caseList : any
>(this.asts[this.top - 2]) : TypeScript.SwitchStatement
>this.asts[this.top - 2] : TypeScript.SwitchStatement
>TypeScript : any
>this.asts[this.top - 2] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 2 : number
>this.top : number
>this : this
>top : number
>2 : 2
>caseList : any
>this.asts[this.top - 1] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 1 : number
>this.top : number
>this : this
>top : number
>1 : 1
(this.asts[this.top - 2]).defaultCase == this.asts[this.top - 0];
>(this.asts[this.top - 2]).defaultCase == this.asts[this.top - 0] : boolean
>(this.asts[this.top - 2]).defaultCase : any
>(this.asts[this.top - 2]) : TypeScript.SwitchStatement
>this.asts[this.top - 2] : TypeScript.SwitchStatement
>TypeScript : any
>this.asts[this.top - 2] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 2 : number
>this.top : number
>this : this
>top : number
>2 : 2
>defaultCase : any
>this.asts[this.top - 0] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 0 : number
>this.top : number
>this : this
>top : number
>0 : 0
}
public isListOfObjectLit(): boolean {
>isListOfObjectLit : () => boolean
return this.count() >= 2 &&
>this.count() >= 2 && this.asts[this.top - 1].nodeType === TypeScript.NodeType.ObjectLit && this.asts[this.top - 0].nodeType === TypeScript.NodeType.List && (this.asts[this.top - 1]).operand == this.asts[this.top - 0] : boolean
>this.count() >= 2 && this.asts[this.top - 1].nodeType === TypeScript.NodeType.ObjectLit && this.asts[this.top - 0].nodeType === TypeScript.NodeType.List : boolean
>this.count() >= 2 && this.asts[this.top - 1].nodeType === TypeScript.NodeType.ObjectLit : boolean
>this.count() >= 2 : boolean
>this.count() : number
>this.count : () => number
>this : this
>count : () => number
>2 : 2
this.asts[this.top - 1].nodeType === TypeScript.NodeType.ObjectLit &&
>this.asts[this.top - 1].nodeType === TypeScript.NodeType.ObjectLit : boolean
>this.asts[this.top - 1].nodeType : any
>this.asts[this.top - 1] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 1 : number
>this.top : number
>this : this
>top : number
>1 : 1
>nodeType : any
>TypeScript.NodeType.ObjectLit : any
>TypeScript.NodeType : any
>TypeScript : typeof TypeScript
>NodeType : any
>ObjectLit : any
this.asts[this.top - 0].nodeType === TypeScript.NodeType.List &&
>this.asts[this.top - 0].nodeType === TypeScript.NodeType.List : boolean
>this.asts[this.top - 0].nodeType : any
>this.asts[this.top - 0] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 0 : number
>this.top : number
>this : this
>top : number
>0 : 0
>nodeType : any
>TypeScript.NodeType.List : any
>TypeScript.NodeType : any
>TypeScript : typeof TypeScript
>NodeType : any
>List : any
(this.asts[this.top - 1]).operand == this.asts[this.top - 0];
>(this.asts[this.top - 1]).operand == this.asts[this.top - 0] : boolean
>(this.asts[this.top - 1]).operand : any
>(this.asts[this.top - 1]) : TypeScript.UnaryExpression
>this.asts[this.top - 1] : TypeScript.UnaryExpression
>TypeScript : any
>this.asts[this.top - 1] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 1 : number
>this.top : number
>this : this
>top : number
>1 : 1
>operand : any
>this.asts[this.top - 0] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 0 : number
>this.top : number
>this : this
>top : number
>0 : 0
}
public isBodyOfObjectLit(): boolean {
>isBodyOfObjectLit : () => boolean
return this.isListOfObjectLit();
>this.isListOfObjectLit() : boolean
>this.isListOfObjectLit : () => boolean
>this : this
>isListOfObjectLit : () => boolean
}
public isEmptyListOfObjectLit(): boolean {
>isEmptyListOfObjectLit : () => boolean
return this.count() >= 2 &&
>this.count() >= 2 && this.asts[this.top - 1].nodeType === TypeScript.NodeType.ObjectLit && this.asts[this.top - 0].nodeType === TypeScript.NodeType.List && (this.asts[this.top - 1]).operand == this.asts[this.top - 0] && (this.asts[this.top - 0]).members.length == 0 : boolean
>this.count() >= 2 && this.asts[this.top - 1].nodeType === TypeScript.NodeType.ObjectLit && this.asts[this.top - 0].nodeType === TypeScript.NodeType.List && (this.asts[this.top - 1]).operand == this.asts[this.top - 0] : boolean
>this.count() >= 2 && this.asts[this.top - 1].nodeType === TypeScript.NodeType.ObjectLit && this.asts[this.top - 0].nodeType === TypeScript.NodeType.List : boolean
>this.count() >= 2 && this.asts[this.top - 1].nodeType === TypeScript.NodeType.ObjectLit : boolean
>this.count() >= 2 : boolean
>this.count() : number
>this.count : () => number
>this : this
>count : () => number
>2 : 2
this.asts[this.top - 1].nodeType === TypeScript.NodeType.ObjectLit &&
>this.asts[this.top - 1].nodeType === TypeScript.NodeType.ObjectLit : boolean
>this.asts[this.top - 1].nodeType : any
>this.asts[this.top - 1] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 1 : number
>this.top : number
>this : this
>top : number
>1 : 1
>nodeType : any
>TypeScript.NodeType.ObjectLit : any
>TypeScript.NodeType : any
>TypeScript : typeof TypeScript
>NodeType : any
>ObjectLit : any
this.asts[this.top - 0].nodeType === TypeScript.NodeType.List &&
>this.asts[this.top - 0].nodeType === TypeScript.NodeType.List : boolean
>this.asts[this.top - 0].nodeType : any
>this.asts[this.top - 0] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 0 : number
>this.top : number
>this : this
>top : number
>0 : 0
>nodeType : any
>TypeScript.NodeType.List : any
>TypeScript.NodeType : any
>TypeScript : typeof TypeScript
>NodeType : any
>List : any
(this.asts[this.top - 1]).operand == this.asts[this.top - 0] &&
>(this.asts[this.top - 1]).operand == this.asts[this.top - 0] : boolean
>(this.asts[this.top - 1]).operand : any
>(this.asts[this.top - 1]) : TypeScript.UnaryExpression
>this.asts[this.top - 1] : TypeScript.UnaryExpression
>TypeScript : any
>this.asts[this.top - 1] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 1 : number
>this.top : number
>this : this
>top : number
>1 : 1
>operand : any
>this.asts[this.top - 0] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 0 : number
>this.top : number
>this : this
>top : number
>0 : 0
(this.asts[this.top - 0]).members.length == 0;
>(this.asts[this.top - 0]).members.length == 0 : boolean
>(this.asts[this.top - 0]).members.length : any
>(this.asts[this.top - 0]).members : any
>(this.asts[this.top - 0]) : TypeScript.ASTList
>this.asts[this.top - 0] : TypeScript.ASTList
>TypeScript : any
>this.asts[this.top - 0] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 0 : number
>this.top : number
>this : this
>top : number
>0 : 0
>members : any
>length : any
>0 : 0
}
public isMemberOfObjectLit(): boolean {
>isMemberOfObjectLit : () => boolean
return this.count() >= 3 &&
>this.count() >= 3 && this.asts[this.top - 2].nodeType === TypeScript.NodeType.ObjectLit && this.asts[this.top - 1].nodeType === TypeScript.NodeType.List && this.asts[this.top - 0].nodeType === TypeScript.NodeType.Member && (this.asts[this.top - 2]).operand == this.asts[this.top - 1] : boolean
>this.count() >= 3 && this.asts[this.top - 2].nodeType === TypeScript.NodeType.ObjectLit && this.asts[this.top - 1].nodeType === TypeScript.NodeType.List && this.asts[this.top - 0].nodeType === TypeScript.NodeType.Member : boolean
>this.count() >= 3 && this.asts[this.top - 2].nodeType === TypeScript.NodeType.ObjectLit && this.asts[this.top - 1].nodeType === TypeScript.NodeType.List : boolean
>this.count() >= 3 && this.asts[this.top - 2].nodeType === TypeScript.NodeType.ObjectLit : boolean
>this.count() >= 3 : boolean
>this.count() : number
>this.count : () => number
>this : this
>count : () => number
>3 : 3
this.asts[this.top - 2].nodeType === TypeScript.NodeType.ObjectLit &&
>this.asts[this.top - 2].nodeType === TypeScript.NodeType.ObjectLit : boolean
>this.asts[this.top - 2].nodeType : any
>this.asts[this.top - 2] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 2 : number
>this.top : number
>this : this
>top : number
>2 : 2
>nodeType : any
>TypeScript.NodeType.ObjectLit : any
>TypeScript.NodeType : any
>TypeScript : typeof TypeScript
>NodeType : any
>ObjectLit : any
this.asts[this.top - 1].nodeType === TypeScript.NodeType.List &&
>this.asts[this.top - 1].nodeType === TypeScript.NodeType.List : boolean
>this.asts[this.top - 1].nodeType : any
>this.asts[this.top - 1] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 1 : number
>this.top : number
>this : this
>top : number
>1 : 1
>nodeType : any
>TypeScript.NodeType.List : any
>TypeScript.NodeType : any
>TypeScript : typeof TypeScript
>NodeType : any
>List : any
this.asts[this.top - 0].nodeType === TypeScript.NodeType.Member &&
>this.asts[this.top - 0].nodeType === TypeScript.NodeType.Member : boolean
>this.asts[this.top - 0].nodeType : any
>this.asts[this.top - 0] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 0 : number
>this.top : number
>this : this
>top : number
>0 : 0
>nodeType : any
>TypeScript.NodeType.Member : any
>TypeScript.NodeType : any
>TypeScript : typeof TypeScript
>NodeType : any
>Member : any
(this.asts[this.top - 2]).operand == this.asts[this.top - 1];
>(this.asts[this.top - 2]).operand == this.asts[this.top - 1] : boolean
>(this.asts[this.top - 2]).operand : any
>(this.asts[this.top - 2]) : TypeScript.UnaryExpression
>this.asts[this.top - 2] : TypeScript.UnaryExpression
>TypeScript : any
>this.asts[this.top - 2] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 2 : number
>this.top : number
>this : this
>top : number
>2 : 2
>operand : any
>this.asts[this.top - 1] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 1 : number
>this.top : number
>this : this
>top : number
>1 : 1
}
public isNameOfMemberOfObjectLit(): boolean {
>isNameOfMemberOfObjectLit : () => boolean
return this.count() >= 4 &&
>this.count() >= 4 && this.asts[this.top - 3].nodeType === TypeScript.NodeType.ObjectLit && this.asts[this.top - 2].nodeType === TypeScript.NodeType.List && this.asts[this.top - 1].nodeType === TypeScript.NodeType.Member && this.asts[this.top - 0].nodeType === TypeScript.NodeType.Name && (this.asts[this.top - 3]).operand == this.asts[this.top - 2] : boolean
>this.count() >= 4 && this.asts[this.top - 3].nodeType === TypeScript.NodeType.ObjectLit && this.asts[this.top - 2].nodeType === TypeScript.NodeType.List && this.asts[this.top - 1].nodeType === TypeScript.NodeType.Member && this.asts[this.top - 0].nodeType === TypeScript.NodeType.Name : boolean
>this.count() >= 4 && this.asts[this.top - 3].nodeType === TypeScript.NodeType.ObjectLit && this.asts[this.top - 2].nodeType === TypeScript.NodeType.List && this.asts[this.top - 1].nodeType === TypeScript.NodeType.Member : boolean
>this.count() >= 4 && this.asts[this.top - 3].nodeType === TypeScript.NodeType.ObjectLit && this.asts[this.top - 2].nodeType === TypeScript.NodeType.List : boolean
>this.count() >= 4 && this.asts[this.top - 3].nodeType === TypeScript.NodeType.ObjectLit : boolean
>this.count() >= 4 : boolean
>this.count() : number
>this.count : () => number
>this : this
>count : () => number
>4 : 4
this.asts[this.top - 3].nodeType === TypeScript.NodeType.ObjectLit &&
>this.asts[this.top - 3].nodeType === TypeScript.NodeType.ObjectLit : boolean
>this.asts[this.top - 3].nodeType : any
>this.asts[this.top - 3] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 3 : number
>this.top : number
>this : this
>top : number
>3 : 3
>nodeType : any
>TypeScript.NodeType.ObjectLit : any
>TypeScript.NodeType : any
>TypeScript : typeof TypeScript
>NodeType : any
>ObjectLit : any
this.asts[this.top - 2].nodeType === TypeScript.NodeType.List &&
>this.asts[this.top - 2].nodeType === TypeScript.NodeType.List : boolean
>this.asts[this.top - 2].nodeType : any
>this.asts[this.top - 2] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 2 : number
>this.top : number
>this : this
>top : number
>2 : 2
>nodeType : any
>TypeScript.NodeType.List : any
>TypeScript.NodeType : any
>TypeScript : typeof TypeScript
>NodeType : any
>List : any
this.asts[this.top - 1].nodeType === TypeScript.NodeType.Member &&
>this.asts[this.top - 1].nodeType === TypeScript.NodeType.Member : boolean
>this.asts[this.top - 1].nodeType : any
>this.asts[this.top - 1] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 1 : number
>this.top : number
>this : this
>top : number
>1 : 1
>nodeType : any
>TypeScript.NodeType.Member : any
>TypeScript.NodeType : any
>TypeScript : typeof TypeScript
>NodeType : any
>Member : any
this.asts[this.top - 0].nodeType === TypeScript.NodeType.Name &&
>this.asts[this.top - 0].nodeType === TypeScript.NodeType.Name : boolean
>this.asts[this.top - 0].nodeType : any
>this.asts[this.top - 0] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 0 : number
>this.top : number
>this : this
>top : number
>0 : 0
>nodeType : any
>TypeScript.NodeType.Name : any
>TypeScript.NodeType : any
>TypeScript : typeof TypeScript
>NodeType : any
>Name : any
(this.asts[this.top - 3]).operand == this.asts[this.top - 2];
>(this.asts[this.top - 3]).operand == this.asts[this.top - 2] : boolean
>(this.asts[this.top - 3]).operand : any
>(this.asts[this.top - 3]) : TypeScript.UnaryExpression
>this.asts[this.top - 3] : TypeScript.UnaryExpression
>TypeScript : any
>this.asts[this.top - 3] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 3 : number
>this.top : number
>this : this
>top : number
>3 : 3
>operand : any
>this.asts[this.top - 2] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 2 : number
>this.top : number
>this : this
>top : number
>2 : 2
}
public isListOfArrayLit(): boolean {
>isListOfArrayLit : () => boolean
return this.count() >= 2 &&
>this.count() >= 2 && this.asts[this.top - 1].nodeType === TypeScript.NodeType.ArrayLit && this.asts[this.top - 0].nodeType === TypeScript.NodeType.List && (this.asts[this.top - 1]).operand == this.asts[this.top - 0] : boolean
>this.count() >= 2 && this.asts[this.top - 1].nodeType === TypeScript.NodeType.ArrayLit && this.asts[this.top - 0].nodeType === TypeScript.NodeType.List : boolean
>this.count() >= 2 && this.asts[this.top - 1].nodeType === TypeScript.NodeType.ArrayLit : boolean
>this.count() >= 2 : boolean
>this.count() : number
>this.count : () => number
>this : this
>count : () => number
>2 : 2
this.asts[this.top - 1].nodeType === TypeScript.NodeType.ArrayLit &&
>this.asts[this.top - 1].nodeType === TypeScript.NodeType.ArrayLit : boolean
>this.asts[this.top - 1].nodeType : any
>this.asts[this.top - 1] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 1 : number
>this.top : number
>this : this
>top : number
>1 : 1
>nodeType : any
>TypeScript.NodeType.ArrayLit : any
>TypeScript.NodeType : any
>TypeScript : typeof TypeScript
>NodeType : any
>ArrayLit : any
this.asts[this.top - 0].nodeType === TypeScript.NodeType.List &&
>this.asts[this.top - 0].nodeType === TypeScript.NodeType.List : boolean
>this.asts[this.top - 0].nodeType : any
>this.asts[this.top - 0] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 0 : number
>this.top : number
>this : this
>top : number
>0 : 0
>nodeType : any
>TypeScript.NodeType.List : any
>TypeScript.NodeType : any
>TypeScript : typeof TypeScript
>NodeType : any
>List : any
(this.asts[this.top - 1]).operand == this.asts[this.top - 0];
>(this.asts[this.top - 1]).operand == this.asts[this.top - 0] : boolean
>(this.asts[this.top - 1]).operand : any
>(this.asts[this.top - 1]) : TypeScript.UnaryExpression
>this.asts[this.top - 1] : TypeScript.UnaryExpression
>TypeScript : any
>this.asts[this.top - 1] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 1 : number
>this.top : number
>this : this
>top : number
>1 : 1
>operand : any
>this.asts[this.top - 0] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 0 : number
>this.top : number
>this : this
>top : number
>0 : 0
}
public isTargetOfMember(): boolean {
>isTargetOfMember : () => boolean
return this.count() >= 2 &&
>this.count() >= 2 && this.asts[this.top - 1].nodeType === TypeScript.NodeType.Member && (this.asts[this.top - 1]).operand1 === this.asts[this.top - 0] : boolean
>this.count() >= 2 && this.asts[this.top - 1].nodeType === TypeScript.NodeType.Member : boolean
>this.count() >= 2 : boolean
>this.count() : number
>this.count : () => number
>this : this
>count : () => number
>2 : 2
this.asts[this.top - 1].nodeType === TypeScript.NodeType.Member &&
>this.asts[this.top - 1].nodeType === TypeScript.NodeType.Member : boolean
>this.asts[this.top - 1].nodeType : any
>this.asts[this.top - 1] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 1 : number
>this.top : number
>this : this
>top : number
>1 : 1
>nodeType : any
>TypeScript.NodeType.Member : any
>TypeScript.NodeType : any
>TypeScript : typeof TypeScript
>NodeType : any
>Member : any
(this.asts[this.top - 1]).operand1 === this.asts[this.top - 0];
>(this.asts[this.top - 1]).operand1 === this.asts[this.top - 0] : boolean
>(this.asts[this.top - 1]).operand1 : any
>(this.asts[this.top - 1]) : TypeScript.BinaryExpression
>this.asts[this.top - 1] : TypeScript.BinaryExpression
>TypeScript : any
>this.asts[this.top - 1] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 1 : number
>this.top : number
>this : this
>top : number
>1 : 1
>operand1 : any
>this.asts[this.top - 0] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 0 : number
>this.top : number
>this : this
>top : number
>0 : 0
}
public isMemberOfMember(): boolean {
>isMemberOfMember : () => boolean
return this.count() >= 2 &&
>this.count() >= 2 && this.asts[this.top - 1].nodeType === TypeScript.NodeType.Member && (this.asts[this.top - 1]).operand2 === this.asts[this.top - 0] : boolean
>this.count() >= 2 && this.asts[this.top - 1].nodeType === TypeScript.NodeType.Member : boolean
>this.count() >= 2 : boolean
>this.count() : number
>this.count : () => number
>this : this
>count : () => number
>2 : 2
this.asts[this.top - 1].nodeType === TypeScript.NodeType.Member &&
>this.asts[this.top - 1].nodeType === TypeScript.NodeType.Member : boolean
>this.asts[this.top - 1].nodeType : any
>this.asts[this.top - 1] : TypeScript.AST
>this.asts : TypeScript.AST[]
>this : this
>asts : TypeScript.AST[]
>this.top - 1 : number
>this.top : number
>this : this
>top : number
>1 : 1
>nodeType : any
>TypeScript.NodeType.Member : any
>TypeScript.NodeType : any
>TypeScript : typeof TypeScript
>NodeType : any
>Member : any
(this.asts[this.top - 1]).operand2 === this.asts[this.top - 0];
>(this.asts[this.top - 1]).operand2 === this.asts[this.top - 0] : boolean
>(this.asts[this.top - 1]).operand2 : any
>(this.asts[this.top - 1]) : TypeScript.BinaryExpression
>