TypeScript/tests/baselines/reference/parserRealSource11.symbols
Anders Hejlsberg a4f9bf0fce
Create type aliases for unresolved type symbols (#45976)
* Create type aliases for unresolved type symbols

* Accept new baselines

* Update fourslash tests

* Unresolved import aliases create tagged unresolved symbols

* Add comments

* Accept new baselines

* Add fourslash tests
2021-09-23 13:21:27 -07:00

7368 lines
367 KiB
Plaintext

=== tests/cases/conformance/parser/ecmascript5/parserRealSource11.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.
///<reference path='typescript.ts' />
module TypeScript {
>TypeScript : Symbol(TypeScript, Decl(parserRealSource11.ts, 0, 0))
export class ASTSpan {
>ASTSpan : Symbol(ASTSpan, Decl(parserRealSource11.ts, 5, 19))
public minChar: number = -1; // -1 = "undefined" or "compiler generated"
>minChar : Symbol(ASTSpan.minChar, Decl(parserRealSource11.ts, 6, 26))
public limChar: number = -1; // -1 = "undefined" or "compiler generated"
>limChar : Symbol(ASTSpan.limChar, Decl(parserRealSource11.ts, 7, 36))
}
export class AST extends ASTSpan {
>AST : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
>ASTSpan : Symbol(ASTSpan, Decl(parserRealSource11.ts, 5, 19))
public type: Type = null;
>type : Symbol(AST.type, Decl(parserRealSource11.ts, 11, 38))
>Type : Symbol(Type)
public flags = ASTFlags.Writeable;
>flags : Symbol(AST.flags, Decl(parserRealSource11.ts, 12, 33))
// REVIEW: for diagnostic purposes
public passCreated: number = CompilerDiagnostics.analysisPass;
>passCreated : Symbol(AST.passCreated, Decl(parserRealSource11.ts, 13, 42))
public preComments: Comment[] = null;
>preComments : Symbol(AST.preComments, Decl(parserRealSource11.ts, 16, 70))
>Comment : Symbol(Comment, Decl(parserRealSource11.ts, 2323, 5))
public postComments: Comment[] = null;
>postComments : Symbol(AST.postComments, Decl(parserRealSource11.ts, 18, 45))
>Comment : Symbol(Comment, Decl(parserRealSource11.ts, 2323, 5))
public isParenthesized = false;
>isParenthesized : Symbol(AST.isParenthesized, Decl(parserRealSource11.ts, 19, 46))
constructor (public nodeType: NodeType) {
>nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
>NodeType : Symbol(NodeType)
super();
>super : Symbol(ASTSpan, Decl(parserRealSource11.ts, 5, 19))
}
public isExpression() { return false; }
>isExpression : Symbol(AST.isExpression, Decl(parserRealSource11.ts, 25, 9))
public isStatementOrExpression() { return false; }
>isStatementOrExpression : Symbol(AST.isStatementOrExpression, Decl(parserRealSource11.ts, 27, 47))
public isCompoundStatement() { return false; }
>isCompoundStatement : Symbol(AST.isCompoundStatement, Decl(parserRealSource11.ts, 29, 58))
public isLeaf() { return this.isStatementOrExpression() && (!this.isCompoundStatement()); }
>isLeaf : Symbol(AST.isLeaf, Decl(parserRealSource11.ts, 31, 54))
>this.isStatementOrExpression : Symbol(AST.isStatementOrExpression, Decl(parserRealSource11.ts, 27, 47))
>this : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
>isStatementOrExpression : Symbol(AST.isStatementOrExpression, Decl(parserRealSource11.ts, 27, 47))
>this.isCompoundStatement : Symbol(AST.isCompoundStatement, Decl(parserRealSource11.ts, 29, 58))
>this : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
>isCompoundStatement : Symbol(AST.isCompoundStatement, Decl(parserRealSource11.ts, 29, 58))
public typeCheck(typeFlow: TypeFlow) {
>typeCheck : Symbol(AST.typeCheck, Decl(parserRealSource11.ts, 33, 99))
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 35, 25))
>TypeFlow : Symbol(TypeFlow)
switch (this.nodeType) {
>this.nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
>this : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
>nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
case NodeType.Error:
case NodeType.EmptyExpr:
this.type = typeFlow.anyType;
>this.type : Symbol(AST.type, Decl(parserRealSource11.ts, 11, 38))
>this : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
>type : Symbol(AST.type, Decl(parserRealSource11.ts, 11, 38))
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 35, 25))
break;
case NodeType.This:
return typeFlow.typeCheckThis(this);
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 35, 25))
>this : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
case NodeType.Null:
this.type = typeFlow.nullType;
>this.type : Symbol(AST.type, Decl(parserRealSource11.ts, 11, 38))
>this : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
>type : Symbol(AST.type, Decl(parserRealSource11.ts, 11, 38))
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 35, 25))
break;
case NodeType.False:
case NodeType.True:
this.type = typeFlow.booleanType;
>this.type : Symbol(AST.type, Decl(parserRealSource11.ts, 11, 38))
>this : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
>type : Symbol(AST.type, Decl(parserRealSource11.ts, 11, 38))
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 35, 25))
break;
case NodeType.Super:
return typeFlow.typeCheckSuper(this);
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 35, 25))
>this : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
case NodeType.EndCode:
case NodeType.Empty:
case NodeType.Void:
this.type = typeFlow.voidType;
>this.type : Symbol(AST.type, Decl(parserRealSource11.ts, 11, 38))
>this : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
>type : Symbol(AST.type, Decl(parserRealSource11.ts, 11, 38))
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 35, 25))
break;
default:
throw new Error("please implement in derived class");
>Error : Symbol(Error, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
}
return this;
>this : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
}
public emit(emitter: Emitter, tokenId: TokenID, startLine: boolean) {
>emit : Symbol(AST.emit, Decl(parserRealSource11.ts, 61, 9))
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 63, 20))
>Emitter : Symbol(Emitter)
>tokenId : Symbol(tokenId, Decl(parserRealSource11.ts, 63, 37))
>TokenID : Symbol(TokenID)
>startLine : Symbol(startLine, Decl(parserRealSource11.ts, 63, 55))
emitter.emitParensAndCommentsInPlace(this, true);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 63, 20))
>this : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
switch (this.nodeType) {
>this.nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
>this : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
>nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
case NodeType.This:
emitter.recordSourceMappingStart(this);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 63, 20))
>this : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
if (emitter.thisFnc && (hasFlag(emitter.thisFnc.fncFlags, FncFlags.IsFatArrowFunction))) {
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 63, 20))
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 63, 20))
emitter.writeToOutput("_this");
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 63, 20))
}
else {
emitter.writeToOutput("this");
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 63, 20))
}
emitter.recordSourceMappingEnd(this);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 63, 20))
>this : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
break;
case NodeType.Null:
emitter.recordSourceMappingStart(this);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 63, 20))
>this : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
emitter.writeToOutput("null");
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 63, 20))
emitter.recordSourceMappingEnd(this);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 63, 20))
>this : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
break;
case NodeType.False:
emitter.recordSourceMappingStart(this);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 63, 20))
>this : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
emitter.writeToOutput("false");
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 63, 20))
emitter.recordSourceMappingEnd(this);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 63, 20))
>this : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
break;
case NodeType.True:
emitter.recordSourceMappingStart(this);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 63, 20))
>this : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
emitter.writeToOutput("true");
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 63, 20))
emitter.recordSourceMappingEnd(this);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 63, 20))
>this : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
break;
case NodeType.Super:
emitter.recordSourceMappingStart(this);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 63, 20))
>this : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
emitter.emitSuperReference();
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 63, 20))
emitter.recordSourceMappingEnd(this);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 63, 20))
>this : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
break;
case NodeType.EndCode:
break;
case NodeType.Error:
case NodeType.EmptyExpr:
break;
case NodeType.Empty:
emitter.recordSourceMappingStart(this);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 63, 20))
>this : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
emitter.writeToOutput("; ");
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 63, 20))
emitter.recordSourceMappingEnd(this);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 63, 20))
>this : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
break;
case NodeType.Void:
emitter.recordSourceMappingStart(this);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 63, 20))
>this : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
emitter.writeToOutput("void ");
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 63, 20))
emitter.recordSourceMappingEnd(this);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 63, 20))
>this : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
break;
default:
throw new Error("please implement in derived class");
>Error : Symbol(Error, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
}
emitter.emitParensAndCommentsInPlace(this, false);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 63, 20))
>this : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
}
public print(context: PrintContext) {
>print : Symbol(AST.print, Decl(parserRealSource11.ts, 116, 9))
>context : Symbol(context, Decl(parserRealSource11.ts, 118, 21))
>PrintContext : Symbol(PrintContext)
context.startLine();
>context : Symbol(context, Decl(parserRealSource11.ts, 118, 21))
var lineCol = { line: -1, col: -1 };
>lineCol : Symbol(lineCol, Decl(parserRealSource11.ts, 120, 15))
>line : Symbol(line, Decl(parserRealSource11.ts, 120, 27))
>col : Symbol(col, Decl(parserRealSource11.ts, 120, 37))
var limLineCol = { line: -1, col: -1 };
>limLineCol : Symbol(limLineCol, Decl(parserRealSource11.ts, 121, 15))
>line : Symbol(line, Decl(parserRealSource11.ts, 121, 30))
>col : Symbol(col, Decl(parserRealSource11.ts, 121, 40))
if (context.parser !== null) {
>context : Symbol(context, Decl(parserRealSource11.ts, 118, 21))
context.parser.getSourceLineCol(lineCol, this.minChar);
>context : Symbol(context, Decl(parserRealSource11.ts, 118, 21))
>lineCol : Symbol(lineCol, Decl(parserRealSource11.ts, 120, 15))
>this.minChar : Symbol(ASTSpan.minChar, Decl(parserRealSource11.ts, 6, 26))
>this : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
>minChar : Symbol(ASTSpan.minChar, Decl(parserRealSource11.ts, 6, 26))
context.parser.getSourceLineCol(limLineCol, this.limChar);
>context : Symbol(context, Decl(parserRealSource11.ts, 118, 21))
>limLineCol : Symbol(limLineCol, Decl(parserRealSource11.ts, 121, 15))
>this.limChar : Symbol(ASTSpan.limChar, Decl(parserRealSource11.ts, 7, 36))
>this : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
>limChar : Symbol(ASTSpan.limChar, Decl(parserRealSource11.ts, 7, 36))
context.write("(" + lineCol.line + "," + lineCol.col + ")--" +
>context : Symbol(context, Decl(parserRealSource11.ts, 118, 21))
>lineCol.line : Symbol(line, Decl(parserRealSource11.ts, 120, 27))
>lineCol : Symbol(lineCol, Decl(parserRealSource11.ts, 120, 15))
>line : Symbol(line, Decl(parserRealSource11.ts, 120, 27))
>lineCol.col : Symbol(col, Decl(parserRealSource11.ts, 120, 37))
>lineCol : Symbol(lineCol, Decl(parserRealSource11.ts, 120, 15))
>col : Symbol(col, Decl(parserRealSource11.ts, 120, 37))
"(" + limLineCol.line + "," + limLineCol.col + "): ");
>limLineCol.line : Symbol(line, Decl(parserRealSource11.ts, 121, 30))
>limLineCol : Symbol(limLineCol, Decl(parserRealSource11.ts, 121, 15))
>line : Symbol(line, Decl(parserRealSource11.ts, 121, 30))
>limLineCol.col : Symbol(col, Decl(parserRealSource11.ts, 121, 40))
>limLineCol : Symbol(limLineCol, Decl(parserRealSource11.ts, 121, 15))
>col : Symbol(col, Decl(parserRealSource11.ts, 121, 40))
}
var lab = this.printLabel();
>lab : Symbol(lab, Decl(parserRealSource11.ts, 128, 15))
>this.printLabel : Symbol(AST.printLabel, Decl(parserRealSource11.ts, 133, 9))
>this : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
>printLabel : Symbol(AST.printLabel, Decl(parserRealSource11.ts, 133, 9))
if (hasFlag(this.flags, ASTFlags.Error)) {
>this.flags : Symbol(AST.flags, Decl(parserRealSource11.ts, 12, 33))
>this : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
>flags : Symbol(AST.flags, Decl(parserRealSource11.ts, 12, 33))
lab += " (Error)";
>lab : Symbol(lab, Decl(parserRealSource11.ts, 128, 15))
}
context.writeLine(lab);
>context : Symbol(context, Decl(parserRealSource11.ts, 118, 21))
>lab : Symbol(lab, Decl(parserRealSource11.ts, 128, 15))
}
public printLabel() {
>printLabel : Symbol(AST.printLabel, Decl(parserRealSource11.ts, 133, 9))
if (nodeTypeTable[this.nodeType] !== undefined) {
>this.nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
>this : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
>nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
>undefined : Symbol(undefined)
return nodeTypeTable[this.nodeType];
>this.nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
>this : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
>nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
}
else {
return (<any>NodeType)._map[this.nodeType];
>this.nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
>this : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
>nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
}
}
public addToControlFlow(context: ControlFlowContext): void {
>addToControlFlow : Symbol(AST.addToControlFlow, Decl(parserRealSource11.ts, 142, 9))
>context : Symbol(context, Decl(parserRealSource11.ts, 144, 32))
>ControlFlowContext : Symbol(ControlFlowContext)
// by default, AST adds itself to current basic block and does not check its children
context.walker.options.goChildren = false;
>context : Symbol(context, Decl(parserRealSource11.ts, 144, 32))
context.addContent(this);
>context : Symbol(context, Decl(parserRealSource11.ts, 144, 32))
>this : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
}
public netFreeUses(container: Symbol, freeUses: StringHashTable) {
>netFreeUses : Symbol(AST.netFreeUses, Decl(parserRealSource11.ts, 148, 9))
>container : Symbol(container, Decl(parserRealSource11.ts, 150, 27))
>Symbol : Symbol(Symbol, Decl(lib.es5.d.ts, --, --))
>freeUses : Symbol(freeUses, Decl(parserRealSource11.ts, 150, 45))
>StringHashTable : Symbol(StringHashTable)
}
public treeViewLabel() {
>treeViewLabel : Symbol(AST.treeViewLabel, Decl(parserRealSource11.ts, 151, 9))
return (<any>NodeType)._map[this.nodeType];
>this.nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
>this : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
>nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
}
public static getResolvedIdentifierName(name: string): string {
>getResolvedIdentifierName : Symbol(AST.getResolvedIdentifierName, Decl(parserRealSource11.ts, 155, 9))
>name : Symbol(name, Decl(parserRealSource11.ts, 157, 48))
if (!name) return "";
>name : Symbol(name, Decl(parserRealSource11.ts, 157, 48))
var resolved = "";
>resolved : Symbol(resolved, Decl(parserRealSource11.ts, 160, 15))
var start = 0;
>start : Symbol(start, Decl(parserRealSource11.ts, 161, 15))
var i = 0;
>i : Symbol(i, Decl(parserRealSource11.ts, 162, 15))
while(i <= name.length - 6) {
>i : Symbol(i, Decl(parserRealSource11.ts, 162, 15))
>name.length : Symbol(String.length, Decl(lib.es5.d.ts, --, --))
>name : Symbol(name, Decl(parserRealSource11.ts, 157, 48))
>length : Symbol(String.length, Decl(lib.es5.d.ts, --, --))
// Look for escape sequence \uxxxx
if (name.charAt(i) == '\\' && name.charAt(i+1) == 'u') {
>name.charAt : Symbol(String.charAt, Decl(lib.es5.d.ts, --, --))
>name : Symbol(name, Decl(parserRealSource11.ts, 157, 48))
>charAt : Symbol(String.charAt, Decl(lib.es5.d.ts, --, --))
>i : Symbol(i, Decl(parserRealSource11.ts, 162, 15))
>name.charAt : Symbol(String.charAt, Decl(lib.es5.d.ts, --, --))
>name : Symbol(name, Decl(parserRealSource11.ts, 157, 48))
>charAt : Symbol(String.charAt, Decl(lib.es5.d.ts, --, --))
>i : Symbol(i, Decl(parserRealSource11.ts, 162, 15))
var charCode = parseInt(name.substr(i + 2, 4), 16);
>charCode : Symbol(charCode, Decl(parserRealSource11.ts, 166, 23))
>parseInt : Symbol(parseInt, Decl(lib.es5.d.ts, --, --))
>name.substr : Symbol(String.substr, Decl(lib.es5.d.ts, --, --))
>name : Symbol(name, Decl(parserRealSource11.ts, 157, 48))
>substr : Symbol(String.substr, Decl(lib.es5.d.ts, --, --))
>i : Symbol(i, Decl(parserRealSource11.ts, 162, 15))
resolved += name.substr(start, i - start);
>resolved : Symbol(resolved, Decl(parserRealSource11.ts, 160, 15))
>name.substr : Symbol(String.substr, Decl(lib.es5.d.ts, --, --))
>name : Symbol(name, Decl(parserRealSource11.ts, 157, 48))
>substr : Symbol(String.substr, Decl(lib.es5.d.ts, --, --))
>start : Symbol(start, Decl(parserRealSource11.ts, 161, 15))
>i : Symbol(i, Decl(parserRealSource11.ts, 162, 15))
>start : Symbol(start, Decl(parserRealSource11.ts, 161, 15))
resolved += String.fromCharCode(charCode);
>resolved : Symbol(resolved, Decl(parserRealSource11.ts, 160, 15))
>String.fromCharCode : Symbol(StringConstructor.fromCharCode, Decl(lib.es5.d.ts, --, --))
>String : Symbol(String, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
>fromCharCode : Symbol(StringConstructor.fromCharCode, Decl(lib.es5.d.ts, --, --))
>charCode : Symbol(charCode, Decl(parserRealSource11.ts, 166, 23))
i += 6;
>i : Symbol(i, Decl(parserRealSource11.ts, 162, 15))
start = i;
>start : Symbol(start, Decl(parserRealSource11.ts, 161, 15))
>i : Symbol(i, Decl(parserRealSource11.ts, 162, 15))
continue;
}
i++;
>i : Symbol(i, Decl(parserRealSource11.ts, 162, 15))
}
// Append remaining string
resolved += name.substring(start);
>resolved : Symbol(resolved, Decl(parserRealSource11.ts, 160, 15))
>name.substring : Symbol(String.substring, Decl(lib.es5.d.ts, --, --))
>name : Symbol(name, Decl(parserRealSource11.ts, 157, 48))
>substring : Symbol(String.substring, Decl(lib.es5.d.ts, --, --))
>start : Symbol(start, Decl(parserRealSource11.ts, 161, 15))
return resolved;
>resolved : Symbol(resolved, Decl(parserRealSource11.ts, 160, 15))
}
}
export class IncompleteAST extends AST {
>IncompleteAST : Symbol(IncompleteAST, Decl(parserRealSource11.ts, 179, 5))
>AST : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
constructor (min: number, lim: number) {
>min : Symbol(min, Decl(parserRealSource11.ts, 182, 21))
>lim : Symbol(lim, Decl(parserRealSource11.ts, 182, 33))
super(NodeType.Error);
>super : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
this.minChar = min;
>this.minChar : Symbol(ASTSpan.minChar, Decl(parserRealSource11.ts, 6, 26))
>this : Symbol(IncompleteAST, Decl(parserRealSource11.ts, 179, 5))
>minChar : Symbol(ASTSpan.minChar, Decl(parserRealSource11.ts, 6, 26))
>min : Symbol(min, Decl(parserRealSource11.ts, 182, 21))
this.limChar = lim;
>this.limChar : Symbol(ASTSpan.limChar, Decl(parserRealSource11.ts, 7, 36))
>this : Symbol(IncompleteAST, Decl(parserRealSource11.ts, 179, 5))
>limChar : Symbol(ASTSpan.limChar, Decl(parserRealSource11.ts, 7, 36))
>lim : Symbol(lim, Decl(parserRealSource11.ts, 182, 33))
}
}
export class ASTList extends AST {
>ASTList : Symbol(ASTList, Decl(parserRealSource11.ts, 188, 5))
>AST : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
public enclosingScope: SymbolScope = null;
>enclosingScope : Symbol(ASTList.enclosingScope, Decl(parserRealSource11.ts, 190, 38))
>SymbolScope : Symbol(SymbolScope)
public members: AST[] = new AST[];
>members : Symbol(ASTList.members, Decl(parserRealSource11.ts, 191, 50))
>AST : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
>AST : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
constructor () {
super(NodeType.List);
>super : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
}
public addToControlFlow(context: ControlFlowContext) {
>addToControlFlow : Symbol(ASTList.addToControlFlow, Decl(parserRealSource11.ts, 196, 9))
>context : Symbol(context, Decl(parserRealSource11.ts, 198, 32))
>ControlFlowContext : Symbol(ControlFlowContext)
var len = this.members.length;
>len : Symbol(len, Decl(parserRealSource11.ts, 199, 15))
>this.members.length : Symbol(Array.length, Decl(lib.es5.d.ts, --, --))
>this.members : Symbol(ASTList.members, Decl(parserRealSource11.ts, 191, 50))
>this : Symbol(ASTList, Decl(parserRealSource11.ts, 188, 5))
>members : Symbol(ASTList.members, Decl(parserRealSource11.ts, 191, 50))
>length : Symbol(Array.length, Decl(lib.es5.d.ts, --, --))
for (var i = 0; i < len; i++) {
>i : Symbol(i, Decl(parserRealSource11.ts, 200, 20))
>i : Symbol(i, Decl(parserRealSource11.ts, 200, 20))
>len : Symbol(len, Decl(parserRealSource11.ts, 199, 15))
>i : Symbol(i, Decl(parserRealSource11.ts, 200, 20))
if (context.noContinuation) {
>context : Symbol(context, Decl(parserRealSource11.ts, 198, 32))
context.addUnreachable(this.members[i]);
>context : Symbol(context, Decl(parserRealSource11.ts, 198, 32))
>this.members : Symbol(ASTList.members, Decl(parserRealSource11.ts, 191, 50))
>this : Symbol(ASTList, Decl(parserRealSource11.ts, 188, 5))
>members : Symbol(ASTList.members, Decl(parserRealSource11.ts, 191, 50))
>i : Symbol(i, Decl(parserRealSource11.ts, 200, 20))
break;
}
else {
this.members[i] = context.walk(this.members[i], this);
>this.members : Symbol(ASTList.members, Decl(parserRealSource11.ts, 191, 50))
>this : Symbol(ASTList, Decl(parserRealSource11.ts, 188, 5))
>members : Symbol(ASTList.members, Decl(parserRealSource11.ts, 191, 50))
>i : Symbol(i, Decl(parserRealSource11.ts, 200, 20))
>context : Symbol(context, Decl(parserRealSource11.ts, 198, 32))
>this.members : Symbol(ASTList.members, Decl(parserRealSource11.ts, 191, 50))
>this : Symbol(ASTList, Decl(parserRealSource11.ts, 188, 5))
>members : Symbol(ASTList.members, Decl(parserRealSource11.ts, 191, 50))
>i : Symbol(i, Decl(parserRealSource11.ts, 200, 20))
>this : Symbol(ASTList, Decl(parserRealSource11.ts, 188, 5))
}
}
context.walker.options.goChildren = false;
>context : Symbol(context, Decl(parserRealSource11.ts, 198, 32))
}
public append(ast: AST) {
>append : Symbol(ASTList.append, Decl(parserRealSource11.ts, 210, 9))
>ast : Symbol(ast, Decl(parserRealSource11.ts, 212, 22))
>AST : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
this.members[this.members.length] = ast;
>this.members : Symbol(ASTList.members, Decl(parserRealSource11.ts, 191, 50))
>this : Symbol(ASTList, Decl(parserRealSource11.ts, 188, 5))
>members : Symbol(ASTList.members, Decl(parserRealSource11.ts, 191, 50))
>this.members.length : Symbol(Array.length, Decl(lib.es5.d.ts, --, --))
>this.members : Symbol(ASTList.members, Decl(parserRealSource11.ts, 191, 50))
>this : Symbol(ASTList, Decl(parserRealSource11.ts, 188, 5))
>members : Symbol(ASTList.members, Decl(parserRealSource11.ts, 191, 50))
>length : Symbol(Array.length, Decl(lib.es5.d.ts, --, --))
>ast : Symbol(ast, Decl(parserRealSource11.ts, 212, 22))
return this;
>this : Symbol(ASTList, Decl(parserRealSource11.ts, 188, 5))
}
public appendAll(ast: AST) {
>appendAll : Symbol(ASTList.appendAll, Decl(parserRealSource11.ts, 215, 9))
>ast : Symbol(ast, Decl(parserRealSource11.ts, 217, 25))
>AST : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
if (ast.nodeType == NodeType.List) {
>ast.nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
>ast : Symbol(ast, Decl(parserRealSource11.ts, 217, 25))
>nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
var list = <ASTList>ast;
>list : Symbol(list, Decl(parserRealSource11.ts, 219, 19))
>ASTList : Symbol(ASTList, Decl(parserRealSource11.ts, 188, 5))
>ast : Symbol(ast, Decl(parserRealSource11.ts, 217, 25))
for (var i = 0, len = list.members.length; i < len; i++) {
>i : Symbol(i, Decl(parserRealSource11.ts, 220, 24))
>len : Symbol(len, Decl(parserRealSource11.ts, 220, 31))
>list.members.length : Symbol(Array.length, Decl(lib.es5.d.ts, --, --))
>list.members : Symbol(ASTList.members, Decl(parserRealSource11.ts, 191, 50))
>list : Symbol(list, Decl(parserRealSource11.ts, 219, 19))
>members : Symbol(ASTList.members, Decl(parserRealSource11.ts, 191, 50))
>length : Symbol(Array.length, Decl(lib.es5.d.ts, --, --))
>i : Symbol(i, Decl(parserRealSource11.ts, 220, 24))
>len : Symbol(len, Decl(parserRealSource11.ts, 220, 31))
>i : Symbol(i, Decl(parserRealSource11.ts, 220, 24))
this.append(list.members[i]);
>this.append : Symbol(ASTList.append, Decl(parserRealSource11.ts, 210, 9))
>this : Symbol(ASTList, Decl(parserRealSource11.ts, 188, 5))
>append : Symbol(ASTList.append, Decl(parserRealSource11.ts, 210, 9))
>list.members : Symbol(ASTList.members, Decl(parserRealSource11.ts, 191, 50))
>list : Symbol(list, Decl(parserRealSource11.ts, 219, 19))
>members : Symbol(ASTList.members, Decl(parserRealSource11.ts, 191, 50))
>i : Symbol(i, Decl(parserRealSource11.ts, 220, 24))
}
}
else {
this.append(ast);
>this.append : Symbol(ASTList.append, Decl(parserRealSource11.ts, 210, 9))
>this : Symbol(ASTList, Decl(parserRealSource11.ts, 188, 5))
>append : Symbol(ASTList.append, Decl(parserRealSource11.ts, 210, 9))
>ast : Symbol(ast, Decl(parserRealSource11.ts, 217, 25))
}
return this;
>this : Symbol(ASTList, Decl(parserRealSource11.ts, 188, 5))
}
public emit(emitter: Emitter, tokenId: TokenID, startLine: boolean) {
>emit : Symbol(ASTList.emit, Decl(parserRealSource11.ts, 228, 9))
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 230, 20))
>Emitter : Symbol(Emitter)
>tokenId : Symbol(tokenId, Decl(parserRealSource11.ts, 230, 37))
>TokenID : Symbol(TokenID)
>startLine : Symbol(startLine, Decl(parserRealSource11.ts, 230, 55))
emitter.recordSourceMappingStart(this);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 230, 20))
>this : Symbol(ASTList, Decl(parserRealSource11.ts, 188, 5))
emitter.emitJavascriptList(this, null, TokenID.Semicolon, startLine, false, false);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 230, 20))
>this : Symbol(ASTList, Decl(parserRealSource11.ts, 188, 5))
>startLine : Symbol(startLine, Decl(parserRealSource11.ts, 230, 55))
emitter.recordSourceMappingEnd(this);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 230, 20))
>this : Symbol(ASTList, Decl(parserRealSource11.ts, 188, 5))
}
public typeCheck(typeFlow: TypeFlow) {
>typeCheck : Symbol(ASTList.typeCheck, Decl(parserRealSource11.ts, 234, 9))
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 236, 25))
>TypeFlow : Symbol(TypeFlow)
var len = this.members.length;
>len : Symbol(len, Decl(parserRealSource11.ts, 237, 15))
>this.members.length : Symbol(Array.length, Decl(lib.es5.d.ts, --, --))
>this.members : Symbol(ASTList.members, Decl(parserRealSource11.ts, 191, 50))
>this : Symbol(ASTList, Decl(parserRealSource11.ts, 188, 5))
>members : Symbol(ASTList.members, Decl(parserRealSource11.ts, 191, 50))
>length : Symbol(Array.length, Decl(lib.es5.d.ts, --, --))
typeFlow.nestingLevel++;
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 236, 25))
for (var i = 0; i < len; i++) {
>i : Symbol(i, Decl(parserRealSource11.ts, 239, 20))
>i : Symbol(i, Decl(parserRealSource11.ts, 239, 20))
>len : Symbol(len, Decl(parserRealSource11.ts, 237, 15))
>i : Symbol(i, Decl(parserRealSource11.ts, 239, 20))
if (this.members[i]) {
>this.members : Symbol(ASTList.members, Decl(parserRealSource11.ts, 191, 50))
>this : Symbol(ASTList, Decl(parserRealSource11.ts, 188, 5))
>members : Symbol(ASTList.members, Decl(parserRealSource11.ts, 191, 50))
>i : Symbol(i, Decl(parserRealSource11.ts, 239, 20))
this.members[i] = this.members[i].typeCheck(typeFlow);
>this.members : Symbol(ASTList.members, Decl(parserRealSource11.ts, 191, 50))
>this : Symbol(ASTList, Decl(parserRealSource11.ts, 188, 5))
>members : Symbol(ASTList.members, Decl(parserRealSource11.ts, 191, 50))
>i : Symbol(i, Decl(parserRealSource11.ts, 239, 20))
>this.members[i].typeCheck : Symbol(AST.typeCheck, Decl(parserRealSource11.ts, 33, 99))
>this.members : Symbol(ASTList.members, Decl(parserRealSource11.ts, 191, 50))
>this : Symbol(ASTList, Decl(parserRealSource11.ts, 188, 5))
>members : Symbol(ASTList.members, Decl(parserRealSource11.ts, 191, 50))
>i : Symbol(i, Decl(parserRealSource11.ts, 239, 20))
>typeCheck : Symbol(AST.typeCheck, Decl(parserRealSource11.ts, 33, 99))
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 236, 25))
}
}
typeFlow.nestingLevel--;
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 236, 25))
return this;
>this : Symbol(ASTList, Decl(parserRealSource11.ts, 188, 5))
}
}
export class Identifier extends AST {
>Identifier : Symbol(Identifier, Decl(parserRealSource11.ts, 247, 5))
>AST : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
public sym: Symbol = null;
>sym : Symbol(Identifier.sym, Decl(parserRealSource11.ts, 249, 41))
>Symbol : Symbol(Symbol, Decl(lib.es5.d.ts, --, --))
public cloId = -1;
>cloId : Symbol(Identifier.cloId, Decl(parserRealSource11.ts, 250, 34))
public text: string;
>text : Symbol(Identifier.text, Decl(parserRealSource11.ts, 251, 26))
// 'actualText' is the text that the user has entered for the identifier. the text might
// include any Unicode escape sequences (e.g.: \u0041 for 'A'). 'text', however, contains
// the resolved value of any escape sequences in the actual text; so in the previous
// example, actualText = '\u0041', text = 'A'.
//
// For purposes of finding a symbol, use text, as this will allow you to match all
// variations of the variable text. For full-fidelity translation of the user input, such
// as emitting, use the actualText field.
//
// Note:
// To change text, and to avoid running into a situation where 'actualText' does not
// match 'text', always use setText.
constructor (public actualText: string, public hasEscapeSequence?: boolean) {
>actualText : Symbol(Identifier.actualText, Decl(parserRealSource11.ts, 266, 21))
>hasEscapeSequence : Symbol(Identifier.hasEscapeSequence, Decl(parserRealSource11.ts, 266, 47))
super(NodeType.Name);
>super : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
this.setText(actualText, hasEscapeSequence);
>this.setText : Symbol(Identifier.setText, Decl(parserRealSource11.ts, 269, 9))
>this : Symbol(Identifier, Decl(parserRealSource11.ts, 247, 5))
>setText : Symbol(Identifier.setText, Decl(parserRealSource11.ts, 269, 9))
>actualText : Symbol(actualText, Decl(parserRealSource11.ts, 266, 21))
>hasEscapeSequence : Symbol(hasEscapeSequence, Decl(parserRealSource11.ts, 266, 47))
}
public setText(actualText: string, hasEscapeSequence?: boolean) {
>setText : Symbol(Identifier.setText, Decl(parserRealSource11.ts, 269, 9))
>actualText : Symbol(actualText, Decl(parserRealSource11.ts, 271, 23))
>hasEscapeSequence : Symbol(hasEscapeSequence, Decl(parserRealSource11.ts, 271, 42))
this.actualText = actualText;
>this.actualText : Symbol(Identifier.actualText, Decl(parserRealSource11.ts, 266, 21))
>this : Symbol(Identifier, Decl(parserRealSource11.ts, 247, 5))
>actualText : Symbol(Identifier.actualText, Decl(parserRealSource11.ts, 266, 21))
>actualText : Symbol(actualText, Decl(parserRealSource11.ts, 271, 23))
if (hasEscapeSequence) {
>hasEscapeSequence : Symbol(hasEscapeSequence, Decl(parserRealSource11.ts, 271, 42))
this.text = AST.getResolvedIdentifierName(actualText);
>this.text : Symbol(Identifier.text, Decl(parserRealSource11.ts, 251, 26))
>this : Symbol(Identifier, Decl(parserRealSource11.ts, 247, 5))
>text : Symbol(Identifier.text, Decl(parserRealSource11.ts, 251, 26))
>AST.getResolvedIdentifierName : Symbol(AST.getResolvedIdentifierName, Decl(parserRealSource11.ts, 155, 9))
>AST : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
>getResolvedIdentifierName : Symbol(AST.getResolvedIdentifierName, Decl(parserRealSource11.ts, 155, 9))
>actualText : Symbol(actualText, Decl(parserRealSource11.ts, 271, 23))
}
else {
this.text = actualText;
>this.text : Symbol(Identifier.text, Decl(parserRealSource11.ts, 251, 26))
>this : Symbol(Identifier, Decl(parserRealSource11.ts, 247, 5))
>text : Symbol(Identifier.text, Decl(parserRealSource11.ts, 251, 26))
>actualText : Symbol(actualText, Decl(parserRealSource11.ts, 271, 23))
}
}
public isMissing() { return false; }
>isMissing : Symbol(Identifier.isMissing, Decl(parserRealSource11.ts, 279, 9))
public isLeaf() { return true; }
>isLeaf : Symbol(Identifier.isLeaf, Decl(parserRealSource11.ts, 281, 44))
public treeViewLabel() {
>treeViewLabel : Symbol(Identifier.treeViewLabel, Decl(parserRealSource11.ts, 282, 40))
return "id: " + this.actualText;
>this.actualText : Symbol(Identifier.actualText, Decl(parserRealSource11.ts, 266, 21))
>this : Symbol(Identifier, Decl(parserRealSource11.ts, 247, 5))
>actualText : Symbol(Identifier.actualText, Decl(parserRealSource11.ts, 266, 21))
}
public printLabel() {
>printLabel : Symbol(Identifier.printLabel, Decl(parserRealSource11.ts, 286, 9))
if (this.actualText) {
>this.actualText : Symbol(Identifier.actualText, Decl(parserRealSource11.ts, 266, 21))
>this : Symbol(Identifier, Decl(parserRealSource11.ts, 247, 5))
>actualText : Symbol(Identifier.actualText, Decl(parserRealSource11.ts, 266, 21))
return "id: " + this.actualText;
>this.actualText : Symbol(Identifier.actualText, Decl(parserRealSource11.ts, 266, 21))
>this : Symbol(Identifier, Decl(parserRealSource11.ts, 247, 5))
>actualText : Symbol(Identifier.actualText, Decl(parserRealSource11.ts, 266, 21))
}
else {
return "name node";
}
}
public typeCheck(typeFlow: TypeFlow) {
>typeCheck : Symbol(Identifier.typeCheck, Decl(parserRealSource11.ts, 295, 9))
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 297, 25))
>TypeFlow : Symbol(TypeFlow)
return typeFlow.typeCheckName(this);
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 297, 25))
>this : Symbol(Identifier, Decl(parserRealSource11.ts, 247, 5))
}
public emit(emitter: Emitter, tokenId: TokenID, startLine: boolean) {
>emit : Symbol(Identifier.emit, Decl(parserRealSource11.ts, 299, 9))
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 301, 20))
>Emitter : Symbol(Emitter)
>tokenId : Symbol(tokenId, Decl(parserRealSource11.ts, 301, 37))
>TokenID : Symbol(TokenID)
>startLine : Symbol(startLine, Decl(parserRealSource11.ts, 301, 55))
emitter.emitJavascriptName(this, true);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 301, 20))
>this : Symbol(Identifier, Decl(parserRealSource11.ts, 247, 5))
}
public static fromToken(token: Token): Identifier {
>fromToken : Symbol(Identifier.fromToken, Decl(parserRealSource11.ts, 303, 9))
>token : Symbol(token, Decl(parserRealSource11.ts, 305, 32))
>Token : Symbol(Token)
>Identifier : Symbol(Identifier, Decl(parserRealSource11.ts, 247, 5))
return new Identifier(token.getText(), (<IdentifierToken>token).hasEscapeSequence);
>Identifier : Symbol(Identifier, Decl(parserRealSource11.ts, 247, 5))
>token : Symbol(token, Decl(parserRealSource11.ts, 305, 32))
>IdentifierToken : Symbol(IdentifierToken)
>token : Symbol(token, Decl(parserRealSource11.ts, 305, 32))
}
}
export class MissingIdentifier extends Identifier {
>MissingIdentifier : Symbol(MissingIdentifier, Decl(parserRealSource11.ts, 308, 5))
>Identifier : Symbol(Identifier, Decl(parserRealSource11.ts, 247, 5))
constructor () {
super("__missing");
>super : Symbol(Identifier, Decl(parserRealSource11.ts, 247, 5))
}
public isMissing() {
>isMissing : Symbol(MissingIdentifier.isMissing, Decl(parserRealSource11.ts, 313, 9))
return true;
}
public emit(emitter: Emitter, tokenId: TokenID, startLine: boolean) {
>emit : Symbol(MissingIdentifier.emit, Decl(parserRealSource11.ts, 317, 9))
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 319, 20))
>Emitter : Symbol(Emitter)
>tokenId : Symbol(tokenId, Decl(parserRealSource11.ts, 319, 37))
>TokenID : Symbol(TokenID)
>startLine : Symbol(startLine, Decl(parserRealSource11.ts, 319, 55))
// Emit nothing for a missing ID
}
}
export class Label extends AST {
>Label : Symbol(Label, Decl(parserRealSource11.ts, 322, 5))
>AST : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
constructor (public id: Identifier) {
>id : Symbol(Label.id, Decl(parserRealSource11.ts, 325, 21))
>Identifier : Symbol(Identifier, Decl(parserRealSource11.ts, 247, 5))
super(NodeType.Label);
>super : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
}
public printLabel() { return this.id.actualText + ":"; }
>printLabel : Symbol(Label.printLabel, Decl(parserRealSource11.ts, 327, 9))
>this.id.actualText : Symbol(Identifier.actualText, Decl(parserRealSource11.ts, 266, 21))
>this.id : Symbol(Label.id, Decl(parserRealSource11.ts, 325, 21))
>this : Symbol(Label, Decl(parserRealSource11.ts, 322, 5))
>id : Symbol(Label.id, Decl(parserRealSource11.ts, 325, 21))
>actualText : Symbol(Identifier.actualText, Decl(parserRealSource11.ts, 266, 21))
public typeCheck(typeFlow: TypeFlow) {
>typeCheck : Symbol(Label.typeCheck, Decl(parserRealSource11.ts, 329, 64))
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 331, 25))
>TypeFlow : Symbol(TypeFlow)
this.type = typeFlow.voidType;
>this.type : Symbol(AST.type, Decl(parserRealSource11.ts, 11, 38))
>this : Symbol(Label, Decl(parserRealSource11.ts, 322, 5))
>type : Symbol(AST.type, Decl(parserRealSource11.ts, 11, 38))
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 331, 25))
return this;
>this : Symbol(Label, Decl(parserRealSource11.ts, 322, 5))
}
public emit(emitter: Emitter, tokenId: TokenID, startLine: boolean) {
>emit : Symbol(Label.emit, Decl(parserRealSource11.ts, 334, 9))
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 336, 20))
>Emitter : Symbol(Emitter)
>tokenId : Symbol(tokenId, Decl(parserRealSource11.ts, 336, 37))
>TokenID : Symbol(TokenID)
>startLine : Symbol(startLine, Decl(parserRealSource11.ts, 336, 55))
emitter.emitParensAndCommentsInPlace(this, true);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 336, 20))
>this : Symbol(Label, Decl(parserRealSource11.ts, 322, 5))
emitter.recordSourceMappingStart(this);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 336, 20))
>this : Symbol(Label, Decl(parserRealSource11.ts, 322, 5))
emitter.recordSourceMappingStart(this.id);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 336, 20))
>this.id : Symbol(Label.id, Decl(parserRealSource11.ts, 325, 21))
>this : Symbol(Label, Decl(parserRealSource11.ts, 322, 5))
>id : Symbol(Label.id, Decl(parserRealSource11.ts, 325, 21))
emitter.writeToOutput(this.id.actualText);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 336, 20))
>this.id.actualText : Symbol(Identifier.actualText, Decl(parserRealSource11.ts, 266, 21))
>this.id : Symbol(Label.id, Decl(parserRealSource11.ts, 325, 21))
>this : Symbol(Label, Decl(parserRealSource11.ts, 322, 5))
>id : Symbol(Label.id, Decl(parserRealSource11.ts, 325, 21))
>actualText : Symbol(Identifier.actualText, Decl(parserRealSource11.ts, 266, 21))
emitter.recordSourceMappingEnd(this.id);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 336, 20))
>this.id : Symbol(Label.id, Decl(parserRealSource11.ts, 325, 21))
>this : Symbol(Label, Decl(parserRealSource11.ts, 322, 5))
>id : Symbol(Label.id, Decl(parserRealSource11.ts, 325, 21))
emitter.writeLineToOutput(":");
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 336, 20))
emitter.recordSourceMappingEnd(this);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 336, 20))
>this : Symbol(Label, Decl(parserRealSource11.ts, 322, 5))
emitter.emitParensAndCommentsInPlace(this, false);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 336, 20))
>this : Symbol(Label, Decl(parserRealSource11.ts, 322, 5))
}
}
export class Expression extends AST {
>Expression : Symbol(Expression, Decl(parserRealSource11.ts, 346, 5))
>AST : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
constructor (nodeType: NodeType) {
>nodeType : Symbol(nodeType, Decl(parserRealSource11.ts, 349, 21))
>NodeType : Symbol(NodeType)
super(nodeType);
>super : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
>nodeType : Symbol(nodeType, Decl(parserRealSource11.ts, 349, 21))
}
public isExpression() { return true; }
>isExpression : Symbol(Expression.isExpression, Decl(parserRealSource11.ts, 351, 9))
public isStatementOrExpression() { return true; }
>isStatementOrExpression : Symbol(Expression.isStatementOrExpression, Decl(parserRealSource11.ts, 353, 46))
}
export class UnaryExpression extends Expression {
>UnaryExpression : Symbol(UnaryExpression, Decl(parserRealSource11.ts, 356, 5))
>Expression : Symbol(Expression, Decl(parserRealSource11.ts, 346, 5))
public targetType: Type = null; // Target type for an object literal (null if no target type)
>targetType : Symbol(UnaryExpression.targetType, Decl(parserRealSource11.ts, 358, 53))
>Type : Symbol(Type)
public castTerm: AST = null;
>castTerm : Symbol(UnaryExpression.castTerm, Decl(parserRealSource11.ts, 359, 39))
>AST : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
constructor (nodeType: NodeType, public operand: AST) {
>nodeType : Symbol(nodeType, Decl(parserRealSource11.ts, 362, 21))
>NodeType : Symbol(NodeType)
>operand : Symbol(UnaryExpression.operand, Decl(parserRealSource11.ts, 362, 40))
>AST : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
super(nodeType);
>super : Symbol(Expression, Decl(parserRealSource11.ts, 346, 5))
>nodeType : Symbol(nodeType, Decl(parserRealSource11.ts, 362, 21))
}
public addToControlFlow(context: ControlFlowContext): void {
>addToControlFlow : Symbol(UnaryExpression.addToControlFlow, Decl(parserRealSource11.ts, 364, 9))
>context : Symbol(context, Decl(parserRealSource11.ts, 366, 32))
>ControlFlowContext : Symbol(ControlFlowContext)
super.addToControlFlow(context);
>super.addToControlFlow : Symbol(AST.addToControlFlow, Decl(parserRealSource11.ts, 142, 9))
>super : Symbol(Expression, Decl(parserRealSource11.ts, 346, 5))
>addToControlFlow : Symbol(AST.addToControlFlow, Decl(parserRealSource11.ts, 142, 9))
>context : Symbol(context, Decl(parserRealSource11.ts, 366, 32))
// TODO: add successor as catch block/finally block if present
if (this.nodeType == NodeType.Throw) {
>this.nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
>this : Symbol(UnaryExpression, Decl(parserRealSource11.ts, 356, 5))
>nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
context.returnStmt();
>context : Symbol(context, Decl(parserRealSource11.ts, 366, 32))
}
}
public typeCheck(typeFlow: TypeFlow) {
>typeCheck : Symbol(UnaryExpression.typeCheck, Decl(parserRealSource11.ts, 372, 9))
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 374, 25))
>TypeFlow : Symbol(TypeFlow)
switch (this.nodeType) {
>this.nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
>this : Symbol(UnaryExpression, Decl(parserRealSource11.ts, 356, 5))
>nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
case NodeType.Not:
return typeFlow.typeCheckBitNot(this);
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 374, 25))
>this : Symbol(UnaryExpression, Decl(parserRealSource11.ts, 356, 5))
case NodeType.LogNot:
return typeFlow.typeCheckLogNot(this);
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 374, 25))
>this : Symbol(UnaryExpression, Decl(parserRealSource11.ts, 356, 5))
case NodeType.Pos:
case NodeType.Neg:
return typeFlow.typeCheckUnaryNumberOperator(this);
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 374, 25))
>this : Symbol(UnaryExpression, Decl(parserRealSource11.ts, 356, 5))
case NodeType.IncPost:
case NodeType.IncPre:
case NodeType.DecPost:
case NodeType.DecPre:
return typeFlow.typeCheckIncOrDec(this);
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 374, 25))
>this : Symbol(UnaryExpression, Decl(parserRealSource11.ts, 356, 5))
case NodeType.ArrayLit:
typeFlow.typeCheckArrayLit(this);
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 374, 25))
>this : Symbol(UnaryExpression, Decl(parserRealSource11.ts, 356, 5))
return this;
>this : Symbol(UnaryExpression, Decl(parserRealSource11.ts, 356, 5))
case NodeType.ObjectLit:
typeFlow.typeCheckObjectLit(this);
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 374, 25))
>this : Symbol(UnaryExpression, Decl(parserRealSource11.ts, 356, 5))
return this;
>this : Symbol(UnaryExpression, Decl(parserRealSource11.ts, 356, 5))
case NodeType.Throw:
this.operand = typeFlow.typeCheck(this.operand);
>this.operand : Symbol(UnaryExpression.operand, Decl(parserRealSource11.ts, 362, 40))
>this : Symbol(UnaryExpression, Decl(parserRealSource11.ts, 356, 5))
>operand : Symbol(UnaryExpression.operand, Decl(parserRealSource11.ts, 362, 40))
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 374, 25))
>this.operand : Symbol(UnaryExpression.operand, Decl(parserRealSource11.ts, 362, 40))
>this : Symbol(UnaryExpression, Decl(parserRealSource11.ts, 356, 5))
>operand : Symbol(UnaryExpression.operand, Decl(parserRealSource11.ts, 362, 40))
this.type = typeFlow.voidType;
>this.type : Symbol(AST.type, Decl(parserRealSource11.ts, 11, 38))
>this : Symbol(UnaryExpression, Decl(parserRealSource11.ts, 356, 5))
>type : Symbol(AST.type, Decl(parserRealSource11.ts, 11, 38))
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 374, 25))
return this;
>this : Symbol(UnaryExpression, Decl(parserRealSource11.ts, 356, 5))
case NodeType.Typeof:
this.operand = typeFlow.typeCheck(this.operand);
>this.operand : Symbol(UnaryExpression.operand, Decl(parserRealSource11.ts, 362, 40))
>this : Symbol(UnaryExpression, Decl(parserRealSource11.ts, 356, 5))
>operand : Symbol(UnaryExpression.operand, Decl(parserRealSource11.ts, 362, 40))
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 374, 25))
>this.operand : Symbol(UnaryExpression.operand, Decl(parserRealSource11.ts, 362, 40))
>this : Symbol(UnaryExpression, Decl(parserRealSource11.ts, 356, 5))
>operand : Symbol(UnaryExpression.operand, Decl(parserRealSource11.ts, 362, 40))
this.type = typeFlow.stringType;
>this.type : Symbol(AST.type, Decl(parserRealSource11.ts, 11, 38))
>this : Symbol(UnaryExpression, Decl(parserRealSource11.ts, 356, 5))
>type : Symbol(AST.type, Decl(parserRealSource11.ts, 11, 38))
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 374, 25))
return this;
>this : Symbol(UnaryExpression, Decl(parserRealSource11.ts, 356, 5))
case NodeType.Delete:
this.operand = typeFlow.typeCheck(this.operand);
>this.operand : Symbol(UnaryExpression.operand, Decl(parserRealSource11.ts, 362, 40))
>this : Symbol(UnaryExpression, Decl(parserRealSource11.ts, 356, 5))
>operand : Symbol(UnaryExpression.operand, Decl(parserRealSource11.ts, 362, 40))
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 374, 25))
>this.operand : Symbol(UnaryExpression.operand, Decl(parserRealSource11.ts, 362, 40))
>this : Symbol(UnaryExpression, Decl(parserRealSource11.ts, 356, 5))
>operand : Symbol(UnaryExpression.operand, Decl(parserRealSource11.ts, 362, 40))
this.type = typeFlow.booleanType;
>this.type : Symbol(AST.type, Decl(parserRealSource11.ts, 11, 38))
>this : Symbol(UnaryExpression, Decl(parserRealSource11.ts, 356, 5))
>type : Symbol(AST.type, Decl(parserRealSource11.ts, 11, 38))
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 374, 25))
break;
case NodeType.TypeAssertion:
this.castTerm = typeFlow.typeCheck(this.castTerm);
>this.castTerm : Symbol(UnaryExpression.castTerm, Decl(parserRealSource11.ts, 359, 39))
>this : Symbol(UnaryExpression, Decl(parserRealSource11.ts, 356, 5))
>castTerm : Symbol(UnaryExpression.castTerm, Decl(parserRealSource11.ts, 359, 39))
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 374, 25))
>this.castTerm : Symbol(UnaryExpression.castTerm, Decl(parserRealSource11.ts, 359, 39))
>this : Symbol(UnaryExpression, Decl(parserRealSource11.ts, 356, 5))
>castTerm : Symbol(UnaryExpression.castTerm, Decl(parserRealSource11.ts, 359, 39))
var applyTargetType = !this.operand.isParenthesized;
>applyTargetType : Symbol(applyTargetType, Decl(parserRealSource11.ts, 417, 23))
>this.operand.isParenthesized : Symbol(AST.isParenthesized, Decl(parserRealSource11.ts, 19, 46))
>this.operand : Symbol(UnaryExpression.operand, Decl(parserRealSource11.ts, 362, 40))
>this : Symbol(UnaryExpression, Decl(parserRealSource11.ts, 356, 5))
>operand : Symbol(UnaryExpression.operand, Decl(parserRealSource11.ts, 362, 40))
>isParenthesized : Symbol(AST.isParenthesized, Decl(parserRealSource11.ts, 19, 46))
var targetType = applyTargetType ? this.castTerm.type : null;
>targetType : Symbol(targetType, Decl(parserRealSource11.ts, 419, 23))
>applyTargetType : Symbol(applyTargetType, Decl(parserRealSource11.ts, 417, 23))
>this.castTerm.type : Symbol(AST.type, Decl(parserRealSource11.ts, 11, 38))
>this.castTerm : Symbol(UnaryExpression.castTerm, Decl(parserRealSource11.ts, 359, 39))
>this : Symbol(UnaryExpression, Decl(parserRealSource11.ts, 356, 5))
>castTerm : Symbol(UnaryExpression.castTerm, Decl(parserRealSource11.ts, 359, 39))
>type : Symbol(AST.type, Decl(parserRealSource11.ts, 11, 38))
typeFlow.checker.typeCheckWithContextualType(targetType, typeFlow.checker.inProvisionalTypecheckMode(), true, this.operand);
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 374, 25))
>targetType : Symbol(targetType, Decl(parserRealSource11.ts, 419, 23))
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 374, 25))
>this.operand : Symbol(UnaryExpression.operand, Decl(parserRealSource11.ts, 362, 40))
>this : Symbol(UnaryExpression, Decl(parserRealSource11.ts, 356, 5))
>operand : Symbol(UnaryExpression.operand, Decl(parserRealSource11.ts, 362, 40))
typeFlow.castWithCoercion(this.operand, this.castTerm.type, false, true);
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 374, 25))
>this.operand : Symbol(UnaryExpression.operand, Decl(parserRealSource11.ts, 362, 40))
>this : Symbol(UnaryExpression, Decl(parserRealSource11.ts, 356, 5))
>operand : Symbol(UnaryExpression.operand, Decl(parserRealSource11.ts, 362, 40))
>this.castTerm.type : Symbol(AST.type, Decl(parserRealSource11.ts, 11, 38))
>this.castTerm : Symbol(UnaryExpression.castTerm, Decl(parserRealSource11.ts, 359, 39))
>this : Symbol(UnaryExpression, Decl(parserRealSource11.ts, 356, 5))
>castTerm : Symbol(UnaryExpression.castTerm, Decl(parserRealSource11.ts, 359, 39))
>type : Symbol(AST.type, Decl(parserRealSource11.ts, 11, 38))
this.type = this.castTerm.type;
>this.type : Symbol(AST.type, Decl(parserRealSource11.ts, 11, 38))
>this : Symbol(UnaryExpression, Decl(parserRealSource11.ts, 356, 5))
>type : Symbol(AST.type, Decl(parserRealSource11.ts, 11, 38))
>this.castTerm.type : Symbol(AST.type, Decl(parserRealSource11.ts, 11, 38))
>this.castTerm : Symbol(UnaryExpression.castTerm, Decl(parserRealSource11.ts, 359, 39))
>this : Symbol(UnaryExpression, Decl(parserRealSource11.ts, 356, 5))
>castTerm : Symbol(UnaryExpression.castTerm, Decl(parserRealSource11.ts, 359, 39))
>type : Symbol(AST.type, Decl(parserRealSource11.ts, 11, 38))
return this;
>this : Symbol(UnaryExpression, Decl(parserRealSource11.ts, 356, 5))
case NodeType.Void:
// REVIEW - Although this is good to do for completeness's sake,
// this shouldn't be strictly necessary from the void operator's
// point of view
this.operand = typeFlow.typeCheck(this.operand);
>this.operand : Symbol(UnaryExpression.operand, Decl(parserRealSource11.ts, 362, 40))
>this : Symbol(UnaryExpression, Decl(parserRealSource11.ts, 356, 5))
>operand : Symbol(UnaryExpression.operand, Decl(parserRealSource11.ts, 362, 40))
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 374, 25))
>this.operand : Symbol(UnaryExpression.operand, Decl(parserRealSource11.ts, 362, 40))
>this : Symbol(UnaryExpression, Decl(parserRealSource11.ts, 356, 5))
>operand : Symbol(UnaryExpression.operand, Decl(parserRealSource11.ts, 362, 40))
this.type = typeFlow.checker.undefinedType;
>this.type : Symbol(AST.type, Decl(parserRealSource11.ts, 11, 38))
>this : Symbol(UnaryExpression, Decl(parserRealSource11.ts, 356, 5))
>type : Symbol(AST.type, Decl(parserRealSource11.ts, 11, 38))
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 374, 25))
break;
default:
throw new Error("please implement in derived class");
>Error : Symbol(Error, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
}
return this;
>this : Symbol(UnaryExpression, Decl(parserRealSource11.ts, 356, 5))
}
public emit(emitter: Emitter, tokenId: TokenID, startLine: boolean) {
>emit : Symbol(UnaryExpression.emit, Decl(parserRealSource11.ts, 438, 9))
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 440, 20))
>Emitter : Symbol(Emitter)
>tokenId : Symbol(tokenId, Decl(parserRealSource11.ts, 440, 37))
>TokenID : Symbol(TokenID)
>startLine : Symbol(startLine, Decl(parserRealSource11.ts, 440, 55))
emitter.emitParensAndCommentsInPlace(this, true);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 440, 20))
>this : Symbol(UnaryExpression, Decl(parserRealSource11.ts, 356, 5))
emitter.recordSourceMappingStart(this);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 440, 20))
>this : Symbol(UnaryExpression, Decl(parserRealSource11.ts, 356, 5))
switch (this.nodeType) {
>this.nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
>this : Symbol(UnaryExpression, Decl(parserRealSource11.ts, 356, 5))
>nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
case NodeType.IncPost:
emitter.emitJavascript(this.operand, TokenID.PlusPlus, false);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 440, 20))
>this.operand : Symbol(UnaryExpression.operand, Decl(parserRealSource11.ts, 362, 40))
>this : Symbol(UnaryExpression, Decl(parserRealSource11.ts, 356, 5))
>operand : Symbol(UnaryExpression.operand, Decl(parserRealSource11.ts, 362, 40))
emitter.writeToOutput("++");
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 440, 20))
break;
case NodeType.LogNot:
emitter.writeToOutput("!");
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 440, 20))
emitter.emitJavascript(this.operand, TokenID.Exclamation, false);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 440, 20))
>this.operand : Symbol(UnaryExpression.operand, Decl(parserRealSource11.ts, 362, 40))
>this : Symbol(UnaryExpression, Decl(parserRealSource11.ts, 356, 5))
>operand : Symbol(UnaryExpression.operand, Decl(parserRealSource11.ts, 362, 40))
break;
case NodeType.DecPost:
emitter.emitJavascript(this.operand, TokenID.MinusMinus, false);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 440, 20))
>this.operand : Symbol(UnaryExpression.operand, Decl(parserRealSource11.ts, 362, 40))
>this : Symbol(UnaryExpression, Decl(parserRealSource11.ts, 356, 5))
>operand : Symbol(UnaryExpression.operand, Decl(parserRealSource11.ts, 362, 40))
emitter.writeToOutput("--");
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 440, 20))
break;
case NodeType.ObjectLit:
emitter.emitObjectLiteral(<ASTList>this.operand);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 440, 20))
>ASTList : Symbol(ASTList, Decl(parserRealSource11.ts, 188, 5))
>this.operand : Symbol(UnaryExpression.operand, Decl(parserRealSource11.ts, 362, 40))
>this : Symbol(UnaryExpression, Decl(parserRealSource11.ts, 356, 5))
>operand : Symbol(UnaryExpression.operand, Decl(parserRealSource11.ts, 362, 40))
break;
case NodeType.ArrayLit:
emitter.emitArrayLiteral(<ASTList>this.operand);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 440, 20))
>ASTList : Symbol(ASTList, Decl(parserRealSource11.ts, 188, 5))
>this.operand : Symbol(UnaryExpression.operand, Decl(parserRealSource11.ts, 362, 40))
>this : Symbol(UnaryExpression, Decl(parserRealSource11.ts, 356, 5))
>operand : Symbol(UnaryExpression.operand, Decl(parserRealSource11.ts, 362, 40))
break;
case NodeType.Not:
emitter.writeToOutput("~");
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 440, 20))
emitter.emitJavascript(this.operand, TokenID.Tilde, false);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 440, 20))
>this.operand : Symbol(UnaryExpression.operand, Decl(parserRealSource11.ts, 362, 40))
>this : Symbol(UnaryExpression, Decl(parserRealSource11.ts, 356, 5))
>operand : Symbol(UnaryExpression.operand, Decl(parserRealSource11.ts, 362, 40))
break;
case NodeType.Neg:
emitter.writeToOutput("-");
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 440, 20))
if (this.operand.nodeType == NodeType.Neg) {
>this.operand.nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
>this.operand : Symbol(UnaryExpression.operand, Decl(parserRealSource11.ts, 362, 40))
>this : Symbol(UnaryExpression, Decl(parserRealSource11.ts, 356, 5))
>operand : Symbol(UnaryExpression.operand, Decl(parserRealSource11.ts, 362, 40))
>nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
this.operand.isParenthesized = true;
>this.operand.isParenthesized : Symbol(AST.isParenthesized, Decl(parserRealSource11.ts, 19, 46))
>this.operand : Symbol(UnaryExpression.operand, Decl(parserRealSource11.ts, 362, 40))
>this : Symbol(UnaryExpression, Decl(parserRealSource11.ts, 356, 5))
>operand : Symbol(UnaryExpression.operand, Decl(parserRealSource11.ts, 362, 40))
>isParenthesized : Symbol(AST.isParenthesized, Decl(parserRealSource11.ts, 19, 46))
}
emitter.emitJavascript(this.operand, TokenID.Minus, false);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 440, 20))
>this.operand : Symbol(UnaryExpression.operand, Decl(parserRealSource11.ts, 362, 40))
>this : Symbol(UnaryExpression, Decl(parserRealSource11.ts, 356, 5))
>operand : Symbol(UnaryExpression.operand, Decl(parserRealSource11.ts, 362, 40))
break;
case NodeType.Pos:
emitter.writeToOutput("+");
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 440, 20))
if (this.operand.nodeType == NodeType.Pos) {
>this.operand.nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
>this.operand : Symbol(UnaryExpression.operand, Decl(parserRealSource11.ts, 362, 40))
>this : Symbol(UnaryExpression, Decl(parserRealSource11.ts, 356, 5))
>operand : Symbol(UnaryExpression.operand, Decl(parserRealSource11.ts, 362, 40))
>nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
this.operand.isParenthesized = true;
>this.operand.isParenthesized : Symbol(AST.isParenthesized, Decl(parserRealSource11.ts, 19, 46))
>this.operand : Symbol(UnaryExpression.operand, Decl(parserRealSource11.ts, 362, 40))
>this : Symbol(UnaryExpression, Decl(parserRealSource11.ts, 356, 5))
>operand : Symbol(UnaryExpression.operand, Decl(parserRealSource11.ts, 362, 40))
>isParenthesized : Symbol(AST.isParenthesized, Decl(parserRealSource11.ts, 19, 46))
}
emitter.emitJavascript(this.operand, TokenID.Plus, false);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 440, 20))
>this.operand : Symbol(UnaryExpression.operand, Decl(parserRealSource11.ts, 362, 40))
>this : Symbol(UnaryExpression, Decl(parserRealSource11.ts, 356, 5))
>operand : Symbol(UnaryExpression.operand, Decl(parserRealSource11.ts, 362, 40))
break;
case NodeType.IncPre:
emitter.writeToOutput("++");
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 440, 20))
emitter.emitJavascript(this.operand, TokenID.PlusPlus, false);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 440, 20))
>this.operand : Symbol(UnaryExpression.operand, Decl(parserRealSource11.ts, 362, 40))
>this : Symbol(UnaryExpression, Decl(parserRealSource11.ts, 356, 5))
>operand : Symbol(UnaryExpression.operand, Decl(parserRealSource11.ts, 362, 40))
break;
case NodeType.DecPre:
emitter.writeToOutput("--");
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 440, 20))
emitter.emitJavascript(this.operand, TokenID.MinusMinus, false);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 440, 20))
>this.operand : Symbol(UnaryExpression.operand, Decl(parserRealSource11.ts, 362, 40))
>this : Symbol(UnaryExpression, Decl(parserRealSource11.ts, 356, 5))
>operand : Symbol(UnaryExpression.operand, Decl(parserRealSource11.ts, 362, 40))
break;
case NodeType.Throw:
emitter.writeToOutput("throw ");
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 440, 20))
emitter.emitJavascript(this.operand, TokenID.Tilde, false);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 440, 20))
>this.operand : Symbol(UnaryExpression.operand, Decl(parserRealSource11.ts, 362, 40))
>this : Symbol(UnaryExpression, Decl(parserRealSource11.ts, 356, 5))
>operand : Symbol(UnaryExpression.operand, Decl(parserRealSource11.ts, 362, 40))
emitter.writeToOutput(";");
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 440, 20))
break;
case NodeType.Typeof:
emitter.writeToOutput("typeof ");
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 440, 20))
emitter.emitJavascript(this.operand, TokenID.Tilde, false);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 440, 20))
>this.operand : Symbol(UnaryExpression.operand, Decl(parserRealSource11.ts, 362, 40))
>this : Symbol(UnaryExpression, Decl(parserRealSource11.ts, 356, 5))
>operand : Symbol(UnaryExpression.operand, Decl(parserRealSource11.ts, 362, 40))
break;
case NodeType.Delete:
emitter.writeToOutput("delete ");
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 440, 20))
emitter.emitJavascript(this.operand, TokenID.Tilde, false);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 440, 20))
>this.operand : Symbol(UnaryExpression.operand, Decl(parserRealSource11.ts, 362, 40))
>this : Symbol(UnaryExpression, Decl(parserRealSource11.ts, 356, 5))
>operand : Symbol(UnaryExpression.operand, Decl(parserRealSource11.ts, 362, 40))
break;
case NodeType.Void:
emitter.writeToOutput("void ");
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 440, 20))
emitter.emitJavascript(this.operand, TokenID.Tilde, false);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 440, 20))
>this.operand : Symbol(UnaryExpression.operand, Decl(parserRealSource11.ts, 362, 40))
>this : Symbol(UnaryExpression, Decl(parserRealSource11.ts, 356, 5))
>operand : Symbol(UnaryExpression.operand, Decl(parserRealSource11.ts, 362, 40))
break;
case NodeType.TypeAssertion:
emitter.emitJavascript(this.operand, TokenID.Tilde, false);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 440, 20))
>this.operand : Symbol(UnaryExpression.operand, Decl(parserRealSource11.ts, 362, 40))
>this : Symbol(UnaryExpression, Decl(parserRealSource11.ts, 356, 5))
>operand : Symbol(UnaryExpression.operand, Decl(parserRealSource11.ts, 362, 40))
break;
default:
throw new Error("please implement in derived class");
>Error : Symbol(Error, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
}
emitter.recordSourceMappingEnd(this);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 440, 20))
>this : Symbol(UnaryExpression, Decl(parserRealSource11.ts, 356, 5))
emitter.emitParensAndCommentsInPlace(this, false);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 440, 20))
>this : Symbol(UnaryExpression, Decl(parserRealSource11.ts, 356, 5))
}
}
export class CallExpression extends Expression {
>CallExpression : Symbol(CallExpression, Decl(parserRealSource11.ts, 514, 5))
>Expression : Symbol(Expression, Decl(parserRealSource11.ts, 346, 5))
constructor (nodeType: NodeType,
>nodeType : Symbol(nodeType, Decl(parserRealSource11.ts, 517, 21))
>NodeType : Symbol(NodeType)
public target: AST,
>target : Symbol(CallExpression.target, Decl(parserRealSource11.ts, 517, 40))
>AST : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
public arguments: ASTList) {
>arguments : Symbol(CallExpression.arguments, Decl(parserRealSource11.ts, 518, 40))
>ASTList : Symbol(ASTList, Decl(parserRealSource11.ts, 188, 5))
super(nodeType);
>super : Symbol(Expression, Decl(parserRealSource11.ts, 346, 5))
>nodeType : Symbol(nodeType, Decl(parserRealSource11.ts, 517, 21))
this.minChar = this.target.minChar;
>this.minChar : Symbol(ASTSpan.minChar, Decl(parserRealSource11.ts, 6, 26))
>this : Symbol(CallExpression, Decl(parserRealSource11.ts, 514, 5))
>minChar : Symbol(ASTSpan.minChar, Decl(parserRealSource11.ts, 6, 26))
>this.target.minChar : Symbol(ASTSpan.minChar, Decl(parserRealSource11.ts, 6, 26))
>this.target : Symbol(CallExpression.target, Decl(parserRealSource11.ts, 517, 40))
>this : Symbol(CallExpression, Decl(parserRealSource11.ts, 514, 5))
>target : Symbol(CallExpression.target, Decl(parserRealSource11.ts, 517, 40))
>minChar : Symbol(ASTSpan.minChar, Decl(parserRealSource11.ts, 6, 26))
}
public signature: Signature = null;
>signature : Symbol(CallExpression.signature, Decl(parserRealSource11.ts, 522, 9))
>Signature : Symbol(Signature)
public typeCheck(typeFlow: TypeFlow) {
>typeCheck : Symbol(CallExpression.typeCheck, Decl(parserRealSource11.ts, 524, 43))
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 526, 25))
>TypeFlow : Symbol(TypeFlow)
if (this.nodeType == NodeType.New) {
>this.nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
>this : Symbol(CallExpression, Decl(parserRealSource11.ts, 514, 5))
>nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
return typeFlow.typeCheckNew(this);
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 526, 25))
>this : Symbol(CallExpression, Decl(parserRealSource11.ts, 514, 5))
}
else {
return typeFlow.typeCheckCall(this);
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 526, 25))
>this : Symbol(CallExpression, Decl(parserRealSource11.ts, 514, 5))
}
}
public emit(emitter: Emitter, tokenId: TokenID, startLine: boolean) {
>emit : Symbol(CallExpression.emit, Decl(parserRealSource11.ts, 533, 9))
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 535, 20))
>Emitter : Symbol(Emitter)
>tokenId : Symbol(tokenId, Decl(parserRealSource11.ts, 535, 37))
>TokenID : Symbol(TokenID)
>startLine : Symbol(startLine, Decl(parserRealSource11.ts, 535, 55))
emitter.emitParensAndCommentsInPlace(this, true);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 535, 20))
>this : Symbol(CallExpression, Decl(parserRealSource11.ts, 514, 5))
emitter.recordSourceMappingStart(this);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 535, 20))
>this : Symbol(CallExpression, Decl(parserRealSource11.ts, 514, 5))
if (this.nodeType == NodeType.New) {
>this.nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
>this : Symbol(CallExpression, Decl(parserRealSource11.ts, 514, 5))
>nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
emitter.emitNew(this.target, this.arguments);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 535, 20))
>this.target : Symbol(CallExpression.target, Decl(parserRealSource11.ts, 517, 40))
>this : Symbol(CallExpression, Decl(parserRealSource11.ts, 514, 5))
>target : Symbol(CallExpression.target, Decl(parserRealSource11.ts, 517, 40))
>this.arguments : Symbol(CallExpression.arguments, Decl(parserRealSource11.ts, 518, 40))
>this : Symbol(CallExpression, Decl(parserRealSource11.ts, 514, 5))
>arguments : Symbol(CallExpression.arguments, Decl(parserRealSource11.ts, 518, 40))
}
else {
emitter.emitCall(this, this.target, this.arguments);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 535, 20))
>this : Symbol(CallExpression, Decl(parserRealSource11.ts, 514, 5))
>this.target : Symbol(CallExpression.target, Decl(parserRealSource11.ts, 517, 40))
>this : Symbol(CallExpression, Decl(parserRealSource11.ts, 514, 5))
>target : Symbol(CallExpression.target, Decl(parserRealSource11.ts, 517, 40))
>this.arguments : Symbol(CallExpression.arguments, Decl(parserRealSource11.ts, 518, 40))
>this : Symbol(CallExpression, Decl(parserRealSource11.ts, 514, 5))
>arguments : Symbol(CallExpression.arguments, Decl(parserRealSource11.ts, 518, 40))
}
emitter.recordSourceMappingEnd(this);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 535, 20))
>this : Symbol(CallExpression, Decl(parserRealSource11.ts, 514, 5))
emitter.emitParensAndCommentsInPlace(this, false);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 535, 20))
>this : Symbol(CallExpression, Decl(parserRealSource11.ts, 514, 5))
}
}
export class BinaryExpression extends Expression {
>BinaryExpression : Symbol(BinaryExpression, Decl(parserRealSource11.ts, 549, 5))
>Expression : Symbol(Expression, Decl(parserRealSource11.ts, 346, 5))
constructor (nodeType: NodeType, public operand1: AST, public operand2: AST) {
>nodeType : Symbol(nodeType, Decl(parserRealSource11.ts, 552, 21))
>NodeType : Symbol(NodeType)
>operand1 : Symbol(BinaryExpression.operand1, Decl(parserRealSource11.ts, 552, 40))
>AST : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
>operand2 : Symbol(BinaryExpression.operand2, Decl(parserRealSource11.ts, 552, 62))
>AST : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
super(nodeType);
>super : Symbol(Expression, Decl(parserRealSource11.ts, 346, 5))
>nodeType : Symbol(nodeType, Decl(parserRealSource11.ts, 552, 21))
}
public typeCheck(typeFlow: TypeFlow) {
>typeCheck : Symbol(BinaryExpression.typeCheck, Decl(parserRealSource11.ts, 554, 9))
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 556, 25))
>TypeFlow : Symbol(TypeFlow)
switch (this.nodeType) {
>this.nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
>this : Symbol(BinaryExpression, Decl(parserRealSource11.ts, 549, 5))
>nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
case NodeType.Dot:
return typeFlow.typeCheckDotOperator(this);
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 556, 25))
>this : Symbol(BinaryExpression, Decl(parserRealSource11.ts, 549, 5))
case NodeType.Asg:
return typeFlow.typeCheckAsgOperator(this);
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 556, 25))
>this : Symbol(BinaryExpression, Decl(parserRealSource11.ts, 549, 5))
case NodeType.Add:
case NodeType.Sub:
case NodeType.Mul:
case NodeType.Div:
case NodeType.Mod:
case NodeType.Or:
case NodeType.And:
return typeFlow.typeCheckArithmeticOperator(this, false);
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 556, 25))
>this : Symbol(BinaryExpression, Decl(parserRealSource11.ts, 549, 5))
case NodeType.Xor:
return typeFlow.typeCheckBitwiseOperator(this, false);
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 556, 25))
>this : Symbol(BinaryExpression, Decl(parserRealSource11.ts, 549, 5))
case NodeType.Ne:
case NodeType.Eq:
var text: string;
>text : Symbol(text, Decl(parserRealSource11.ts, 574, 23))
if (typeFlow.checker.styleSettings.eqeqeq) {
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 556, 25))
text = nodeTypeTable[this.nodeType];
>text : Symbol(text, Decl(parserRealSource11.ts, 574, 23))
>this.nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
>this : Symbol(BinaryExpression, Decl(parserRealSource11.ts, 549, 5))
>nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
typeFlow.checker.errorReporter.styleError(this, "use of " + text);
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 556, 25))
>this : Symbol(BinaryExpression, Decl(parserRealSource11.ts, 549, 5))
>text : Symbol(text, Decl(parserRealSource11.ts, 574, 23))
}
else if (typeFlow.checker.styleSettings.eqnull) {
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 556, 25))
text = nodeTypeTable[this.nodeType];
>text : Symbol(text, Decl(parserRealSource11.ts, 574, 23))
>this.nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
>this : Symbol(BinaryExpression, Decl(parserRealSource11.ts, 549, 5))
>nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
if ((this.operand2 !== null) && (this.operand2.nodeType == NodeType.Null)) {
>this.operand2 : Symbol(BinaryExpression.operand2, Decl(parserRealSource11.ts, 552, 62))
>this : Symbol(BinaryExpression, Decl(parserRealSource11.ts, 549, 5))
>operand2 : Symbol(BinaryExpression.operand2, Decl(parserRealSource11.ts, 552, 62))
>this.operand2.nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
>this.operand2 : Symbol(BinaryExpression.operand2, Decl(parserRealSource11.ts, 552, 62))
>this : Symbol(BinaryExpression, Decl(parserRealSource11.ts, 549, 5))
>operand2 : Symbol(BinaryExpression.operand2, Decl(parserRealSource11.ts, 552, 62))
>nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
typeFlow.checker.errorReporter.styleError(this, "use of " + text + " to compare with null");
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 556, 25))
>this : Symbol(BinaryExpression, Decl(parserRealSource11.ts, 549, 5))
>text : Symbol(text, Decl(parserRealSource11.ts, 574, 23))
}
}
case NodeType.Eqv:
case NodeType.NEqv:
case NodeType.Lt:
case NodeType.Le:
case NodeType.Ge:
case NodeType.Gt:
return typeFlow.typeCheckBooleanOperator(this);
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 556, 25))
>this : Symbol(BinaryExpression, Decl(parserRealSource11.ts, 549, 5))
case NodeType.Index:
return typeFlow.typeCheckIndex(this);
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 556, 25))
>this : Symbol(BinaryExpression, Decl(parserRealSource11.ts, 549, 5))
case NodeType.Member:
this.type = typeFlow.voidType;
>this.type : Symbol(AST.type, Decl(parserRealSource11.ts, 11, 38))
>this : Symbol(BinaryExpression, Decl(parserRealSource11.ts, 549, 5))
>type : Symbol(AST.type, Decl(parserRealSource11.ts, 11, 38))
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 556, 25))
return this;
>this : Symbol(BinaryExpression, Decl(parserRealSource11.ts, 549, 5))
case NodeType.LogOr:
return typeFlow.typeCheckLogOr(this);
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 556, 25))
>this : Symbol(BinaryExpression, Decl(parserRealSource11.ts, 549, 5))
case NodeType.LogAnd:
return typeFlow.typeCheckLogAnd(this);
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 556, 25))
>this : Symbol(BinaryExpression, Decl(parserRealSource11.ts, 549, 5))
case NodeType.AsgAdd:
case NodeType.AsgSub:
case NodeType.AsgMul:
case NodeType.AsgDiv:
case NodeType.AsgMod:
case NodeType.AsgOr:
case NodeType.AsgAnd:
return typeFlow.typeCheckArithmeticOperator(this, true);
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 556, 25))
>this : Symbol(BinaryExpression, Decl(parserRealSource11.ts, 549, 5))
case NodeType.AsgXor:
return typeFlow.typeCheckBitwiseOperator(this, true);
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 556, 25))
>this : Symbol(BinaryExpression, Decl(parserRealSource11.ts, 549, 5))
case NodeType.Lsh:
case NodeType.Rsh:
case NodeType.Rs2:
return typeFlow.typeCheckShift(this, false);
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 556, 25))
>this : Symbol(BinaryExpression, Decl(parserRealSource11.ts, 549, 5))
case NodeType.AsgLsh:
case NodeType.AsgRsh:
case NodeType.AsgRs2:
return typeFlow.typeCheckShift(this, true);
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 556, 25))
>this : Symbol(BinaryExpression, Decl(parserRealSource11.ts, 549, 5))
case NodeType.Comma:
return typeFlow.typeCheckCommaOperator(this);
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 556, 25))
>this : Symbol(BinaryExpression, Decl(parserRealSource11.ts, 549, 5))
case NodeType.InstOf:
return typeFlow.typeCheckInstOf(this);
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 556, 25))
>this : Symbol(BinaryExpression, Decl(parserRealSource11.ts, 549, 5))
case NodeType.In:
return typeFlow.typeCheckInOperator(this);
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 556, 25))
>this : Symbol(BinaryExpression, Decl(parserRealSource11.ts, 549, 5))
case NodeType.From:
typeFlow.checker.errorReporter.simpleError(this, "Illegal use of 'from' keyword in binary expression");
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 556, 25))
>this : Symbol(BinaryExpression, Decl(parserRealSource11.ts, 549, 5))
break;
default:
throw new Error("please implement in derived class");
>Error : Symbol(Error, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
}
return this;
>this : Symbol(BinaryExpression, Decl(parserRealSource11.ts, 549, 5))
}
public emit(emitter: Emitter, tokenId: TokenID, startLine: boolean) {
>emit : Symbol(BinaryExpression.emit, Decl(parserRealSource11.ts, 632, 9))
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 634, 20))
>Emitter : Symbol(Emitter)
>tokenId : Symbol(tokenId, Decl(parserRealSource11.ts, 634, 37))
>TokenID : Symbol(TokenID)
>startLine : Symbol(startLine, Decl(parserRealSource11.ts, 634, 55))
var binTokenId = nodeTypeToTokTable[this.nodeType];
>binTokenId : Symbol(binTokenId, Decl(parserRealSource11.ts, 635, 15))
>this.nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
>this : Symbol(BinaryExpression, Decl(parserRealSource11.ts, 549, 5))
>nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
emitter.emitParensAndCommentsInPlace(this, true);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 634, 20))
>this : Symbol(BinaryExpression, Decl(parserRealSource11.ts, 549, 5))
emitter.recordSourceMappingStart(this);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 634, 20))
>this : Symbol(BinaryExpression, Decl(parserRealSource11.ts, 549, 5))
if (binTokenId != undefined) {
>binTokenId : Symbol(binTokenId, Decl(parserRealSource11.ts, 635, 15))
>undefined : Symbol(undefined)
emitter.emitJavascript(this.operand1, binTokenId, false);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 634, 20))
>this.operand1 : Symbol(BinaryExpression.operand1, Decl(parserRealSource11.ts, 552, 40))
>this : Symbol(BinaryExpression, Decl(parserRealSource11.ts, 549, 5))
>operand1 : Symbol(BinaryExpression.operand1, Decl(parserRealSource11.ts, 552, 40))
>binTokenId : Symbol(binTokenId, Decl(parserRealSource11.ts, 635, 15))
if (tokenTable[binTokenId].text == "instanceof") {
>binTokenId : Symbol(binTokenId, Decl(parserRealSource11.ts, 635, 15))
emitter.writeToOutput(" instanceof ");
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 634, 20))
}
else if (tokenTable[binTokenId].text == "in") {
>binTokenId : Symbol(binTokenId, Decl(parserRealSource11.ts, 635, 15))
emitter.writeToOutput(" in ");
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 634, 20))
}
else {
emitter.writeToOutputTrimmable(" " + tokenTable[binTokenId].text + " ");
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 634, 20))
>binTokenId : Symbol(binTokenId, Decl(parserRealSource11.ts, 635, 15))
}
emitter.emitJavascript(this.operand2, binTokenId, false);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 634, 20))
>this.operand2 : Symbol(BinaryExpression.operand2, Decl(parserRealSource11.ts, 552, 62))
>this : Symbol(BinaryExpression, Decl(parserRealSource11.ts, 549, 5))
>operand2 : Symbol(BinaryExpression.operand2, Decl(parserRealSource11.ts, 552, 62))
>binTokenId : Symbol(binTokenId, Decl(parserRealSource11.ts, 635, 15))
}
else {
switch (this.nodeType) {
>this.nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
>this : Symbol(BinaryExpression, Decl(parserRealSource11.ts, 549, 5))
>nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
case NodeType.Dot:
if (!emitter.tryEmitConstant(this)) {
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 634, 20))
>this : Symbol(BinaryExpression, Decl(parserRealSource11.ts, 549, 5))
emitter.emitJavascript(this.operand1, TokenID.Dot, false);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 634, 20))
>this.operand1 : Symbol(BinaryExpression.operand1, Decl(parserRealSource11.ts, 552, 40))
>this : Symbol(BinaryExpression, Decl(parserRealSource11.ts, 549, 5))
>operand1 : Symbol(BinaryExpression.operand1, Decl(parserRealSource11.ts, 552, 40))
emitter.writeToOutput(".");
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 634, 20))
emitter.emitJavascriptName(<Identifier>this.operand2, false);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 634, 20))
>Identifier : Symbol(Identifier, Decl(parserRealSource11.ts, 247, 5))
>this.operand2 : Symbol(BinaryExpression.operand2, Decl(parserRealSource11.ts, 552, 62))
>this : Symbol(BinaryExpression, Decl(parserRealSource11.ts, 549, 5))
>operand2 : Symbol(BinaryExpression.operand2, Decl(parserRealSource11.ts, 552, 62))
}
break;
case NodeType.Index:
emitter.emitIndex(this.operand1, this.operand2);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 634, 20))
>this.operand1 : Symbol(BinaryExpression.operand1, Decl(parserRealSource11.ts, 552, 40))
>this : Symbol(BinaryExpression, Decl(parserRealSource11.ts, 549, 5))
>operand1 : Symbol(BinaryExpression.operand1, Decl(parserRealSource11.ts, 552, 40))
>this.operand2 : Symbol(BinaryExpression.operand2, Decl(parserRealSource11.ts, 552, 62))
>this : Symbol(BinaryExpression, Decl(parserRealSource11.ts, 549, 5))
>operand2 : Symbol(BinaryExpression.operand2, Decl(parserRealSource11.ts, 552, 62))
break;
case NodeType.Member:
if (this.operand2.nodeType == NodeType.FuncDecl && (<FuncDecl>this.operand2).isAccessor()) {
>this.operand2.nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
>this.operand2 : Symbol(BinaryExpression.operand2, Decl(parserRealSource11.ts, 552, 62))
>this : Symbol(BinaryExpression, Decl(parserRealSource11.ts, 549, 5))
>operand2 : Symbol(BinaryExpression.operand2, Decl(parserRealSource11.ts, 552, 62))
>nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
>(<FuncDecl>this.operand2).isAccessor : Symbol(FuncDecl.isAccessor, Decl(parserRealSource11.ts, 1074, 61))
>FuncDecl : Symbol(FuncDecl, Decl(parserRealSource11.ts, 954, 23))
>this.operand2 : Symbol(BinaryExpression.operand2, Decl(parserRealSource11.ts, 552, 62))
>this : Symbol(BinaryExpression, Decl(parserRealSource11.ts, 549, 5))
>operand2 : Symbol(BinaryExpression.operand2, Decl(parserRealSource11.ts, 552, 62))
>isAccessor : Symbol(FuncDecl.isAccessor, Decl(parserRealSource11.ts, 1074, 61))
var funcDecl = <FuncDecl>this.operand2;
>funcDecl : Symbol(funcDecl, Decl(parserRealSource11.ts, 670, 31))
>FuncDecl : Symbol(FuncDecl, Decl(parserRealSource11.ts, 954, 23))
>this.operand2 : Symbol(BinaryExpression.operand2, Decl(parserRealSource11.ts, 552, 62))
>this : Symbol(BinaryExpression, Decl(parserRealSource11.ts, 549, 5))
>operand2 : Symbol(BinaryExpression.operand2, Decl(parserRealSource11.ts, 552, 62))
if (hasFlag(funcDecl.fncFlags, FncFlags.GetAccessor)) {
>funcDecl.fncFlags : Symbol(FuncDecl.fncFlags, Decl(parserRealSource11.ts, 957, 35))
>funcDecl : Symbol(funcDecl, Decl(parserRealSource11.ts, 670, 31))
>fncFlags : Symbol(FuncDecl.fncFlags, Decl(parserRealSource11.ts, 957, 35))
emitter.writeToOutput("get ");
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 634, 20))
}
else {
emitter.writeToOutput("set ");
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 634, 20))
}
emitter.emitJavascript(this.operand1, TokenID.Colon, false);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 634, 20))
>this.operand1 : Symbol(BinaryExpression.operand1, Decl(parserRealSource11.ts, 552, 40))
>this : Symbol(BinaryExpression, Decl(parserRealSource11.ts, 549, 5))
>operand1 : Symbol(BinaryExpression.operand1, Decl(parserRealSource11.ts, 552, 40))
}
else {
emitter.emitJavascript(this.operand1, TokenID.Colon, false);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 634, 20))
>this.operand1 : Symbol(BinaryExpression.operand1, Decl(parserRealSource11.ts, 552, 40))
>this : Symbol(BinaryExpression, Decl(parserRealSource11.ts, 549, 5))
>operand1 : Symbol(BinaryExpression.operand1, Decl(parserRealSource11.ts, 552, 40))
emitter.writeToOutputTrimmable(": ");
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 634, 20))
}
emitter.emitJavascript(this.operand2, TokenID.Comma, false);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 634, 20))
>this.operand2 : Symbol(BinaryExpression.operand2, Decl(parserRealSource11.ts, 552, 62))
>this : Symbol(BinaryExpression, Decl(parserRealSource11.ts, 549, 5))
>operand2 : Symbol(BinaryExpression.operand2, Decl(parserRealSource11.ts, 552, 62))
break;
case NodeType.Comma:
emitter.emitJavascript(this.operand1, TokenID.Comma, false);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 634, 20))
>this.operand1 : Symbol(BinaryExpression.operand1, Decl(parserRealSource11.ts, 552, 40))
>this : Symbol(BinaryExpression, Decl(parserRealSource11.ts, 549, 5))
>operand1 : Symbol(BinaryExpression.operand1, Decl(parserRealSource11.ts, 552, 40))
if (emitter.emitState.inObjectLiteral) {
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 634, 20))
emitter.writeLineToOutput(", ");
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 634, 20))
}
else {
emitter.writeToOutput(",");
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 634, 20))
}
emitter.emitJavascript(this.operand2, TokenID.Comma, false);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 634, 20))
>this.operand2 : Symbol(BinaryExpression.operand2, Decl(parserRealSource11.ts, 552, 62))
>this : Symbol(BinaryExpression, Decl(parserRealSource11.ts, 549, 5))
>operand2 : Symbol(BinaryExpression.operand2, Decl(parserRealSource11.ts, 552, 62))
break;
case NodeType.Is:
throw new Error("should be de-sugared during type check");
>Error : Symbol(Error, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
default:
throw new Error("please implement in derived class");
>Error : Symbol(Error, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
}
}
emitter.recordSourceMappingEnd(this);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 634, 20))
>this : Symbol(BinaryExpression, Decl(parserRealSource11.ts, 549, 5))
emitter.emitParensAndCommentsInPlace(this, false);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 634, 20))
>this : Symbol(BinaryExpression, Decl(parserRealSource11.ts, 549, 5))
}
}
export class ConditionalExpression extends Expression {
>ConditionalExpression : Symbol(ConditionalExpression, Decl(parserRealSource11.ts, 704, 5))
>Expression : Symbol(Expression, Decl(parserRealSource11.ts, 346, 5))
constructor (public operand1: AST,
>operand1 : Symbol(ConditionalExpression.operand1, Decl(parserRealSource11.ts, 707, 21))
>AST : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
public operand2: AST,
>operand2 : Symbol(ConditionalExpression.operand2, Decl(parserRealSource11.ts, 707, 42))
>AST : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
public operand3: AST) {
>operand3 : Symbol(ConditionalExpression.operand3, Decl(parserRealSource11.ts, 708, 42))
>AST : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
super(NodeType.ConditionalExpression);
>super : Symbol(Expression, Decl(parserRealSource11.ts, 346, 5))
}
public typeCheck(typeFlow: TypeFlow) {
>typeCheck : Symbol(ConditionalExpression.typeCheck, Decl(parserRealSource11.ts, 711, 9))
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 713, 25))
>TypeFlow : Symbol(TypeFlow)
return typeFlow.typeCheckQMark(this);
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 713, 25))
>this : Symbol(ConditionalExpression, Decl(parserRealSource11.ts, 704, 5))
}
public emit(emitter: Emitter, tokenId: TokenID, startLine: boolean) {
>emit : Symbol(ConditionalExpression.emit, Decl(parserRealSource11.ts, 715, 9))
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 717, 20))
>Emitter : Symbol(Emitter)
>tokenId : Symbol(tokenId, Decl(parserRealSource11.ts, 717, 37))
>TokenID : Symbol(TokenID)
>startLine : Symbol(startLine, Decl(parserRealSource11.ts, 717, 55))
emitter.emitParensAndCommentsInPlace(this, true);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 717, 20))
>this : Symbol(ConditionalExpression, Decl(parserRealSource11.ts, 704, 5))
emitter.recordSourceMappingStart(this);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 717, 20))
>this : Symbol(ConditionalExpression, Decl(parserRealSource11.ts, 704, 5))
emitter.emitJavascript(this.operand1, TokenID.Question, false);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 717, 20))
>this.operand1 : Symbol(ConditionalExpression.operand1, Decl(parserRealSource11.ts, 707, 21))
>this : Symbol(ConditionalExpression, Decl(parserRealSource11.ts, 704, 5))
>operand1 : Symbol(ConditionalExpression.operand1, Decl(parserRealSource11.ts, 707, 21))
emitter.writeToOutput(" ? ");
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 717, 20))
emitter.emitJavascript(this.operand2, TokenID.Question, false);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 717, 20))
>this.operand2 : Symbol(ConditionalExpression.operand2, Decl(parserRealSource11.ts, 707, 42))
>this : Symbol(ConditionalExpression, Decl(parserRealSource11.ts, 704, 5))
>operand2 : Symbol(ConditionalExpression.operand2, Decl(parserRealSource11.ts, 707, 42))
emitter.writeToOutput(" : ");
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 717, 20))
emitter.emitJavascript(this.operand3, TokenID.Question, false);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 717, 20))
>this.operand3 : Symbol(ConditionalExpression.operand3, Decl(parserRealSource11.ts, 708, 42))
>this : Symbol(ConditionalExpression, Decl(parserRealSource11.ts, 704, 5))
>operand3 : Symbol(ConditionalExpression.operand3, Decl(parserRealSource11.ts, 708, 42))
emitter.recordSourceMappingEnd(this);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 717, 20))
>this : Symbol(ConditionalExpression, Decl(parserRealSource11.ts, 704, 5))
emitter.emitParensAndCommentsInPlace(this, false);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 717, 20))
>this : Symbol(ConditionalExpression, Decl(parserRealSource11.ts, 704, 5))
}
}
export class NumberLiteral extends Expression {
>NumberLiteral : Symbol(NumberLiteral, Decl(parserRealSource11.ts, 728, 5))
>Expression : Symbol(Expression, Decl(parserRealSource11.ts, 346, 5))
constructor (public value: number, public hasEmptyFraction?: boolean) {
>value : Symbol(NumberLiteral.value, Decl(parserRealSource11.ts, 731, 21))
>hasEmptyFraction : Symbol(NumberLiteral.hasEmptyFraction, Decl(parserRealSource11.ts, 731, 42))
super(NodeType.NumberLit);
>super : Symbol(Expression, Decl(parserRealSource11.ts, 346, 5))
}
public isNegativeZero = false;
>isNegativeZero : Symbol(NumberLiteral.isNegativeZero, Decl(parserRealSource11.ts, 733, 9))
public typeCheck(typeFlow: TypeFlow) {
>typeCheck : Symbol(NumberLiteral.typeCheck, Decl(parserRealSource11.ts, 735, 38))
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 737, 25))
>TypeFlow : Symbol(TypeFlow)
this.type = typeFlow.doubleType;
>this.type : Symbol(AST.type, Decl(parserRealSource11.ts, 11, 38))
>this : Symbol(NumberLiteral, Decl(parserRealSource11.ts, 728, 5))
>type : Symbol(AST.type, Decl(parserRealSource11.ts, 11, 38))
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 737, 25))
return this;
>this : Symbol(NumberLiteral, Decl(parserRealSource11.ts, 728, 5))
}
public treeViewLabel() {
>treeViewLabel : Symbol(NumberLiteral.treeViewLabel, Decl(parserRealSource11.ts, 740, 9))
return "num: " + this.printLabel();
>this.printLabel : Symbol(NumberLiteral.printLabel, Decl(parserRealSource11.ts, 760, 9))
>this : Symbol(NumberLiteral, Decl(parserRealSource11.ts, 728, 5))
>printLabel : Symbol(NumberLiteral.printLabel, Decl(parserRealSource11.ts, 760, 9))
}
public emit(emitter: Emitter, tokenId: TokenID, startLine: boolean) {
>emit : Symbol(NumberLiteral.emit, Decl(parserRealSource11.ts, 744, 9))
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 746, 20))
>Emitter : Symbol(Emitter)
>tokenId : Symbol(tokenId, Decl(parserRealSource11.ts, 746, 37))
>TokenID : Symbol(TokenID)
>startLine : Symbol(startLine, Decl(parserRealSource11.ts, 746, 55))
emitter.emitParensAndCommentsInPlace(this, true);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 746, 20))
>this : Symbol(NumberLiteral, Decl(parserRealSource11.ts, 728, 5))
emitter.recordSourceMappingStart(this);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 746, 20))
>this : Symbol(NumberLiteral, Decl(parserRealSource11.ts, 728, 5))
if (this.isNegativeZero) {
>this.isNegativeZero : Symbol(NumberLiteral.isNegativeZero, Decl(parserRealSource11.ts, 733, 9))
>this : Symbol(NumberLiteral, Decl(parserRealSource11.ts, 728, 5))
>isNegativeZero : Symbol(NumberLiteral.isNegativeZero, Decl(parserRealSource11.ts, 733, 9))
emitter.writeToOutput("-");
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 746, 20))
}
emitter.writeToOutput(this.value.toString());
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 746, 20))
>this.value.toString : Symbol(Number.toString, Decl(lib.es5.d.ts, --, --))
>this.value : Symbol(NumberLiteral.value, Decl(parserRealSource11.ts, 731, 21))
>this : Symbol(NumberLiteral, Decl(parserRealSource11.ts, 728, 5))
>value : Symbol(NumberLiteral.value, Decl(parserRealSource11.ts, 731, 21))
>toString : Symbol(Number.toString, Decl(lib.es5.d.ts, --, --))
if (this.hasEmptyFraction)
>this.hasEmptyFraction : Symbol(NumberLiteral.hasEmptyFraction, Decl(parserRealSource11.ts, 731, 42))
>this : Symbol(NumberLiteral, Decl(parserRealSource11.ts, 728, 5))
>hasEmptyFraction : Symbol(NumberLiteral.hasEmptyFraction, Decl(parserRealSource11.ts, 731, 42))
emitter.writeToOutput(".0");
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 746, 20))
emitter.recordSourceMappingEnd(this);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 746, 20))
>this : Symbol(NumberLiteral, Decl(parserRealSource11.ts, 728, 5))
emitter.emitParensAndCommentsInPlace(this, false);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 746, 20))
>this : Symbol(NumberLiteral, Decl(parserRealSource11.ts, 728, 5))
}
public printLabel() {
>printLabel : Symbol(NumberLiteral.printLabel, Decl(parserRealSource11.ts, 760, 9))
if (Math.floor(this.value) != this.value) {
>Math.floor : Symbol(Math.floor, Decl(lib.es5.d.ts, --, --))
>Math : Symbol(Math, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
>floor : Symbol(Math.floor, Decl(lib.es5.d.ts, --, --))
>this.value : Symbol(NumberLiteral.value, Decl(parserRealSource11.ts, 731, 21))
>this : Symbol(NumberLiteral, Decl(parserRealSource11.ts, 728, 5))
>value : Symbol(NumberLiteral.value, Decl(parserRealSource11.ts, 731, 21))
>this.value : Symbol(NumberLiteral.value, Decl(parserRealSource11.ts, 731, 21))
>this : Symbol(NumberLiteral, Decl(parserRealSource11.ts, 728, 5))
>value : Symbol(NumberLiteral.value, Decl(parserRealSource11.ts, 731, 21))
return this.value.toFixed(2).toString();
>this.value.toFixed(2).toString : Symbol(String.toString, Decl(lib.es5.d.ts, --, --))
>this.value.toFixed : Symbol(Number.toFixed, Decl(lib.es5.d.ts, --, --))
>this.value : Symbol(NumberLiteral.value, Decl(parserRealSource11.ts, 731, 21))
>this : Symbol(NumberLiteral, Decl(parserRealSource11.ts, 728, 5))
>value : Symbol(NumberLiteral.value, Decl(parserRealSource11.ts, 731, 21))
>toFixed : Symbol(Number.toFixed, Decl(lib.es5.d.ts, --, --))
>toString : Symbol(String.toString, Decl(lib.es5.d.ts, --, --))
}
else if (this.hasEmptyFraction) {
>this.hasEmptyFraction : Symbol(NumberLiteral.hasEmptyFraction, Decl(parserRealSource11.ts, 731, 42))
>this : Symbol(NumberLiteral, Decl(parserRealSource11.ts, 728, 5))
>hasEmptyFraction : Symbol(NumberLiteral.hasEmptyFraction, Decl(parserRealSource11.ts, 731, 42))
return this.value.toString() + ".0";
>this.value.toString : Symbol(Number.toString, Decl(lib.es5.d.ts, --, --))
>this.value : Symbol(NumberLiteral.value, Decl(parserRealSource11.ts, 731, 21))
>this : Symbol(NumberLiteral, Decl(parserRealSource11.ts, 728, 5))
>value : Symbol(NumberLiteral.value, Decl(parserRealSource11.ts, 731, 21))
>toString : Symbol(Number.toString, Decl(lib.es5.d.ts, --, --))
}
else {
return this.value.toString();
>this.value.toString : Symbol(Number.toString, Decl(lib.es5.d.ts, --, --))
>this.value : Symbol(NumberLiteral.value, Decl(parserRealSource11.ts, 731, 21))
>this : Symbol(NumberLiteral, Decl(parserRealSource11.ts, 728, 5))
>value : Symbol(NumberLiteral.value, Decl(parserRealSource11.ts, 731, 21))
>toString : Symbol(Number.toString, Decl(lib.es5.d.ts, --, --))
}
}
}
export class RegexLiteral extends Expression {
>RegexLiteral : Symbol(RegexLiteral, Decl(parserRealSource11.ts, 773, 5))
>Expression : Symbol(Expression, Decl(parserRealSource11.ts, 346, 5))
constructor (public regex) {
>regex : Symbol(RegexLiteral.regex, Decl(parserRealSource11.ts, 776, 21))
super(NodeType.Regex);
>super : Symbol(Expression, Decl(parserRealSource11.ts, 346, 5))
}
public typeCheck(typeFlow: TypeFlow) {
>typeCheck : Symbol(RegexLiteral.typeCheck, Decl(parserRealSource11.ts, 778, 9))
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 780, 25))
>TypeFlow : Symbol(TypeFlow)
this.type = typeFlow.regexType;
>this.type : Symbol(AST.type, Decl(parserRealSource11.ts, 11, 38))
>this : Symbol(RegexLiteral, Decl(parserRealSource11.ts, 773, 5))
>type : Symbol(AST.type, Decl(parserRealSource11.ts, 11, 38))
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 780, 25))
return this;
>this : Symbol(RegexLiteral, Decl(parserRealSource11.ts, 773, 5))
}
public emit(emitter: Emitter, tokenId: TokenID, startLine: boolean) {
>emit : Symbol(RegexLiteral.emit, Decl(parserRealSource11.ts, 783, 9))
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 785, 20))
>Emitter : Symbol(Emitter)
>tokenId : Symbol(tokenId, Decl(parserRealSource11.ts, 785, 37))
>TokenID : Symbol(TokenID)
>startLine : Symbol(startLine, Decl(parserRealSource11.ts, 785, 55))
emitter.emitParensAndCommentsInPlace(this, true);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 785, 20))
>this : Symbol(RegexLiteral, Decl(parserRealSource11.ts, 773, 5))
emitter.recordSourceMappingStart(this);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 785, 20))
>this : Symbol(RegexLiteral, Decl(parserRealSource11.ts, 773, 5))
emitter.writeToOutput(this.regex.toString());
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 785, 20))
>this.regex : Symbol(RegexLiteral.regex, Decl(parserRealSource11.ts, 776, 21))
>this : Symbol(RegexLiteral, Decl(parserRealSource11.ts, 773, 5))
>regex : Symbol(RegexLiteral.regex, Decl(parserRealSource11.ts, 776, 21))
emitter.recordSourceMappingEnd(this);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 785, 20))
>this : Symbol(RegexLiteral, Decl(parserRealSource11.ts, 773, 5))
emitter.emitParensAndCommentsInPlace(this, false);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 785, 20))
>this : Symbol(RegexLiteral, Decl(parserRealSource11.ts, 773, 5))
}
}
export class StringLiteral extends Expression {
>StringLiteral : Symbol(StringLiteral, Decl(parserRealSource11.ts, 792, 5))
>Expression : Symbol(Expression, Decl(parserRealSource11.ts, 346, 5))
constructor (public text: string) {
>text : Symbol(StringLiteral.text, Decl(parserRealSource11.ts, 795, 21))
super(NodeType.QString);
>super : Symbol(Expression, Decl(parserRealSource11.ts, 346, 5))
}
public emit(emitter: Emitter, tokenId: TokenID, startLine: boolean) {
>emit : Symbol(StringLiteral.emit, Decl(parserRealSource11.ts, 797, 9))
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 799, 20))
>Emitter : Symbol(Emitter)
>tokenId : Symbol(tokenId, Decl(parserRealSource11.ts, 799, 37))
>TokenID : Symbol(TokenID)
>startLine : Symbol(startLine, Decl(parserRealSource11.ts, 799, 55))
emitter.emitParensAndCommentsInPlace(this, true);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 799, 20))
>this : Symbol(StringLiteral, Decl(parserRealSource11.ts, 792, 5))
emitter.recordSourceMappingStart(this);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 799, 20))
>this : Symbol(StringLiteral, Decl(parserRealSource11.ts, 792, 5))
emitter.emitStringLiteral(this.text);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 799, 20))
>this.text : Symbol(StringLiteral.text, Decl(parserRealSource11.ts, 795, 21))
>this : Symbol(StringLiteral, Decl(parserRealSource11.ts, 792, 5))
>text : Symbol(StringLiteral.text, Decl(parserRealSource11.ts, 795, 21))
emitter.recordSourceMappingEnd(this);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 799, 20))
>this : Symbol(StringLiteral, Decl(parserRealSource11.ts, 792, 5))
emitter.emitParensAndCommentsInPlace(this, false);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 799, 20))
>this : Symbol(StringLiteral, Decl(parserRealSource11.ts, 792, 5))
}
public typeCheck(typeFlow: TypeFlow) {
>typeCheck : Symbol(StringLiteral.typeCheck, Decl(parserRealSource11.ts, 805, 9))
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 807, 25))
>TypeFlow : Symbol(TypeFlow)
this.type = typeFlow.stringType;
>this.type : Symbol(AST.type, Decl(parserRealSource11.ts, 11, 38))
>this : Symbol(StringLiteral, Decl(parserRealSource11.ts, 792, 5))
>type : Symbol(AST.type, Decl(parserRealSource11.ts, 11, 38))
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 807, 25))
return this;
>this : Symbol(StringLiteral, Decl(parserRealSource11.ts, 792, 5))
}
public treeViewLabel() {
>treeViewLabel : Symbol(StringLiteral.treeViewLabel, Decl(parserRealSource11.ts, 810, 9))
return "st: " + this.text;
>this.text : Symbol(StringLiteral.text, Decl(parserRealSource11.ts, 795, 21))
>this : Symbol(StringLiteral, Decl(parserRealSource11.ts, 792, 5))
>text : Symbol(StringLiteral.text, Decl(parserRealSource11.ts, 795, 21))
}
public printLabel() {
>printLabel : Symbol(StringLiteral.printLabel, Decl(parserRealSource11.ts, 814, 9))
return this.text;
>this.text : Symbol(StringLiteral.text, Decl(parserRealSource11.ts, 795, 21))
>this : Symbol(StringLiteral, Decl(parserRealSource11.ts, 792, 5))
>text : Symbol(StringLiteral.text, Decl(parserRealSource11.ts, 795, 21))
}
}
export class ModuleElement extends AST {
>ModuleElement : Symbol(ModuleElement, Decl(parserRealSource11.ts, 819, 5))
>AST : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
constructor (nodeType: NodeType) {
>nodeType : Symbol(nodeType, Decl(parserRealSource11.ts, 822, 21))
>NodeType : Symbol(NodeType)
super(nodeType);
>super : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
>nodeType : Symbol(nodeType, Decl(parserRealSource11.ts, 822, 21))
}
}
export class ImportDeclaration extends ModuleElement {
>ImportDeclaration : Symbol(ImportDeclaration, Decl(parserRealSource11.ts, 825, 5))
>ModuleElement : Symbol(ModuleElement, Decl(parserRealSource11.ts, 819, 5))
public isStatementOrExpression() { return true; }
>isStatementOrExpression : Symbol(ImportDeclaration.isStatementOrExpression, Decl(parserRealSource11.ts, 827, 58))
public varFlags = VarFlags.None;
>varFlags : Symbol(ImportDeclaration.varFlags, Decl(parserRealSource11.ts, 828, 57))
public isDynamicImport = false;
>isDynamicImport : Symbol(ImportDeclaration.isDynamicImport, Decl(parserRealSource11.ts, 829, 40))
constructor (public id: Identifier, public alias: AST) {
>id : Symbol(ImportDeclaration.id, Decl(parserRealSource11.ts, 832, 21))
>Identifier : Symbol(Identifier, Decl(parserRealSource11.ts, 247, 5))
>alias : Symbol(ImportDeclaration.alias, Decl(parserRealSource11.ts, 832, 43))
>AST : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
super(NodeType.ImportDeclaration);
>super : Symbol(ModuleElement, Decl(parserRealSource11.ts, 819, 5))
}
public emit(emitter: Emitter, tokenId: TokenID, startLine: boolean) {
>emit : Symbol(ImportDeclaration.emit, Decl(parserRealSource11.ts, 834, 9))
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 836, 20))
>Emitter : Symbol(Emitter)
>tokenId : Symbol(tokenId, Decl(parserRealSource11.ts, 836, 37))
>TokenID : Symbol(TokenID)
>startLine : Symbol(startLine, Decl(parserRealSource11.ts, 836, 55))
var mod = <ModuleType>this.alias.type;
>mod : Symbol(mod, Decl(parserRealSource11.ts, 837, 15))
>ModuleType : Symbol(ModuleType)
>this.alias.type : Symbol(AST.type, Decl(parserRealSource11.ts, 11, 38))
>this.alias : Symbol(ImportDeclaration.alias, Decl(parserRealSource11.ts, 832, 43))
>this : Symbol(ImportDeclaration, Decl(parserRealSource11.ts, 825, 5))
>alias : Symbol(ImportDeclaration.alias, Decl(parserRealSource11.ts, 832, 43))
>type : Symbol(AST.type, Decl(parserRealSource11.ts, 11, 38))
// REVIEW: Only modules may be aliased for now, though there's no real
// restriction on what the type symbol may be
if (!this.isDynamicImport || (this.id.sym && !(<TypeSymbol>this.id.sym).onlyReferencedAsTypeRef)) {
>this.isDynamicImport : Symbol(ImportDeclaration.isDynamicImport, Decl(parserRealSource11.ts, 829, 40))
>this : Symbol(ImportDeclaration, Decl(parserRealSource11.ts, 825, 5))
>isDynamicImport : Symbol(ImportDeclaration.isDynamicImport, Decl(parserRealSource11.ts, 829, 40))
>this.id.sym : Symbol(Identifier.sym, Decl(parserRealSource11.ts, 249, 41))
>this.id : Symbol(ImportDeclaration.id, Decl(parserRealSource11.ts, 832, 21))
>this : Symbol(ImportDeclaration, Decl(parserRealSource11.ts, 825, 5))
>id : Symbol(ImportDeclaration.id, Decl(parserRealSource11.ts, 832, 21))
>sym : Symbol(Identifier.sym, Decl(parserRealSource11.ts, 249, 41))
>TypeSymbol : Symbol(TypeSymbol)
>this.id.sym : Symbol(Identifier.sym, Decl(parserRealSource11.ts, 249, 41))
>this.id : Symbol(ImportDeclaration.id, Decl(parserRealSource11.ts, 832, 21))
>this : Symbol(ImportDeclaration, Decl(parserRealSource11.ts, 825, 5))
>id : Symbol(ImportDeclaration.id, Decl(parserRealSource11.ts, 832, 21))
>sym : Symbol(Identifier.sym, Decl(parserRealSource11.ts, 249, 41))
var prevModAliasId = emitter.modAliasId;
>prevModAliasId : Symbol(prevModAliasId, Decl(parserRealSource11.ts, 841, 19))
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 836, 20))
var prevFirstModAlias = emitter.firstModAlias;
>prevFirstModAlias : Symbol(prevFirstModAlias, Decl(parserRealSource11.ts, 842, 19))
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 836, 20))
emitter.recordSourceMappingStart(this);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 836, 20))
>this : Symbol(ImportDeclaration, Decl(parserRealSource11.ts, 825, 5))
emitter.emitParensAndCommentsInPlace(this, true);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 836, 20))
>this : Symbol(ImportDeclaration, Decl(parserRealSource11.ts, 825, 5))
emitter.writeToOutput("var " + this.id.actualText + " = ");
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 836, 20))
>this.id.actualText : Symbol(Identifier.actualText, Decl(parserRealSource11.ts, 266, 21))
>this.id : Symbol(ImportDeclaration.id, Decl(parserRealSource11.ts, 832, 21))
>this : Symbol(ImportDeclaration, Decl(parserRealSource11.ts, 825, 5))
>id : Symbol(ImportDeclaration.id, Decl(parserRealSource11.ts, 832, 21))
>actualText : Symbol(Identifier.actualText, Decl(parserRealSource11.ts, 266, 21))
emitter.modAliasId = this.id.actualText;
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 836, 20))
>this.id.actualText : Symbol(Identifier.actualText, Decl(parserRealSource11.ts, 266, 21))
>this.id : Symbol(ImportDeclaration.id, Decl(parserRealSource11.ts, 832, 21))
>this : Symbol(ImportDeclaration, Decl(parserRealSource11.ts, 825, 5))
>id : Symbol(ImportDeclaration.id, Decl(parserRealSource11.ts, 832, 21))
>actualText : Symbol(Identifier.actualText, Decl(parserRealSource11.ts, 266, 21))
emitter.firstModAlias = this.firstAliasedModToString();
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 836, 20))
>this.firstAliasedModToString : Symbol(ImportDeclaration.firstAliasedModToString, Decl(parserRealSource11.ts, 873, 9))
>this : Symbol(ImportDeclaration, Decl(parserRealSource11.ts, 825, 5))
>firstAliasedModToString : Symbol(ImportDeclaration.firstAliasedModToString, Decl(parserRealSource11.ts, 873, 9))
emitter.emitJavascript(this.alias, TokenID.Tilde, false);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 836, 20))
>this.alias : Symbol(ImportDeclaration.alias, Decl(parserRealSource11.ts, 832, 43))
>this : Symbol(ImportDeclaration, Decl(parserRealSource11.ts, 825, 5))
>alias : Symbol(ImportDeclaration.alias, Decl(parserRealSource11.ts, 832, 43))
// the dynamic import case will insert the semi-colon automatically
if (!this.isDynamicImport) {
>this.isDynamicImport : Symbol(ImportDeclaration.isDynamicImport, Decl(parserRealSource11.ts, 829, 40))
>this : Symbol(ImportDeclaration, Decl(parserRealSource11.ts, 825, 5))
>isDynamicImport : Symbol(ImportDeclaration.isDynamicImport, Decl(parserRealSource11.ts, 829, 40))
emitter.writeToOutput(";");
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 836, 20))
}
emitter.emitParensAndCommentsInPlace(this, false);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 836, 20))
>this : Symbol(ImportDeclaration, Decl(parserRealSource11.ts, 825, 5))
emitter.recordSourceMappingEnd(this);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 836, 20))
>this : Symbol(ImportDeclaration, Decl(parserRealSource11.ts, 825, 5))
emitter.modAliasId = prevModAliasId;
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 836, 20))
>prevModAliasId : Symbol(prevModAliasId, Decl(parserRealSource11.ts, 841, 19))
emitter.firstModAlias = prevFirstModAlias;
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 836, 20))
>prevFirstModAlias : Symbol(prevFirstModAlias, Decl(parserRealSource11.ts, 842, 19))
}
}
public typeCheck(typeFlow: TypeFlow) {
>typeCheck : Symbol(ImportDeclaration.typeCheck, Decl(parserRealSource11.ts, 860, 9))
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 862, 25))
>TypeFlow : Symbol(TypeFlow)
return typeFlow.typeCheckImportDecl(this);
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 862, 25))
>this : Symbol(ImportDeclaration, Decl(parserRealSource11.ts, 825, 5))
}
public getAliasName(aliasAST?: AST = this.alias) : string {
>getAliasName : Symbol(ImportDeclaration.getAliasName, Decl(parserRealSource11.ts, 864, 9))
>aliasAST : Symbol(aliasAST, Decl(parserRealSource11.ts, 866, 28))
>AST : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
>this.alias : Symbol(ImportDeclaration.alias, Decl(parserRealSource11.ts, 832, 43))
>this : Symbol(ImportDeclaration, Decl(parserRealSource11.ts, 825, 5))
>alias : Symbol(ImportDeclaration.alias, Decl(parserRealSource11.ts, 832, 43))
if (aliasAST.nodeType == NodeType.Name) {
>aliasAST.nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
>aliasAST : Symbol(aliasAST, Decl(parserRealSource11.ts, 866, 28))
>nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
return (<Identifier>aliasAST).actualText;
>(<Identifier>aliasAST).actualText : Symbol(Identifier.actualText, Decl(parserRealSource11.ts, 266, 21))
>Identifier : Symbol(Identifier, Decl(parserRealSource11.ts, 247, 5))
>aliasAST : Symbol(aliasAST, Decl(parserRealSource11.ts, 866, 28))
>actualText : Symbol(Identifier.actualText, Decl(parserRealSource11.ts, 266, 21))
} else {
var dotExpr = <BinaryExpression>aliasAST;
>dotExpr : Symbol(dotExpr, Decl(parserRealSource11.ts, 870, 19))
>BinaryExpression : Symbol(BinaryExpression, Decl(parserRealSource11.ts, 549, 5))
>aliasAST : Symbol(aliasAST, Decl(parserRealSource11.ts, 866, 28))
return this.getAliasName(dotExpr.operand1) + "." + this.getAliasName(dotExpr.operand2);
>this.getAliasName : Symbol(ImportDeclaration.getAliasName, Decl(parserRealSource11.ts, 864, 9))
>this : Symbol(ImportDeclaration, Decl(parserRealSource11.ts, 825, 5))
>getAliasName : Symbol(ImportDeclaration.getAliasName, Decl(parserRealSource11.ts, 864, 9))
>dotExpr.operand1 : Symbol(BinaryExpression.operand1, Decl(parserRealSource11.ts, 552, 40))
>dotExpr : Symbol(dotExpr, Decl(parserRealSource11.ts, 870, 19))
>operand1 : Symbol(BinaryExpression.operand1, Decl(parserRealSource11.ts, 552, 40))
>this.getAliasName : Symbol(ImportDeclaration.getAliasName, Decl(parserRealSource11.ts, 864, 9))
>this : Symbol(ImportDeclaration, Decl(parserRealSource11.ts, 825, 5))
>getAliasName : Symbol(ImportDeclaration.getAliasName, Decl(parserRealSource11.ts, 864, 9))
>dotExpr.operand2 : Symbol(BinaryExpression.operand2, Decl(parserRealSource11.ts, 552, 62))
>dotExpr : Symbol(dotExpr, Decl(parserRealSource11.ts, 870, 19))
>operand2 : Symbol(BinaryExpression.operand2, Decl(parserRealSource11.ts, 552, 62))
}
}
public firstAliasedModToString() {
>firstAliasedModToString : Symbol(ImportDeclaration.firstAliasedModToString, Decl(parserRealSource11.ts, 873, 9))
if (this.alias.nodeType == NodeType.Name) {
>this.alias.nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
>this.alias : Symbol(ImportDeclaration.alias, Decl(parserRealSource11.ts, 832, 43))
>this : Symbol(ImportDeclaration, Decl(parserRealSource11.ts, 825, 5))
>alias : Symbol(ImportDeclaration.alias, Decl(parserRealSource11.ts, 832, 43))
>nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
return (<Identifier>this.alias).actualText;
>(<Identifier>this.alias).actualText : Symbol(Identifier.actualText, Decl(parserRealSource11.ts, 266, 21))
>Identifier : Symbol(Identifier, Decl(parserRealSource11.ts, 247, 5))
>this.alias : Symbol(ImportDeclaration.alias, Decl(parserRealSource11.ts, 832, 43))
>this : Symbol(ImportDeclaration, Decl(parserRealSource11.ts, 825, 5))
>alias : Symbol(ImportDeclaration.alias, Decl(parserRealSource11.ts, 832, 43))
>actualText : Symbol(Identifier.actualText, Decl(parserRealSource11.ts, 266, 21))
}
else {
var dotExpr = <BinaryExpression>this.alias;
>dotExpr : Symbol(dotExpr, Decl(parserRealSource11.ts, 880, 19))
>BinaryExpression : Symbol(BinaryExpression, Decl(parserRealSource11.ts, 549, 5))
>this.alias : Symbol(ImportDeclaration.alias, Decl(parserRealSource11.ts, 832, 43))
>this : Symbol(ImportDeclaration, Decl(parserRealSource11.ts, 825, 5))
>alias : Symbol(ImportDeclaration.alias, Decl(parserRealSource11.ts, 832, 43))
var firstMod = <Identifier>dotExpr.operand1;
>firstMod : Symbol(firstMod, Decl(parserRealSource11.ts, 881, 19))
>Identifier : Symbol(Identifier, Decl(parserRealSource11.ts, 247, 5))
>dotExpr.operand1 : Symbol(BinaryExpression.operand1, Decl(parserRealSource11.ts, 552, 40))
>dotExpr : Symbol(dotExpr, Decl(parserRealSource11.ts, 880, 19))
>operand1 : Symbol(BinaryExpression.operand1, Decl(parserRealSource11.ts, 552, 40))
return firstMod.actualText;
>firstMod.actualText : Symbol(Identifier.actualText, Decl(parserRealSource11.ts, 266, 21))
>firstMod : Symbol(firstMod, Decl(parserRealSource11.ts, 881, 19))
>actualText : Symbol(Identifier.actualText, Decl(parserRealSource11.ts, 266, 21))
}
}
}
export class BoundDecl extends AST {
>BoundDecl : Symbol(BoundDecl, Decl(parserRealSource11.ts, 885, 5))
>AST : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
public init: AST = null;
>init : Symbol(BoundDecl.init, Decl(parserRealSource11.ts, 887, 40))
>AST : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
public typeExpr: AST = null;
>typeExpr : Symbol(BoundDecl.typeExpr, Decl(parserRealSource11.ts, 888, 32))
>AST : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
public varFlags = VarFlags.None;
>varFlags : Symbol(BoundDecl.varFlags, Decl(parserRealSource11.ts, 889, 36))
public sym: Symbol = null;
>sym : Symbol(BoundDecl.sym, Decl(parserRealSource11.ts, 890, 40))
>Symbol : Symbol(Symbol, Decl(lib.es5.d.ts, --, --))
constructor (public id: Identifier, nodeType: NodeType, public nestingLevel: number) {
>id : Symbol(BoundDecl.id, Decl(parserRealSource11.ts, 893, 21))
>Identifier : Symbol(Identifier, Decl(parserRealSource11.ts, 247, 5))
>nodeType : Symbol(nodeType, Decl(parserRealSource11.ts, 893, 43))
>NodeType : Symbol(NodeType)
>nestingLevel : Symbol(BoundDecl.nestingLevel, Decl(parserRealSource11.ts, 893, 63))
super(nodeType);
>super : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
>nodeType : Symbol(nodeType, Decl(parserRealSource11.ts, 893, 43))
}
public isStatementOrExpression() { return true; }
>isStatementOrExpression : Symbol(BoundDecl.isStatementOrExpression, Decl(parserRealSource11.ts, 895, 9))
public isPrivate() { return hasFlag(this.varFlags, VarFlags.Private); }
>isPrivate : Symbol(BoundDecl.isPrivate, Decl(parserRealSource11.ts, 897, 57))
>this.varFlags : Symbol(BoundDecl.varFlags, Decl(parserRealSource11.ts, 889, 36))
>this : Symbol(BoundDecl, Decl(parserRealSource11.ts, 885, 5))
>varFlags : Symbol(BoundDecl.varFlags, Decl(parserRealSource11.ts, 889, 36))
public isPublic() { return hasFlag(this.varFlags, VarFlags.Public); }
>isPublic : Symbol(BoundDecl.isPublic, Decl(parserRealSource11.ts, 899, 79))
>this.varFlags : Symbol(BoundDecl.varFlags, Decl(parserRealSource11.ts, 889, 36))
>this : Symbol(BoundDecl, Decl(parserRealSource11.ts, 885, 5))
>varFlags : Symbol(BoundDecl.varFlags, Decl(parserRealSource11.ts, 889, 36))
public isProperty() { return hasFlag(this.varFlags, VarFlags.Property); }
>isProperty : Symbol(BoundDecl.isProperty, Decl(parserRealSource11.ts, 900, 77))
>this.varFlags : Symbol(BoundDecl.varFlags, Decl(parserRealSource11.ts, 889, 36))
>this : Symbol(BoundDecl, Decl(parserRealSource11.ts, 885, 5))
>varFlags : Symbol(BoundDecl.varFlags, Decl(parserRealSource11.ts, 889, 36))
public typeCheck(typeFlow: TypeFlow) {
>typeCheck : Symbol(BoundDecl.typeCheck, Decl(parserRealSource11.ts, 901, 81))
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 903, 25))
>TypeFlow : Symbol(TypeFlow)
return typeFlow.typeCheckBoundDecl(this);
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 903, 25))
>this : Symbol(BoundDecl, Decl(parserRealSource11.ts, 885, 5))
}
public printLabel() {
>printLabel : Symbol(BoundDecl.printLabel, Decl(parserRealSource11.ts, 905, 9))
return this.treeViewLabel();
>this.treeViewLabel : Symbol(AST.treeViewLabel, Decl(parserRealSource11.ts, 151, 9))
>this : Symbol(BoundDecl, Decl(parserRealSource11.ts, 885, 5))
>treeViewLabel : Symbol(AST.treeViewLabel, Decl(parserRealSource11.ts, 151, 9))
}
}
export class VarDecl extends BoundDecl {
>VarDecl : Symbol(VarDecl, Decl(parserRealSource11.ts, 910, 5))
>BoundDecl : Symbol(BoundDecl, Decl(parserRealSource11.ts, 885, 5))
constructor (id: Identifier, nest: number) {
>id : Symbol(id, Decl(parserRealSource11.ts, 913, 21))
>Identifier : Symbol(Identifier, Decl(parserRealSource11.ts, 247, 5))
>nest : Symbol(nest, Decl(parserRealSource11.ts, 913, 36))
super(id, NodeType.VarDecl, nest);
>super : Symbol(BoundDecl, Decl(parserRealSource11.ts, 885, 5))
>id : Symbol(id, Decl(parserRealSource11.ts, 913, 21))
>nest : Symbol(nest, Decl(parserRealSource11.ts, 913, 36))
}
public isAmbient() { return hasFlag(this.varFlags, VarFlags.Ambient); }
>isAmbient : Symbol(VarDecl.isAmbient, Decl(parserRealSource11.ts, 915, 9))
>this.varFlags : Symbol(BoundDecl.varFlags, Decl(parserRealSource11.ts, 889, 36))
>this : Symbol(VarDecl, Decl(parserRealSource11.ts, 910, 5))
>varFlags : Symbol(BoundDecl.varFlags, Decl(parserRealSource11.ts, 889, 36))
public isExported() { return hasFlag(this.varFlags, VarFlags.Exported); }
>isExported : Symbol(VarDecl.isExported, Decl(parserRealSource11.ts, 917, 79))
>this.varFlags : Symbol(BoundDecl.varFlags, Decl(parserRealSource11.ts, 889, 36))
>this : Symbol(VarDecl, Decl(parserRealSource11.ts, 910, 5))
>varFlags : Symbol(BoundDecl.varFlags, Decl(parserRealSource11.ts, 889, 36))
public isStatic() { return hasFlag(this.varFlags, VarFlags.Static); }
>isStatic : Symbol(VarDecl.isStatic, Decl(parserRealSource11.ts, 918, 81))
>this.varFlags : Symbol(BoundDecl.varFlags, Decl(parserRealSource11.ts, 889, 36))
>this : Symbol(VarDecl, Decl(parserRealSource11.ts, 910, 5))
>varFlags : Symbol(BoundDecl.varFlags, Decl(parserRealSource11.ts, 889, 36))
public emit(emitter: Emitter, tokenId: TokenID, startLine: boolean) {
>emit : Symbol(VarDecl.emit, Decl(parserRealSource11.ts, 919, 77))
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 921, 20))
>Emitter : Symbol(Emitter)
>tokenId : Symbol(tokenId, Decl(parserRealSource11.ts, 921, 37))
>TokenID : Symbol(TokenID)
>startLine : Symbol(startLine, Decl(parserRealSource11.ts, 921, 55))
emitter.emitJavascriptVarDecl(this, tokenId);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 921, 20))
>this : Symbol(VarDecl, Decl(parserRealSource11.ts, 910, 5))
>tokenId : Symbol(tokenId, Decl(parserRealSource11.ts, 921, 37))
}
public treeViewLabel() {
>treeViewLabel : Symbol(VarDecl.treeViewLabel, Decl(parserRealSource11.ts, 923, 9))
return "var " + this.id.actualText;
>this.id.actualText : Symbol(Identifier.actualText, Decl(parserRealSource11.ts, 266, 21))
>this.id : Symbol(BoundDecl.id, Decl(parserRealSource11.ts, 893, 21))
>this : Symbol(VarDecl, Decl(parserRealSource11.ts, 910, 5))
>id : Symbol(BoundDecl.id, Decl(parserRealSource11.ts, 893, 21))
>actualText : Symbol(Identifier.actualText, Decl(parserRealSource11.ts, 266, 21))
}
}
export class ArgDecl extends BoundDecl {
>ArgDecl : Symbol(ArgDecl, Decl(parserRealSource11.ts, 928, 5))
>BoundDecl : Symbol(BoundDecl, Decl(parserRealSource11.ts, 885, 5))
constructor (id: Identifier) {
>id : Symbol(id, Decl(parserRealSource11.ts, 931, 21))
>Identifier : Symbol(Identifier, Decl(parserRealSource11.ts, 247, 5))
super(id, NodeType.ArgDecl, 0);
>super : Symbol(BoundDecl, Decl(parserRealSource11.ts, 885, 5))
>id : Symbol(id, Decl(parserRealSource11.ts, 931, 21))
}
public isOptional = false;
>isOptional : Symbol(ArgDecl.isOptional, Decl(parserRealSource11.ts, 933, 9))
public isOptionalArg() { return this.isOptional || this.init; }
>isOptionalArg : Symbol(ArgDecl.isOptionalArg, Decl(parserRealSource11.ts, 935, 34))
>this.isOptional : Symbol(ArgDecl.isOptional, Decl(parserRealSource11.ts, 933, 9))
>this : Symbol(ArgDecl, Decl(parserRealSource11.ts, 928, 5))
>isOptional : Symbol(ArgDecl.isOptional, Decl(parserRealSource11.ts, 933, 9))
>this.init : Symbol(BoundDecl.init, Decl(parserRealSource11.ts, 887, 40))
>this : Symbol(ArgDecl, Decl(parserRealSource11.ts, 928, 5))
>init : Symbol(BoundDecl.init, Decl(parserRealSource11.ts, 887, 40))
public treeViewLabel() {
>treeViewLabel : Symbol(ArgDecl.treeViewLabel, Decl(parserRealSource11.ts, 937, 71))
return "arg: " + this.id.actualText;
>this.id.actualText : Symbol(Identifier.actualText, Decl(parserRealSource11.ts, 266, 21))
>this.id : Symbol(BoundDecl.id, Decl(parserRealSource11.ts, 893, 21))
>this : Symbol(ArgDecl, Decl(parserRealSource11.ts, 928, 5))
>id : Symbol(BoundDecl.id, Decl(parserRealSource11.ts, 893, 21))
>actualText : Symbol(Identifier.actualText, Decl(parserRealSource11.ts, 266, 21))
}
public parameterPropertySym: FieldSymbol = null;
>parameterPropertySym : Symbol(ArgDecl.parameterPropertySym, Decl(parserRealSource11.ts, 941, 9))
>FieldSymbol : Symbol(FieldSymbol)
public emit(emitter: Emitter, tokenId: TokenID, startLine: boolean) {
>emit : Symbol(ArgDecl.emit, Decl(parserRealSource11.ts, 943, 56))
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 945, 20))
>Emitter : Symbol(Emitter)
>tokenId : Symbol(tokenId, Decl(parserRealSource11.ts, 945, 37))
>TokenID : Symbol(TokenID)
>startLine : Symbol(startLine, Decl(parserRealSource11.ts, 945, 55))
emitter.emitParensAndCommentsInPlace(this, true);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 945, 20))
>this : Symbol(ArgDecl, Decl(parserRealSource11.ts, 928, 5))
emitter.recordSourceMappingStart(this);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 945, 20))
>this : Symbol(ArgDecl, Decl(parserRealSource11.ts, 928, 5))
emitter.writeToOutput(this.id.actualText);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 945, 20))
>this.id.actualText : Symbol(Identifier.actualText, Decl(parserRealSource11.ts, 266, 21))
>this.id : Symbol(BoundDecl.id, Decl(parserRealSource11.ts, 893, 21))
>this : Symbol(ArgDecl, Decl(parserRealSource11.ts, 928, 5))
>id : Symbol(BoundDecl.id, Decl(parserRealSource11.ts, 893, 21))
>actualText : Symbol(Identifier.actualText, Decl(parserRealSource11.ts, 266, 21))
emitter.recordSourceMappingEnd(this);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 945, 20))
>this : Symbol(ArgDecl, Decl(parserRealSource11.ts, 928, 5))
emitter.emitParensAndCommentsInPlace(this, false);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 945, 20))
>this : Symbol(ArgDecl, Decl(parserRealSource11.ts, 928, 5))
}
}
var internalId = 0;
>internalId : Symbol(internalId, Decl(parserRealSource11.ts, 954, 7))
export class FuncDecl extends AST {
>FuncDecl : Symbol(FuncDecl, Decl(parserRealSource11.ts, 954, 23))
>AST : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
public hint: string = null;
>hint : Symbol(FuncDecl.hint, Decl(parserRealSource11.ts, 956, 39))
public fncFlags = FncFlags.None;
>fncFlags : Symbol(FuncDecl.fncFlags, Decl(parserRealSource11.ts, 957, 35))
public returnTypeAnnotation: AST = null;
>returnTypeAnnotation : Symbol(FuncDecl.returnTypeAnnotation, Decl(parserRealSource11.ts, 958, 40))
>AST : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
public symbols: IHashTable;
>symbols : Symbol(FuncDecl.symbols, Decl(parserRealSource11.ts, 959, 48))
>IHashTable : Symbol(IHashTable)
public variableArgList = false;
>variableArgList : Symbol(FuncDecl.variableArgList, Decl(parserRealSource11.ts, 960, 35))
public signature: Signature;
>signature : Symbol(FuncDecl.signature, Decl(parserRealSource11.ts, 961, 39))
>Signature : Symbol(Signature)
public envids: Identifier[];
>envids : Symbol(FuncDecl.envids, Decl(parserRealSource11.ts, 962, 36))
>Identifier : Symbol(Identifier, Decl(parserRealSource11.ts, 247, 5))
public jumpRefs: Identifier[] = null;
>jumpRefs : Symbol(FuncDecl.jumpRefs, Decl(parserRealSource11.ts, 963, 36))
>Identifier : Symbol(Identifier, Decl(parserRealSource11.ts, 247, 5))
public internalNameCache: string = null;
>internalNameCache : Symbol(FuncDecl.internalNameCache, Decl(parserRealSource11.ts, 964, 45))
public tmp1Declared = false;
>tmp1Declared : Symbol(FuncDecl.tmp1Declared, Decl(parserRealSource11.ts, 965, 48))
public enclosingFnc: FuncDecl = null;
>enclosingFnc : Symbol(FuncDecl.enclosingFnc, Decl(parserRealSource11.ts, 966, 36))
>FuncDecl : Symbol(FuncDecl, Decl(parserRealSource11.ts, 954, 23))
public freeVariables: Symbol[] = [];
>freeVariables : Symbol(FuncDecl.freeVariables, Decl(parserRealSource11.ts, 967, 45))
>Symbol : Symbol(Symbol, Decl(lib.es5.d.ts, --, --))
public unitIndex = -1;
>unitIndex : Symbol(FuncDecl.unitIndex, Decl(parserRealSource11.ts, 968, 44))
public classDecl: NamedDeclaration = null;
>classDecl : Symbol(FuncDecl.classDecl, Decl(parserRealSource11.ts, 969, 30))
>NamedDeclaration : Symbol(NamedDeclaration, Decl(parserRealSource11.ts, 1180, 5))
public boundToProperty: VarDecl = null;
>boundToProperty : Symbol(FuncDecl.boundToProperty, Decl(parserRealSource11.ts, 970, 50))
>VarDecl : Symbol(VarDecl, Decl(parserRealSource11.ts, 910, 5))
public isOverload = false;
>isOverload : Symbol(FuncDecl.isOverload, Decl(parserRealSource11.ts, 971, 47))
public innerStaticFuncs: FuncDecl[] = [];
>innerStaticFuncs : Symbol(FuncDecl.innerStaticFuncs, Decl(parserRealSource11.ts, 972, 34))
>FuncDecl : Symbol(FuncDecl, Decl(parserRealSource11.ts, 954, 23))
public isTargetTypedAsMethod = false;
>isTargetTypedAsMethod : Symbol(FuncDecl.isTargetTypedAsMethod, Decl(parserRealSource11.ts, 973, 49))
public isInlineCallLiteral = false;
>isInlineCallLiteral : Symbol(FuncDecl.isInlineCallLiteral, Decl(parserRealSource11.ts, 974, 45))
public accessorSymbol: Symbol = null;
>accessorSymbol : Symbol(FuncDecl.accessorSymbol, Decl(parserRealSource11.ts, 975, 43))
>Symbol : Symbol(Symbol, Decl(lib.es5.d.ts, --, --))
public leftCurlyCount = 0;
>leftCurlyCount : Symbol(FuncDecl.leftCurlyCount, Decl(parserRealSource11.ts, 976, 45))
public rightCurlyCount = 0;
>rightCurlyCount : Symbol(FuncDecl.rightCurlyCount, Decl(parserRealSource11.ts, 977, 34))
public returnStatementsWithExpressions: ReturnStatement[] = [];
>returnStatementsWithExpressions : Symbol(FuncDecl.returnStatementsWithExpressions, Decl(parserRealSource11.ts, 978, 35))
>ReturnStatement : Symbol(ReturnStatement, Decl(parserRealSource11.ts, 1644, 5))
public scopeType: Type = null; // Type of the FuncDecl, before target typing
>scopeType : Symbol(FuncDecl.scopeType, Decl(parserRealSource11.ts, 979, 71))
>Type : Symbol(Type)
public endingToken: ASTSpan = null;
>endingToken : Symbol(FuncDecl.endingToken, Decl(parserRealSource11.ts, 980, 38))
>ASTSpan : Symbol(ASTSpan, Decl(parserRealSource11.ts, 5, 19))
constructor (public name: Identifier, public bod: ASTList, public isConstructor: boolean,
>name : Symbol(FuncDecl.name, Decl(parserRealSource11.ts, 983, 21))
>Identifier : Symbol(Identifier, Decl(parserRealSource11.ts, 247, 5))
>bod : Symbol(FuncDecl.bod, Decl(parserRealSource11.ts, 983, 45))
>ASTList : Symbol(ASTList, Decl(parserRealSource11.ts, 188, 5))
>isConstructor : Symbol(FuncDecl.isConstructor, Decl(parserRealSource11.ts, 983, 66))
public arguments: ASTList, public vars: ASTList, public scopes: ASTList, public statics: ASTList,
>arguments : Symbol(FuncDecl.arguments, Decl(parserRealSource11.ts, 983, 97))
>ASTList : Symbol(ASTList, Decl(parserRealSource11.ts, 188, 5))
>vars : Symbol(FuncDecl.vars, Decl(parserRealSource11.ts, 984, 47))
>ASTList : Symbol(ASTList, Decl(parserRealSource11.ts, 188, 5))
>scopes : Symbol(FuncDecl.scopes, Decl(parserRealSource11.ts, 984, 69))
>ASTList : Symbol(ASTList, Decl(parserRealSource11.ts, 188, 5))
>statics : Symbol(FuncDecl.statics, Decl(parserRealSource11.ts, 984, 93))
>ASTList : Symbol(ASTList, Decl(parserRealSource11.ts, 188, 5))
nodeType: number) {
>nodeType : Symbol(nodeType, Decl(parserRealSource11.ts, 984, 118))
super(nodeType);
>super : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
>nodeType : Symbol(nodeType, Decl(parserRealSource11.ts, 984, 118))
}
public internalName(): string {
>internalName : Symbol(FuncDecl.internalName, Decl(parserRealSource11.ts, 988, 9))
if (this.internalNameCache == null) {
>this.internalNameCache : Symbol(FuncDecl.internalNameCache, Decl(parserRealSource11.ts, 964, 45))
>this : Symbol(FuncDecl, Decl(parserRealSource11.ts, 954, 23))
>internalNameCache : Symbol(FuncDecl.internalNameCache, Decl(parserRealSource11.ts, 964, 45))
var extName = this.getNameText();
>extName : Symbol(extName, Decl(parserRealSource11.ts, 992, 19))
>this.getNameText : Symbol(FuncDecl.getNameText, Decl(parserRealSource11.ts, 1055, 9))
>this : Symbol(FuncDecl, Decl(parserRealSource11.ts, 954, 23))
>getNameText : Symbol(FuncDecl.getNameText, Decl(parserRealSource11.ts, 1055, 9))
if (extName) {
>extName : Symbol(extName, Decl(parserRealSource11.ts, 992, 19))
this.internalNameCache = "_internal_" + extName;
>this.internalNameCache : Symbol(FuncDecl.internalNameCache, Decl(parserRealSource11.ts, 964, 45))
>this : Symbol(FuncDecl, Decl(parserRealSource11.ts, 954, 23))
>internalNameCache : Symbol(FuncDecl.internalNameCache, Decl(parserRealSource11.ts, 964, 45))
>extName : Symbol(extName, Decl(parserRealSource11.ts, 992, 19))
}
else {
this.internalNameCache = "_internal_" + internalId++;
>this.internalNameCache : Symbol(FuncDecl.internalNameCache, Decl(parserRealSource11.ts, 964, 45))
>this : Symbol(FuncDecl, Decl(parserRealSource11.ts, 954, 23))
>internalNameCache : Symbol(FuncDecl.internalNameCache, Decl(parserRealSource11.ts, 964, 45))
>internalId : Symbol(internalId, Decl(parserRealSource11.ts, 954, 7))
}
}
return this.internalNameCache;
>this.internalNameCache : Symbol(FuncDecl.internalNameCache, Decl(parserRealSource11.ts, 964, 45))
>this : Symbol(FuncDecl, Decl(parserRealSource11.ts, 954, 23))
>internalNameCache : Symbol(FuncDecl.internalNameCache, Decl(parserRealSource11.ts, 964, 45))
}
public hasSelfReference() { return hasFlag(this.fncFlags, FncFlags.HasSelfReference); }
>hasSelfReference : Symbol(FuncDecl.hasSelfReference, Decl(parserRealSource11.ts, 1001, 9))
>this.fncFlags : Symbol(FuncDecl.fncFlags, Decl(parserRealSource11.ts, 957, 35))
>this : Symbol(FuncDecl, Decl(parserRealSource11.ts, 954, 23))
>fncFlags : Symbol(FuncDecl.fncFlags, Decl(parserRealSource11.ts, 957, 35))
public setHasSelfReference() { this.fncFlags |= FncFlags.HasSelfReference; }
>setHasSelfReference : Symbol(FuncDecl.setHasSelfReference, Decl(parserRealSource11.ts, 1003, 95))
>this.fncFlags : Symbol(FuncDecl.fncFlags, Decl(parserRealSource11.ts, 957, 35))
>this : Symbol(FuncDecl, Decl(parserRealSource11.ts, 954, 23))
>fncFlags : Symbol(FuncDecl.fncFlags, Decl(parserRealSource11.ts, 957, 35))
public addCloRef(id: Identifier, sym: Symbol): number {
>addCloRef : Symbol(FuncDecl.addCloRef, Decl(parserRealSource11.ts, 1004, 84))
>id : Symbol(id, Decl(parserRealSource11.ts, 1006, 25))
>Identifier : Symbol(Identifier, Decl(parserRealSource11.ts, 247, 5))
>sym : Symbol(sym, Decl(parserRealSource11.ts, 1006, 40))
>Symbol : Symbol(Symbol, Decl(lib.es5.d.ts, --, --))
if (this.envids == null) {
>this.envids : Symbol(FuncDecl.envids, Decl(parserRealSource11.ts, 962, 36))
>this : Symbol(FuncDecl, Decl(parserRealSource11.ts, 954, 23))
>envids : Symbol(FuncDecl.envids, Decl(parserRealSource11.ts, 962, 36))
this.envids = new Identifier[];
>this.envids : Symbol(FuncDecl.envids, Decl(parserRealSource11.ts, 962, 36))
>this : Symbol(FuncDecl, Decl(parserRealSource11.ts, 954, 23))
>envids : Symbol(FuncDecl.envids, Decl(parserRealSource11.ts, 962, 36))
>Identifier : Symbol(Identifier, Decl(parserRealSource11.ts, 247, 5))
}
this.envids[this.envids.length] = id;
>this.envids : Symbol(FuncDecl.envids, Decl(parserRealSource11.ts, 962, 36))
>this : Symbol(FuncDecl, Decl(parserRealSource11.ts, 954, 23))
>envids : Symbol(FuncDecl.envids, Decl(parserRealSource11.ts, 962, 36))
>this.envids.length : Symbol(Array.length, Decl(lib.es5.d.ts, --, --))
>this.envids : Symbol(FuncDecl.envids, Decl(parserRealSource11.ts, 962, 36))
>this : Symbol(FuncDecl, Decl(parserRealSource11.ts, 954, 23))
>envids : Symbol(FuncDecl.envids, Decl(parserRealSource11.ts, 962, 36))
>length : Symbol(Array.length, Decl(lib.es5.d.ts, --, --))
>id : Symbol(id, Decl(parserRealSource11.ts, 1006, 25))
var outerFnc = this.enclosingFnc;
>outerFnc : Symbol(outerFnc, Decl(parserRealSource11.ts, 1011, 15))
>this.enclosingFnc : Symbol(FuncDecl.enclosingFnc, Decl(parserRealSource11.ts, 966, 36))
>this : Symbol(FuncDecl, Decl(parserRealSource11.ts, 954, 23))
>enclosingFnc : Symbol(FuncDecl.enclosingFnc, Decl(parserRealSource11.ts, 966, 36))
if (sym) {
>sym : Symbol(sym, Decl(parserRealSource11.ts, 1006, 40))
while (outerFnc && (outerFnc.type.symbol != sym.container)) {
>outerFnc : Symbol(outerFnc, Decl(parserRealSource11.ts, 1011, 15))
>outerFnc.type : Symbol(AST.type, Decl(parserRealSource11.ts, 11, 38))
>outerFnc : Symbol(outerFnc, Decl(parserRealSource11.ts, 1011, 15))
>type : Symbol(AST.type, Decl(parserRealSource11.ts, 11, 38))
>sym : Symbol(sym, Decl(parserRealSource11.ts, 1006, 40))
outerFnc.addJumpRef(sym);
>outerFnc.addJumpRef : Symbol(FuncDecl.addJumpRef, Decl(parserRealSource11.ts, 1019, 9))
>outerFnc : Symbol(outerFnc, Decl(parserRealSource11.ts, 1011, 15))
>addJumpRef : Symbol(FuncDecl.addJumpRef, Decl(parserRealSource11.ts, 1019, 9))
>sym : Symbol(sym, Decl(parserRealSource11.ts, 1006, 40))
outerFnc = outerFnc.enclosingFnc;
>outerFnc : Symbol(outerFnc, Decl(parserRealSource11.ts, 1011, 15))
>outerFnc.enclosingFnc : Symbol(FuncDecl.enclosingFnc, Decl(parserRealSource11.ts, 966, 36))
>outerFnc : Symbol(outerFnc, Decl(parserRealSource11.ts, 1011, 15))
>enclosingFnc : Symbol(FuncDecl.enclosingFnc, Decl(parserRealSource11.ts, 966, 36))
}
}
return this.envids.length - 1;
>this.envids.length : Symbol(Array.length, Decl(lib.es5.d.ts, --, --))
>this.envids : Symbol(FuncDecl.envids, Decl(parserRealSource11.ts, 962, 36))
>this : Symbol(FuncDecl, Decl(parserRealSource11.ts, 954, 23))
>envids : Symbol(FuncDecl.envids, Decl(parserRealSource11.ts, 962, 36))
>length : Symbol(Array.length, Decl(lib.es5.d.ts, --, --))
}
public addJumpRef(sym: Symbol): void {
>addJumpRef : Symbol(FuncDecl.addJumpRef, Decl(parserRealSource11.ts, 1019, 9))
>sym : Symbol(sym, Decl(parserRealSource11.ts, 1021, 26))
>Symbol : Symbol(Symbol, Decl(lib.es5.d.ts, --, --))
if (this.jumpRefs == null) {
>this.jumpRefs : Symbol(FuncDecl.jumpRefs, Decl(parserRealSource11.ts, 963, 36))
>this : Symbol(FuncDecl, Decl(parserRealSource11.ts, 954, 23))
>jumpRefs : Symbol(FuncDecl.jumpRefs, Decl(parserRealSource11.ts, 963, 36))
this.jumpRefs = new Identifier[];
>this.jumpRefs : Symbol(FuncDecl.jumpRefs, Decl(parserRealSource11.ts, 963, 36))
>this : Symbol(FuncDecl, Decl(parserRealSource11.ts, 954, 23))
>jumpRefs : Symbol(FuncDecl.jumpRefs, Decl(parserRealSource11.ts, 963, 36))
>Identifier : Symbol(Identifier, Decl(parserRealSource11.ts, 247, 5))
}
var id = new Identifier(sym.name);
>id : Symbol(id, Decl(parserRealSource11.ts, 1025, 15))
>Identifier : Symbol(Identifier, Decl(parserRealSource11.ts, 247, 5))
>sym : Symbol(sym, Decl(parserRealSource11.ts, 1021, 26))
this.jumpRefs[this.jumpRefs.length] = id;
>this.jumpRefs : Symbol(FuncDecl.jumpRefs, Decl(parserRealSource11.ts, 963, 36))
>this : Symbol(FuncDecl, Decl(parserRealSource11.ts, 954, 23))
>jumpRefs : Symbol(FuncDecl.jumpRefs, Decl(parserRealSource11.ts, 963, 36))
>this.jumpRefs.length : Symbol(Array.length, Decl(lib.es5.d.ts, --, --))
>this.jumpRefs : Symbol(FuncDecl.jumpRefs, Decl(parserRealSource11.ts, 963, 36))
>this : Symbol(FuncDecl, Decl(parserRealSource11.ts, 954, 23))
>jumpRefs : Symbol(FuncDecl.jumpRefs, Decl(parserRealSource11.ts, 963, 36))
>length : Symbol(Array.length, Decl(lib.es5.d.ts, --, --))
>id : Symbol(id, Decl(parserRealSource11.ts, 1025, 15))
id.sym = sym;
>id.sym : Symbol(Identifier.sym, Decl(parserRealSource11.ts, 249, 41))
>id : Symbol(id, Decl(parserRealSource11.ts, 1025, 15))
>sym : Symbol(Identifier.sym, Decl(parserRealSource11.ts, 249, 41))
>sym : Symbol(sym, Decl(parserRealSource11.ts, 1021, 26))
id.cloId = this.addCloRef(id, null);
>id.cloId : Symbol(Identifier.cloId, Decl(parserRealSource11.ts, 250, 34))
>id : Symbol(id, Decl(parserRealSource11.ts, 1025, 15))
>cloId : Symbol(Identifier.cloId, Decl(parserRealSource11.ts, 250, 34))
>this.addCloRef : Symbol(FuncDecl.addCloRef, Decl(parserRealSource11.ts, 1004, 84))
>this : Symbol(FuncDecl, Decl(parserRealSource11.ts, 954, 23))
>addCloRef : Symbol(FuncDecl.addCloRef, Decl(parserRealSource11.ts, 1004, 84))
>id : Symbol(id, Decl(parserRealSource11.ts, 1025, 15))
}
public buildControlFlow(): ControlFlowContext {
>buildControlFlow : Symbol(FuncDecl.buildControlFlow, Decl(parserRealSource11.ts, 1029, 9))
>ControlFlowContext : Symbol(ControlFlowContext)
var entry = new BasicBlock();
>entry : Symbol(entry, Decl(parserRealSource11.ts, 1032, 15))
var exit = new BasicBlock();
>exit : Symbol(exit, Decl(parserRealSource11.ts, 1033, 15))
var context = new ControlFlowContext(entry, exit);
>context : Symbol(context, Decl(parserRealSource11.ts, 1035, 15))
>entry : Symbol(entry, Decl(parserRealSource11.ts, 1032, 15))
>exit : Symbol(exit, Decl(parserRealSource11.ts, 1033, 15))
var controlFlowPrefix = (ast: AST, parent: AST, walker: IAstWalker) => {
>controlFlowPrefix : Symbol(controlFlowPrefix, Decl(parserRealSource11.ts, 1037, 15))
>ast : Symbol(ast, Decl(parserRealSource11.ts, 1037, 37))
>AST : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
>parent : Symbol(parent, Decl(parserRealSource11.ts, 1037, 46))
>AST : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
>walker : Symbol(walker, Decl(parserRealSource11.ts, 1037, 59))
>IAstWalker : Symbol(IAstWalker)
ast.addToControlFlow(walker.state);
>ast.addToControlFlow : Symbol(AST.addToControlFlow, Decl(parserRealSource11.ts, 142, 9))
>ast : Symbol(ast, Decl(parserRealSource11.ts, 1037, 37))
>addToControlFlow : Symbol(AST.addToControlFlow, Decl(parserRealSource11.ts, 142, 9))
>walker : Symbol(walker, Decl(parserRealSource11.ts, 1037, 59))
return ast;
>ast : Symbol(ast, Decl(parserRealSource11.ts, 1037, 37))
}
var walker = getAstWalkerFactory().getWalker(controlFlowPrefix, null, null, context);
>walker : Symbol(walker, Decl(parserRealSource11.ts, 1042, 15))
>controlFlowPrefix : Symbol(controlFlowPrefix, Decl(parserRealSource11.ts, 1037, 15))
>context : Symbol(context, Decl(parserRealSource11.ts, 1035, 15))
context.walker = walker;
>context : Symbol(context, Decl(parserRealSource11.ts, 1035, 15))
>walker : Symbol(walker, Decl(parserRealSource11.ts, 1042, 15))
walker.walk(this.bod, this);
>walker : Symbol(walker, Decl(parserRealSource11.ts, 1042, 15))
>this.bod : Symbol(FuncDecl.bod, Decl(parserRealSource11.ts, 983, 45))
>this : Symbol(FuncDecl, Decl(parserRealSource11.ts, 954, 23))
>bod : Symbol(FuncDecl.bod, Decl(parserRealSource11.ts, 983, 45))
>this : Symbol(FuncDecl, Decl(parserRealSource11.ts, 954, 23))
return context;
>context : Symbol(context, Decl(parserRealSource11.ts, 1035, 15))
}
public typeCheck(typeFlow: TypeFlow) {
>typeCheck : Symbol(FuncDecl.typeCheck, Decl(parserRealSource11.ts, 1047, 9))
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 1049, 25))
>TypeFlow : Symbol(TypeFlow)
return typeFlow.typeCheckFunction(this);
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 1049, 25))
>this : Symbol(FuncDecl, Decl(parserRealSource11.ts, 954, 23))
}
public emit(emitter: Emitter, tokenId: TokenID, startLine: boolean) {
>emit : Symbol(FuncDecl.emit, Decl(parserRealSource11.ts, 1051, 9))
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1053, 20))
>Emitter : Symbol(Emitter)
>tokenId : Symbol(tokenId, Decl(parserRealSource11.ts, 1053, 37))
>TokenID : Symbol(TokenID)
>startLine : Symbol(startLine, Decl(parserRealSource11.ts, 1053, 55))
emitter.emitJavascriptFunction(this);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1053, 20))
>this : Symbol(FuncDecl, Decl(parserRealSource11.ts, 954, 23))
}
public getNameText() {
>getNameText : Symbol(FuncDecl.getNameText, Decl(parserRealSource11.ts, 1055, 9))
if (this.name) {
>this.name : Symbol(FuncDecl.name, Decl(parserRealSource11.ts, 983, 21))
>this : Symbol(FuncDecl, Decl(parserRealSource11.ts, 954, 23))
>name : Symbol(FuncDecl.name, Decl(parserRealSource11.ts, 983, 21))
return this.name.actualText;
>this.name.actualText : Symbol(Identifier.actualText, Decl(parserRealSource11.ts, 266, 21))
>this.name : Symbol(FuncDecl.name, Decl(parserRealSource11.ts, 983, 21))
>this : Symbol(FuncDecl, Decl(parserRealSource11.ts, 954, 23))
>name : Symbol(FuncDecl.name, Decl(parserRealSource11.ts, 983, 21))
>actualText : Symbol(Identifier.actualText, Decl(parserRealSource11.ts, 266, 21))
}
else {
return this.hint;
>this.hint : Symbol(FuncDecl.hint, Decl(parserRealSource11.ts, 956, 39))
>this : Symbol(FuncDecl, Decl(parserRealSource11.ts, 954, 23))
>hint : Symbol(FuncDecl.hint, Decl(parserRealSource11.ts, 956, 39))
}
}
public isMethod() {
>isMethod : Symbol(FuncDecl.isMethod, Decl(parserRealSource11.ts, 1064, 9))
return (this.fncFlags & FncFlags.Method) != FncFlags.None;
>this.fncFlags : Symbol(FuncDecl.fncFlags, Decl(parserRealSource11.ts, 957, 35))
>this : Symbol(FuncDecl, Decl(parserRealSource11.ts, 954, 23))
>fncFlags : Symbol(FuncDecl.fncFlags, Decl(parserRealSource11.ts, 957, 35))
}
public isCallMember() { return hasFlag(this.fncFlags, FncFlags.CallMember); }
>isCallMember : Symbol(FuncDecl.isCallMember, Decl(parserRealSource11.ts, 1068, 9))
>this.fncFlags : Symbol(FuncDecl.fncFlags, Decl(parserRealSource11.ts, 957, 35))
>this : Symbol(FuncDecl, Decl(parserRealSource11.ts, 954, 23))
>fncFlags : Symbol(FuncDecl.fncFlags, Decl(parserRealSource11.ts, 957, 35))
public isConstructMember() { return hasFlag(this.fncFlags, FncFlags.ConstructMember); }
>isConstructMember : Symbol(FuncDecl.isConstructMember, Decl(parserRealSource11.ts, 1070, 85))
>this.fncFlags : Symbol(FuncDecl.fncFlags, Decl(parserRealSource11.ts, 957, 35))
>this : Symbol(FuncDecl, Decl(parserRealSource11.ts, 954, 23))
>fncFlags : Symbol(FuncDecl.fncFlags, Decl(parserRealSource11.ts, 957, 35))
public isIndexerMember() { return hasFlag(this.fncFlags, FncFlags.IndexerMember); }
>isIndexerMember : Symbol(FuncDecl.isIndexerMember, Decl(parserRealSource11.ts, 1071, 95))
>this.fncFlags : Symbol(FuncDecl.fncFlags, Decl(parserRealSource11.ts, 957, 35))
>this : Symbol(FuncDecl, Decl(parserRealSource11.ts, 954, 23))
>fncFlags : Symbol(FuncDecl.fncFlags, Decl(parserRealSource11.ts, 957, 35))
public isSpecialFn() { return this.isCallMember() || this.isIndexerMember() || this.isConstructMember(); }
>isSpecialFn : Symbol(FuncDecl.isSpecialFn, Decl(parserRealSource11.ts, 1072, 91))
>this.isCallMember : Symbol(FuncDecl.isCallMember, Decl(parserRealSource11.ts, 1068, 9))
>this : Symbol(FuncDecl, Decl(parserRealSource11.ts, 954, 23))
>isCallMember : Symbol(FuncDecl.isCallMember, Decl(parserRealSource11.ts, 1068, 9))
>this.isIndexerMember : Symbol(FuncDecl.isIndexerMember, Decl(parserRealSource11.ts, 1071, 95))
>this : Symbol(FuncDecl, Decl(parserRealSource11.ts, 954, 23))
>isIndexerMember : Symbol(FuncDecl.isIndexerMember, Decl(parserRealSource11.ts, 1071, 95))
>this.isConstructMember : Symbol(FuncDecl.isConstructMember, Decl(parserRealSource11.ts, 1070, 85))
>this : Symbol(FuncDecl, Decl(parserRealSource11.ts, 954, 23))
>isConstructMember : Symbol(FuncDecl.isConstructMember, Decl(parserRealSource11.ts, 1070, 85))
public isAnonymousFn() { return this.name === null; }
>isAnonymousFn : Symbol(FuncDecl.isAnonymousFn, Decl(parserRealSource11.ts, 1073, 114))
>this.name : Symbol(FuncDecl.name, Decl(parserRealSource11.ts, 983, 21))
>this : Symbol(FuncDecl, Decl(parserRealSource11.ts, 954, 23))
>name : Symbol(FuncDecl.name, Decl(parserRealSource11.ts, 983, 21))
public isAccessor() { return hasFlag(this.fncFlags, FncFlags.GetAccessor) || hasFlag(this.fncFlags, FncFlags.SetAccessor); }
>isAccessor : Symbol(FuncDecl.isAccessor, Decl(parserRealSource11.ts, 1074, 61))
>this.fncFlags : Symbol(FuncDecl.fncFlags, Decl(parserRealSource11.ts, 957, 35))
>this : Symbol(FuncDecl, Decl(parserRealSource11.ts, 954, 23))
>fncFlags : Symbol(FuncDecl.fncFlags, Decl(parserRealSource11.ts, 957, 35))
>this.fncFlags : Symbol(FuncDecl.fncFlags, Decl(parserRealSource11.ts, 957, 35))
>this : Symbol(FuncDecl, Decl(parserRealSource11.ts, 954, 23))
>fncFlags : Symbol(FuncDecl.fncFlags, Decl(parserRealSource11.ts, 957, 35))
public isGetAccessor() { return hasFlag(this.fncFlags, FncFlags.GetAccessor); }
>isGetAccessor : Symbol(FuncDecl.isGetAccessor, Decl(parserRealSource11.ts, 1075, 132))
>this.fncFlags : Symbol(FuncDecl.fncFlags, Decl(parserRealSource11.ts, 957, 35))
>this : Symbol(FuncDecl, Decl(parserRealSource11.ts, 954, 23))
>fncFlags : Symbol(FuncDecl.fncFlags, Decl(parserRealSource11.ts, 957, 35))
public isSetAccessor() { return hasFlag(this.fncFlags, FncFlags.SetAccessor); }
>isSetAccessor : Symbol(FuncDecl.isSetAccessor, Decl(parserRealSource11.ts, 1076, 87))
>this.fncFlags : Symbol(FuncDecl.fncFlags, Decl(parserRealSource11.ts, 957, 35))
>this : Symbol(FuncDecl, Decl(parserRealSource11.ts, 954, 23))
>fncFlags : Symbol(FuncDecl.fncFlags, Decl(parserRealSource11.ts, 957, 35))
public isAmbient() { return hasFlag(this.fncFlags, FncFlags.Ambient); }
>isAmbient : Symbol(FuncDecl.isAmbient, Decl(parserRealSource11.ts, 1077, 87))
>this.fncFlags : Symbol(FuncDecl.fncFlags, Decl(parserRealSource11.ts, 957, 35))
>this : Symbol(FuncDecl, Decl(parserRealSource11.ts, 954, 23))
>fncFlags : Symbol(FuncDecl.fncFlags, Decl(parserRealSource11.ts, 957, 35))
public isExported() { return hasFlag(this.fncFlags, FncFlags.Exported); }
>isExported : Symbol(FuncDecl.isExported, Decl(parserRealSource11.ts, 1078, 79))
>this.fncFlags : Symbol(FuncDecl.fncFlags, Decl(parserRealSource11.ts, 957, 35))
>this : Symbol(FuncDecl, Decl(parserRealSource11.ts, 954, 23))
>fncFlags : Symbol(FuncDecl.fncFlags, Decl(parserRealSource11.ts, 957, 35))
public isPrivate() { return hasFlag(this.fncFlags, FncFlags.Private); }
>isPrivate : Symbol(FuncDecl.isPrivate, Decl(parserRealSource11.ts, 1079, 81))
>this.fncFlags : Symbol(FuncDecl.fncFlags, Decl(parserRealSource11.ts, 957, 35))
>this : Symbol(FuncDecl, Decl(parserRealSource11.ts, 954, 23))
>fncFlags : Symbol(FuncDecl.fncFlags, Decl(parserRealSource11.ts, 957, 35))
public isPublic() { return hasFlag(this.fncFlags, FncFlags.Public); }
>isPublic : Symbol(FuncDecl.isPublic, Decl(parserRealSource11.ts, 1080, 79))
>this.fncFlags : Symbol(FuncDecl.fncFlags, Decl(parserRealSource11.ts, 957, 35))
>this : Symbol(FuncDecl, Decl(parserRealSource11.ts, 954, 23))
>fncFlags : Symbol(FuncDecl.fncFlags, Decl(parserRealSource11.ts, 957, 35))
public isStatic() { return hasFlag(this.fncFlags, FncFlags.Static); }
>isStatic : Symbol(FuncDecl.isStatic, Decl(parserRealSource11.ts, 1081, 77))
>this.fncFlags : Symbol(FuncDecl.fncFlags, Decl(parserRealSource11.ts, 957, 35))
>this : Symbol(FuncDecl, Decl(parserRealSource11.ts, 954, 23))
>fncFlags : Symbol(FuncDecl.fncFlags, Decl(parserRealSource11.ts, 957, 35))
public treeViewLabel() {
>treeViewLabel : Symbol(FuncDecl.treeViewLabel, Decl(parserRealSource11.ts, 1082, 77))
if (this.name == null) {
>this.name : Symbol(FuncDecl.name, Decl(parserRealSource11.ts, 983, 21))
>this : Symbol(FuncDecl, Decl(parserRealSource11.ts, 954, 23))
>name : Symbol(FuncDecl.name, Decl(parserRealSource11.ts, 983, 21))
return "funcExpr";
}
else {
return "func: " + this.name.actualText
>this.name.actualText : Symbol(Identifier.actualText, Decl(parserRealSource11.ts, 266, 21))
>this.name : Symbol(FuncDecl.name, Decl(parserRealSource11.ts, 983, 21))
>this : Symbol(FuncDecl, Decl(parserRealSource11.ts, 954, 23))
>name : Symbol(FuncDecl.name, Decl(parserRealSource11.ts, 983, 21))
>actualText : Symbol(Identifier.actualText, Decl(parserRealSource11.ts, 266, 21))
}
}
public ClearFlags(): void {
>ClearFlags : Symbol(FuncDecl.ClearFlags, Decl(parserRealSource11.ts, 1091, 9))
this.fncFlags = FncFlags.None;
>this.fncFlags : Symbol(FuncDecl.fncFlags, Decl(parserRealSource11.ts, 957, 35))
>this : Symbol(FuncDecl, Decl(parserRealSource11.ts, 954, 23))
>fncFlags : Symbol(FuncDecl.fncFlags, Decl(parserRealSource11.ts, 957, 35))
}
public isSignature() { return (this.fncFlags & FncFlags.Signature) != FncFlags.None; }
>isSignature : Symbol(FuncDecl.isSignature, Decl(parserRealSource11.ts, 1095, 9))
>this.fncFlags : Symbol(FuncDecl.fncFlags, Decl(parserRealSource11.ts, 957, 35))
>this : Symbol(FuncDecl, Decl(parserRealSource11.ts, 954, 23))
>fncFlags : Symbol(FuncDecl.fncFlags, Decl(parserRealSource11.ts, 957, 35))
public hasStaticDeclarations() { return (!this.isConstructor && (this.statics.members.length > 0 || this.innerStaticFuncs.length > 0)); }
>hasStaticDeclarations : Symbol(FuncDecl.hasStaticDeclarations, Decl(parserRealSource11.ts, 1097, 94))
>this.isConstructor : Symbol(FuncDecl.isConstructor, Decl(parserRealSource11.ts, 983, 66))
>this : Symbol(FuncDecl, Decl(parserRealSource11.ts, 954, 23))
>isConstructor : Symbol(FuncDecl.isConstructor, Decl(parserRealSource11.ts, 983, 66))
>this.statics.members.length : Symbol(Array.length, Decl(lib.es5.d.ts, --, --))
>this.statics.members : Symbol(ASTList.members, Decl(parserRealSource11.ts, 191, 50))
>this.statics : Symbol(FuncDecl.statics, Decl(parserRealSource11.ts, 984, 93))
>this : Symbol(FuncDecl, Decl(parserRealSource11.ts, 954, 23))
>statics : Symbol(FuncDecl.statics, Decl(parserRealSource11.ts, 984, 93))
>members : Symbol(ASTList.members, Decl(parserRealSource11.ts, 191, 50))
>length : Symbol(Array.length, Decl(lib.es5.d.ts, --, --))
>this.innerStaticFuncs.length : Symbol(Array.length, Decl(lib.es5.d.ts, --, --))
>this.innerStaticFuncs : Symbol(FuncDecl.innerStaticFuncs, Decl(parserRealSource11.ts, 972, 34))
>this : Symbol(FuncDecl, Decl(parserRealSource11.ts, 954, 23))
>innerStaticFuncs : Symbol(FuncDecl.innerStaticFuncs, Decl(parserRealSource11.ts, 972, 34))
>length : Symbol(Array.length, Decl(lib.es5.d.ts, --, --))
}
export class LocationInfo {
>LocationInfo : Symbol(LocationInfo, Decl(parserRealSource11.ts, 1100, 5))
constructor (public filename: string, public lineMap: number[], public unitIndex) { }
>filename : Symbol(LocationInfo.filename, Decl(parserRealSource11.ts, 1103, 21))
>lineMap : Symbol(LocationInfo.lineMap, Decl(parserRealSource11.ts, 1103, 45))
>unitIndex : Symbol(LocationInfo.unitIndex, Decl(parserRealSource11.ts, 1103, 71))
}
export var unknownLocationInfo = new LocationInfo("unknown", null, -1);
>unknownLocationInfo : Symbol(unknownLocationInfo, Decl(parserRealSource11.ts, 1106, 14))
>LocationInfo : Symbol(LocationInfo, Decl(parserRealSource11.ts, 1100, 5))
export class Script extends FuncDecl {
>Script : Symbol(Script, Decl(parserRealSource11.ts, 1106, 75))
>FuncDecl : Symbol(FuncDecl, Decl(parserRealSource11.ts, 954, 23))
public locationInfo: LocationInfo = null;
>locationInfo : Symbol(Script.locationInfo, Decl(parserRealSource11.ts, 1108, 42))
>LocationInfo : Symbol(LocationInfo, Decl(parserRealSource11.ts, 1100, 5))
public referencedFiles: IFileReference[] = [];
>referencedFiles : Symbol(Script.referencedFiles, Decl(parserRealSource11.ts, 1109, 49))
>IFileReference : Symbol(IFileReference)
public requiresGlobal = false;
>requiresGlobal : Symbol(Script.requiresGlobal, Decl(parserRealSource11.ts, 1110, 54))
public requiresInherits = false;
>requiresInherits : Symbol(Script.requiresInherits, Decl(parserRealSource11.ts, 1111, 38))
public isResident = false;
>isResident : Symbol(Script.isResident, Decl(parserRealSource11.ts, 1112, 40))
public isDeclareFile = false;
>isDeclareFile : Symbol(Script.isDeclareFile, Decl(parserRealSource11.ts, 1113, 34))
public hasBeenTypeChecked = false;
>hasBeenTypeChecked : Symbol(Script.hasBeenTypeChecked, Decl(parserRealSource11.ts, 1114, 37))
public topLevelMod: ModuleDeclaration = null;
>topLevelMod : Symbol(Script.topLevelMod, Decl(parserRealSource11.ts, 1115, 42))
>ModuleDeclaration : Symbol(ModuleDeclaration, Decl(parserRealSource11.ts, 1191, 5))
public leftCurlyCount = 0;
>leftCurlyCount : Symbol(Script.leftCurlyCount, Decl(parserRealSource11.ts, 1116, 53))
public rightCurlyCount = 0;
>rightCurlyCount : Symbol(Script.rightCurlyCount, Decl(parserRealSource11.ts, 1117, 34))
public vars: ASTList;
>vars : Symbol(Script.vars, Decl(parserRealSource11.ts, 1118, 35))
>ASTList : Symbol(ASTList, Decl(parserRealSource11.ts, 188, 5))
public scopes: ASTList;
>scopes : Symbol(Script.scopes, Decl(parserRealSource11.ts, 1119, 29))
>ASTList : Symbol(ASTList, Decl(parserRealSource11.ts, 188, 5))
// Remember if the script contains Unicode chars, that is needed when generating code for this script object to decide the output file correct encoding.
public containsUnicodeChar = false;
>containsUnicodeChar : Symbol(Script.containsUnicodeChar, Decl(parserRealSource11.ts, 1120, 31))
public containsUnicodeCharInComment = false;
>containsUnicodeCharInComment : Symbol(Script.containsUnicodeCharInComment, Decl(parserRealSource11.ts, 1122, 43))
constructor (vars: ASTList, scopes: ASTList) {
>vars : Symbol(vars, Decl(parserRealSource11.ts, 1125, 21))
>ASTList : Symbol(ASTList, Decl(parserRealSource11.ts, 188, 5))
>scopes : Symbol(scopes, Decl(parserRealSource11.ts, 1125, 35))
>ASTList : Symbol(ASTList, Decl(parserRealSource11.ts, 188, 5))
super(new Identifier("script"), null, false, null, vars, scopes, null, NodeType.Script);
>super : Symbol(FuncDecl, Decl(parserRealSource11.ts, 954, 23))
>Identifier : Symbol(Identifier, Decl(parserRealSource11.ts, 247, 5))
>vars : Symbol(vars, Decl(parserRealSource11.ts, 1125, 21))
>scopes : Symbol(scopes, Decl(parserRealSource11.ts, 1125, 35))
this.vars = vars;
>this.vars : Symbol(Script.vars, Decl(parserRealSource11.ts, 1118, 35))
>this : Symbol(Script, Decl(parserRealSource11.ts, 1106, 75))
>vars : Symbol(Script.vars, Decl(parserRealSource11.ts, 1118, 35))
>vars : Symbol(vars, Decl(parserRealSource11.ts, 1125, 21))
this.scopes = scopes;
>this.scopes : Symbol(Script.scopes, Decl(parserRealSource11.ts, 1119, 29))
>this : Symbol(Script, Decl(parserRealSource11.ts, 1106, 75))
>scopes : Symbol(Script.scopes, Decl(parserRealSource11.ts, 1119, 29))
>scopes : Symbol(scopes, Decl(parserRealSource11.ts, 1125, 35))
}
public typeCheck(typeFlow: TypeFlow) {
>typeCheck : Symbol(Script.typeCheck, Decl(parserRealSource11.ts, 1129, 9))
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 1131, 25))
>TypeFlow : Symbol(TypeFlow)
return typeFlow.typeCheckScript(this);
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 1131, 25))
>this : Symbol(Script, Decl(parserRealSource11.ts, 1106, 75))
}
public treeViewLabel() {
>treeViewLabel : Symbol(Script.treeViewLabel, Decl(parserRealSource11.ts, 1133, 9))
return "Script";
}
public emitRequired() {
>emitRequired : Symbol(Script.emitRequired, Decl(parserRealSource11.ts, 1137, 9))
if (!this.isDeclareFile && !this.isResident && this.bod) {
>this.isDeclareFile : Symbol(Script.isDeclareFile, Decl(parserRealSource11.ts, 1113, 34))
>this : Symbol(Script, Decl(parserRealSource11.ts, 1106, 75))
>isDeclareFile : Symbol(Script.isDeclareFile, Decl(parserRealSource11.ts, 1113, 34))
>this.isResident : Symbol(Script.isResident, Decl(parserRealSource11.ts, 1112, 40))
>this : Symbol(Script, Decl(parserRealSource11.ts, 1106, 75))
>isResident : Symbol(Script.isResident, Decl(parserRealSource11.ts, 1112, 40))
>this.bod : Symbol(FuncDecl.bod, Decl(parserRealSource11.ts, 983, 45))
>this : Symbol(Script, Decl(parserRealSource11.ts, 1106, 75))
>bod : Symbol(FuncDecl.bod, Decl(parserRealSource11.ts, 983, 45))
for (var i = 0, len = this.bod.members.length; i < len; i++) {
>i : Symbol(i, Decl(parserRealSource11.ts, 1141, 24))
>len : Symbol(len, Decl(parserRealSource11.ts, 1141, 31))
>this.bod.members.length : Symbol(Array.length, Decl(lib.es5.d.ts, --, --))
>this.bod.members : Symbol(ASTList.members, Decl(parserRealSource11.ts, 191, 50))
>this.bod : Symbol(FuncDecl.bod, Decl(parserRealSource11.ts, 983, 45))
>this : Symbol(Script, Decl(parserRealSource11.ts, 1106, 75))
>bod : Symbol(FuncDecl.bod, Decl(parserRealSource11.ts, 983, 45))
>members : Symbol(ASTList.members, Decl(parserRealSource11.ts, 191, 50))
>length : Symbol(Array.length, Decl(lib.es5.d.ts, --, --))
>i : Symbol(i, Decl(parserRealSource11.ts, 1141, 24))
>len : Symbol(len, Decl(parserRealSource11.ts, 1141, 31))
>i : Symbol(i, Decl(parserRealSource11.ts, 1141, 24))
var stmt = this.bod.members[i];
>stmt : Symbol(stmt, Decl(parserRealSource11.ts, 1142, 23))
>this.bod.members : Symbol(ASTList.members, Decl(parserRealSource11.ts, 191, 50))
>this.bod : Symbol(FuncDecl.bod, Decl(parserRealSource11.ts, 983, 45))
>this : Symbol(Script, Decl(parserRealSource11.ts, 1106, 75))
>bod : Symbol(FuncDecl.bod, Decl(parserRealSource11.ts, 983, 45))
>members : Symbol(ASTList.members, Decl(parserRealSource11.ts, 191, 50))
>i : Symbol(i, Decl(parserRealSource11.ts, 1141, 24))
if (stmt.nodeType == NodeType.ModuleDeclaration) {
>stmt.nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
>stmt : Symbol(stmt, Decl(parserRealSource11.ts, 1142, 23))
>nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
if (!hasFlag((<ModuleDeclaration>stmt).modFlags, ModuleFlags.ShouldEmitModuleDecl | ModuleFlags.Ambient)) {
>(<ModuleDeclaration>stmt).modFlags : Symbol(ModuleDeclaration.modFlags, Decl(parserRealSource11.ts, 1193, 61))
>ModuleDeclaration : Symbol(ModuleDeclaration, Decl(parserRealSource11.ts, 1191, 5))
>stmt : Symbol(stmt, Decl(parserRealSource11.ts, 1142, 23))
>modFlags : Symbol(ModuleDeclaration.modFlags, Decl(parserRealSource11.ts, 1193, 61))
return true;
}
}
else if (stmt.nodeType == NodeType.ClassDeclaration) {
>stmt.nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
>stmt : Symbol(stmt, Decl(parserRealSource11.ts, 1142, 23))
>nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
if (!hasFlag((<InterfaceDeclaration>stmt).varFlags, VarFlags.Ambient)) {
>(<InterfaceDeclaration>stmt).varFlags : Symbol(TypeDeclaration.varFlags, Decl(parserRealSource11.ts, 1235, 59))
>InterfaceDeclaration : Symbol(InterfaceDeclaration, Decl(parserRealSource11.ts, 1275, 5))
>stmt : Symbol(stmt, Decl(parserRealSource11.ts, 1142, 23))
>varFlags : Symbol(TypeDeclaration.varFlags, Decl(parserRealSource11.ts, 1235, 59))
return true;
}
}
else if (stmt.nodeType == NodeType.VarDecl) {
>stmt.nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
>stmt : Symbol(stmt, Decl(parserRealSource11.ts, 1142, 23))
>nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
if (!hasFlag((<VarDecl>stmt).varFlags, VarFlags.Ambient)) {
>(<VarDecl>stmt).varFlags : Symbol(BoundDecl.varFlags, Decl(parserRealSource11.ts, 889, 36))
>VarDecl : Symbol(VarDecl, Decl(parserRealSource11.ts, 910, 5))
>stmt : Symbol(stmt, Decl(parserRealSource11.ts, 1142, 23))
>varFlags : Symbol(BoundDecl.varFlags, Decl(parserRealSource11.ts, 889, 36))
return true;
}
}
else if (stmt.nodeType == NodeType.FuncDecl) {
>stmt.nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
>stmt : Symbol(stmt, Decl(parserRealSource11.ts, 1142, 23))
>nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
if (!(<FuncDecl>stmt).isSignature()) {
>(<FuncDecl>stmt).isSignature : Symbol(FuncDecl.isSignature, Decl(parserRealSource11.ts, 1095, 9))
>FuncDecl : Symbol(FuncDecl, Decl(parserRealSource11.ts, 954, 23))
>stmt : Symbol(stmt, Decl(parserRealSource11.ts, 1142, 23))
>isSignature : Symbol(FuncDecl.isSignature, Decl(parserRealSource11.ts, 1095, 9))
return true;
}
}
else if (stmt.nodeType != NodeType.InterfaceDeclaration && stmt.nodeType != NodeType.Empty) {
>stmt.nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
>stmt : Symbol(stmt, Decl(parserRealSource11.ts, 1142, 23))
>nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
>stmt.nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
>stmt : Symbol(stmt, Decl(parserRealSource11.ts, 1142, 23))
>nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
return true;
}
}
}
return false;
}
public emit(emitter: Emitter, tokenId: TokenID, startLine: boolean) {
>emit : Symbol(Script.emit, Decl(parserRealSource11.ts, 1169, 9))
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1171, 20))
>Emitter : Symbol(Emitter)
>tokenId : Symbol(tokenId, Decl(parserRealSource11.ts, 1171, 37))
>TokenID : Symbol(TokenID)
>startLine : Symbol(startLine, Decl(parserRealSource11.ts, 1171, 55))
if (this.emitRequired()) {
>this.emitRequired : Symbol(Script.emitRequired, Decl(parserRealSource11.ts, 1137, 9))
>this : Symbol(Script, Decl(parserRealSource11.ts, 1106, 75))
>emitRequired : Symbol(Script.emitRequired, Decl(parserRealSource11.ts, 1137, 9))
emitter.emitParensAndCommentsInPlace(this, true);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1171, 20))
>this : Symbol(Script, Decl(parserRealSource11.ts, 1106, 75))
emitter.recordSourceMappingStart(this);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1171, 20))
>this : Symbol(Script, Decl(parserRealSource11.ts, 1106, 75))
emitter.emitJavascriptList(this.bod, null, TokenID.Semicolon, true, false, false, true, this.requiresInherits);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1171, 20))
>this.bod : Symbol(FuncDecl.bod, Decl(parserRealSource11.ts, 983, 45))
>this : Symbol(Script, Decl(parserRealSource11.ts, 1106, 75))
>bod : Symbol(FuncDecl.bod, Decl(parserRealSource11.ts, 983, 45))
>this.requiresInherits : Symbol(Script.requiresInherits, Decl(parserRealSource11.ts, 1111, 38))
>this : Symbol(Script, Decl(parserRealSource11.ts, 1106, 75))
>requiresInherits : Symbol(Script.requiresInherits, Decl(parserRealSource11.ts, 1111, 38))
emitter.recordSourceMappingEnd(this);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1171, 20))
>this : Symbol(Script, Decl(parserRealSource11.ts, 1106, 75))
emitter.emitParensAndCommentsInPlace(this, false);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1171, 20))
>this : Symbol(Script, Decl(parserRealSource11.ts, 1106, 75))
}
}
}
export class NamedDeclaration extends ModuleElement {
>NamedDeclaration : Symbol(NamedDeclaration, Decl(parserRealSource11.ts, 1180, 5))
>ModuleElement : Symbol(ModuleElement, Decl(parserRealSource11.ts, 819, 5))
public leftCurlyCount = 0;
>leftCurlyCount : Symbol(NamedDeclaration.leftCurlyCount, Decl(parserRealSource11.ts, 1182, 57))
public rightCurlyCount = 0;
>rightCurlyCount : Symbol(NamedDeclaration.rightCurlyCount, Decl(parserRealSource11.ts, 1183, 34))
constructor (nodeType: NodeType,
>nodeType : Symbol(nodeType, Decl(parserRealSource11.ts, 1186, 21))
>NodeType : Symbol(NodeType)
public name: Identifier,
>name : Symbol(NamedDeclaration.name, Decl(parserRealSource11.ts, 1186, 40))
>Identifier : Symbol(Identifier, Decl(parserRealSource11.ts, 247, 5))
public members: ASTList) {
>members : Symbol(NamedDeclaration.members, Decl(parserRealSource11.ts, 1187, 45))
>ASTList : Symbol(ASTList, Decl(parserRealSource11.ts, 188, 5))
super(nodeType);
>super : Symbol(ModuleElement, Decl(parserRealSource11.ts, 819, 5))
>nodeType : Symbol(nodeType, Decl(parserRealSource11.ts, 1186, 21))
}
}
export class ModuleDeclaration extends NamedDeclaration {
>ModuleDeclaration : Symbol(ModuleDeclaration, Decl(parserRealSource11.ts, 1191, 5))
>NamedDeclaration : Symbol(NamedDeclaration, Decl(parserRealSource11.ts, 1180, 5))
public modFlags = ModuleFlags.ShouldEmitModuleDecl;
>modFlags : Symbol(ModuleDeclaration.modFlags, Decl(parserRealSource11.ts, 1193, 61))
public mod: ModuleType;
>mod : Symbol(ModuleDeclaration.mod, Decl(parserRealSource11.ts, 1194, 59))
>ModuleType : Symbol(ModuleType)
public prettyName: string;
>prettyName : Symbol(ModuleDeclaration.prettyName, Decl(parserRealSource11.ts, 1195, 31))
public amdDependencies: string[] = [];
>amdDependencies : Symbol(ModuleDeclaration.amdDependencies, Decl(parserRealSource11.ts, 1196, 34))
public vars: ASTList;
>vars : Symbol(ModuleDeclaration.vars, Decl(parserRealSource11.ts, 1197, 46))
>ASTList : Symbol(ASTList, Decl(parserRealSource11.ts, 188, 5))
public scopes: ASTList;
>scopes : Symbol(ModuleDeclaration.scopes, Decl(parserRealSource11.ts, 1198, 29))
>ASTList : Symbol(ASTList, Decl(parserRealSource11.ts, 188, 5))
// Remember if the module contains Unicode chars, that is needed for dynamic module as we will generate a file for each.
public containsUnicodeChar = false;
>containsUnicodeChar : Symbol(ModuleDeclaration.containsUnicodeChar, Decl(parserRealSource11.ts, 1199, 31))
public containsUnicodeCharInComment = false;
>containsUnicodeCharInComment : Symbol(ModuleDeclaration.containsUnicodeCharInComment, Decl(parserRealSource11.ts, 1201, 43))
constructor (name: Identifier, members: ASTList, vars: ASTList, scopes: ASTList, public endingToken: ASTSpan) {
>name : Symbol(name, Decl(parserRealSource11.ts, 1204, 21))
>Identifier : Symbol(Identifier, Decl(parserRealSource11.ts, 247, 5))
>members : Symbol(members, Decl(parserRealSource11.ts, 1204, 38))
>ASTList : Symbol(ASTList, Decl(parserRealSource11.ts, 188, 5))
>vars : Symbol(vars, Decl(parserRealSource11.ts, 1204, 56))
>ASTList : Symbol(ASTList, Decl(parserRealSource11.ts, 188, 5))
>scopes : Symbol(scopes, Decl(parserRealSource11.ts, 1204, 71))
>ASTList : Symbol(ASTList, Decl(parserRealSource11.ts, 188, 5))
>endingToken : Symbol(ModuleDeclaration.endingToken, Decl(parserRealSource11.ts, 1204, 88))
>ASTSpan : Symbol(ASTSpan, Decl(parserRealSource11.ts, 5, 19))
super(NodeType.ModuleDeclaration, name, members);
>super : Symbol(NamedDeclaration, Decl(parserRealSource11.ts, 1180, 5))
>name : Symbol(name, Decl(parserRealSource11.ts, 1204, 21))
>members : Symbol(members, Decl(parserRealSource11.ts, 1204, 38))
this.vars = vars;
>this.vars : Symbol(ModuleDeclaration.vars, Decl(parserRealSource11.ts, 1197, 46))
>this : Symbol(ModuleDeclaration, Decl(parserRealSource11.ts, 1191, 5))
>vars : Symbol(ModuleDeclaration.vars, Decl(parserRealSource11.ts, 1197, 46))
>vars : Symbol(vars, Decl(parserRealSource11.ts, 1204, 56))
this.scopes = scopes;
>this.scopes : Symbol(ModuleDeclaration.scopes, Decl(parserRealSource11.ts, 1198, 29))
>this : Symbol(ModuleDeclaration, Decl(parserRealSource11.ts, 1191, 5))
>scopes : Symbol(ModuleDeclaration.scopes, Decl(parserRealSource11.ts, 1198, 29))
>scopes : Symbol(scopes, Decl(parserRealSource11.ts, 1204, 71))
this.prettyName = this.name.actualText;
>this.prettyName : Symbol(ModuleDeclaration.prettyName, Decl(parserRealSource11.ts, 1195, 31))
>this : Symbol(ModuleDeclaration, Decl(parserRealSource11.ts, 1191, 5))
>prettyName : Symbol(ModuleDeclaration.prettyName, Decl(parserRealSource11.ts, 1195, 31))
>this.name.actualText : Symbol(Identifier.actualText, Decl(parserRealSource11.ts, 266, 21))
>this.name : Symbol(NamedDeclaration.name, Decl(parserRealSource11.ts, 1186, 40))
>this : Symbol(ModuleDeclaration, Decl(parserRealSource11.ts, 1191, 5))
>name : Symbol(NamedDeclaration.name, Decl(parserRealSource11.ts, 1186, 40))
>actualText : Symbol(Identifier.actualText, Decl(parserRealSource11.ts, 266, 21))
}
public isExported() { return hasFlag(this.modFlags, ModuleFlags.Exported); }
>isExported : Symbol(ModuleDeclaration.isExported, Decl(parserRealSource11.ts, 1210, 9))
>this.modFlags : Symbol(ModuleDeclaration.modFlags, Decl(parserRealSource11.ts, 1193, 61))
>this : Symbol(ModuleDeclaration, Decl(parserRealSource11.ts, 1191, 5))
>modFlags : Symbol(ModuleDeclaration.modFlags, Decl(parserRealSource11.ts, 1193, 61))
public isAmbient() { return hasFlag(this.modFlags, ModuleFlags.Ambient); }
>isAmbient : Symbol(ModuleDeclaration.isAmbient, Decl(parserRealSource11.ts, 1212, 84))
>this.modFlags : Symbol(ModuleDeclaration.modFlags, Decl(parserRealSource11.ts, 1193, 61))
>this : Symbol(ModuleDeclaration, Decl(parserRealSource11.ts, 1191, 5))
>modFlags : Symbol(ModuleDeclaration.modFlags, Decl(parserRealSource11.ts, 1193, 61))
public isEnum() { return hasFlag(this.modFlags, ModuleFlags.IsEnum); }
>isEnum : Symbol(ModuleDeclaration.isEnum, Decl(parserRealSource11.ts, 1213, 82))
>this.modFlags : Symbol(ModuleDeclaration.modFlags, Decl(parserRealSource11.ts, 1193, 61))
>this : Symbol(ModuleDeclaration, Decl(parserRealSource11.ts, 1191, 5))
>modFlags : Symbol(ModuleDeclaration.modFlags, Decl(parserRealSource11.ts, 1193, 61))
public recordNonInterface() {
>recordNonInterface : Symbol(ModuleDeclaration.recordNonInterface, Decl(parserRealSource11.ts, 1214, 78))
this.modFlags &= ~ModuleFlags.ShouldEmitModuleDecl;
>this.modFlags : Symbol(ModuleDeclaration.modFlags, Decl(parserRealSource11.ts, 1193, 61))
>this : Symbol(ModuleDeclaration, Decl(parserRealSource11.ts, 1191, 5))
>modFlags : Symbol(ModuleDeclaration.modFlags, Decl(parserRealSource11.ts, 1193, 61))
}
public typeCheck(typeFlow: TypeFlow) {
>typeCheck : Symbol(ModuleDeclaration.typeCheck, Decl(parserRealSource11.ts, 1218, 9))
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 1220, 25))
>TypeFlow : Symbol(TypeFlow)
return typeFlow.typeCheckModule(this);
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 1220, 25))
>this : Symbol(ModuleDeclaration, Decl(parserRealSource11.ts, 1191, 5))
}
public emit(emitter: Emitter, tokenId: TokenID, startLine: boolean) {
>emit : Symbol(ModuleDeclaration.emit, Decl(parserRealSource11.ts, 1222, 9))
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1224, 20))
>Emitter : Symbol(Emitter)
>tokenId : Symbol(tokenId, Decl(parserRealSource11.ts, 1224, 37))
>TokenID : Symbol(TokenID)
>startLine : Symbol(startLine, Decl(parserRealSource11.ts, 1224, 55))
if (!hasFlag(this.modFlags, ModuleFlags.ShouldEmitModuleDecl)) {
>this.modFlags : Symbol(ModuleDeclaration.modFlags, Decl(parserRealSource11.ts, 1193, 61))
>this : Symbol(ModuleDeclaration, Decl(parserRealSource11.ts, 1191, 5))
>modFlags : Symbol(ModuleDeclaration.modFlags, Decl(parserRealSource11.ts, 1193, 61))
emitter.emitParensAndCommentsInPlace(this, true);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1224, 20))
>this : Symbol(ModuleDeclaration, Decl(parserRealSource11.ts, 1191, 5))
emitter.recordSourceMappingStart(this);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1224, 20))
>this : Symbol(ModuleDeclaration, Decl(parserRealSource11.ts, 1191, 5))
emitter.emitJavascriptModule(this);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1224, 20))
>this : Symbol(ModuleDeclaration, Decl(parserRealSource11.ts, 1191, 5))
emitter.recordSourceMappingEnd(this);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1224, 20))
>this : Symbol(ModuleDeclaration, Decl(parserRealSource11.ts, 1191, 5))
emitter.emitParensAndCommentsInPlace(this, false);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1224, 20))
>this : Symbol(ModuleDeclaration, Decl(parserRealSource11.ts, 1191, 5))
}
}
}
export class TypeDeclaration extends NamedDeclaration {
>TypeDeclaration : Symbol(TypeDeclaration, Decl(parserRealSource11.ts, 1233, 5))
>NamedDeclaration : Symbol(NamedDeclaration, Decl(parserRealSource11.ts, 1180, 5))
public varFlags = VarFlags.None;
>varFlags : Symbol(TypeDeclaration.varFlags, Decl(parserRealSource11.ts, 1235, 59))
constructor (nodeType: NodeType,
>nodeType : Symbol(nodeType, Decl(parserRealSource11.ts, 1238, 21))
>NodeType : Symbol(NodeType)
name: Identifier,
>name : Symbol(name, Decl(parserRealSource11.ts, 1238, 40))
>Identifier : Symbol(Identifier, Decl(parserRealSource11.ts, 247, 5))
public extendsList: ASTList,
>extendsList : Symbol(TypeDeclaration.extendsList, Decl(parserRealSource11.ts, 1239, 38))
>ASTList : Symbol(ASTList, Decl(parserRealSource11.ts, 188, 5))
public implementsList: ASTList,
>implementsList : Symbol(TypeDeclaration.implementsList, Decl(parserRealSource11.ts, 1240, 49))
>ASTList : Symbol(ASTList, Decl(parserRealSource11.ts, 188, 5))
members: ASTList) {
>members : Symbol(members, Decl(parserRealSource11.ts, 1241, 52))
>ASTList : Symbol(ASTList, Decl(parserRealSource11.ts, 188, 5))
super(nodeType, name, members);
>super : Symbol(NamedDeclaration, Decl(parserRealSource11.ts, 1180, 5))
>nodeType : Symbol(nodeType, Decl(parserRealSource11.ts, 1238, 21))
>name : Symbol(name, Decl(parserRealSource11.ts, 1238, 40))
>members : Symbol(members, Decl(parserRealSource11.ts, 1241, 52))
}
public isExported() {
>isExported : Symbol(TypeDeclaration.isExported, Decl(parserRealSource11.ts, 1244, 9))
return hasFlag(this.varFlags, VarFlags.Exported);
>this.varFlags : Symbol(TypeDeclaration.varFlags, Decl(parserRealSource11.ts, 1235, 59))
>this : Symbol(TypeDeclaration, Decl(parserRealSource11.ts, 1233, 5))
>varFlags : Symbol(TypeDeclaration.varFlags, Decl(parserRealSource11.ts, 1235, 59))
}
public isAmbient() {
>isAmbient : Symbol(TypeDeclaration.isAmbient, Decl(parserRealSource11.ts, 1248, 9))
return hasFlag(this.varFlags, VarFlags.Ambient);
>this.varFlags : Symbol(TypeDeclaration.varFlags, Decl(parserRealSource11.ts, 1235, 59))
>this : Symbol(TypeDeclaration, Decl(parserRealSource11.ts, 1233, 5))
>varFlags : Symbol(TypeDeclaration.varFlags, Decl(parserRealSource11.ts, 1235, 59))
}
}
export class ClassDeclaration extends TypeDeclaration {
>ClassDeclaration : Symbol(ClassDeclaration, Decl(parserRealSource11.ts, 1253, 5))
>TypeDeclaration : Symbol(TypeDeclaration, Decl(parserRealSource11.ts, 1233, 5))
public knownMemberNames: any = {};
>knownMemberNames : Symbol(ClassDeclaration.knownMemberNames, Decl(parserRealSource11.ts, 1255, 59))
public constructorDecl: FuncDecl = null;
>constructorDecl : Symbol(ClassDeclaration.constructorDecl, Decl(parserRealSource11.ts, 1256, 42))
>FuncDecl : Symbol(FuncDecl, Decl(parserRealSource11.ts, 954, 23))
public constructorNestingLevel = 0;
>constructorNestingLevel : Symbol(ClassDeclaration.constructorNestingLevel, Decl(parserRealSource11.ts, 1257, 48))
public endingToken: ASTSpan = null;
>endingToken : Symbol(ClassDeclaration.endingToken, Decl(parserRealSource11.ts, 1258, 43))
>ASTSpan : Symbol(ASTSpan, Decl(parserRealSource11.ts, 5, 19))
constructor (name: Identifier,
>name : Symbol(name, Decl(parserRealSource11.ts, 1261, 21))
>Identifier : Symbol(Identifier, Decl(parserRealSource11.ts, 247, 5))
members: ASTList,
>members : Symbol(members, Decl(parserRealSource11.ts, 1261, 38))
>ASTList : Symbol(ASTList, Decl(parserRealSource11.ts, 188, 5))
extendsList: ASTList,
>extendsList : Symbol(extendsList, Decl(parserRealSource11.ts, 1262, 38))
>ASTList : Symbol(ASTList, Decl(parserRealSource11.ts, 188, 5))
implementsList: ASTList) {
>implementsList : Symbol(implementsList, Decl(parserRealSource11.ts, 1263, 42))
>ASTList : Symbol(ASTList, Decl(parserRealSource11.ts, 188, 5))
super(NodeType.ClassDeclaration, name, extendsList, implementsList, members);
>super : Symbol(TypeDeclaration, Decl(parserRealSource11.ts, 1233, 5))
>name : Symbol(name, Decl(parserRealSource11.ts, 1261, 21))
>extendsList : Symbol(extendsList, Decl(parserRealSource11.ts, 1262, 38))
>implementsList : Symbol(implementsList, Decl(parserRealSource11.ts, 1263, 42))
>members : Symbol(members, Decl(parserRealSource11.ts, 1261, 38))
}
public typeCheck(typeFlow: TypeFlow) {
>typeCheck : Symbol(ClassDeclaration.typeCheck, Decl(parserRealSource11.ts, 1266, 9))
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 1268, 25))
>TypeFlow : Symbol(TypeFlow)
return typeFlow.typeCheckClass(this);
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 1268, 25))
>this : Symbol(ClassDeclaration, Decl(parserRealSource11.ts, 1253, 5))
}
public emit(emitter: Emitter, tokenId: TokenID, startLine: boolean) {
>emit : Symbol(ClassDeclaration.emit, Decl(parserRealSource11.ts, 1270, 9))
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1272, 20))
>Emitter : Symbol(Emitter)
>tokenId : Symbol(tokenId, Decl(parserRealSource11.ts, 1272, 37))
>TokenID : Symbol(TokenID)
>startLine : Symbol(startLine, Decl(parserRealSource11.ts, 1272, 55))
emitter.emitJavascriptClass(this);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1272, 20))
>this : Symbol(ClassDeclaration, Decl(parserRealSource11.ts, 1253, 5))
}
}
export class InterfaceDeclaration extends TypeDeclaration {
>InterfaceDeclaration : Symbol(InterfaceDeclaration, Decl(parserRealSource11.ts, 1275, 5))
>TypeDeclaration : Symbol(TypeDeclaration, Decl(parserRealSource11.ts, 1233, 5))
constructor (name: Identifier,
>name : Symbol(name, Decl(parserRealSource11.ts, 1278, 21))
>Identifier : Symbol(Identifier, Decl(parserRealSource11.ts, 247, 5))
members: ASTList,
>members : Symbol(members, Decl(parserRealSource11.ts, 1278, 38))
>ASTList : Symbol(ASTList, Decl(parserRealSource11.ts, 188, 5))
extendsList: ASTList,
>extendsList : Symbol(extendsList, Decl(parserRealSource11.ts, 1279, 38))
>ASTList : Symbol(ASTList, Decl(parserRealSource11.ts, 188, 5))
implementsList: ASTList) {
>implementsList : Symbol(implementsList, Decl(parserRealSource11.ts, 1280, 42))
>ASTList : Symbol(ASTList, Decl(parserRealSource11.ts, 188, 5))
super(NodeType.InterfaceDeclaration, name, extendsList, implementsList, members);
>super : Symbol(TypeDeclaration, Decl(parserRealSource11.ts, 1233, 5))
>name : Symbol(name, Decl(parserRealSource11.ts, 1278, 21))
>extendsList : Symbol(extendsList, Decl(parserRealSource11.ts, 1279, 38))
>implementsList : Symbol(implementsList, Decl(parserRealSource11.ts, 1280, 42))
>members : Symbol(members, Decl(parserRealSource11.ts, 1278, 38))
}
public typeCheck(typeFlow: TypeFlow) {
>typeCheck : Symbol(InterfaceDeclaration.typeCheck, Decl(parserRealSource11.ts, 1283, 9))
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 1285, 25))
>TypeFlow : Symbol(TypeFlow)
return typeFlow.typeCheckInterface(this);
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 1285, 25))
>this : Symbol(InterfaceDeclaration, Decl(parserRealSource11.ts, 1275, 5))
}
public emit(emitter: Emitter, tokenId: TokenID, startLine: boolean) {
>emit : Symbol(InterfaceDeclaration.emit, Decl(parserRealSource11.ts, 1287, 9))
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1289, 20))
>Emitter : Symbol(Emitter)
>tokenId : Symbol(tokenId, Decl(parserRealSource11.ts, 1289, 37))
>TokenID : Symbol(TokenID)
>startLine : Symbol(startLine, Decl(parserRealSource11.ts, 1289, 55))
}
}
export class Statement extends ModuleElement {
>Statement : Symbol(Statement, Decl(parserRealSource11.ts, 1291, 5))
>ModuleElement : Symbol(ModuleElement, Decl(parserRealSource11.ts, 819, 5))
constructor (nodeType: NodeType) {
>nodeType : Symbol(nodeType, Decl(parserRealSource11.ts, 1294, 21))
>NodeType : Symbol(NodeType)
super(nodeType);
>super : Symbol(ModuleElement, Decl(parserRealSource11.ts, 819, 5))
>nodeType : Symbol(nodeType, Decl(parserRealSource11.ts, 1294, 21))
this.flags |= ASTFlags.IsStatement;
>this.flags : Symbol(AST.flags, Decl(parserRealSource11.ts, 12, 33))
>this : Symbol(Statement, Decl(parserRealSource11.ts, 1291, 5))
>flags : Symbol(AST.flags, Decl(parserRealSource11.ts, 12, 33))
}
public isLoop() { return false; }
>isLoop : Symbol(Statement.isLoop, Decl(parserRealSource11.ts, 1297, 9))
public isStatementOrExpression() { return true; }
>isStatementOrExpression : Symbol(Statement.isStatementOrExpression, Decl(parserRealSource11.ts, 1299, 41))
public isCompoundStatement() { return this.isLoop(); }
>isCompoundStatement : Symbol(Statement.isCompoundStatement, Decl(parserRealSource11.ts, 1301, 57))
>this.isLoop : Symbol(Statement.isLoop, Decl(parserRealSource11.ts, 1297, 9))
>this : Symbol(Statement, Decl(parserRealSource11.ts, 1291, 5))
>isLoop : Symbol(Statement.isLoop, Decl(parserRealSource11.ts, 1297, 9))
public typeCheck(typeFlow: TypeFlow) {
>typeCheck : Symbol(Statement.typeCheck, Decl(parserRealSource11.ts, 1303, 62))
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 1305, 25))
>TypeFlow : Symbol(TypeFlow)
this.type = typeFlow.voidType;
>this.type : Symbol(AST.type, Decl(parserRealSource11.ts, 11, 38))
>this : Symbol(Statement, Decl(parserRealSource11.ts, 1291, 5))
>type : Symbol(AST.type, Decl(parserRealSource11.ts, 11, 38))
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 1305, 25))
return this;
>this : Symbol(Statement, Decl(parserRealSource11.ts, 1291, 5))
}
}
export class LabeledStatement extends Statement {
>LabeledStatement : Symbol(LabeledStatement, Decl(parserRealSource11.ts, 1309, 5))
>Statement : Symbol(Statement, Decl(parserRealSource11.ts, 1291, 5))
constructor (public labels: ASTList, public stmt: AST) {
>labels : Symbol(LabeledStatement.labels, Decl(parserRealSource11.ts, 1312, 21))
>ASTList : Symbol(ASTList, Decl(parserRealSource11.ts, 188, 5))
>stmt : Symbol(LabeledStatement.stmt, Decl(parserRealSource11.ts, 1312, 44))
>AST : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
super(NodeType.LabeledStatement);
>super : Symbol(Statement, Decl(parserRealSource11.ts, 1291, 5))
}
public emit(emitter: Emitter, tokenId: TokenID, startLine: boolean) {
>emit : Symbol(LabeledStatement.emit, Decl(parserRealSource11.ts, 1314, 9))
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1316, 20))
>Emitter : Symbol(Emitter)
>tokenId : Symbol(tokenId, Decl(parserRealSource11.ts, 1316, 37))
>TokenID : Symbol(TokenID)
>startLine : Symbol(startLine, Decl(parserRealSource11.ts, 1316, 55))
emitter.emitParensAndCommentsInPlace(this, true);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1316, 20))
>this : Symbol(LabeledStatement, Decl(parserRealSource11.ts, 1309, 5))
emitter.recordSourceMappingStart(this);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1316, 20))
>this : Symbol(LabeledStatement, Decl(parserRealSource11.ts, 1309, 5))
if (this.labels) {
>this.labels : Symbol(LabeledStatement.labels, Decl(parserRealSource11.ts, 1312, 21))
>this : Symbol(LabeledStatement, Decl(parserRealSource11.ts, 1309, 5))
>labels : Symbol(LabeledStatement.labels, Decl(parserRealSource11.ts, 1312, 21))
var labelsLen = this.labels.members.length;
>labelsLen : Symbol(labelsLen, Decl(parserRealSource11.ts, 1320, 19))
>this.labels.members.length : Symbol(Array.length, Decl(lib.es5.d.ts, --, --))
>this.labels.members : Symbol(ASTList.members, Decl(parserRealSource11.ts, 191, 50))
>this.labels : Symbol(LabeledStatement.labels, Decl(parserRealSource11.ts, 1312, 21))
>this : Symbol(LabeledStatement, Decl(parserRealSource11.ts, 1309, 5))
>labels : Symbol(LabeledStatement.labels, Decl(parserRealSource11.ts, 1312, 21))
>members : Symbol(ASTList.members, Decl(parserRealSource11.ts, 191, 50))
>length : Symbol(Array.length, Decl(lib.es5.d.ts, --, --))
for (var i = 0; i < labelsLen; i++) {
>i : Symbol(i, Decl(parserRealSource11.ts, 1321, 24))
>i : Symbol(i, Decl(parserRealSource11.ts, 1321, 24))
>labelsLen : Symbol(labelsLen, Decl(parserRealSource11.ts, 1320, 19))
>i : Symbol(i, Decl(parserRealSource11.ts, 1321, 24))
this.labels.members[i].emit(emitter, tokenId, startLine);
>this.labels.members[i].emit : Symbol(AST.emit, Decl(parserRealSource11.ts, 61, 9))
>this.labels.members : Symbol(ASTList.members, Decl(parserRealSource11.ts, 191, 50))
>this.labels : Symbol(LabeledStatement.labels, Decl(parserRealSource11.ts, 1312, 21))
>this : Symbol(LabeledStatement, Decl(parserRealSource11.ts, 1309, 5))
>labels : Symbol(LabeledStatement.labels, Decl(parserRealSource11.ts, 1312, 21))
>members : Symbol(ASTList.members, Decl(parserRealSource11.ts, 191, 50))
>i : Symbol(i, Decl(parserRealSource11.ts, 1321, 24))
>emit : Symbol(AST.emit, Decl(parserRealSource11.ts, 61, 9))
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1316, 20))
>tokenId : Symbol(tokenId, Decl(parserRealSource11.ts, 1316, 37))
>startLine : Symbol(startLine, Decl(parserRealSource11.ts, 1316, 55))
}
}
this.stmt.emit(emitter, tokenId, true);
>this.stmt.emit : Symbol(AST.emit, Decl(parserRealSource11.ts, 61, 9))
>this.stmt : Symbol(LabeledStatement.stmt, Decl(parserRealSource11.ts, 1312, 44))
>this : Symbol(LabeledStatement, Decl(parserRealSource11.ts, 1309, 5))
>stmt : Symbol(LabeledStatement.stmt, Decl(parserRealSource11.ts, 1312, 44))
>emit : Symbol(AST.emit, Decl(parserRealSource11.ts, 61, 9))
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1316, 20))
>tokenId : Symbol(tokenId, Decl(parserRealSource11.ts, 1316, 37))
emitter.recordSourceMappingEnd(this);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1316, 20))
>this : Symbol(LabeledStatement, Decl(parserRealSource11.ts, 1309, 5))
emitter.emitParensAndCommentsInPlace(this, false);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1316, 20))
>this : Symbol(LabeledStatement, Decl(parserRealSource11.ts, 1309, 5))
}
public typeCheck(typeFlow: TypeFlow) {
>typeCheck : Symbol(LabeledStatement.typeCheck, Decl(parserRealSource11.ts, 1328, 9))
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 1330, 25))
>TypeFlow : Symbol(TypeFlow)
typeFlow.typeCheck(this.labels);
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 1330, 25))
>this.labels : Symbol(LabeledStatement.labels, Decl(parserRealSource11.ts, 1312, 21))
>this : Symbol(LabeledStatement, Decl(parserRealSource11.ts, 1309, 5))
>labels : Symbol(LabeledStatement.labels, Decl(parserRealSource11.ts, 1312, 21))
this.stmt = this.stmt.typeCheck(typeFlow);
>this.stmt : Symbol(LabeledStatement.stmt, Decl(parserRealSource11.ts, 1312, 44))
>this : Symbol(LabeledStatement, Decl(parserRealSource11.ts, 1309, 5))
>stmt : Symbol(LabeledStatement.stmt, Decl(parserRealSource11.ts, 1312, 44))
>this.stmt.typeCheck : Symbol(AST.typeCheck, Decl(parserRealSource11.ts, 33, 99))
>this.stmt : Symbol(LabeledStatement.stmt, Decl(parserRealSource11.ts, 1312, 44))
>this : Symbol(LabeledStatement, Decl(parserRealSource11.ts, 1309, 5))
>stmt : Symbol(LabeledStatement.stmt, Decl(parserRealSource11.ts, 1312, 44))
>typeCheck : Symbol(AST.typeCheck, Decl(parserRealSource11.ts, 33, 99))
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 1330, 25))
return this;
>this : Symbol(LabeledStatement, Decl(parserRealSource11.ts, 1309, 5))
}
public addToControlFlow(context: ControlFlowContext): void {
>addToControlFlow : Symbol(LabeledStatement.addToControlFlow, Decl(parserRealSource11.ts, 1334, 9))
>context : Symbol(context, Decl(parserRealSource11.ts, 1336, 32))
>ControlFlowContext : Symbol(ControlFlowContext)
var beforeBB = context.current;
>beforeBB : Symbol(beforeBB, Decl(parserRealSource11.ts, 1337, 15))
>context : Symbol(context, Decl(parserRealSource11.ts, 1336, 32))
var bb = new BasicBlock();
>bb : Symbol(bb, Decl(parserRealSource11.ts, 1338, 15))
context.current = bb;
>context : Symbol(context, Decl(parserRealSource11.ts, 1336, 32))
>bb : Symbol(bb, Decl(parserRealSource11.ts, 1338, 15))
beforeBB.addSuccessor(bb);
>beforeBB : Symbol(beforeBB, Decl(parserRealSource11.ts, 1337, 15))
>bb : Symbol(bb, Decl(parserRealSource11.ts, 1338, 15))
}
}
export class Block extends Statement {
>Block : Symbol(Block, Decl(parserRealSource11.ts, 1342, 5))
>Statement : Symbol(Statement, Decl(parserRealSource11.ts, 1291, 5))
constructor (public statements: ASTList,
>statements : Symbol(Block.statements, Decl(parserRealSource11.ts, 1345, 21))
>ASTList : Symbol(ASTList, Decl(parserRealSource11.ts, 188, 5))
public isStatementBlock: boolean) {
>isStatementBlock : Symbol(Block.isStatementBlock, Decl(parserRealSource11.ts, 1345, 48))
super(NodeType.Block);
>super : Symbol(Statement, Decl(parserRealSource11.ts, 1291, 5))
}
public emit(emitter: Emitter, tokenId: TokenID, startLine: boolean) {
>emit : Symbol(Block.emit, Decl(parserRealSource11.ts, 1348, 9))
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1350, 20))
>Emitter : Symbol(Emitter)
>tokenId : Symbol(tokenId, Decl(parserRealSource11.ts, 1350, 37))
>TokenID : Symbol(TokenID)
>startLine : Symbol(startLine, Decl(parserRealSource11.ts, 1350, 55))
emitter.emitParensAndCommentsInPlace(this, true);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1350, 20))
>this : Symbol(Block, Decl(parserRealSource11.ts, 1342, 5))
emitter.recordSourceMappingStart(this);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1350, 20))
>this : Symbol(Block, Decl(parserRealSource11.ts, 1342, 5))
if (this.isStatementBlock) {
>this.isStatementBlock : Symbol(Block.isStatementBlock, Decl(parserRealSource11.ts, 1345, 48))
>this : Symbol(Block, Decl(parserRealSource11.ts, 1342, 5))
>isStatementBlock : Symbol(Block.isStatementBlock, Decl(parserRealSource11.ts, 1345, 48))
emitter.writeLineToOutput(" {");
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1350, 20))
emitter.indenter.increaseIndent();
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1350, 20))
} else {
emitter.setInVarBlock(this.statements.members.length);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1350, 20))
>this.statements.members.length : Symbol(Array.length, Decl(lib.es5.d.ts, --, --))
>this.statements.members : Symbol(ASTList.members, Decl(parserRealSource11.ts, 191, 50))
>this.statements : Symbol(Block.statements, Decl(parserRealSource11.ts, 1345, 21))
>this : Symbol(Block, Decl(parserRealSource11.ts, 1342, 5))
>statements : Symbol(Block.statements, Decl(parserRealSource11.ts, 1345, 21))
>members : Symbol(ASTList.members, Decl(parserRealSource11.ts, 191, 50))
>length : Symbol(Array.length, Decl(lib.es5.d.ts, --, --))
}
var temp = emitter.setInObjectLiteral(false);
>temp : Symbol(temp, Decl(parserRealSource11.ts, 1359, 15))
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1350, 20))
if (this.statements) {
>this.statements : Symbol(Block.statements, Decl(parserRealSource11.ts, 1345, 21))
>this : Symbol(Block, Decl(parserRealSource11.ts, 1342, 5))
>statements : Symbol(Block.statements, Decl(parserRealSource11.ts, 1345, 21))
emitter.emitJavascriptList(this.statements, null, TokenID.Semicolon, true, false, false);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1350, 20))
>this.statements : Symbol(Block.statements, Decl(parserRealSource11.ts, 1345, 21))
>this : Symbol(Block, Decl(parserRealSource11.ts, 1342, 5))
>statements : Symbol(Block.statements, Decl(parserRealSource11.ts, 1345, 21))
}
if (this.isStatementBlock) {
>this.isStatementBlock : Symbol(Block.isStatementBlock, Decl(parserRealSource11.ts, 1345, 48))
>this : Symbol(Block, Decl(parserRealSource11.ts, 1342, 5))
>isStatementBlock : Symbol(Block.isStatementBlock, Decl(parserRealSource11.ts, 1345, 48))
emitter.indenter.decreaseIndent();
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1350, 20))
emitter.emitIndent();
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1350, 20))
emitter.writeToOutput("}");
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1350, 20))
}
emitter.setInObjectLiteral(temp);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1350, 20))
>temp : Symbol(temp, Decl(parserRealSource11.ts, 1359, 15))
emitter.recordSourceMappingEnd(this);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1350, 20))
>this : Symbol(Block, Decl(parserRealSource11.ts, 1342, 5))
emitter.emitParensAndCommentsInPlace(this, false);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1350, 20))
>this : Symbol(Block, Decl(parserRealSource11.ts, 1342, 5))
}
public addToControlFlow(context: ControlFlowContext) {
>addToControlFlow : Symbol(Block.addToControlFlow, Decl(parserRealSource11.ts, 1371, 9))
>context : Symbol(context, Decl(parserRealSource11.ts, 1373, 32))
>ControlFlowContext : Symbol(ControlFlowContext)
var afterIfNeeded = new BasicBlock();
>afterIfNeeded : Symbol(afterIfNeeded, Decl(parserRealSource11.ts, 1374, 15))
context.pushStatement(this, context.current, afterIfNeeded);
>context : Symbol(context, Decl(parserRealSource11.ts, 1373, 32))
>this : Symbol(Block, Decl(parserRealSource11.ts, 1342, 5))
>context : Symbol(context, Decl(parserRealSource11.ts, 1373, 32))
>afterIfNeeded : Symbol(afterIfNeeded, Decl(parserRealSource11.ts, 1374, 15))
if (this.statements) {
>this.statements : Symbol(Block.statements, Decl(parserRealSource11.ts, 1345, 21))
>this : Symbol(Block, Decl(parserRealSource11.ts, 1342, 5))
>statements : Symbol(Block.statements, Decl(parserRealSource11.ts, 1345, 21))
context.walk(this.statements, this);
>context : Symbol(context, Decl(parserRealSource11.ts, 1373, 32))
>this.statements : Symbol(Block.statements, Decl(parserRealSource11.ts, 1345, 21))
>this : Symbol(Block, Decl(parserRealSource11.ts, 1342, 5))
>statements : Symbol(Block.statements, Decl(parserRealSource11.ts, 1345, 21))
>this : Symbol(Block, Decl(parserRealSource11.ts, 1342, 5))
}
context.walker.options.goChildren = false;
>context : Symbol(context, Decl(parserRealSource11.ts, 1373, 32))
context.popStatement();
>context : Symbol(context, Decl(parserRealSource11.ts, 1373, 32))
if (afterIfNeeded.predecessors.length > 0) {
>afterIfNeeded : Symbol(afterIfNeeded, Decl(parserRealSource11.ts, 1374, 15))
context.current.addSuccessor(afterIfNeeded);
>context : Symbol(context, Decl(parserRealSource11.ts, 1373, 32))
>afterIfNeeded : Symbol(afterIfNeeded, Decl(parserRealSource11.ts, 1374, 15))
context.current = afterIfNeeded;
>context : Symbol(context, Decl(parserRealSource11.ts, 1373, 32))
>afterIfNeeded : Symbol(afterIfNeeded, Decl(parserRealSource11.ts, 1374, 15))
}
}
public typeCheck(typeFlow: TypeFlow) {
>typeCheck : Symbol(Block.typeCheck, Decl(parserRealSource11.ts, 1385, 9))
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 1387, 25))
>TypeFlow : Symbol(TypeFlow)
if (!typeFlow.checker.styleSettings.emptyBlocks) {
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 1387, 25))
if ((this.statements === null) || (this.statements.members.length == 0)) {
>this.statements : Symbol(Block.statements, Decl(parserRealSource11.ts, 1345, 21))
>this : Symbol(Block, Decl(parserRealSource11.ts, 1342, 5))
>statements : Symbol(Block.statements, Decl(parserRealSource11.ts, 1345, 21))
>this.statements.members.length : Symbol(Array.length, Decl(lib.es5.d.ts, --, --))
>this.statements.members : Symbol(ASTList.members, Decl(parserRealSource11.ts, 191, 50))
>this.statements : Symbol(Block.statements, Decl(parserRealSource11.ts, 1345, 21))
>this : Symbol(Block, Decl(parserRealSource11.ts, 1342, 5))
>statements : Symbol(Block.statements, Decl(parserRealSource11.ts, 1345, 21))
>members : Symbol(ASTList.members, Decl(parserRealSource11.ts, 191, 50))
>length : Symbol(Array.length, Decl(lib.es5.d.ts, --, --))
typeFlow.checker.errorReporter.styleError(this, "empty block");
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 1387, 25))
>this : Symbol(Block, Decl(parserRealSource11.ts, 1342, 5))
}
}
typeFlow.typeCheck(this.statements);
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 1387, 25))
>this.statements : Symbol(Block.statements, Decl(parserRealSource11.ts, 1345, 21))
>this : Symbol(Block, Decl(parserRealSource11.ts, 1342, 5))
>statements : Symbol(Block.statements, Decl(parserRealSource11.ts, 1345, 21))
return this;
>this : Symbol(Block, Decl(parserRealSource11.ts, 1342, 5))
}
}
export class Jump extends Statement {
>Jump : Symbol(Jump, Decl(parserRealSource11.ts, 1397, 5))
>Statement : Symbol(Statement, Decl(parserRealSource11.ts, 1291, 5))
public target: string = null;
>target : Symbol(Jump.target, Decl(parserRealSource11.ts, 1399, 41))
public hasExplicitTarget() { return (this.target); }
>hasExplicitTarget : Symbol(Jump.hasExplicitTarget, Decl(parserRealSource11.ts, 1400, 37))
>this.target : Symbol(Jump.target, Decl(parserRealSource11.ts, 1399, 41))
>this : Symbol(Jump, Decl(parserRealSource11.ts, 1397, 5))
>target : Symbol(Jump.target, Decl(parserRealSource11.ts, 1399, 41))
public resolvedTarget: Statement = null;
>resolvedTarget : Symbol(Jump.resolvedTarget, Decl(parserRealSource11.ts, 1401, 60))
>Statement : Symbol(Statement, Decl(parserRealSource11.ts, 1291, 5))
constructor (nodeType: NodeType) {
>nodeType : Symbol(nodeType, Decl(parserRealSource11.ts, 1404, 21))
>NodeType : Symbol(NodeType)
super(nodeType);
>super : Symbol(Statement, Decl(parserRealSource11.ts, 1291, 5))
>nodeType : Symbol(nodeType, Decl(parserRealSource11.ts, 1404, 21))
}
public setResolvedTarget(parser: Parser, stmt: Statement): boolean {
>setResolvedTarget : Symbol(Jump.setResolvedTarget, Decl(parserRealSource11.ts, 1406, 9))
>parser : Symbol(parser, Decl(parserRealSource11.ts, 1408, 33))
>Parser : Symbol(Parser)
>stmt : Symbol(stmt, Decl(parserRealSource11.ts, 1408, 48))
>Statement : Symbol(Statement, Decl(parserRealSource11.ts, 1291, 5))
if (stmt.isLoop()) {
>stmt.isLoop : Symbol(Statement.isLoop, Decl(parserRealSource11.ts, 1297, 9))
>stmt : Symbol(stmt, Decl(parserRealSource11.ts, 1408, 48))
>isLoop : Symbol(Statement.isLoop, Decl(parserRealSource11.ts, 1297, 9))
this.resolvedTarget = stmt;
>this.resolvedTarget : Symbol(Jump.resolvedTarget, Decl(parserRealSource11.ts, 1401, 60))
>this : Symbol(Jump, Decl(parserRealSource11.ts, 1397, 5))
>resolvedTarget : Symbol(Jump.resolvedTarget, Decl(parserRealSource11.ts, 1401, 60))
>stmt : Symbol(stmt, Decl(parserRealSource11.ts, 1408, 48))
return true;
}
if (this.nodeType === NodeType.Continue) {
>this.nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
>this : Symbol(Jump, Decl(parserRealSource11.ts, 1397, 5))
>nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
parser.reportParseError("continue statement applies only to loops");
>parser : Symbol(parser, Decl(parserRealSource11.ts, 1408, 33))
return false;
}
else {
if ((stmt.nodeType == NodeType.Switch) || this.hasExplicitTarget()) {
>stmt.nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
>stmt : Symbol(stmt, Decl(parserRealSource11.ts, 1408, 48))
>nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
>this.hasExplicitTarget : Symbol(Jump.hasExplicitTarget, Decl(parserRealSource11.ts, 1400, 37))
>this : Symbol(Jump, Decl(parserRealSource11.ts, 1397, 5))
>hasExplicitTarget : Symbol(Jump.hasExplicitTarget, Decl(parserRealSource11.ts, 1400, 37))
this.resolvedTarget = stmt;
>this.resolvedTarget : Symbol(Jump.resolvedTarget, Decl(parserRealSource11.ts, 1401, 60))
>this : Symbol(Jump, Decl(parserRealSource11.ts, 1397, 5))
>resolvedTarget : Symbol(Jump.resolvedTarget, Decl(parserRealSource11.ts, 1401, 60))
>stmt : Symbol(stmt, Decl(parserRealSource11.ts, 1408, 48))
return true;
}
else {
parser.reportParseError("break statement with no label can apply only to a loop or switch statement");
>parser : Symbol(parser, Decl(parserRealSource11.ts, 1408, 33))
return false;
}
}
}
public addToControlFlow(context: ControlFlowContext): void {
>addToControlFlow : Symbol(Jump.addToControlFlow, Decl(parserRealSource11.ts, 1427, 9))
>context : Symbol(context, Decl(parserRealSource11.ts, 1429, 32))
>ControlFlowContext : Symbol(ControlFlowContext)
super.addToControlFlow(context);
>super.addToControlFlow : Symbol(AST.addToControlFlow, Decl(parserRealSource11.ts, 142, 9))
>super : Symbol(Statement, Decl(parserRealSource11.ts, 1291, 5))
>addToControlFlow : Symbol(AST.addToControlFlow, Decl(parserRealSource11.ts, 142, 9))
>context : Symbol(context, Decl(parserRealSource11.ts, 1429, 32))
context.unconditionalBranch(this.resolvedTarget, (this.nodeType == NodeType.Continue));
>context : Symbol(context, Decl(parserRealSource11.ts, 1429, 32))
>this.resolvedTarget : Symbol(Jump.resolvedTarget, Decl(parserRealSource11.ts, 1401, 60))
>this : Symbol(Jump, Decl(parserRealSource11.ts, 1397, 5))
>resolvedTarget : Symbol(Jump.resolvedTarget, Decl(parserRealSource11.ts, 1401, 60))
>this.nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
>this : Symbol(Jump, Decl(parserRealSource11.ts, 1397, 5))
>nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
}
public emit(emitter: Emitter, tokenId: TokenID, startLine: boolean) {
>emit : Symbol(Jump.emit, Decl(parserRealSource11.ts, 1432, 9))
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1434, 20))
>Emitter : Symbol(Emitter)
>tokenId : Symbol(tokenId, Decl(parserRealSource11.ts, 1434, 37))
>TokenID : Symbol(TokenID)
>startLine : Symbol(startLine, Decl(parserRealSource11.ts, 1434, 55))
emitter.emitParensAndCommentsInPlace(this, true);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1434, 20))
>this : Symbol(Jump, Decl(parserRealSource11.ts, 1397, 5))
emitter.recordSourceMappingStart(this);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1434, 20))
>this : Symbol(Jump, Decl(parserRealSource11.ts, 1397, 5))
if (this.nodeType == NodeType.Break) {
>this.nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
>this : Symbol(Jump, Decl(parserRealSource11.ts, 1397, 5))
>nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
emitter.writeToOutput("break");
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1434, 20))
}
else {
emitter.writeToOutput("continue");
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1434, 20))
}
if (this.hasExplicitTarget()) {
>this.hasExplicitTarget : Symbol(Jump.hasExplicitTarget, Decl(parserRealSource11.ts, 1400, 37))
>this : Symbol(Jump, Decl(parserRealSource11.ts, 1397, 5))
>hasExplicitTarget : Symbol(Jump.hasExplicitTarget, Decl(parserRealSource11.ts, 1400, 37))
emitter.writeToOutput(" " + this.target);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1434, 20))
>this.target : Symbol(Jump.target, Decl(parserRealSource11.ts, 1399, 41))
>this : Symbol(Jump, Decl(parserRealSource11.ts, 1397, 5))
>target : Symbol(Jump.target, Decl(parserRealSource11.ts, 1399, 41))
}
emitter.recordSourceMappingEnd(this);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1434, 20))
>this : Symbol(Jump, Decl(parserRealSource11.ts, 1397, 5))
emitter.writeToOutput(";");
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1434, 20))
emitter.emitParensAndCommentsInPlace(this, false);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1434, 20))
>this : Symbol(Jump, Decl(parserRealSource11.ts, 1397, 5))
}
}
export class WhileStatement extends Statement {
>WhileStatement : Symbol(WhileStatement, Decl(parserRealSource11.ts, 1450, 5))
>Statement : Symbol(Statement, Decl(parserRealSource11.ts, 1291, 5))
public body: AST = null;
>body : Symbol(WhileStatement.body, Decl(parserRealSource11.ts, 1452, 51))
>AST : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
constructor (public cond: AST) {
>cond : Symbol(WhileStatement.cond, Decl(parserRealSource11.ts, 1455, 21))
>AST : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
super(NodeType.While);
>super : Symbol(Statement, Decl(parserRealSource11.ts, 1291, 5))
}
public isLoop() { return true; }
>isLoop : Symbol(WhileStatement.isLoop, Decl(parserRealSource11.ts, 1457, 9))
public emit(emitter: Emitter, tokenId: TokenID, startLine: boolean) {
>emit : Symbol(WhileStatement.emit, Decl(parserRealSource11.ts, 1459, 40))
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1461, 20))
>Emitter : Symbol(Emitter)
>tokenId : Symbol(tokenId, Decl(parserRealSource11.ts, 1461, 37))
>TokenID : Symbol(TokenID)
>startLine : Symbol(startLine, Decl(parserRealSource11.ts, 1461, 55))
emitter.emitParensAndCommentsInPlace(this, true);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1461, 20))
>this : Symbol(WhileStatement, Decl(parserRealSource11.ts, 1450, 5))
emitter.recordSourceMappingStart(this);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1461, 20))
>this : Symbol(WhileStatement, Decl(parserRealSource11.ts, 1450, 5))
var temp = emitter.setInObjectLiteral(false);
>temp : Symbol(temp, Decl(parserRealSource11.ts, 1464, 15))
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1461, 20))
emitter.writeToOutput("while(");
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1461, 20))
emitter.emitJavascript(this.cond, TokenID.While, false);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1461, 20))
>this.cond : Symbol(WhileStatement.cond, Decl(parserRealSource11.ts, 1455, 21))
>this : Symbol(WhileStatement, Decl(parserRealSource11.ts, 1450, 5))
>cond : Symbol(WhileStatement.cond, Decl(parserRealSource11.ts, 1455, 21))
emitter.writeToOutput(")");
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1461, 20))
emitter.emitJavascriptStatements(this.body, false, false);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1461, 20))
>this.body : Symbol(WhileStatement.body, Decl(parserRealSource11.ts, 1452, 51))
>this : Symbol(WhileStatement, Decl(parserRealSource11.ts, 1450, 5))
>body : Symbol(WhileStatement.body, Decl(parserRealSource11.ts, 1452, 51))
emitter.setInObjectLiteral(temp);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1461, 20))
>temp : Symbol(temp, Decl(parserRealSource11.ts, 1464, 15))
emitter.recordSourceMappingEnd(this);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1461, 20))
>this : Symbol(WhileStatement, Decl(parserRealSource11.ts, 1450, 5))
emitter.emitParensAndCommentsInPlace(this, false);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1461, 20))
>this : Symbol(WhileStatement, Decl(parserRealSource11.ts, 1450, 5))
}
public typeCheck(typeFlow: TypeFlow) {
>typeCheck : Symbol(WhileStatement.typeCheck, Decl(parserRealSource11.ts, 1472, 9))
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 1474, 25))
>TypeFlow : Symbol(TypeFlow)
return typeFlow.typeCheckWhile(this);
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 1474, 25))
>this : Symbol(WhileStatement, Decl(parserRealSource11.ts, 1450, 5))
}
public addToControlFlow(context: ControlFlowContext): void {
>addToControlFlow : Symbol(WhileStatement.addToControlFlow, Decl(parserRealSource11.ts, 1476, 9))
>context : Symbol(context, Decl(parserRealSource11.ts, 1478, 32))
>ControlFlowContext : Symbol(ControlFlowContext)
var loopHeader = context.current;
>loopHeader : Symbol(loopHeader, Decl(parserRealSource11.ts, 1479, 15))
>context : Symbol(context, Decl(parserRealSource11.ts, 1478, 32))
var loopStart = new BasicBlock();
>loopStart : Symbol(loopStart, Decl(parserRealSource11.ts, 1480, 15))
var afterLoop = new BasicBlock();
>afterLoop : Symbol(afterLoop, Decl(parserRealSource11.ts, 1481, 15))
loopHeader.addSuccessor(loopStart);
>loopHeader : Symbol(loopHeader, Decl(parserRealSource11.ts, 1479, 15))
>loopStart : Symbol(loopStart, Decl(parserRealSource11.ts, 1480, 15))
context.current = loopStart;
>context : Symbol(context, Decl(parserRealSource11.ts, 1478, 32))
>loopStart : Symbol(loopStart, Decl(parserRealSource11.ts, 1480, 15))
context.addContent(this.cond);
>context : Symbol(context, Decl(parserRealSource11.ts, 1478, 32))
>this.cond : Symbol(WhileStatement.cond, Decl(parserRealSource11.ts, 1455, 21))
>this : Symbol(WhileStatement, Decl(parserRealSource11.ts, 1450, 5))
>cond : Symbol(WhileStatement.cond, Decl(parserRealSource11.ts, 1455, 21))
var condBlock = context.current;
>condBlock : Symbol(condBlock, Decl(parserRealSource11.ts, 1486, 15))
>context : Symbol(context, Decl(parserRealSource11.ts, 1478, 32))
var targetInfo: ITargetInfo = null;
>targetInfo : Symbol(targetInfo, Decl(parserRealSource11.ts, 1487, 15))
>ITargetInfo : Symbol(ITargetInfo)
if (this.body) {
>this.body : Symbol(WhileStatement.body, Decl(parserRealSource11.ts, 1452, 51))
>this : Symbol(WhileStatement, Decl(parserRealSource11.ts, 1450, 5))
>body : Symbol(WhileStatement.body, Decl(parserRealSource11.ts, 1452, 51))
context.current = new BasicBlock();
>context : Symbol(context, Decl(parserRealSource11.ts, 1478, 32))
condBlock.addSuccessor(context.current);
>condBlock : Symbol(condBlock, Decl(parserRealSource11.ts, 1486, 15))
>context : Symbol(context, Decl(parserRealSource11.ts, 1478, 32))
context.pushStatement(this, loopStart, afterLoop);
>context : Symbol(context, Decl(parserRealSource11.ts, 1478, 32))
>this : Symbol(WhileStatement, Decl(parserRealSource11.ts, 1450, 5))
>loopStart : Symbol(loopStart, Decl(parserRealSource11.ts, 1480, 15))
>afterLoop : Symbol(afterLoop, Decl(parserRealSource11.ts, 1481, 15))
context.walk(this.body, this);
>context : Symbol(context, Decl(parserRealSource11.ts, 1478, 32))
>this.body : Symbol(WhileStatement.body, Decl(parserRealSource11.ts, 1452, 51))
>this : Symbol(WhileStatement, Decl(parserRealSource11.ts, 1450, 5))
>body : Symbol(WhileStatement.body, Decl(parserRealSource11.ts, 1452, 51))
>this : Symbol(WhileStatement, Decl(parserRealSource11.ts, 1450, 5))
targetInfo = context.popStatement();
>targetInfo : Symbol(targetInfo, Decl(parserRealSource11.ts, 1487, 15))
>context : Symbol(context, Decl(parserRealSource11.ts, 1478, 32))
}
if (!(context.noContinuation)) {
>context : Symbol(context, Decl(parserRealSource11.ts, 1478, 32))
var loopEnd = context.current;
>loopEnd : Symbol(loopEnd, Decl(parserRealSource11.ts, 1496, 19))
>context : Symbol(context, Decl(parserRealSource11.ts, 1478, 32))
loopEnd.addSuccessor(loopStart);
>loopEnd : Symbol(loopEnd, Decl(parserRealSource11.ts, 1496, 19))
>loopStart : Symbol(loopStart, Decl(parserRealSource11.ts, 1480, 15))
}
context.current = afterLoop;
>context : Symbol(context, Decl(parserRealSource11.ts, 1478, 32))
>afterLoop : Symbol(afterLoop, Decl(parserRealSource11.ts, 1481, 15))
condBlock.addSuccessor(afterLoop);
>condBlock : Symbol(condBlock, Decl(parserRealSource11.ts, 1486, 15))
>afterLoop : Symbol(afterLoop, Decl(parserRealSource11.ts, 1481, 15))
// TODO: check for while (true) and then only continue if afterLoop has predecessors
context.noContinuation = false;
>context : Symbol(context, Decl(parserRealSource11.ts, 1478, 32))
context.walker.options.goChildren = false;
>context : Symbol(context, Decl(parserRealSource11.ts, 1478, 32))
}
}
export class DoWhileStatement extends Statement {
>DoWhileStatement : Symbol(DoWhileStatement, Decl(parserRealSource11.ts, 1505, 5))
>Statement : Symbol(Statement, Decl(parserRealSource11.ts, 1291, 5))
public body: AST = null;
>body : Symbol(DoWhileStatement.body, Decl(parserRealSource11.ts, 1507, 53))
>AST : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
public whileAST: AST = null;
>whileAST : Symbol(DoWhileStatement.whileAST, Decl(parserRealSource11.ts, 1508, 32))
>AST : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
public cond: AST = null;
>cond : Symbol(DoWhileStatement.cond, Decl(parserRealSource11.ts, 1509, 36))
>AST : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
public isLoop() { return true; }
>isLoop : Symbol(DoWhileStatement.isLoop, Decl(parserRealSource11.ts, 1510, 32))
constructor () {
super(NodeType.DoWhile);
>super : Symbol(Statement, Decl(parserRealSource11.ts, 1291, 5))
}
public emit(emitter: Emitter, tokenId: TokenID, startLine: boolean) {
>emit : Symbol(DoWhileStatement.emit, Decl(parserRealSource11.ts, 1515, 9))
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1517, 20))
>Emitter : Symbol(Emitter)
>tokenId : Symbol(tokenId, Decl(parserRealSource11.ts, 1517, 37))
>TokenID : Symbol(TokenID)
>startLine : Symbol(startLine, Decl(parserRealSource11.ts, 1517, 55))
emitter.emitParensAndCommentsInPlace(this, true);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1517, 20))
>this : Symbol(DoWhileStatement, Decl(parserRealSource11.ts, 1505, 5))
emitter.recordSourceMappingStart(this);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1517, 20))
>this : Symbol(DoWhileStatement, Decl(parserRealSource11.ts, 1505, 5))
var temp = emitter.setInObjectLiteral(false);
>temp : Symbol(temp, Decl(parserRealSource11.ts, 1520, 15))
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1517, 20))
emitter.writeToOutput("do");
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1517, 20))
emitter.emitJavascriptStatements(this.body, true, false);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1517, 20))
>this.body : Symbol(DoWhileStatement.body, Decl(parserRealSource11.ts, 1507, 53))
>this : Symbol(DoWhileStatement, Decl(parserRealSource11.ts, 1505, 5))
>body : Symbol(DoWhileStatement.body, Decl(parserRealSource11.ts, 1507, 53))
emitter.recordSourceMappingStart(this.whileAST);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1517, 20))
>this.whileAST : Symbol(DoWhileStatement.whileAST, Decl(parserRealSource11.ts, 1508, 32))
>this : Symbol(DoWhileStatement, Decl(parserRealSource11.ts, 1505, 5))
>whileAST : Symbol(DoWhileStatement.whileAST, Decl(parserRealSource11.ts, 1508, 32))
emitter.writeToOutput("while");
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1517, 20))
emitter.recordSourceMappingEnd(this.whileAST);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1517, 20))
>this.whileAST : Symbol(DoWhileStatement.whileAST, Decl(parserRealSource11.ts, 1508, 32))
>this : Symbol(DoWhileStatement, Decl(parserRealSource11.ts, 1505, 5))
>whileAST : Symbol(DoWhileStatement.whileAST, Decl(parserRealSource11.ts, 1508, 32))
emitter.writeToOutput('(');
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1517, 20))
emitter.emitJavascript(this.cond, TokenID.CloseParen, false);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1517, 20))
>this.cond : Symbol(DoWhileStatement.cond, Decl(parserRealSource11.ts, 1509, 36))
>this : Symbol(DoWhileStatement, Decl(parserRealSource11.ts, 1505, 5))
>cond : Symbol(DoWhileStatement.cond, Decl(parserRealSource11.ts, 1509, 36))
emitter.writeToOutput(")");
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1517, 20))
emitter.setInObjectLiteral(temp);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1517, 20))
>temp : Symbol(temp, Decl(parserRealSource11.ts, 1520, 15))
emitter.recordSourceMappingEnd(this);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1517, 20))
>this : Symbol(DoWhileStatement, Decl(parserRealSource11.ts, 1505, 5))
emitter.emitParensAndCommentsInPlace(this, false);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1517, 20))
>this : Symbol(DoWhileStatement, Decl(parserRealSource11.ts, 1505, 5))
}
public typeCheck(typeFlow: TypeFlow) {
>typeCheck : Symbol(DoWhileStatement.typeCheck, Decl(parserRealSource11.ts, 1532, 9))
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 1534, 25))
>TypeFlow : Symbol(TypeFlow)
return typeFlow.typeCheckDoWhile(this);
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 1534, 25))
>this : Symbol(DoWhileStatement, Decl(parserRealSource11.ts, 1505, 5))
}
public addToControlFlow(context: ControlFlowContext): void {
>addToControlFlow : Symbol(DoWhileStatement.addToControlFlow, Decl(parserRealSource11.ts, 1536, 9))
>context : Symbol(context, Decl(parserRealSource11.ts, 1538, 32))
>ControlFlowContext : Symbol(ControlFlowContext)
var loopHeader = context.current;
>loopHeader : Symbol(loopHeader, Decl(parserRealSource11.ts, 1539, 15))
>context : Symbol(context, Decl(parserRealSource11.ts, 1538, 32))
var loopStart = new BasicBlock();
>loopStart : Symbol(loopStart, Decl(parserRealSource11.ts, 1540, 15))
var afterLoop = new BasicBlock();
>afterLoop : Symbol(afterLoop, Decl(parserRealSource11.ts, 1541, 15))
loopHeader.addSuccessor(loopStart);
>loopHeader : Symbol(loopHeader, Decl(parserRealSource11.ts, 1539, 15))
>loopStart : Symbol(loopStart, Decl(parserRealSource11.ts, 1540, 15))
context.current = loopStart;
>context : Symbol(context, Decl(parserRealSource11.ts, 1538, 32))
>loopStart : Symbol(loopStart, Decl(parserRealSource11.ts, 1540, 15))
var targetInfo: ITargetInfo = null;
>targetInfo : Symbol(targetInfo, Decl(parserRealSource11.ts, 1544, 15))
>ITargetInfo : Symbol(ITargetInfo)
if (this.body) {
>this.body : Symbol(DoWhileStatement.body, Decl(parserRealSource11.ts, 1507, 53))
>this : Symbol(DoWhileStatement, Decl(parserRealSource11.ts, 1505, 5))
>body : Symbol(DoWhileStatement.body, Decl(parserRealSource11.ts, 1507, 53))
context.pushStatement(this, loopStart, afterLoop);
>context : Symbol(context, Decl(parserRealSource11.ts, 1538, 32))
>this : Symbol(DoWhileStatement, Decl(parserRealSource11.ts, 1505, 5))
>loopStart : Symbol(loopStart, Decl(parserRealSource11.ts, 1540, 15))
>afterLoop : Symbol(afterLoop, Decl(parserRealSource11.ts, 1541, 15))
context.walk(this.body, this);
>context : Symbol(context, Decl(parserRealSource11.ts, 1538, 32))
>this.body : Symbol(DoWhileStatement.body, Decl(parserRealSource11.ts, 1507, 53))
>this : Symbol(DoWhileStatement, Decl(parserRealSource11.ts, 1505, 5))
>body : Symbol(DoWhileStatement.body, Decl(parserRealSource11.ts, 1507, 53))
>this : Symbol(DoWhileStatement, Decl(parserRealSource11.ts, 1505, 5))
targetInfo = context.popStatement();
>targetInfo : Symbol(targetInfo, Decl(parserRealSource11.ts, 1544, 15))
>context : Symbol(context, Decl(parserRealSource11.ts, 1538, 32))
}
if (!(context.noContinuation)) {
>context : Symbol(context, Decl(parserRealSource11.ts, 1538, 32))
var loopEnd = context.current;
>loopEnd : Symbol(loopEnd, Decl(parserRealSource11.ts, 1551, 19))
>context : Symbol(context, Decl(parserRealSource11.ts, 1538, 32))
loopEnd.addSuccessor(loopStart);
>loopEnd : Symbol(loopEnd, Decl(parserRealSource11.ts, 1551, 19))
>loopStart : Symbol(loopStart, Decl(parserRealSource11.ts, 1540, 15))
context.addContent(this.cond);
>context : Symbol(context, Decl(parserRealSource11.ts, 1538, 32))
>this.cond : Symbol(DoWhileStatement.cond, Decl(parserRealSource11.ts, 1509, 36))
>this : Symbol(DoWhileStatement, Decl(parserRealSource11.ts, 1505, 5))
>cond : Symbol(DoWhileStatement.cond, Decl(parserRealSource11.ts, 1509, 36))
// TODO: check for while (true)
context.current = afterLoop;
>context : Symbol(context, Decl(parserRealSource11.ts, 1538, 32))
>afterLoop : Symbol(afterLoop, Decl(parserRealSource11.ts, 1541, 15))
loopEnd.addSuccessor(afterLoop);
>loopEnd : Symbol(loopEnd, Decl(parserRealSource11.ts, 1551, 19))
>afterLoop : Symbol(afterLoop, Decl(parserRealSource11.ts, 1541, 15))
}
else {
context.addUnreachable(this.cond);
>context : Symbol(context, Decl(parserRealSource11.ts, 1538, 32))
>this.cond : Symbol(DoWhileStatement.cond, Decl(parserRealSource11.ts, 1509, 36))
>this : Symbol(DoWhileStatement, Decl(parserRealSource11.ts, 1505, 5))
>cond : Symbol(DoWhileStatement.cond, Decl(parserRealSource11.ts, 1509, 36))
}
context.walker.options.goChildren = false;
>context : Symbol(context, Decl(parserRealSource11.ts, 1538, 32))
}
}
export class IfStatement extends Statement {
>IfStatement : Symbol(IfStatement, Decl(parserRealSource11.ts, 1563, 5))
>Statement : Symbol(Statement, Decl(parserRealSource11.ts, 1291, 5))
public thenBod: AST;
>thenBod : Symbol(IfStatement.thenBod, Decl(parserRealSource11.ts, 1565, 48))
>AST : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
public elseBod: AST = null;
>elseBod : Symbol(IfStatement.elseBod, Decl(parserRealSource11.ts, 1566, 28))
>AST : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
public statement: ASTSpan = new ASTSpan();
>statement : Symbol(IfStatement.statement, Decl(parserRealSource11.ts, 1567, 35))
>ASTSpan : Symbol(ASTSpan, Decl(parserRealSource11.ts, 5, 19))
>ASTSpan : Symbol(ASTSpan, Decl(parserRealSource11.ts, 5, 19))
constructor (public cond: AST) {
>cond : Symbol(IfStatement.cond, Decl(parserRealSource11.ts, 1570, 21))
>AST : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
super(NodeType.If);
>super : Symbol(Statement, Decl(parserRealSource11.ts, 1291, 5))
}
public isCompoundStatement() { return true; }
>isCompoundStatement : Symbol(IfStatement.isCompoundStatement, Decl(parserRealSource11.ts, 1572, 9))
public emit(emitter: Emitter, tokenId: TokenID, startLine: boolean) {
>emit : Symbol(IfStatement.emit, Decl(parserRealSource11.ts, 1574, 53))
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1576, 20))
>Emitter : Symbol(Emitter)
>tokenId : Symbol(tokenId, Decl(parserRealSource11.ts, 1576, 37))
>TokenID : Symbol(TokenID)
>startLine : Symbol(startLine, Decl(parserRealSource11.ts, 1576, 55))
emitter.emitParensAndCommentsInPlace(this, true);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1576, 20))
>this : Symbol(IfStatement, Decl(parserRealSource11.ts, 1563, 5))
emitter.recordSourceMappingStart(this);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1576, 20))
>this : Symbol(IfStatement, Decl(parserRealSource11.ts, 1563, 5))
var temp = emitter.setInObjectLiteral(false);
>temp : Symbol(temp, Decl(parserRealSource11.ts, 1579, 15))
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1576, 20))
emitter.recordSourceMappingStart(this.statement);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1576, 20))
>this.statement : Symbol(IfStatement.statement, Decl(parserRealSource11.ts, 1567, 35))
>this : Symbol(IfStatement, Decl(parserRealSource11.ts, 1563, 5))
>statement : Symbol(IfStatement.statement, Decl(parserRealSource11.ts, 1567, 35))
emitter.writeToOutput("if(");
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1576, 20))
emitter.emitJavascript(this.cond, TokenID.If, false);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1576, 20))
>this.cond : Symbol(IfStatement.cond, Decl(parserRealSource11.ts, 1570, 21))
>this : Symbol(IfStatement, Decl(parserRealSource11.ts, 1563, 5))
>cond : Symbol(IfStatement.cond, Decl(parserRealSource11.ts, 1570, 21))
emitter.writeToOutput(")");
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1576, 20))
emitter.recordSourceMappingEnd(this.statement);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1576, 20))
>this.statement : Symbol(IfStatement.statement, Decl(parserRealSource11.ts, 1567, 35))
>this : Symbol(IfStatement, Decl(parserRealSource11.ts, 1563, 5))
>statement : Symbol(IfStatement.statement, Decl(parserRealSource11.ts, 1567, 35))
emitter.emitJavascriptStatements(this.thenBod, true, false);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1576, 20))
>this.thenBod : Symbol(IfStatement.thenBod, Decl(parserRealSource11.ts, 1565, 48))
>this : Symbol(IfStatement, Decl(parserRealSource11.ts, 1563, 5))
>thenBod : Symbol(IfStatement.thenBod, Decl(parserRealSource11.ts, 1565, 48))
if (this.elseBod) {
>this.elseBod : Symbol(IfStatement.elseBod, Decl(parserRealSource11.ts, 1566, 28))
>this : Symbol(IfStatement, Decl(parserRealSource11.ts, 1563, 5))
>elseBod : Symbol(IfStatement.elseBod, Decl(parserRealSource11.ts, 1566, 28))
emitter.writeToOutput(" else");
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1576, 20))
emitter.emitJavascriptStatements(this.elseBod, true, true);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1576, 20))
>this.elseBod : Symbol(IfStatement.elseBod, Decl(parserRealSource11.ts, 1566, 28))
>this : Symbol(IfStatement, Decl(parserRealSource11.ts, 1563, 5))
>elseBod : Symbol(IfStatement.elseBod, Decl(parserRealSource11.ts, 1566, 28))
}
emitter.setInObjectLiteral(temp);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1576, 20))
>temp : Symbol(temp, Decl(parserRealSource11.ts, 1579, 15))
emitter.recordSourceMappingEnd(this);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1576, 20))
>this : Symbol(IfStatement, Decl(parserRealSource11.ts, 1563, 5))
emitter.emitParensAndCommentsInPlace(this, false);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1576, 20))
>this : Symbol(IfStatement, Decl(parserRealSource11.ts, 1563, 5))
}
public typeCheck(typeFlow: TypeFlow) {
>typeCheck : Symbol(IfStatement.typeCheck, Decl(parserRealSource11.ts, 1593, 9))
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 1595, 25))
>TypeFlow : Symbol(TypeFlow)
return typeFlow.typeCheckIf(this);
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 1595, 25))
>this : Symbol(IfStatement, Decl(parserRealSource11.ts, 1563, 5))
}
public addToControlFlow(context: ControlFlowContext): void {
>addToControlFlow : Symbol(IfStatement.addToControlFlow, Decl(parserRealSource11.ts, 1597, 9))
>context : Symbol(context, Decl(parserRealSource11.ts, 1599, 32))
>ControlFlowContext : Symbol(ControlFlowContext)
this.cond.addToControlFlow(context);
>this.cond.addToControlFlow : Symbol(AST.addToControlFlow, Decl(parserRealSource11.ts, 142, 9))
>this.cond : Symbol(IfStatement.cond, Decl(parserRealSource11.ts, 1570, 21))
>this : Symbol(IfStatement, Decl(parserRealSource11.ts, 1563, 5))
>cond : Symbol(IfStatement.cond, Decl(parserRealSource11.ts, 1570, 21))
>addToControlFlow : Symbol(AST.addToControlFlow, Decl(parserRealSource11.ts, 142, 9))
>context : Symbol(context, Decl(parserRealSource11.ts, 1599, 32))
var afterIf = new BasicBlock();
>afterIf : Symbol(afterIf, Decl(parserRealSource11.ts, 1601, 15))
var beforeIf = context.current;
>beforeIf : Symbol(beforeIf, Decl(parserRealSource11.ts, 1602, 15))
>context : Symbol(context, Decl(parserRealSource11.ts, 1599, 32))
context.pushStatement(this, beforeIf, afterIf);
>context : Symbol(context, Decl(parserRealSource11.ts, 1599, 32))
>this : Symbol(IfStatement, Decl(parserRealSource11.ts, 1563, 5))
>beforeIf : Symbol(beforeIf, Decl(parserRealSource11.ts, 1602, 15))
>afterIf : Symbol(afterIf, Decl(parserRealSource11.ts, 1601, 15))
var hasContinuation = false;
>hasContinuation : Symbol(hasContinuation, Decl(parserRealSource11.ts, 1604, 15))
context.current = new BasicBlock();
>context : Symbol(context, Decl(parserRealSource11.ts, 1599, 32))
beforeIf.addSuccessor(context.current);
>beforeIf : Symbol(beforeIf, Decl(parserRealSource11.ts, 1602, 15))
>context : Symbol(context, Decl(parserRealSource11.ts, 1599, 32))
context.walk(this.thenBod, this);
>context : Symbol(context, Decl(parserRealSource11.ts, 1599, 32))
>this.thenBod : Symbol(IfStatement.thenBod, Decl(parserRealSource11.ts, 1565, 48))
>this : Symbol(IfStatement, Decl(parserRealSource11.ts, 1563, 5))
>thenBod : Symbol(IfStatement.thenBod, Decl(parserRealSource11.ts, 1565, 48))
>this : Symbol(IfStatement, Decl(parserRealSource11.ts, 1563, 5))
if (!context.noContinuation) {
>context : Symbol(context, Decl(parserRealSource11.ts, 1599, 32))
hasContinuation = true;
>hasContinuation : Symbol(hasContinuation, Decl(parserRealSource11.ts, 1604, 15))
context.current.addSuccessor(afterIf);
>context : Symbol(context, Decl(parserRealSource11.ts, 1599, 32))
>afterIf : Symbol(afterIf, Decl(parserRealSource11.ts, 1601, 15))
}
if (this.elseBod) {
>this.elseBod : Symbol(IfStatement.elseBod, Decl(parserRealSource11.ts, 1566, 28))
>this : Symbol(IfStatement, Decl(parserRealSource11.ts, 1563, 5))
>elseBod : Symbol(IfStatement.elseBod, Decl(parserRealSource11.ts, 1566, 28))
// current block will be thenBod
context.current = new BasicBlock();
>context : Symbol(context, Decl(parserRealSource11.ts, 1599, 32))
context.noContinuation = false;
>context : Symbol(context, Decl(parserRealSource11.ts, 1599, 32))
beforeIf.addSuccessor(context.current);
>beforeIf : Symbol(beforeIf, Decl(parserRealSource11.ts, 1602, 15))
>context : Symbol(context, Decl(parserRealSource11.ts, 1599, 32))
context.walk(this.elseBod, this);
>context : Symbol(context, Decl(parserRealSource11.ts, 1599, 32))
>this.elseBod : Symbol(IfStatement.elseBod, Decl(parserRealSource11.ts, 1566, 28))
>this : Symbol(IfStatement, Decl(parserRealSource11.ts, 1563, 5))
>elseBod : Symbol(IfStatement.elseBod, Decl(parserRealSource11.ts, 1566, 28))
>this : Symbol(IfStatement, Decl(parserRealSource11.ts, 1563, 5))
if (!context.noContinuation) {
>context : Symbol(context, Decl(parserRealSource11.ts, 1599, 32))
hasContinuation = true;
>hasContinuation : Symbol(hasContinuation, Decl(parserRealSource11.ts, 1604, 15))
context.current.addSuccessor(afterIf);
>context : Symbol(context, Decl(parserRealSource11.ts, 1599, 32))
>afterIf : Symbol(afterIf, Decl(parserRealSource11.ts, 1601, 15))
}
else {
// thenBod created continuation for if statement
if (hasContinuation) {
>hasContinuation : Symbol(hasContinuation, Decl(parserRealSource11.ts, 1604, 15))
context.noContinuation = false;
>context : Symbol(context, Decl(parserRealSource11.ts, 1599, 32))
}
}
}
else {
beforeIf.addSuccessor(afterIf);
>beforeIf : Symbol(beforeIf, Decl(parserRealSource11.ts, 1602, 15))
>afterIf : Symbol(afterIf, Decl(parserRealSource11.ts, 1601, 15))
context.noContinuation = false;
>context : Symbol(context, Decl(parserRealSource11.ts, 1599, 32))
hasContinuation = true;
>hasContinuation : Symbol(hasContinuation, Decl(parserRealSource11.ts, 1604, 15))
}
var targetInfo = context.popStatement();
>targetInfo : Symbol(targetInfo, Decl(parserRealSource11.ts, 1634, 15))
>context : Symbol(context, Decl(parserRealSource11.ts, 1599, 32))
if (afterIf.predecessors.length > 0) {
>afterIf : Symbol(afterIf, Decl(parserRealSource11.ts, 1601, 15))
context.noContinuation = false;
>context : Symbol(context, Decl(parserRealSource11.ts, 1599, 32))
hasContinuation = true;
>hasContinuation : Symbol(hasContinuation, Decl(parserRealSource11.ts, 1604, 15))
}
if (hasContinuation) {
>hasContinuation : Symbol(hasContinuation, Decl(parserRealSource11.ts, 1604, 15))
context.current = afterIf;
>context : Symbol(context, Decl(parserRealSource11.ts, 1599, 32))
>afterIf : Symbol(afterIf, Decl(parserRealSource11.ts, 1601, 15))
}
context.walker.options.goChildren = false;
>context : Symbol(context, Decl(parserRealSource11.ts, 1599, 32))
}
}
export class ReturnStatement extends Statement {
>ReturnStatement : Symbol(ReturnStatement, Decl(parserRealSource11.ts, 1644, 5))
>Statement : Symbol(Statement, Decl(parserRealSource11.ts, 1291, 5))
public returnExpression: AST = null;
>returnExpression : Symbol(ReturnStatement.returnExpression, Decl(parserRealSource11.ts, 1646, 52))
>AST : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
constructor () {
super(NodeType.Return);
>super : Symbol(Statement, Decl(parserRealSource11.ts, 1291, 5))
}
public emit(emitter: Emitter, tokenId: TokenID, startLine: boolean) {
>emit : Symbol(ReturnStatement.emit, Decl(parserRealSource11.ts, 1651, 9))
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1653, 20))
>Emitter : Symbol(Emitter)
>tokenId : Symbol(tokenId, Decl(parserRealSource11.ts, 1653, 37))
>TokenID : Symbol(TokenID)
>startLine : Symbol(startLine, Decl(parserRealSource11.ts, 1653, 55))
emitter.emitParensAndCommentsInPlace(this, true);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1653, 20))
>this : Symbol(ReturnStatement, Decl(parserRealSource11.ts, 1644, 5))
emitter.recordSourceMappingStart(this);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1653, 20))
>this : Symbol(ReturnStatement, Decl(parserRealSource11.ts, 1644, 5))
var temp = emitter.setInObjectLiteral(false);
>temp : Symbol(temp, Decl(parserRealSource11.ts, 1656, 15))
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1653, 20))
if (this.returnExpression) {
>this.returnExpression : Symbol(ReturnStatement.returnExpression, Decl(parserRealSource11.ts, 1646, 52))
>this : Symbol(ReturnStatement, Decl(parserRealSource11.ts, 1644, 5))
>returnExpression : Symbol(ReturnStatement.returnExpression, Decl(parserRealSource11.ts, 1646, 52))
emitter.writeToOutput("return ");
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1653, 20))
emitter.emitJavascript(this.returnExpression, TokenID.Semicolon, false);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1653, 20))
>this.returnExpression : Symbol(ReturnStatement.returnExpression, Decl(parserRealSource11.ts, 1646, 52))
>this : Symbol(ReturnStatement, Decl(parserRealSource11.ts, 1644, 5))
>returnExpression : Symbol(ReturnStatement.returnExpression, Decl(parserRealSource11.ts, 1646, 52))
}
else {
emitter.writeToOutput("return;");
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1653, 20))
}
emitter.setInObjectLiteral(temp);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1653, 20))
>temp : Symbol(temp, Decl(parserRealSource11.ts, 1656, 15))
emitter.recordSourceMappingEnd(this);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1653, 20))
>this : Symbol(ReturnStatement, Decl(parserRealSource11.ts, 1644, 5))
emitter.emitParensAndCommentsInPlace(this, false);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1653, 20))
>this : Symbol(ReturnStatement, Decl(parserRealSource11.ts, 1644, 5))
}
public addToControlFlow(context: ControlFlowContext): void {
>addToControlFlow : Symbol(ReturnStatement.addToControlFlow, Decl(parserRealSource11.ts, 1667, 9))
>context : Symbol(context, Decl(parserRealSource11.ts, 1669, 32))
>ControlFlowContext : Symbol(ControlFlowContext)
super.addToControlFlow(context);
>super.addToControlFlow : Symbol(AST.addToControlFlow, Decl(parserRealSource11.ts, 142, 9))
>super : Symbol(Statement, Decl(parserRealSource11.ts, 1291, 5))
>addToControlFlow : Symbol(AST.addToControlFlow, Decl(parserRealSource11.ts, 142, 9))
>context : Symbol(context, Decl(parserRealSource11.ts, 1669, 32))
context.returnStmt();
>context : Symbol(context, Decl(parserRealSource11.ts, 1669, 32))
}
public typeCheck(typeFlow: TypeFlow) {
>typeCheck : Symbol(ReturnStatement.typeCheck, Decl(parserRealSource11.ts, 1672, 9))
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 1674, 25))
>TypeFlow : Symbol(TypeFlow)
return typeFlow.typeCheckReturn(this);
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 1674, 25))
>this : Symbol(ReturnStatement, Decl(parserRealSource11.ts, 1644, 5))
}
}
export class EndCode extends AST {
>EndCode : Symbol(EndCode, Decl(parserRealSource11.ts, 1677, 5))
>AST : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
constructor () {
super(NodeType.EndCode);
>super : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
}
}
export class ForInStatement extends Statement {
>ForInStatement : Symbol(ForInStatement, Decl(parserRealSource11.ts, 1683, 5))
>Statement : Symbol(Statement, Decl(parserRealSource11.ts, 1291, 5))
constructor (public lval: AST, public obj: AST) {
>lval : Symbol(ForInStatement.lval, Decl(parserRealSource11.ts, 1686, 21))
>AST : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
>obj : Symbol(ForInStatement.obj, Decl(parserRealSource11.ts, 1686, 38))
>AST : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
super(NodeType.ForIn);
>super : Symbol(Statement, Decl(parserRealSource11.ts, 1291, 5))
if (this.lval && (this.lval.nodeType == NodeType.VarDecl)) {
>this.lval : Symbol(ForInStatement.lval, Decl(parserRealSource11.ts, 1686, 21))
>this : Symbol(ForInStatement, Decl(parserRealSource11.ts, 1683, 5))
>lval : Symbol(ForInStatement.lval, Decl(parserRealSource11.ts, 1686, 21))
>this.lval.nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
>this.lval : Symbol(ForInStatement.lval, Decl(parserRealSource11.ts, 1686, 21))
>this : Symbol(ForInStatement, Decl(parserRealSource11.ts, 1683, 5))
>lval : Symbol(ForInStatement.lval, Decl(parserRealSource11.ts, 1686, 21))
>nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
(<BoundDecl>this.lval).varFlags |= VarFlags.AutoInit;
>(<BoundDecl>this.lval).varFlags : Symbol(BoundDecl.varFlags, Decl(parserRealSource11.ts, 889, 36))
>BoundDecl : Symbol(BoundDecl, Decl(parserRealSource11.ts, 885, 5))
>this.lval : Symbol(ForInStatement.lval, Decl(parserRealSource11.ts, 1686, 21))
>this : Symbol(ForInStatement, Decl(parserRealSource11.ts, 1683, 5))
>lval : Symbol(ForInStatement.lval, Decl(parserRealSource11.ts, 1686, 21))
>varFlags : Symbol(BoundDecl.varFlags, Decl(parserRealSource11.ts, 889, 36))
}
}
public statement: ASTSpan = new ASTSpan();
>statement : Symbol(ForInStatement.statement, Decl(parserRealSource11.ts, 1691, 9))
>ASTSpan : Symbol(ASTSpan, Decl(parserRealSource11.ts, 5, 19))
>ASTSpan : Symbol(ASTSpan, Decl(parserRealSource11.ts, 5, 19))
public body: AST;
>body : Symbol(ForInStatement.body, Decl(parserRealSource11.ts, 1692, 50))
>AST : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
public isLoop() { return true; }
>isLoop : Symbol(ForInStatement.isLoop, Decl(parserRealSource11.ts, 1693, 25))
public isFiltered() {
>isFiltered : Symbol(ForInStatement.isFiltered, Decl(parserRealSource11.ts, 1695, 40))
if (this.body) {
>this.body : Symbol(ForInStatement.body, Decl(parserRealSource11.ts, 1692, 50))
>this : Symbol(ForInStatement, Decl(parserRealSource11.ts, 1683, 5))
>body : Symbol(ForInStatement.body, Decl(parserRealSource11.ts, 1692, 50))
var singleItem: AST = null;
>singleItem : Symbol(singleItem, Decl(parserRealSource11.ts, 1699, 19))
>AST : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
if (this.body.nodeType == NodeType.List) {
>this.body.nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
>this.body : Symbol(ForInStatement.body, Decl(parserRealSource11.ts, 1692, 50))
>this : Symbol(ForInStatement, Decl(parserRealSource11.ts, 1683, 5))
>body : Symbol(ForInStatement.body, Decl(parserRealSource11.ts, 1692, 50))
>nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
var stmts = <ASTList>this.body;
>stmts : Symbol(stmts, Decl(parserRealSource11.ts, 1701, 23))
>ASTList : Symbol(ASTList, Decl(parserRealSource11.ts, 188, 5))
>this.body : Symbol(ForInStatement.body, Decl(parserRealSource11.ts, 1692, 50))
>this : Symbol(ForInStatement, Decl(parserRealSource11.ts, 1683, 5))
>body : Symbol(ForInStatement.body, Decl(parserRealSource11.ts, 1692, 50))
if (stmts.members.length == 1) {
>stmts.members.length : Symbol(Array.length, Decl(lib.es5.d.ts, --, --))
>stmts.members : Symbol(ASTList.members, Decl(parserRealSource11.ts, 191, 50))
>stmts : Symbol(stmts, Decl(parserRealSource11.ts, 1701, 23))
>members : Symbol(ASTList.members, Decl(parserRealSource11.ts, 191, 50))
>length : Symbol(Array.length, Decl(lib.es5.d.ts, --, --))
singleItem = stmts.members[0];
>singleItem : Symbol(singleItem, Decl(parserRealSource11.ts, 1699, 19))
>stmts.members : Symbol(ASTList.members, Decl(parserRealSource11.ts, 191, 50))
>stmts : Symbol(stmts, Decl(parserRealSource11.ts, 1701, 23))
>members : Symbol(ASTList.members, Decl(parserRealSource11.ts, 191, 50))
}
}
else {
singleItem = this.body;
>singleItem : Symbol(singleItem, Decl(parserRealSource11.ts, 1699, 19))
>this.body : Symbol(ForInStatement.body, Decl(parserRealSource11.ts, 1692, 50))
>this : Symbol(ForInStatement, Decl(parserRealSource11.ts, 1683, 5))
>body : Symbol(ForInStatement.body, Decl(parserRealSource11.ts, 1692, 50))
}
// match template for filtering 'own' properties from obj
if (singleItem !== null) {
>singleItem : Symbol(singleItem, Decl(parserRealSource11.ts, 1699, 19))
if (singleItem.nodeType == NodeType.Block) {
>singleItem.nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
>singleItem : Symbol(singleItem, Decl(parserRealSource11.ts, 1699, 19))
>nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
var block = <Block>singleItem;
>block : Symbol(block, Decl(parserRealSource11.ts, 1712, 27))
>Block : Symbol(Block, Decl(parserRealSource11.ts, 1342, 5))
>singleItem : Symbol(singleItem, Decl(parserRealSource11.ts, 1699, 19))
if ((block.statements !== null) && (block.statements.members.length == 1)) {
>block.statements : Symbol(Block.statements, Decl(parserRealSource11.ts, 1345, 21))
>block : Symbol(block, Decl(parserRealSource11.ts, 1712, 27))
>statements : Symbol(Block.statements, Decl(parserRealSource11.ts, 1345, 21))
>block.statements.members.length : Symbol(Array.length, Decl(lib.es5.d.ts, --, --))
>block.statements.members : Symbol(ASTList.members, Decl(parserRealSource11.ts, 191, 50))
>block.statements : Symbol(Block.statements, Decl(parserRealSource11.ts, 1345, 21))
>block : Symbol(block, Decl(parserRealSource11.ts, 1712, 27))
>statements : Symbol(Block.statements, Decl(parserRealSource11.ts, 1345, 21))
>members : Symbol(ASTList.members, Decl(parserRealSource11.ts, 191, 50))
>length : Symbol(Array.length, Decl(lib.es5.d.ts, --, --))
singleItem = block.statements.members[0];
>singleItem : Symbol(singleItem, Decl(parserRealSource11.ts, 1699, 19))
>block.statements.members : Symbol(ASTList.members, Decl(parserRealSource11.ts, 191, 50))
>block.statements : Symbol(Block.statements, Decl(parserRealSource11.ts, 1345, 21))
>block : Symbol(block, Decl(parserRealSource11.ts, 1712, 27))
>statements : Symbol(Block.statements, Decl(parserRealSource11.ts, 1345, 21))
>members : Symbol(ASTList.members, Decl(parserRealSource11.ts, 191, 50))
}
}
if (singleItem.nodeType == NodeType.If) {
>singleItem.nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
>singleItem : Symbol(singleItem, Decl(parserRealSource11.ts, 1699, 19))
>nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
var cond = (<IfStatement>singleItem).cond;
>cond : Symbol(cond, Decl(parserRealSource11.ts, 1718, 27))
>(<IfStatement>singleItem).cond : Symbol(IfStatement.cond, Decl(parserRealSource11.ts, 1570, 21))
>IfStatement : Symbol(IfStatement, Decl(parserRealSource11.ts, 1563, 5))
>singleItem : Symbol(singleItem, Decl(parserRealSource11.ts, 1699, 19))
>cond : Symbol(IfStatement.cond, Decl(parserRealSource11.ts, 1570, 21))
if (cond.nodeType == NodeType.Call) {
>cond.nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
>cond : Symbol(cond, Decl(parserRealSource11.ts, 1718, 27))
>nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
var target = (<CallExpression>cond).target;
>target : Symbol(target, Decl(parserRealSource11.ts, 1720, 31))
>(<CallExpression>cond).target : Symbol(CallExpression.target, Decl(parserRealSource11.ts, 517, 40))
>CallExpression : Symbol(CallExpression, Decl(parserRealSource11.ts, 514, 5))
>cond : Symbol(cond, Decl(parserRealSource11.ts, 1718, 27))
>target : Symbol(CallExpression.target, Decl(parserRealSource11.ts, 517, 40))
if (target.nodeType == NodeType.Dot) {
>target.nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
>target : Symbol(target, Decl(parserRealSource11.ts, 1720, 31))
>nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
var binex = <BinaryExpression>target;
>binex : Symbol(binex, Decl(parserRealSource11.ts, 1722, 35))
>BinaryExpression : Symbol(BinaryExpression, Decl(parserRealSource11.ts, 549, 5))
>target : Symbol(target, Decl(parserRealSource11.ts, 1720, 31))
if ((binex.operand1.nodeType == NodeType.Name) &&
>binex.operand1.nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
>binex.operand1 : Symbol(BinaryExpression.operand1, Decl(parserRealSource11.ts, 552, 40))
>binex : Symbol(binex, Decl(parserRealSource11.ts, 1722, 35))
>operand1 : Symbol(BinaryExpression.operand1, Decl(parserRealSource11.ts, 552, 40))
>nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
(this.obj.nodeType == NodeType.Name) &&
>this.obj.nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
>this.obj : Symbol(ForInStatement.obj, Decl(parserRealSource11.ts, 1686, 38))
>this : Symbol(ForInStatement, Decl(parserRealSource11.ts, 1683, 5))
>obj : Symbol(ForInStatement.obj, Decl(parserRealSource11.ts, 1686, 38))
>nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
((<Identifier>binex.operand1).actualText == (<Identifier>this.obj).actualText)) {
>(<Identifier>binex.operand1).actualText : Symbol(Identifier.actualText, Decl(parserRealSource11.ts, 266, 21))
>Identifier : Symbol(Identifier, Decl(parserRealSource11.ts, 247, 5))
>binex.operand1 : Symbol(BinaryExpression.operand1, Decl(parserRealSource11.ts, 552, 40))
>binex : Symbol(binex, Decl(parserRealSource11.ts, 1722, 35))
>operand1 : Symbol(BinaryExpression.operand1, Decl(parserRealSource11.ts, 552, 40))
>actualText : Symbol(Identifier.actualText, Decl(parserRealSource11.ts, 266, 21))
>(<Identifier>this.obj).actualText : Symbol(Identifier.actualText, Decl(parserRealSource11.ts, 266, 21))
>Identifier : Symbol(Identifier, Decl(parserRealSource11.ts, 247, 5))
>this.obj : Symbol(ForInStatement.obj, Decl(parserRealSource11.ts, 1686, 38))
>this : Symbol(ForInStatement, Decl(parserRealSource11.ts, 1683, 5))
>obj : Symbol(ForInStatement.obj, Decl(parserRealSource11.ts, 1686, 38))
>actualText : Symbol(Identifier.actualText, Decl(parserRealSource11.ts, 266, 21))
var prop = <Identifier>binex.operand2;
>prop : Symbol(prop, Decl(parserRealSource11.ts, 1726, 39))
>Identifier : Symbol(Identifier, Decl(parserRealSource11.ts, 247, 5))
>binex.operand2 : Symbol(BinaryExpression.operand2, Decl(parserRealSource11.ts, 552, 62))
>binex : Symbol(binex, Decl(parserRealSource11.ts, 1722, 35))
>operand2 : Symbol(BinaryExpression.operand2, Decl(parserRealSource11.ts, 552, 62))
if (prop.actualText == "hasOwnProperty") {
>prop.actualText : Symbol(Identifier.actualText, Decl(parserRealSource11.ts, 266, 21))
>prop : Symbol(prop, Decl(parserRealSource11.ts, 1726, 39))
>actualText : Symbol(Identifier.actualText, Decl(parserRealSource11.ts, 266, 21))
var args = (<CallExpression>cond).arguments;
>args : Symbol(args, Decl(parserRealSource11.ts, 1728, 43))
>(<CallExpression>cond).arguments : Symbol(CallExpression.arguments, Decl(parserRealSource11.ts, 518, 40))
>CallExpression : Symbol(CallExpression, Decl(parserRealSource11.ts, 514, 5))
>cond : Symbol(cond, Decl(parserRealSource11.ts, 1718, 27))
>arguments : Symbol(CallExpression.arguments, Decl(parserRealSource11.ts, 518, 40))
if ((args !== null) && (args.members.length == 1)) {
>args : Symbol(args, Decl(parserRealSource11.ts, 1728, 43))
>args.members.length : Symbol(Array.length, Decl(lib.es5.d.ts, --, --))
>args.members : Symbol(ASTList.members, Decl(parserRealSource11.ts, 191, 50))
>args : Symbol(args, Decl(parserRealSource11.ts, 1728, 43))
>members : Symbol(ASTList.members, Decl(parserRealSource11.ts, 191, 50))
>length : Symbol(Array.length, Decl(lib.es5.d.ts, --, --))
var arg = args.members[0];
>arg : Symbol(arg, Decl(parserRealSource11.ts, 1730, 47))
>args.members : Symbol(ASTList.members, Decl(parserRealSource11.ts, 191, 50))
>args : Symbol(args, Decl(parserRealSource11.ts, 1728, 43))
>members : Symbol(ASTList.members, Decl(parserRealSource11.ts, 191, 50))
if ((arg.nodeType == NodeType.Name) &&
>arg.nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
>arg : Symbol(arg, Decl(parserRealSource11.ts, 1730, 47))
>nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
(this.lval.nodeType == NodeType.Name)) {
>this.lval.nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
>this.lval : Symbol(ForInStatement.lval, Decl(parserRealSource11.ts, 1686, 21))
>this : Symbol(ForInStatement, Decl(parserRealSource11.ts, 1683, 5))
>lval : Symbol(ForInStatement.lval, Decl(parserRealSource11.ts, 1686, 21))
>nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
if (((<Identifier>this.lval).actualText) == (<Identifier>arg).actualText) {
>(<Identifier>this.lval).actualText : Symbol(Identifier.actualText, Decl(parserRealSource11.ts, 266, 21))
>Identifier : Symbol(Identifier, Decl(parserRealSource11.ts, 247, 5))
>this.lval : Symbol(ForInStatement.lval, Decl(parserRealSource11.ts, 1686, 21))
>this : Symbol(ForInStatement, Decl(parserRealSource11.ts, 1683, 5))
>lval : Symbol(ForInStatement.lval, Decl(parserRealSource11.ts, 1686, 21))
>actualText : Symbol(Identifier.actualText, Decl(parserRealSource11.ts, 266, 21))
>(<Identifier>arg).actualText : Symbol(Identifier.actualText, Decl(parserRealSource11.ts, 266, 21))
>Identifier : Symbol(Identifier, Decl(parserRealSource11.ts, 247, 5))
>arg : Symbol(arg, Decl(parserRealSource11.ts, 1730, 47))
>actualText : Symbol(Identifier.actualText, Decl(parserRealSource11.ts, 266, 21))
return true;
}
}
}
}
}
}
}
}
}
}
return false;
}
public emit(emitter: Emitter, tokenId: TokenID, startLine: boolean) {
>emit : Symbol(ForInStatement.emit, Decl(parserRealSource11.ts, 1746, 9))
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1748, 20))
>Emitter : Symbol(Emitter)
>tokenId : Symbol(tokenId, Decl(parserRealSource11.ts, 1748, 37))
>TokenID : Symbol(TokenID)
>startLine : Symbol(startLine, Decl(parserRealSource11.ts, 1748, 55))
emitter.emitParensAndCommentsInPlace(this, true);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1748, 20))
>this : Symbol(ForInStatement, Decl(parserRealSource11.ts, 1683, 5))
emitter.recordSourceMappingStart(this);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1748, 20))
>this : Symbol(ForInStatement, Decl(parserRealSource11.ts, 1683, 5))
var temp = emitter.setInObjectLiteral(false);
>temp : Symbol(temp, Decl(parserRealSource11.ts, 1751, 15))
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1748, 20))
emitter.recordSourceMappingStart(this.statement);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1748, 20))
>this.statement : Symbol(ForInStatement.statement, Decl(parserRealSource11.ts, 1691, 9))
>this : Symbol(ForInStatement, Decl(parserRealSource11.ts, 1683, 5))
>statement : Symbol(ForInStatement.statement, Decl(parserRealSource11.ts, 1691, 9))
emitter.writeToOutput("for(");
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1748, 20))
emitter.emitJavascript(this.lval, TokenID.For, false);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1748, 20))
>this.lval : Symbol(ForInStatement.lval, Decl(parserRealSource11.ts, 1686, 21))
>this : Symbol(ForInStatement, Decl(parserRealSource11.ts, 1683, 5))
>lval : Symbol(ForInStatement.lval, Decl(parserRealSource11.ts, 1686, 21))
emitter.writeToOutput(" in ");
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1748, 20))
emitter.emitJavascript(this.obj, TokenID.For, false);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1748, 20))
>this.obj : Symbol(ForInStatement.obj, Decl(parserRealSource11.ts, 1686, 38))
>this : Symbol(ForInStatement, Decl(parserRealSource11.ts, 1683, 5))
>obj : Symbol(ForInStatement.obj, Decl(parserRealSource11.ts, 1686, 38))
emitter.writeToOutput(")");
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1748, 20))
emitter.recordSourceMappingEnd(this.statement);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1748, 20))
>this.statement : Symbol(ForInStatement.statement, Decl(parserRealSource11.ts, 1691, 9))
>this : Symbol(ForInStatement, Decl(parserRealSource11.ts, 1683, 5))
>statement : Symbol(ForInStatement.statement, Decl(parserRealSource11.ts, 1691, 9))
emitter.emitJavascriptStatements(this.body, true, false);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1748, 20))
>this.body : Symbol(ForInStatement.body, Decl(parserRealSource11.ts, 1692, 50))
>this : Symbol(ForInStatement, Decl(parserRealSource11.ts, 1683, 5))
>body : Symbol(ForInStatement.body, Decl(parserRealSource11.ts, 1692, 50))
emitter.setInObjectLiteral(temp);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1748, 20))
>temp : Symbol(temp, Decl(parserRealSource11.ts, 1751, 15))
emitter.recordSourceMappingEnd(this);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1748, 20))
>this : Symbol(ForInStatement, Decl(parserRealSource11.ts, 1683, 5))
emitter.emitParensAndCommentsInPlace(this, false);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1748, 20))
>this : Symbol(ForInStatement, Decl(parserRealSource11.ts, 1683, 5))
}
public typeCheck(typeFlow: TypeFlow) {
>typeCheck : Symbol(ForInStatement.typeCheck, Decl(parserRealSource11.ts, 1763, 9))
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 1765, 25))
>TypeFlow : Symbol(TypeFlow)
if (typeFlow.checker.styleSettings.forin) {
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 1765, 25))
if (!this.isFiltered()) {
>this.isFiltered : Symbol(ForInStatement.isFiltered, Decl(parserRealSource11.ts, 1695, 40))
>this : Symbol(ForInStatement, Decl(parserRealSource11.ts, 1683, 5))
>isFiltered : Symbol(ForInStatement.isFiltered, Decl(parserRealSource11.ts, 1695, 40))
typeFlow.checker.errorReporter.styleError(this, "no hasOwnProperty filter");
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 1765, 25))
>this : Symbol(ForInStatement, Decl(parserRealSource11.ts, 1683, 5))
}
}
return typeFlow.typeCheckForIn(this);
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 1765, 25))
>this : Symbol(ForInStatement, Decl(parserRealSource11.ts, 1683, 5))
}
public addToControlFlow(context: ControlFlowContext): void {
>addToControlFlow : Symbol(ForInStatement.addToControlFlow, Decl(parserRealSource11.ts, 1772, 9))
>context : Symbol(context, Decl(parserRealSource11.ts, 1774, 32))
>ControlFlowContext : Symbol(ControlFlowContext)
if (this.lval) {
>this.lval : Symbol(ForInStatement.lval, Decl(parserRealSource11.ts, 1686, 21))
>this : Symbol(ForInStatement, Decl(parserRealSource11.ts, 1683, 5))
>lval : Symbol(ForInStatement.lval, Decl(parserRealSource11.ts, 1686, 21))
context.addContent(this.lval);
>context : Symbol(context, Decl(parserRealSource11.ts, 1774, 32))
>this.lval : Symbol(ForInStatement.lval, Decl(parserRealSource11.ts, 1686, 21))
>this : Symbol(ForInStatement, Decl(parserRealSource11.ts, 1683, 5))
>lval : Symbol(ForInStatement.lval, Decl(parserRealSource11.ts, 1686, 21))
}
if (this.obj) {
>this.obj : Symbol(ForInStatement.obj, Decl(parserRealSource11.ts, 1686, 38))
>this : Symbol(ForInStatement, Decl(parserRealSource11.ts, 1683, 5))
>obj : Symbol(ForInStatement.obj, Decl(parserRealSource11.ts, 1686, 38))
context.addContent(this.obj);
>context : Symbol(context, Decl(parserRealSource11.ts, 1774, 32))
>this.obj : Symbol(ForInStatement.obj, Decl(parserRealSource11.ts, 1686, 38))
>this : Symbol(ForInStatement, Decl(parserRealSource11.ts, 1683, 5))
>obj : Symbol(ForInStatement.obj, Decl(parserRealSource11.ts, 1686, 38))
}
var loopHeader = context.current;
>loopHeader : Symbol(loopHeader, Decl(parserRealSource11.ts, 1782, 15))
>context : Symbol(context, Decl(parserRealSource11.ts, 1774, 32))
var loopStart = new BasicBlock();
>loopStart : Symbol(loopStart, Decl(parserRealSource11.ts, 1783, 15))
var afterLoop = new BasicBlock();
>afterLoop : Symbol(afterLoop, Decl(parserRealSource11.ts, 1784, 15))
loopHeader.addSuccessor(loopStart);
>loopHeader : Symbol(loopHeader, Decl(parserRealSource11.ts, 1782, 15))
>loopStart : Symbol(loopStart, Decl(parserRealSource11.ts, 1783, 15))
context.current = loopStart;
>context : Symbol(context, Decl(parserRealSource11.ts, 1774, 32))
>loopStart : Symbol(loopStart, Decl(parserRealSource11.ts, 1783, 15))
if (this.body) {
>this.body : Symbol(ForInStatement.body, Decl(parserRealSource11.ts, 1692, 50))
>this : Symbol(ForInStatement, Decl(parserRealSource11.ts, 1683, 5))
>body : Symbol(ForInStatement.body, Decl(parserRealSource11.ts, 1692, 50))
context.pushStatement(this, loopStart, afterLoop);
>context : Symbol(context, Decl(parserRealSource11.ts, 1774, 32))
>this : Symbol(ForInStatement, Decl(parserRealSource11.ts, 1683, 5))
>loopStart : Symbol(loopStart, Decl(parserRealSource11.ts, 1783, 15))
>afterLoop : Symbol(afterLoop, Decl(parserRealSource11.ts, 1784, 15))
context.walk(this.body, this);
>context : Symbol(context, Decl(parserRealSource11.ts, 1774, 32))
>this.body : Symbol(ForInStatement.body, Decl(parserRealSource11.ts, 1692, 50))
>this : Symbol(ForInStatement, Decl(parserRealSource11.ts, 1683, 5))
>body : Symbol(ForInStatement.body, Decl(parserRealSource11.ts, 1692, 50))
>this : Symbol(ForInStatement, Decl(parserRealSource11.ts, 1683, 5))
context.popStatement();
>context : Symbol(context, Decl(parserRealSource11.ts, 1774, 32))
}
if (!(context.noContinuation)) {
>context : Symbol(context, Decl(parserRealSource11.ts, 1774, 32))
var loopEnd = context.current;
>loopEnd : Symbol(loopEnd, Decl(parserRealSource11.ts, 1794, 19))
>context : Symbol(context, Decl(parserRealSource11.ts, 1774, 32))
loopEnd.addSuccessor(loopStart);
>loopEnd : Symbol(loopEnd, Decl(parserRealSource11.ts, 1794, 19))
>loopStart : Symbol(loopStart, Decl(parserRealSource11.ts, 1783, 15))
}
context.current = afterLoop;
>context : Symbol(context, Decl(parserRealSource11.ts, 1774, 32))
>afterLoop : Symbol(afterLoop, Decl(parserRealSource11.ts, 1784, 15))
context.noContinuation = false;
>context : Symbol(context, Decl(parserRealSource11.ts, 1774, 32))
loopHeader.addSuccessor(afterLoop);
>loopHeader : Symbol(loopHeader, Decl(parserRealSource11.ts, 1782, 15))
>afterLoop : Symbol(afterLoop, Decl(parserRealSource11.ts, 1784, 15))
context.walker.options.goChildren = false;
>context : Symbol(context, Decl(parserRealSource11.ts, 1774, 32))
}
}
export class ForStatement extends Statement {
>ForStatement : Symbol(ForStatement, Decl(parserRealSource11.ts, 1802, 5))
>Statement : Symbol(Statement, Decl(parserRealSource11.ts, 1291, 5))
public cond: AST;
>cond : Symbol(ForStatement.cond, Decl(parserRealSource11.ts, 1804, 49))
>AST : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
public body: AST;
>body : Symbol(ForStatement.body, Decl(parserRealSource11.ts, 1805, 25))
>AST : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
public incr: AST;
>incr : Symbol(ForStatement.incr, Decl(parserRealSource11.ts, 1806, 25))
>AST : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
constructor (public init: AST) {
>init : Symbol(ForStatement.init, Decl(parserRealSource11.ts, 1809, 21))
>AST : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
super(NodeType.For);
>super : Symbol(Statement, Decl(parserRealSource11.ts, 1291, 5))
}
public isLoop() { return true; }
>isLoop : Symbol(ForStatement.isLoop, Decl(parserRealSource11.ts, 1811, 9))
public emit(emitter: Emitter, tokenId: TokenID, startLine: boolean) {
>emit : Symbol(ForStatement.emit, Decl(parserRealSource11.ts, 1813, 40))
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1815, 20))
>Emitter : Symbol(Emitter)
>tokenId : Symbol(tokenId, Decl(parserRealSource11.ts, 1815, 37))
>TokenID : Symbol(TokenID)
>startLine : Symbol(startLine, Decl(parserRealSource11.ts, 1815, 55))
emitter.emitParensAndCommentsInPlace(this, true);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1815, 20))
>this : Symbol(ForStatement, Decl(parserRealSource11.ts, 1802, 5))
emitter.recordSourceMappingStart(this);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1815, 20))
>this : Symbol(ForStatement, Decl(parserRealSource11.ts, 1802, 5))
var temp = emitter.setInObjectLiteral(false);
>temp : Symbol(temp, Decl(parserRealSource11.ts, 1818, 15))
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1815, 20))
emitter.writeToOutput("for(");
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1815, 20))
if (this.init) {
>this.init : Symbol(ForStatement.init, Decl(parserRealSource11.ts, 1809, 21))
>this : Symbol(ForStatement, Decl(parserRealSource11.ts, 1802, 5))
>init : Symbol(ForStatement.init, Decl(parserRealSource11.ts, 1809, 21))
if (this.init.nodeType != NodeType.List) {
>this.init.nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
>this.init : Symbol(ForStatement.init, Decl(parserRealSource11.ts, 1809, 21))
>this : Symbol(ForStatement, Decl(parserRealSource11.ts, 1802, 5))
>init : Symbol(ForStatement.init, Decl(parserRealSource11.ts, 1809, 21))
>nodeType : Symbol(AST.nodeType, Decl(parserRealSource11.ts, 23, 21))
emitter.emitJavascript(this.init, TokenID.For, false);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1815, 20))
>this.init : Symbol(ForStatement.init, Decl(parserRealSource11.ts, 1809, 21))
>this : Symbol(ForStatement, Decl(parserRealSource11.ts, 1802, 5))
>init : Symbol(ForStatement.init, Decl(parserRealSource11.ts, 1809, 21))
}
else {
emitter.setInVarBlock((<ASTList>this.init).members.length);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1815, 20))
>(<ASTList>this.init).members.length : Symbol(Array.length, Decl(lib.es5.d.ts, --, --))
>(<ASTList>this.init).members : Symbol(ASTList.members, Decl(parserRealSource11.ts, 191, 50))
>ASTList : Symbol(ASTList, Decl(parserRealSource11.ts, 188, 5))
>this.init : Symbol(ForStatement.init, Decl(parserRealSource11.ts, 1809, 21))
>this : Symbol(ForStatement, Decl(parserRealSource11.ts, 1802, 5))
>init : Symbol(ForStatement.init, Decl(parserRealSource11.ts, 1809, 21))
>members : Symbol(ASTList.members, Decl(parserRealSource11.ts, 191, 50))
>length : Symbol(Array.length, Decl(lib.es5.d.ts, --, --))
emitter.emitJavascriptList(this.init, null, TokenID.For, false, false, false);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1815, 20))
>this.init : Symbol(ForStatement.init, Decl(parserRealSource11.ts, 1809, 21))
>this : Symbol(ForStatement, Decl(parserRealSource11.ts, 1802, 5))
>init : Symbol(ForStatement.init, Decl(parserRealSource11.ts, 1809, 21))
}
}
emitter.writeToOutput("; ");
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1815, 20))
emitter.emitJavascript(this.cond, TokenID.For, false);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1815, 20))
>this.cond : Symbol(ForStatement.cond, Decl(parserRealSource11.ts, 1804, 49))
>this : Symbol(ForStatement, Decl(parserRealSource11.ts, 1802, 5))
>cond : Symbol(ForStatement.cond, Decl(parserRealSource11.ts, 1804, 49))
emitter.writeToOutput("; ");
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1815, 20))
emitter.emitJavascript(this.incr, TokenID.For, false);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1815, 20))
>this.incr : Symbol(ForStatement.incr, Decl(parserRealSource11.ts, 1806, 25))
>this : Symbol(ForStatement, Decl(parserRealSource11.ts, 1802, 5))
>incr : Symbol(ForStatement.incr, Decl(parserRealSource11.ts, 1806, 25))
emitter.writeToOutput(")");
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1815, 20))
emitter.emitJavascriptStatements(this.body, true, false);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1815, 20))
>this.body : Symbol(ForStatement.body, Decl(parserRealSource11.ts, 1805, 25))
>this : Symbol(ForStatement, Decl(parserRealSource11.ts, 1802, 5))
>body : Symbol(ForStatement.body, Decl(parserRealSource11.ts, 1805, 25))
emitter.setInObjectLiteral(temp);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1815, 20))
>temp : Symbol(temp, Decl(parserRealSource11.ts, 1818, 15))
emitter.recordSourceMappingEnd(this);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1815, 20))
>this : Symbol(ForStatement, Decl(parserRealSource11.ts, 1802, 5))
emitter.emitParensAndCommentsInPlace(this, false);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1815, 20))
>this : Symbol(ForStatement, Decl(parserRealSource11.ts, 1802, 5))
}
public typeCheck(typeFlow: TypeFlow) {
>typeCheck : Symbol(ForStatement.typeCheck, Decl(parserRealSource11.ts, 1838, 9))
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 1840, 25))
>TypeFlow : Symbol(TypeFlow)
return typeFlow.typeCheckFor(this);
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 1840, 25))
>this : Symbol(ForStatement, Decl(parserRealSource11.ts, 1802, 5))
}
public addToControlFlow(context: ControlFlowContext): void {
>addToControlFlow : Symbol(ForStatement.addToControlFlow, Decl(parserRealSource11.ts, 1842, 9))
>context : Symbol(context, Decl(parserRealSource11.ts, 1844, 32))
>ControlFlowContext : Symbol(ControlFlowContext)
if (this.init) {
>this.init : Symbol(ForStatement.init, Decl(parserRealSource11.ts, 1809, 21))
>this : Symbol(ForStatement, Decl(parserRealSource11.ts, 1802, 5))
>init : Symbol(ForStatement.init, Decl(parserRealSource11.ts, 1809, 21))
context.addContent(this.init);
>context : Symbol(context, Decl(parserRealSource11.ts, 1844, 32))
>this.init : Symbol(ForStatement.init, Decl(parserRealSource11.ts, 1809, 21))
>this : Symbol(ForStatement, Decl(parserRealSource11.ts, 1802, 5))
>init : Symbol(ForStatement.init, Decl(parserRealSource11.ts, 1809, 21))
}
var loopHeader = context.current;
>loopHeader : Symbol(loopHeader, Decl(parserRealSource11.ts, 1848, 15))
>context : Symbol(context, Decl(parserRealSource11.ts, 1844, 32))
var loopStart = new BasicBlock();
>loopStart : Symbol(loopStart, Decl(parserRealSource11.ts, 1849, 15))
var afterLoop = new BasicBlock();
>afterLoop : Symbol(afterLoop, Decl(parserRealSource11.ts, 1850, 15))
loopHeader.addSuccessor(loopStart);
>loopHeader : Symbol(loopHeader, Decl(parserRealSource11.ts, 1848, 15))
>loopStart : Symbol(loopStart, Decl(parserRealSource11.ts, 1849, 15))
context.current = loopStart;
>context : Symbol(context, Decl(parserRealSource11.ts, 1844, 32))
>loopStart : Symbol(loopStart, Decl(parserRealSource11.ts, 1849, 15))
var condBlock: BasicBlock = null;
>condBlock : Symbol(condBlock, Decl(parserRealSource11.ts, 1854, 15))
>BasicBlock : Symbol(BasicBlock)
var continueTarget = loopStart;
>continueTarget : Symbol(continueTarget, Decl(parserRealSource11.ts, 1855, 15))
>loopStart : Symbol(loopStart, Decl(parserRealSource11.ts, 1849, 15))
var incrBB: BasicBlock = null;
>incrBB : Symbol(incrBB, Decl(parserRealSource11.ts, 1856, 15))
>BasicBlock : Symbol(BasicBlock)
if (this.incr) {
>this.incr : Symbol(ForStatement.incr, Decl(parserRealSource11.ts, 1806, 25))
>this : Symbol(ForStatement, Decl(parserRealSource11.ts, 1802, 5))
>incr : Symbol(ForStatement.incr, Decl(parserRealSource11.ts, 1806, 25))
incrBB = new BasicBlock();
>incrBB : Symbol(incrBB, Decl(parserRealSource11.ts, 1856, 15))
continueTarget = incrBB;
>continueTarget : Symbol(continueTarget, Decl(parserRealSource11.ts, 1855, 15))
>incrBB : Symbol(incrBB, Decl(parserRealSource11.ts, 1856, 15))
}
if (this.cond) {
>this.cond : Symbol(ForStatement.cond, Decl(parserRealSource11.ts, 1804, 49))
>this : Symbol(ForStatement, Decl(parserRealSource11.ts, 1802, 5))
>cond : Symbol(ForStatement.cond, Decl(parserRealSource11.ts, 1804, 49))
condBlock = context.current;
>condBlock : Symbol(condBlock, Decl(parserRealSource11.ts, 1854, 15))
>context : Symbol(context, Decl(parserRealSource11.ts, 1844, 32))
context.addContent(this.cond);
>context : Symbol(context, Decl(parserRealSource11.ts, 1844, 32))
>this.cond : Symbol(ForStatement.cond, Decl(parserRealSource11.ts, 1804, 49))
>this : Symbol(ForStatement, Decl(parserRealSource11.ts, 1802, 5))
>cond : Symbol(ForStatement.cond, Decl(parserRealSource11.ts, 1804, 49))
context.current = new BasicBlock();
>context : Symbol(context, Decl(parserRealSource11.ts, 1844, 32))
condBlock.addSuccessor(context.current);
>condBlock : Symbol(condBlock, Decl(parserRealSource11.ts, 1854, 15))
>context : Symbol(context, Decl(parserRealSource11.ts, 1844, 32))
}
var targetInfo: ITargetInfo = null;
>targetInfo : Symbol(targetInfo, Decl(parserRealSource11.ts, 1867, 15))
>ITargetInfo : Symbol(ITargetInfo)
if (this.body) {
>this.body : Symbol(ForStatement.body, Decl(parserRealSource11.ts, 1805, 25))
>this : Symbol(ForStatement, Decl(parserRealSource11.ts, 1802, 5))
>body : Symbol(ForStatement.body, Decl(parserRealSource11.ts, 1805, 25))
context.pushStatement(this, continueTarget, afterLoop);
>context : Symbol(context, Decl(parserRealSource11.ts, 1844, 32))
>this : Symbol(ForStatement, Decl(parserRealSource11.ts, 1802, 5))
>continueTarget : Symbol(continueTarget, Decl(parserRealSource11.ts, 1855, 15))
>afterLoop : Symbol(afterLoop, Decl(parserRealSource11.ts, 1850, 15))
context.walk(this.body, this);
>context : Symbol(context, Decl(parserRealSource11.ts, 1844, 32))
>this.body : Symbol(ForStatement.body, Decl(parserRealSource11.ts, 1805, 25))
>this : Symbol(ForStatement, Decl(parserRealSource11.ts, 1802, 5))
>body : Symbol(ForStatement.body, Decl(parserRealSource11.ts, 1805, 25))
>this : Symbol(ForStatement, Decl(parserRealSource11.ts, 1802, 5))
targetInfo = context.popStatement();
>targetInfo : Symbol(targetInfo, Decl(parserRealSource11.ts, 1867, 15))
>context : Symbol(context, Decl(parserRealSource11.ts, 1844, 32))
}
if (this.incr) {
>this.incr : Symbol(ForStatement.incr, Decl(parserRealSource11.ts, 1806, 25))
>this : Symbol(ForStatement, Decl(parserRealSource11.ts, 1802, 5))
>incr : Symbol(ForStatement.incr, Decl(parserRealSource11.ts, 1806, 25))
if (context.noContinuation) {
>context : Symbol(context, Decl(parserRealSource11.ts, 1844, 32))
if (incrBB.predecessors.length == 0) {
>incrBB : Symbol(incrBB, Decl(parserRealSource11.ts, 1856, 15))
context.addUnreachable(this.incr);
>context : Symbol(context, Decl(parserRealSource11.ts, 1844, 32))
>this.incr : Symbol(ForStatement.incr, Decl(parserRealSource11.ts, 1806, 25))
>this : Symbol(ForStatement, Decl(parserRealSource11.ts, 1802, 5))
>incr : Symbol(ForStatement.incr, Decl(parserRealSource11.ts, 1806, 25))
}
}
else {
context.current.addSuccessor(incrBB);
>context : Symbol(context, Decl(parserRealSource11.ts, 1844, 32))
>incrBB : Symbol(incrBB, Decl(parserRealSource11.ts, 1856, 15))
context.current = incrBB;
>context : Symbol(context, Decl(parserRealSource11.ts, 1844, 32))
>incrBB : Symbol(incrBB, Decl(parserRealSource11.ts, 1856, 15))
context.addContent(this.incr);
>context : Symbol(context, Decl(parserRealSource11.ts, 1844, 32))
>this.incr : Symbol(ForStatement.incr, Decl(parserRealSource11.ts, 1806, 25))
>this : Symbol(ForStatement, Decl(parserRealSource11.ts, 1802, 5))
>incr : Symbol(ForStatement.incr, Decl(parserRealSource11.ts, 1806, 25))
}
}
var loopEnd = context.current;
>loopEnd : Symbol(loopEnd, Decl(parserRealSource11.ts, 1885, 15))
>context : Symbol(context, Decl(parserRealSource11.ts, 1844, 32))
if (!(context.noContinuation)) {
>context : Symbol(context, Decl(parserRealSource11.ts, 1844, 32))
loopEnd.addSuccessor(loopStart);
>loopEnd : Symbol(loopEnd, Decl(parserRealSource11.ts, 1885, 15))
>loopStart : Symbol(loopStart, Decl(parserRealSource11.ts, 1849, 15))
}
if (condBlock) {
>condBlock : Symbol(condBlock, Decl(parserRealSource11.ts, 1854, 15))
condBlock.addSuccessor(afterLoop);
>condBlock : Symbol(condBlock, Decl(parserRealSource11.ts, 1854, 15))
>afterLoop : Symbol(afterLoop, Decl(parserRealSource11.ts, 1850, 15))
context.noContinuation = false;
>context : Symbol(context, Decl(parserRealSource11.ts, 1844, 32))
}
if (afterLoop.predecessors.length > 0) {
>afterLoop : Symbol(afterLoop, Decl(parserRealSource11.ts, 1850, 15))
context.noContinuation = false;
>context : Symbol(context, Decl(parserRealSource11.ts, 1844, 32))
context.current = afterLoop;
>context : Symbol(context, Decl(parserRealSource11.ts, 1844, 32))
>afterLoop : Symbol(afterLoop, Decl(parserRealSource11.ts, 1850, 15))
}
context.walker.options.goChildren = false;
>context : Symbol(context, Decl(parserRealSource11.ts, 1844, 32))
}
}
export class WithStatement extends Statement {
>WithStatement : Symbol(WithStatement, Decl(parserRealSource11.ts, 1900, 5))
>Statement : Symbol(Statement, Decl(parserRealSource11.ts, 1291, 5))
public body: AST;
>body : Symbol(WithStatement.body, Decl(parserRealSource11.ts, 1902, 50))
>AST : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
public isCompoundStatement() { return true; }
>isCompoundStatement : Symbol(WithStatement.isCompoundStatement, Decl(parserRealSource11.ts, 1903, 25))
public withSym: WithSymbol = null;
>withSym : Symbol(WithStatement.withSym, Decl(parserRealSource11.ts, 1905, 53))
>WithSymbol : Symbol(WithSymbol)
constructor (public expr: AST) {
>expr : Symbol(WithStatement.expr, Decl(parserRealSource11.ts, 1909, 21))
>AST : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
super(NodeType.With);
>super : Symbol(Statement, Decl(parserRealSource11.ts, 1291, 5))
}
public emit(emitter: Emitter, tokenId: TokenID, startLine: boolean) {
>emit : Symbol(WithStatement.emit, Decl(parserRealSource11.ts, 1911, 9))
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1913, 20))
>Emitter : Symbol(Emitter)
>tokenId : Symbol(tokenId, Decl(parserRealSource11.ts, 1913, 37))
>TokenID : Symbol(TokenID)
>startLine : Symbol(startLine, Decl(parserRealSource11.ts, 1913, 55))
emitter.emitParensAndCommentsInPlace(this, true);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1913, 20))
>this : Symbol(WithStatement, Decl(parserRealSource11.ts, 1900, 5))
emitter.recordSourceMappingStart(this);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1913, 20))
>this : Symbol(WithStatement, Decl(parserRealSource11.ts, 1900, 5))
emitter.writeToOutput("with (");
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1913, 20))
if (this.expr) {
>this.expr : Symbol(WithStatement.expr, Decl(parserRealSource11.ts, 1909, 21))
>this : Symbol(WithStatement, Decl(parserRealSource11.ts, 1900, 5))
>expr : Symbol(WithStatement.expr, Decl(parserRealSource11.ts, 1909, 21))
emitter.emitJavascript(this.expr, TokenID.With, false);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1913, 20))
>this.expr : Symbol(WithStatement.expr, Decl(parserRealSource11.ts, 1909, 21))
>this : Symbol(WithStatement, Decl(parserRealSource11.ts, 1900, 5))
>expr : Symbol(WithStatement.expr, Decl(parserRealSource11.ts, 1909, 21))
}
emitter.writeToOutput(")");
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1913, 20))
emitter.emitJavascriptStatements(this.body, true, false);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1913, 20))
>this.body : Symbol(WithStatement.body, Decl(parserRealSource11.ts, 1902, 50))
>this : Symbol(WithStatement, Decl(parserRealSource11.ts, 1900, 5))
>body : Symbol(WithStatement.body, Decl(parserRealSource11.ts, 1902, 50))
emitter.recordSourceMappingEnd(this);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1913, 20))
>this : Symbol(WithStatement, Decl(parserRealSource11.ts, 1900, 5))
emitter.emitParensAndCommentsInPlace(this, false);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1913, 20))
>this : Symbol(WithStatement, Decl(parserRealSource11.ts, 1900, 5))
}
public typeCheck(typeFlow: TypeFlow) {
>typeCheck : Symbol(WithStatement.typeCheck, Decl(parserRealSource11.ts, 1925, 9))
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 1927, 25))
>TypeFlow : Symbol(TypeFlow)
return typeFlow.typeCheckWith(this);
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 1927, 25))
>this : Symbol(WithStatement, Decl(parserRealSource11.ts, 1900, 5))
}
}
export class SwitchStatement extends Statement {
>SwitchStatement : Symbol(SwitchStatement, Decl(parserRealSource11.ts, 1930, 5))
>Statement : Symbol(Statement, Decl(parserRealSource11.ts, 1291, 5))
public caseList: ASTList;
>caseList : Symbol(SwitchStatement.caseList, Decl(parserRealSource11.ts, 1932, 52))
>ASTList : Symbol(ASTList, Decl(parserRealSource11.ts, 188, 5))
public defaultCase: CaseStatement = null;
>defaultCase : Symbol(SwitchStatement.defaultCase, Decl(parserRealSource11.ts, 1933, 33))
>CaseStatement : Symbol(CaseStatement, Decl(parserRealSource11.ts, 2006, 5))
public statement: ASTSpan = new ASTSpan();
>statement : Symbol(SwitchStatement.statement, Decl(parserRealSource11.ts, 1934, 49))
>ASTSpan : Symbol(ASTSpan, Decl(parserRealSource11.ts, 5, 19))
>ASTSpan : Symbol(ASTSpan, Decl(parserRealSource11.ts, 5, 19))
constructor (public val: AST) {
>val : Symbol(SwitchStatement.val, Decl(parserRealSource11.ts, 1937, 21))
>AST : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
super(NodeType.Switch);
>super : Symbol(Statement, Decl(parserRealSource11.ts, 1291, 5))
}
public isCompoundStatement() { return true; }
>isCompoundStatement : Symbol(SwitchStatement.isCompoundStatement, Decl(parserRealSource11.ts, 1939, 9))
public emit(emitter: Emitter, tokenId: TokenID, startLine: boolean) {
>emit : Symbol(SwitchStatement.emit, Decl(parserRealSource11.ts, 1941, 53))
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1943, 20))
>Emitter : Symbol(Emitter)
>tokenId : Symbol(tokenId, Decl(parserRealSource11.ts, 1943, 37))
>TokenID : Symbol(TokenID)
>startLine : Symbol(startLine, Decl(parserRealSource11.ts, 1943, 55))
emitter.emitParensAndCommentsInPlace(this, true);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1943, 20))
>this : Symbol(SwitchStatement, Decl(parserRealSource11.ts, 1930, 5))
emitter.recordSourceMappingStart(this);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1943, 20))
>this : Symbol(SwitchStatement, Decl(parserRealSource11.ts, 1930, 5))
var temp = emitter.setInObjectLiteral(false);
>temp : Symbol(temp, Decl(parserRealSource11.ts, 1946, 15))
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1943, 20))
emitter.recordSourceMappingStart(this.statement);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1943, 20))
>this.statement : Symbol(SwitchStatement.statement, Decl(parserRealSource11.ts, 1934, 49))
>this : Symbol(SwitchStatement, Decl(parserRealSource11.ts, 1930, 5))
>statement : Symbol(SwitchStatement.statement, Decl(parserRealSource11.ts, 1934, 49))
emitter.writeToOutput("switch(");
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1943, 20))
emitter.emitJavascript(this.val, TokenID.Identifier, false);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1943, 20))
>this.val : Symbol(SwitchStatement.val, Decl(parserRealSource11.ts, 1937, 21))
>this : Symbol(SwitchStatement, Decl(parserRealSource11.ts, 1930, 5))
>val : Symbol(SwitchStatement.val, Decl(parserRealSource11.ts, 1937, 21))
emitter.writeToOutput(")");
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1943, 20))
emitter.recordSourceMappingEnd(this.statement);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1943, 20))
>this.statement : Symbol(SwitchStatement.statement, Decl(parserRealSource11.ts, 1934, 49))
>this : Symbol(SwitchStatement, Decl(parserRealSource11.ts, 1930, 5))
>statement : Symbol(SwitchStatement.statement, Decl(parserRealSource11.ts, 1934, 49))
emitter.writeLineToOutput(" {");
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1943, 20))
emitter.indenter.increaseIndent();
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1943, 20))
var casesLen = this.caseList.members.length;
>casesLen : Symbol(casesLen, Decl(parserRealSource11.ts, 1954, 15))
>this.caseList.members.length : Symbol(Array.length, Decl(lib.es5.d.ts, --, --))
>this.caseList.members : Symbol(ASTList.members, Decl(parserRealSource11.ts, 191, 50))
>this.caseList : Symbol(SwitchStatement.caseList, Decl(parserRealSource11.ts, 1932, 52))
>this : Symbol(SwitchStatement, Decl(parserRealSource11.ts, 1930, 5))
>caseList : Symbol(SwitchStatement.caseList, Decl(parserRealSource11.ts, 1932, 52))
>members : Symbol(ASTList.members, Decl(parserRealSource11.ts, 191, 50))
>length : Symbol(Array.length, Decl(lib.es5.d.ts, --, --))
for (var i = 0; i < casesLen; i++) {
>i : Symbol(i, Decl(parserRealSource11.ts, 1955, 20))
>i : Symbol(i, Decl(parserRealSource11.ts, 1955, 20))
>casesLen : Symbol(casesLen, Decl(parserRealSource11.ts, 1954, 15))
>i : Symbol(i, Decl(parserRealSource11.ts, 1955, 20))
var caseExpr = this.caseList.members[i];
>caseExpr : Symbol(caseExpr, Decl(parserRealSource11.ts, 1956, 19))
>this.caseList.members : Symbol(ASTList.members, Decl(parserRealSource11.ts, 191, 50))
>this.caseList : Symbol(SwitchStatement.caseList, Decl(parserRealSource11.ts, 1932, 52))
>this : Symbol(SwitchStatement, Decl(parserRealSource11.ts, 1930, 5))
>caseList : Symbol(SwitchStatement.caseList, Decl(parserRealSource11.ts, 1932, 52))
>members : Symbol(ASTList.members, Decl(parserRealSource11.ts, 191, 50))
>i : Symbol(i, Decl(parserRealSource11.ts, 1955, 20))
emitter.emitJavascript(caseExpr, TokenID.Case, true);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1943, 20))
>caseExpr : Symbol(caseExpr, Decl(parserRealSource11.ts, 1956, 19))
emitter.writeLineToOutput("");
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1943, 20))
}
emitter.indenter.decreaseIndent();
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1943, 20))
emitter.emitIndent();
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1943, 20))
emitter.writeToOutput("}");
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1943, 20))
emitter.setInObjectLiteral(temp);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1943, 20))
>temp : Symbol(temp, Decl(parserRealSource11.ts, 1946, 15))
emitter.recordSourceMappingEnd(this);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1943, 20))
>this : Symbol(SwitchStatement, Decl(parserRealSource11.ts, 1930, 5))
emitter.emitParensAndCommentsInPlace(this, false);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 1943, 20))
>this : Symbol(SwitchStatement, Decl(parserRealSource11.ts, 1930, 5))
}
public typeCheck(typeFlow: TypeFlow) {
>typeCheck : Symbol(SwitchStatement.typeCheck, Decl(parserRealSource11.ts, 1966, 9))
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 1968, 25))
>TypeFlow : Symbol(TypeFlow)
var len = this.caseList.members.length;
>len : Symbol(len, Decl(parserRealSource11.ts, 1969, 15))
>this.caseList.members.length : Symbol(Array.length, Decl(lib.es5.d.ts, --, --))
>this.caseList.members : Symbol(ASTList.members, Decl(parserRealSource11.ts, 191, 50))
>this.caseList : Symbol(SwitchStatement.caseList, Decl(parserRealSource11.ts, 1932, 52))
>this : Symbol(SwitchStatement, Decl(parserRealSource11.ts, 1930, 5))
>caseList : Symbol(SwitchStatement.caseList, Decl(parserRealSource11.ts, 1932, 52))
>members : Symbol(ASTList.members, Decl(parserRealSource11.ts, 191, 50))
>length : Symbol(Array.length, Decl(lib.es5.d.ts, --, --))
this.val = typeFlow.typeCheck(this.val);
>this.val : Symbol(SwitchStatement.val, Decl(parserRealSource11.ts, 1937, 21))
>this : Symbol(SwitchStatement, Decl(parserRealSource11.ts, 1930, 5))
>val : Symbol(SwitchStatement.val, Decl(parserRealSource11.ts, 1937, 21))
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 1968, 25))
>this.val : Symbol(SwitchStatement.val, Decl(parserRealSource11.ts, 1937, 21))
>this : Symbol(SwitchStatement, Decl(parserRealSource11.ts, 1930, 5))
>val : Symbol(SwitchStatement.val, Decl(parserRealSource11.ts, 1937, 21))
for (var i = 0; i < len; i++) {
>i : Symbol(i, Decl(parserRealSource11.ts, 1971, 20))
>i : Symbol(i, Decl(parserRealSource11.ts, 1971, 20))
>len : Symbol(len, Decl(parserRealSource11.ts, 1969, 15))
>i : Symbol(i, Decl(parserRealSource11.ts, 1971, 20))
this.caseList.members[i] = typeFlow.typeCheck(this.caseList.members[i]);
>this.caseList.members : Symbol(ASTList.members, Decl(parserRealSource11.ts, 191, 50))
>this.caseList : Symbol(SwitchStatement.caseList, Decl(parserRealSource11.ts, 1932, 52))
>this : Symbol(SwitchStatement, Decl(parserRealSource11.ts, 1930, 5))
>caseList : Symbol(SwitchStatement.caseList, Decl(parserRealSource11.ts, 1932, 52))
>members : Symbol(ASTList.members, Decl(parserRealSource11.ts, 191, 50))
>i : Symbol(i, Decl(parserRealSource11.ts, 1971, 20))
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 1968, 25))
>this.caseList.members : Symbol(ASTList.members, Decl(parserRealSource11.ts, 191, 50))
>this.caseList : Symbol(SwitchStatement.caseList, Decl(parserRealSource11.ts, 1932, 52))
>this : Symbol(SwitchStatement, Decl(parserRealSource11.ts, 1930, 5))
>caseList : Symbol(SwitchStatement.caseList, Decl(parserRealSource11.ts, 1932, 52))
>members : Symbol(ASTList.members, Decl(parserRealSource11.ts, 191, 50))
>i : Symbol(i, Decl(parserRealSource11.ts, 1971, 20))
}
this.defaultCase = <CaseStatement>typeFlow.typeCheck(this.defaultCase);
>this.defaultCase : Symbol(SwitchStatement.defaultCase, Decl(parserRealSource11.ts, 1933, 33))
>this : Symbol(SwitchStatement, Decl(parserRealSource11.ts, 1930, 5))
>defaultCase : Symbol(SwitchStatement.defaultCase, Decl(parserRealSource11.ts, 1933, 33))
>CaseStatement : Symbol(CaseStatement, Decl(parserRealSource11.ts, 2006, 5))
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 1968, 25))
>this.defaultCase : Symbol(SwitchStatement.defaultCase, Decl(parserRealSource11.ts, 1933, 33))
>this : Symbol(SwitchStatement, Decl(parserRealSource11.ts, 1930, 5))
>defaultCase : Symbol(SwitchStatement.defaultCase, Decl(parserRealSource11.ts, 1933, 33))
this.type = typeFlow.voidType;
>this.type : Symbol(AST.type, Decl(parserRealSource11.ts, 11, 38))
>this : Symbol(SwitchStatement, Decl(parserRealSource11.ts, 1930, 5))
>type : Symbol(AST.type, Decl(parserRealSource11.ts, 11, 38))
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 1968, 25))
return this;
>this : Symbol(SwitchStatement, Decl(parserRealSource11.ts, 1930, 5))
}
// if there are break statements that match this switch, then just link cond block with block after switch
public addToControlFlow(context: ControlFlowContext) {
>addToControlFlow : Symbol(SwitchStatement.addToControlFlow, Decl(parserRealSource11.ts, 1977, 9))
>context : Symbol(context, Decl(parserRealSource11.ts, 1980, 32))
>ControlFlowContext : Symbol(ControlFlowContext)
var condBlock = context.current;
>condBlock : Symbol(condBlock, Decl(parserRealSource11.ts, 1981, 15))
>context : Symbol(context, Decl(parserRealSource11.ts, 1980, 32))
context.addContent(this.val);
>context : Symbol(context, Decl(parserRealSource11.ts, 1980, 32))
>this.val : Symbol(SwitchStatement.val, Decl(parserRealSource11.ts, 1937, 21))
>this : Symbol(SwitchStatement, Decl(parserRealSource11.ts, 1930, 5))
>val : Symbol(SwitchStatement.val, Decl(parserRealSource11.ts, 1937, 21))
var execBlock = new BasicBlock();
>execBlock : Symbol(execBlock, Decl(parserRealSource11.ts, 1983, 15))
var afterSwitch = new BasicBlock();
>afterSwitch : Symbol(afterSwitch, Decl(parserRealSource11.ts, 1984, 15))
condBlock.addSuccessor(execBlock);
>condBlock : Symbol(condBlock, Decl(parserRealSource11.ts, 1981, 15))
>execBlock : Symbol(execBlock, Decl(parserRealSource11.ts, 1983, 15))
context.pushSwitch(execBlock);
>context : Symbol(context, Decl(parserRealSource11.ts, 1980, 32))
>execBlock : Symbol(execBlock, Decl(parserRealSource11.ts, 1983, 15))
context.current = execBlock;
>context : Symbol(context, Decl(parserRealSource11.ts, 1980, 32))
>execBlock : Symbol(execBlock, Decl(parserRealSource11.ts, 1983, 15))
context.pushStatement(this, execBlock, afterSwitch);
>context : Symbol(context, Decl(parserRealSource11.ts, 1980, 32))
>this : Symbol(SwitchStatement, Decl(parserRealSource11.ts, 1930, 5))
>execBlock : Symbol(execBlock, Decl(parserRealSource11.ts, 1983, 15))
>afterSwitch : Symbol(afterSwitch, Decl(parserRealSource11.ts, 1984, 15))
context.walk(this.caseList, this);
>context : Symbol(context, Decl(parserRealSource11.ts, 1980, 32))
>this.caseList : Symbol(SwitchStatement.caseList, Decl(parserRealSource11.ts, 1932, 52))
>this : Symbol(SwitchStatement, Decl(parserRealSource11.ts, 1930, 5))
>caseList : Symbol(SwitchStatement.caseList, Decl(parserRealSource11.ts, 1932, 52))
>this : Symbol(SwitchStatement, Decl(parserRealSource11.ts, 1930, 5))
context.popSwitch();
>context : Symbol(context, Decl(parserRealSource11.ts, 1980, 32))
var targetInfo = context.popStatement();
>targetInfo : Symbol(targetInfo, Decl(parserRealSource11.ts, 1992, 15))
>context : Symbol(context, Decl(parserRealSource11.ts, 1980, 32))
var hasCondContinuation = (this.defaultCase == null);
>hasCondContinuation : Symbol(hasCondContinuation, Decl(parserRealSource11.ts, 1993, 15))
>this.defaultCase : Symbol(SwitchStatement.defaultCase, Decl(parserRealSource11.ts, 1933, 33))
>this : Symbol(SwitchStatement, Decl(parserRealSource11.ts, 1930, 5))
>defaultCase : Symbol(SwitchStatement.defaultCase, Decl(parserRealSource11.ts, 1933, 33))
if (this.defaultCase == null) {
>this.defaultCase : Symbol(SwitchStatement.defaultCase, Decl(parserRealSource11.ts, 1933, 33))
>this : Symbol(SwitchStatement, Decl(parserRealSource11.ts, 1930, 5))
>defaultCase : Symbol(SwitchStatement.defaultCase, Decl(parserRealSource11.ts, 1933, 33))
condBlock.addSuccessor(afterSwitch);
>condBlock : Symbol(condBlock, Decl(parserRealSource11.ts, 1981, 15))
>afterSwitch : Symbol(afterSwitch, Decl(parserRealSource11.ts, 1984, 15))
}
if (afterSwitch.predecessors.length > 0) {
>afterSwitch : Symbol(afterSwitch, Decl(parserRealSource11.ts, 1984, 15))
context.noContinuation = false;
>context : Symbol(context, Decl(parserRealSource11.ts, 1980, 32))
context.current = afterSwitch;
>context : Symbol(context, Decl(parserRealSource11.ts, 1980, 32))
>afterSwitch : Symbol(afterSwitch, Decl(parserRealSource11.ts, 1984, 15))
}
else {
context.noContinuation = true;
>context : Symbol(context, Decl(parserRealSource11.ts, 1980, 32))
}
context.walker.options.goChildren = false;
>context : Symbol(context, Decl(parserRealSource11.ts, 1980, 32))
}
}
export class CaseStatement extends Statement {
>CaseStatement : Symbol(CaseStatement, Decl(parserRealSource11.ts, 2006, 5))
>Statement : Symbol(Statement, Decl(parserRealSource11.ts, 1291, 5))
public expr: AST = null;
>expr : Symbol(CaseStatement.expr, Decl(parserRealSource11.ts, 2008, 50))
>AST : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
public body: ASTList;
>body : Symbol(CaseStatement.body, Decl(parserRealSource11.ts, 2009, 32))
>ASTList : Symbol(ASTList, Decl(parserRealSource11.ts, 188, 5))
constructor () {
super(NodeType.Case);
>super : Symbol(Statement, Decl(parserRealSource11.ts, 1291, 5))
}
public emit(emitter: Emitter, tokenId: TokenID, startLine: boolean) {
>emit : Symbol(CaseStatement.emit, Decl(parserRealSource11.ts, 2014, 9))
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 2016, 20))
>Emitter : Symbol(Emitter)
>tokenId : Symbol(tokenId, Decl(parserRealSource11.ts, 2016, 37))
>TokenID : Symbol(TokenID)
>startLine : Symbol(startLine, Decl(parserRealSource11.ts, 2016, 55))
emitter.emitParensAndCommentsInPlace(this, true);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 2016, 20))
>this : Symbol(CaseStatement, Decl(parserRealSource11.ts, 2006, 5))
emitter.recordSourceMappingStart(this);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 2016, 20))
>this : Symbol(CaseStatement, Decl(parserRealSource11.ts, 2006, 5))
if (this.expr) {
>this.expr : Symbol(CaseStatement.expr, Decl(parserRealSource11.ts, 2008, 50))
>this : Symbol(CaseStatement, Decl(parserRealSource11.ts, 2006, 5))
>expr : Symbol(CaseStatement.expr, Decl(parserRealSource11.ts, 2008, 50))
emitter.writeToOutput("case ");
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 2016, 20))
emitter.emitJavascript(this.expr, TokenID.Identifier, false);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 2016, 20))
>this.expr : Symbol(CaseStatement.expr, Decl(parserRealSource11.ts, 2008, 50))
>this : Symbol(CaseStatement, Decl(parserRealSource11.ts, 2006, 5))
>expr : Symbol(CaseStatement.expr, Decl(parserRealSource11.ts, 2008, 50))
}
else {
emitter.writeToOutput("default");
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 2016, 20))
}
emitter.writeToOutput(":");
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 2016, 20))
emitter.emitJavascriptStatements(this.body, false, false);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 2016, 20))
>this.body : Symbol(CaseStatement.body, Decl(parserRealSource11.ts, 2009, 32))
>this : Symbol(CaseStatement, Decl(parserRealSource11.ts, 2006, 5))
>body : Symbol(CaseStatement.body, Decl(parserRealSource11.ts, 2009, 32))
emitter.recordSourceMappingEnd(this);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 2016, 20))
>this : Symbol(CaseStatement, Decl(parserRealSource11.ts, 2006, 5))
emitter.emitParensAndCommentsInPlace(this, false);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 2016, 20))
>this : Symbol(CaseStatement, Decl(parserRealSource11.ts, 2006, 5))
}
public typeCheck(typeFlow: TypeFlow) {
>typeCheck : Symbol(CaseStatement.typeCheck, Decl(parserRealSource11.ts, 2030, 9))
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 2032, 25))
>TypeFlow : Symbol(TypeFlow)
this.expr = typeFlow.typeCheck(this.expr);
>this.expr : Symbol(CaseStatement.expr, Decl(parserRealSource11.ts, 2008, 50))
>this : Symbol(CaseStatement, Decl(parserRealSource11.ts, 2006, 5))
>expr : Symbol(CaseStatement.expr, Decl(parserRealSource11.ts, 2008, 50))
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 2032, 25))
>this.expr : Symbol(CaseStatement.expr, Decl(parserRealSource11.ts, 2008, 50))
>this : Symbol(CaseStatement, Decl(parserRealSource11.ts, 2006, 5))
>expr : Symbol(CaseStatement.expr, Decl(parserRealSource11.ts, 2008, 50))
typeFlow.typeCheck(this.body);
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 2032, 25))
>this.body : Symbol(CaseStatement.body, Decl(parserRealSource11.ts, 2009, 32))
>this : Symbol(CaseStatement, Decl(parserRealSource11.ts, 2006, 5))
>body : Symbol(CaseStatement.body, Decl(parserRealSource11.ts, 2009, 32))
this.type = typeFlow.voidType;
>this.type : Symbol(AST.type, Decl(parserRealSource11.ts, 11, 38))
>this : Symbol(CaseStatement, Decl(parserRealSource11.ts, 2006, 5))
>type : Symbol(AST.type, Decl(parserRealSource11.ts, 11, 38))
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 2032, 25))
return this;
>this : Symbol(CaseStatement, Decl(parserRealSource11.ts, 2006, 5))
}
// TODO: more reasoning about unreachable cases (such as duplicate literals as case expressions)
// for now, assume all cases are reachable, regardless of whether some cases fall through
public addToControlFlow(context: ControlFlowContext) {
>addToControlFlow : Symbol(CaseStatement.addToControlFlow, Decl(parserRealSource11.ts, 2037, 9))
>context : Symbol(context, Decl(parserRealSource11.ts, 2041, 32))
>ControlFlowContext : Symbol(ControlFlowContext)
var execBlock = new BasicBlock();
>execBlock : Symbol(execBlock, Decl(parserRealSource11.ts, 2042, 15))
var sw = context.currentSwitch[context.currentSwitch.length - 1];
>sw : Symbol(sw, Decl(parserRealSource11.ts, 2043, 15))
>context : Symbol(context, Decl(parserRealSource11.ts, 2041, 32))
>context : Symbol(context, Decl(parserRealSource11.ts, 2041, 32))
// TODO: fall-through from previous (+ to end of switch)
if (this.expr) {
>this.expr : Symbol(CaseStatement.expr, Decl(parserRealSource11.ts, 2008, 50))
>this : Symbol(CaseStatement, Decl(parserRealSource11.ts, 2006, 5))
>expr : Symbol(CaseStatement.expr, Decl(parserRealSource11.ts, 2008, 50))
var exprBlock = new BasicBlock();
>exprBlock : Symbol(exprBlock, Decl(parserRealSource11.ts, 2046, 19))
context.current = exprBlock;
>context : Symbol(context, Decl(parserRealSource11.ts, 2041, 32))
>exprBlock : Symbol(exprBlock, Decl(parserRealSource11.ts, 2046, 19))
sw.addSuccessor(exprBlock);
>sw : Symbol(sw, Decl(parserRealSource11.ts, 2043, 15))
>exprBlock : Symbol(exprBlock, Decl(parserRealSource11.ts, 2046, 19))
context.addContent(this.expr);
>context : Symbol(context, Decl(parserRealSource11.ts, 2041, 32))
>this.expr : Symbol(CaseStatement.expr, Decl(parserRealSource11.ts, 2008, 50))
>this : Symbol(CaseStatement, Decl(parserRealSource11.ts, 2006, 5))
>expr : Symbol(CaseStatement.expr, Decl(parserRealSource11.ts, 2008, 50))
exprBlock.addSuccessor(execBlock);
>exprBlock : Symbol(exprBlock, Decl(parserRealSource11.ts, 2046, 19))
>execBlock : Symbol(execBlock, Decl(parserRealSource11.ts, 2042, 15))
}
else {
sw.addSuccessor(execBlock);
>sw : Symbol(sw, Decl(parserRealSource11.ts, 2043, 15))
>execBlock : Symbol(execBlock, Decl(parserRealSource11.ts, 2042, 15))
}
context.current = execBlock;
>context : Symbol(context, Decl(parserRealSource11.ts, 2041, 32))
>execBlock : Symbol(execBlock, Decl(parserRealSource11.ts, 2042, 15))
if (this.body) {
>this.body : Symbol(CaseStatement.body, Decl(parserRealSource11.ts, 2009, 32))
>this : Symbol(CaseStatement, Decl(parserRealSource11.ts, 2006, 5))
>body : Symbol(CaseStatement.body, Decl(parserRealSource11.ts, 2009, 32))
context.walk(this.body, this);
>context : Symbol(context, Decl(parserRealSource11.ts, 2041, 32))
>this.body : Symbol(CaseStatement.body, Decl(parserRealSource11.ts, 2009, 32))
>this : Symbol(CaseStatement, Decl(parserRealSource11.ts, 2006, 5))
>body : Symbol(CaseStatement.body, Decl(parserRealSource11.ts, 2009, 32))
>this : Symbol(CaseStatement, Decl(parserRealSource11.ts, 2006, 5))
}
context.noContinuation = false;
>context : Symbol(context, Decl(parserRealSource11.ts, 2041, 32))
context.walker.options.goChildren = false;
>context : Symbol(context, Decl(parserRealSource11.ts, 2041, 32))
}
}
export class TypeReference extends AST {
>TypeReference : Symbol(TypeReference, Decl(parserRealSource11.ts, 2062, 5))
>AST : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
constructor (public term: AST, public arrayCount: number) {
>term : Symbol(TypeReference.term, Decl(parserRealSource11.ts, 2065, 21))
>AST : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
>arrayCount : Symbol(TypeReference.arrayCount, Decl(parserRealSource11.ts, 2065, 38))
super(NodeType.TypeRef);
>super : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
}
public emit(emitter: Emitter, tokenId: TokenID, startLine: boolean) {
>emit : Symbol(TypeReference.emit, Decl(parserRealSource11.ts, 2067, 9))
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 2069, 20))
>Emitter : Symbol(Emitter)
>tokenId : Symbol(tokenId, Decl(parserRealSource11.ts, 2069, 37))
>TokenID : Symbol(TokenID)
>startLine : Symbol(startLine, Decl(parserRealSource11.ts, 2069, 55))
throw new Error("should not emit a type ref");
>Error : Symbol(Error, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
}
public typeCheck(typeFlow: TypeFlow) {
>typeCheck : Symbol(TypeReference.typeCheck, Decl(parserRealSource11.ts, 2071, 9))
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 2073, 25))
>TypeFlow : Symbol(TypeFlow)
var prevInTCTR = typeFlow.inTypeRefTypeCheck;
>prevInTCTR : Symbol(prevInTCTR, Decl(parserRealSource11.ts, 2074, 15))
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 2073, 25))
typeFlow.inTypeRefTypeCheck = true;
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 2073, 25))
var typeLink = getTypeLink(this, typeFlow.checker, true);
>typeLink : Symbol(typeLink, Decl(parserRealSource11.ts, 2076, 15))
>this : Symbol(TypeReference, Decl(parserRealSource11.ts, 2062, 5))
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 2073, 25))
typeFlow.checker.resolveTypeLink(typeFlow.scope, typeLink, false);
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 2073, 25))
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 2073, 25))
>typeLink : Symbol(typeLink, Decl(parserRealSource11.ts, 2076, 15))
if (this.term) {
>this.term : Symbol(TypeReference.term, Decl(parserRealSource11.ts, 2065, 21))
>this : Symbol(TypeReference, Decl(parserRealSource11.ts, 2062, 5))
>term : Symbol(TypeReference.term, Decl(parserRealSource11.ts, 2065, 21))
typeFlow.typeCheck(this.term);
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 2073, 25))
>this.term : Symbol(TypeReference.term, Decl(parserRealSource11.ts, 2065, 21))
>this : Symbol(TypeReference, Decl(parserRealSource11.ts, 2062, 5))
>term : Symbol(TypeReference.term, Decl(parserRealSource11.ts, 2065, 21))
}
typeFlow.checkForVoidConstructor(typeLink.type, this);
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 2073, 25))
>typeLink : Symbol(typeLink, Decl(parserRealSource11.ts, 2076, 15))
>this : Symbol(TypeReference, Decl(parserRealSource11.ts, 2062, 5))
this.type = typeLink.type;
>this.type : Symbol(AST.type, Decl(parserRealSource11.ts, 11, 38))
>this : Symbol(TypeReference, Decl(parserRealSource11.ts, 2062, 5))
>type : Symbol(AST.type, Decl(parserRealSource11.ts, 11, 38))
>typeLink : Symbol(typeLink, Decl(parserRealSource11.ts, 2076, 15))
// in error recovery cases, there may not be a term
if (this.term) {
>this.term : Symbol(TypeReference.term, Decl(parserRealSource11.ts, 2065, 21))
>this : Symbol(TypeReference, Decl(parserRealSource11.ts, 2062, 5))
>term : Symbol(TypeReference.term, Decl(parserRealSource11.ts, 2065, 21))
this.term.type = this.type;
>this.term.type : Symbol(AST.type, Decl(parserRealSource11.ts, 11, 38))
>this.term : Symbol(TypeReference.term, Decl(parserRealSource11.ts, 2065, 21))
>this : Symbol(TypeReference, Decl(parserRealSource11.ts, 2062, 5))
>term : Symbol(TypeReference.term, Decl(parserRealSource11.ts, 2065, 21))
>type : Symbol(AST.type, Decl(parserRealSource11.ts, 11, 38))
>this.type : Symbol(AST.type, Decl(parserRealSource11.ts, 11, 38))
>this : Symbol(TypeReference, Decl(parserRealSource11.ts, 2062, 5))
>type : Symbol(AST.type, Decl(parserRealSource11.ts, 11, 38))
}
typeFlow.inTypeRefTypeCheck = prevInTCTR;
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 2073, 25))
>prevInTCTR : Symbol(prevInTCTR, Decl(parserRealSource11.ts, 2074, 15))
return this;
>this : Symbol(TypeReference, Decl(parserRealSource11.ts, 2062, 5))
}
}
export class TryFinally extends Statement {
>TryFinally : Symbol(TryFinally, Decl(parserRealSource11.ts, 2095, 5))
>Statement : Symbol(Statement, Decl(parserRealSource11.ts, 1291, 5))
constructor (public tryNode: AST, public finallyNode: Finally) {
>tryNode : Symbol(TryFinally.tryNode, Decl(parserRealSource11.ts, 2098, 21))
>AST : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
>finallyNode : Symbol(TryFinally.finallyNode, Decl(parserRealSource11.ts, 2098, 41))
>Finally : Symbol(Finally, Decl(parserRealSource11.ts, 2295, 5))
super(NodeType.TryFinally);
>super : Symbol(Statement, Decl(parserRealSource11.ts, 1291, 5))
}
public isCompoundStatement() { return true; }
>isCompoundStatement : Symbol(TryFinally.isCompoundStatement, Decl(parserRealSource11.ts, 2100, 9))
public emit(emitter: Emitter, tokenId: TokenID, startLine: boolean) {
>emit : Symbol(TryFinally.emit, Decl(parserRealSource11.ts, 2102, 53))
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 2104, 20))
>Emitter : Symbol(Emitter)
>tokenId : Symbol(tokenId, Decl(parserRealSource11.ts, 2104, 37))
>TokenID : Symbol(TokenID)
>startLine : Symbol(startLine, Decl(parserRealSource11.ts, 2104, 55))
emitter.recordSourceMappingStart(this);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 2104, 20))
>this : Symbol(TryFinally, Decl(parserRealSource11.ts, 2095, 5))
emitter.emitJavascript(this.tryNode, TokenID.Try, false);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 2104, 20))
>this.tryNode : Symbol(TryFinally.tryNode, Decl(parserRealSource11.ts, 2098, 21))
>this : Symbol(TryFinally, Decl(parserRealSource11.ts, 2095, 5))
>tryNode : Symbol(TryFinally.tryNode, Decl(parserRealSource11.ts, 2098, 21))
emitter.emitJavascript(this.finallyNode, TokenID.Finally, false);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 2104, 20))
>this.finallyNode : Symbol(TryFinally.finallyNode, Decl(parserRealSource11.ts, 2098, 41))
>this : Symbol(TryFinally, Decl(parserRealSource11.ts, 2095, 5))
>finallyNode : Symbol(TryFinally.finallyNode, Decl(parserRealSource11.ts, 2098, 41))
emitter.recordSourceMappingEnd(this);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 2104, 20))
>this : Symbol(TryFinally, Decl(parserRealSource11.ts, 2095, 5))
}
public typeCheck(typeFlow: TypeFlow) {
>typeCheck : Symbol(TryFinally.typeCheck, Decl(parserRealSource11.ts, 2109, 9))
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 2111, 25))
>TypeFlow : Symbol(TypeFlow)
this.tryNode = typeFlow.typeCheck(this.tryNode);
>this.tryNode : Symbol(TryFinally.tryNode, Decl(parserRealSource11.ts, 2098, 21))
>this : Symbol(TryFinally, Decl(parserRealSource11.ts, 2095, 5))
>tryNode : Symbol(TryFinally.tryNode, Decl(parserRealSource11.ts, 2098, 21))
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 2111, 25))
>this.tryNode : Symbol(TryFinally.tryNode, Decl(parserRealSource11.ts, 2098, 21))
>this : Symbol(TryFinally, Decl(parserRealSource11.ts, 2095, 5))
>tryNode : Symbol(TryFinally.tryNode, Decl(parserRealSource11.ts, 2098, 21))
this.finallyNode = <Finally>typeFlow.typeCheck(this.finallyNode);
>this.finallyNode : Symbol(TryFinally.finallyNode, Decl(parserRealSource11.ts, 2098, 41))
>this : Symbol(TryFinally, Decl(parserRealSource11.ts, 2095, 5))
>finallyNode : Symbol(TryFinally.finallyNode, Decl(parserRealSource11.ts, 2098, 41))
>Finally : Symbol(Finally, Decl(parserRealSource11.ts, 2295, 5))
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 2111, 25))
>this.finallyNode : Symbol(TryFinally.finallyNode, Decl(parserRealSource11.ts, 2098, 41))
>this : Symbol(TryFinally, Decl(parserRealSource11.ts, 2095, 5))
>finallyNode : Symbol(TryFinally.finallyNode, Decl(parserRealSource11.ts, 2098, 41))
this.type = typeFlow.voidType;
>this.type : Symbol(AST.type, Decl(parserRealSource11.ts, 11, 38))
>this : Symbol(TryFinally, Decl(parserRealSource11.ts, 2095, 5))
>type : Symbol(AST.type, Decl(parserRealSource11.ts, 11, 38))
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 2111, 25))
return this;
>this : Symbol(TryFinally, Decl(parserRealSource11.ts, 2095, 5))
}
public addToControlFlow(context: ControlFlowContext) {
>addToControlFlow : Symbol(TryFinally.addToControlFlow, Decl(parserRealSource11.ts, 2116, 9))
>context : Symbol(context, Decl(parserRealSource11.ts, 2118, 32))
>ControlFlowContext : Symbol(ControlFlowContext)
var afterFinally = new BasicBlock();
>afterFinally : Symbol(afterFinally, Decl(parserRealSource11.ts, 2119, 15))
context.walk(this.tryNode, this);
>context : Symbol(context, Decl(parserRealSource11.ts, 2118, 32))
>this.tryNode : Symbol(TryFinally.tryNode, Decl(parserRealSource11.ts, 2098, 21))
>this : Symbol(TryFinally, Decl(parserRealSource11.ts, 2095, 5))
>tryNode : Symbol(TryFinally.tryNode, Decl(parserRealSource11.ts, 2098, 21))
>this : Symbol(TryFinally, Decl(parserRealSource11.ts, 2095, 5))
var finBlock = new BasicBlock();
>finBlock : Symbol(finBlock, Decl(parserRealSource11.ts, 2121, 15))
if (context.current) {
>context : Symbol(context, Decl(parserRealSource11.ts, 2118, 32))
context.current.addSuccessor(finBlock);
>context : Symbol(context, Decl(parserRealSource11.ts, 2118, 32))
>finBlock : Symbol(finBlock, Decl(parserRealSource11.ts, 2121, 15))
}
context.current = finBlock;
>context : Symbol(context, Decl(parserRealSource11.ts, 2118, 32))
>finBlock : Symbol(finBlock, Decl(parserRealSource11.ts, 2121, 15))
context.pushStatement(this, null, afterFinally);
>context : Symbol(context, Decl(parserRealSource11.ts, 2118, 32))
>this : Symbol(TryFinally, Decl(parserRealSource11.ts, 2095, 5))
>afterFinally : Symbol(afterFinally, Decl(parserRealSource11.ts, 2119, 15))
context.walk(this.finallyNode, this);
>context : Symbol(context, Decl(parserRealSource11.ts, 2118, 32))
>this.finallyNode : Symbol(TryFinally.finallyNode, Decl(parserRealSource11.ts, 2098, 41))
>this : Symbol(TryFinally, Decl(parserRealSource11.ts, 2095, 5))
>finallyNode : Symbol(TryFinally.finallyNode, Decl(parserRealSource11.ts, 2098, 41))
>this : Symbol(TryFinally, Decl(parserRealSource11.ts, 2095, 5))
if (!context.noContinuation && context.current) {
>context : Symbol(context, Decl(parserRealSource11.ts, 2118, 32))
>context : Symbol(context, Decl(parserRealSource11.ts, 2118, 32))
context.current.addSuccessor(afterFinally);
>context : Symbol(context, Decl(parserRealSource11.ts, 2118, 32))
>afterFinally : Symbol(afterFinally, Decl(parserRealSource11.ts, 2119, 15))
}
if (afterFinally.predecessors.length > 0) {
>afterFinally : Symbol(afterFinally, Decl(parserRealSource11.ts, 2119, 15))
context.current = afterFinally;
>context : Symbol(context, Decl(parserRealSource11.ts, 2118, 32))
>afterFinally : Symbol(afterFinally, Decl(parserRealSource11.ts, 2119, 15))
}
else {
context.noContinuation = true;
>context : Symbol(context, Decl(parserRealSource11.ts, 2118, 32))
}
context.popStatement();
>context : Symbol(context, Decl(parserRealSource11.ts, 2118, 32))
context.walker.options.goChildren = false;
>context : Symbol(context, Decl(parserRealSource11.ts, 2118, 32))
}
}
export class TryCatch extends Statement {
>TryCatch : Symbol(TryCatch, Decl(parserRealSource11.ts, 2140, 5))
>Statement : Symbol(Statement, Decl(parserRealSource11.ts, 1291, 5))
constructor (public tryNode: Try, public catchNode: Catch) {
>tryNode : Symbol(TryCatch.tryNode, Decl(parserRealSource11.ts, 2143, 21))
>Try : Symbol(Try, Decl(parserRealSource11.ts, 2190, 5))
>catchNode : Symbol(TryCatch.catchNode, Decl(parserRealSource11.ts, 2143, 41))
>Catch : Symbol(Catch, Decl(parserRealSource11.ts, 2218, 5))
super(NodeType.TryCatch);
>super : Symbol(Statement, Decl(parserRealSource11.ts, 1291, 5))
}
public isCompoundStatement() { return true; }
>isCompoundStatement : Symbol(TryCatch.isCompoundStatement, Decl(parserRealSource11.ts, 2145, 9))
public emit(emitter: Emitter, tokenId: TokenID, startLine: boolean) {
>emit : Symbol(TryCatch.emit, Decl(parserRealSource11.ts, 2147, 53))
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 2149, 20))
>Emitter : Symbol(Emitter)
>tokenId : Symbol(tokenId, Decl(parserRealSource11.ts, 2149, 37))
>TokenID : Symbol(TokenID)
>startLine : Symbol(startLine, Decl(parserRealSource11.ts, 2149, 55))
emitter.emitParensAndCommentsInPlace(this, true);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 2149, 20))
>this : Symbol(TryCatch, Decl(parserRealSource11.ts, 2140, 5))
emitter.recordSourceMappingStart(this);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 2149, 20))
>this : Symbol(TryCatch, Decl(parserRealSource11.ts, 2140, 5))
emitter.emitJavascript(this.tryNode, TokenID.Try, false);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 2149, 20))
>this.tryNode : Symbol(TryCatch.tryNode, Decl(parserRealSource11.ts, 2143, 21))
>this : Symbol(TryCatch, Decl(parserRealSource11.ts, 2140, 5))
>tryNode : Symbol(TryCatch.tryNode, Decl(parserRealSource11.ts, 2143, 21))
emitter.emitJavascript(this.catchNode, TokenID.Catch, false);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 2149, 20))
>this.catchNode : Symbol(TryCatch.catchNode, Decl(parserRealSource11.ts, 2143, 41))
>this : Symbol(TryCatch, Decl(parserRealSource11.ts, 2140, 5))
>catchNode : Symbol(TryCatch.catchNode, Decl(parserRealSource11.ts, 2143, 41))
emitter.recordSourceMappingEnd(this);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 2149, 20))
>this : Symbol(TryCatch, Decl(parserRealSource11.ts, 2140, 5))
emitter.emitParensAndCommentsInPlace(this, false);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 2149, 20))
>this : Symbol(TryCatch, Decl(parserRealSource11.ts, 2140, 5))
}
public addToControlFlow(context: ControlFlowContext) {
>addToControlFlow : Symbol(TryCatch.addToControlFlow, Decl(parserRealSource11.ts, 2156, 9))
>context : Symbol(context, Decl(parserRealSource11.ts, 2158, 32))
>ControlFlowContext : Symbol(ControlFlowContext)
var beforeTry = context.current;
>beforeTry : Symbol(beforeTry, Decl(parserRealSource11.ts, 2159, 15))
>context : Symbol(context, Decl(parserRealSource11.ts, 2158, 32))
var tryBlock = new BasicBlock();
>tryBlock : Symbol(tryBlock, Decl(parserRealSource11.ts, 2160, 15))
beforeTry.addSuccessor(tryBlock);
>beforeTry : Symbol(beforeTry, Decl(parserRealSource11.ts, 2159, 15))
>tryBlock : Symbol(tryBlock, Decl(parserRealSource11.ts, 2160, 15))
context.current = tryBlock;
>context : Symbol(context, Decl(parserRealSource11.ts, 2158, 32))
>tryBlock : Symbol(tryBlock, Decl(parserRealSource11.ts, 2160, 15))
var afterTryCatch = new BasicBlock();
>afterTryCatch : Symbol(afterTryCatch, Decl(parserRealSource11.ts, 2163, 15))
context.pushStatement(this, null, afterTryCatch);
>context : Symbol(context, Decl(parserRealSource11.ts, 2158, 32))
>this : Symbol(TryCatch, Decl(parserRealSource11.ts, 2140, 5))
>afterTryCatch : Symbol(afterTryCatch, Decl(parserRealSource11.ts, 2163, 15))
context.walk(this.tryNode, this);
>context : Symbol(context, Decl(parserRealSource11.ts, 2158, 32))
>this.tryNode : Symbol(TryCatch.tryNode, Decl(parserRealSource11.ts, 2143, 21))
>this : Symbol(TryCatch, Decl(parserRealSource11.ts, 2140, 5))
>tryNode : Symbol(TryCatch.tryNode, Decl(parserRealSource11.ts, 2143, 21))
>this : Symbol(TryCatch, Decl(parserRealSource11.ts, 2140, 5))
if (!context.noContinuation) {
>context : Symbol(context, Decl(parserRealSource11.ts, 2158, 32))
if (context.current) {
>context : Symbol(context, Decl(parserRealSource11.ts, 2158, 32))
context.current.addSuccessor(afterTryCatch);
>context : Symbol(context, Decl(parserRealSource11.ts, 2158, 32))
>afterTryCatch : Symbol(afterTryCatch, Decl(parserRealSource11.ts, 2163, 15))
}
}
context.current = new BasicBlock();
>context : Symbol(context, Decl(parserRealSource11.ts, 2158, 32))
beforeTry.addSuccessor(context.current);
>beforeTry : Symbol(beforeTry, Decl(parserRealSource11.ts, 2159, 15))
>context : Symbol(context, Decl(parserRealSource11.ts, 2158, 32))
context.walk(this.catchNode, this);
>context : Symbol(context, Decl(parserRealSource11.ts, 2158, 32))
>this.catchNode : Symbol(TryCatch.catchNode, Decl(parserRealSource11.ts, 2143, 41))
>this : Symbol(TryCatch, Decl(parserRealSource11.ts, 2140, 5))
>catchNode : Symbol(TryCatch.catchNode, Decl(parserRealSource11.ts, 2143, 41))
>this : Symbol(TryCatch, Decl(parserRealSource11.ts, 2140, 5))
context.popStatement();
>context : Symbol(context, Decl(parserRealSource11.ts, 2158, 32))
if (!context.noContinuation) {
>context : Symbol(context, Decl(parserRealSource11.ts, 2158, 32))
if (context.current) {
>context : Symbol(context, Decl(parserRealSource11.ts, 2158, 32))
context.current.addSuccessor(afterTryCatch);
>context : Symbol(context, Decl(parserRealSource11.ts, 2158, 32))
>afterTryCatch : Symbol(afterTryCatch, Decl(parserRealSource11.ts, 2163, 15))
}
}
context.current = afterTryCatch;
>context : Symbol(context, Decl(parserRealSource11.ts, 2158, 32))
>afterTryCatch : Symbol(afterTryCatch, Decl(parserRealSource11.ts, 2163, 15))
context.walker.options.goChildren = false;
>context : Symbol(context, Decl(parserRealSource11.ts, 2158, 32))
}
public typeCheck(typeFlow: TypeFlow) {
>typeCheck : Symbol(TryCatch.typeCheck, Decl(parserRealSource11.ts, 2182, 9))
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 2184, 25))
>TypeFlow : Symbol(TypeFlow)
this.tryNode = <Try>typeFlow.typeCheck(this.tryNode);
>this.tryNode : Symbol(TryCatch.tryNode, Decl(parserRealSource11.ts, 2143, 21))
>this : Symbol(TryCatch, Decl(parserRealSource11.ts, 2140, 5))
>tryNode : Symbol(TryCatch.tryNode, Decl(parserRealSource11.ts, 2143, 21))
>Try : Symbol(Try, Decl(parserRealSource11.ts, 2190, 5))
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 2184, 25))
>this.tryNode : Symbol(TryCatch.tryNode, Decl(parserRealSource11.ts, 2143, 21))
>this : Symbol(TryCatch, Decl(parserRealSource11.ts, 2140, 5))
>tryNode : Symbol(TryCatch.tryNode, Decl(parserRealSource11.ts, 2143, 21))
this.catchNode = <Catch>typeFlow.typeCheck(this.catchNode);
>this.catchNode : Symbol(TryCatch.catchNode, Decl(parserRealSource11.ts, 2143, 41))
>this : Symbol(TryCatch, Decl(parserRealSource11.ts, 2140, 5))
>catchNode : Symbol(TryCatch.catchNode, Decl(parserRealSource11.ts, 2143, 41))
>Catch : Symbol(Catch, Decl(parserRealSource11.ts, 2218, 5))
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 2184, 25))
>this.catchNode : Symbol(TryCatch.catchNode, Decl(parserRealSource11.ts, 2143, 41))
>this : Symbol(TryCatch, Decl(parserRealSource11.ts, 2140, 5))
>catchNode : Symbol(TryCatch.catchNode, Decl(parserRealSource11.ts, 2143, 41))
this.type = typeFlow.voidType;
>this.type : Symbol(AST.type, Decl(parserRealSource11.ts, 11, 38))
>this : Symbol(TryCatch, Decl(parserRealSource11.ts, 2140, 5))
>type : Symbol(AST.type, Decl(parserRealSource11.ts, 11, 38))
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 2184, 25))
return this;
>this : Symbol(TryCatch, Decl(parserRealSource11.ts, 2140, 5))
}
}
export class Try extends Statement {
>Try : Symbol(Try, Decl(parserRealSource11.ts, 2190, 5))
>Statement : Symbol(Statement, Decl(parserRealSource11.ts, 1291, 5))
constructor (public body: AST) {
>body : Symbol(Try.body, Decl(parserRealSource11.ts, 2193, 21))
>AST : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
super(NodeType.Try);
>super : Symbol(Statement, Decl(parserRealSource11.ts, 1291, 5))
}
public emit(emitter: Emitter, tokenId: TokenID, startLine: boolean) {
>emit : Symbol(Try.emit, Decl(parserRealSource11.ts, 2195, 9))
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 2197, 20))
>Emitter : Symbol(Emitter)
>tokenId : Symbol(tokenId, Decl(parserRealSource11.ts, 2197, 37))
>TokenID : Symbol(TokenID)
>startLine : Symbol(startLine, Decl(parserRealSource11.ts, 2197, 55))
emitter.emitParensAndCommentsInPlace(this, true);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 2197, 20))
>this : Symbol(Try, Decl(parserRealSource11.ts, 2190, 5))
emitter.recordSourceMappingStart(this);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 2197, 20))
>this : Symbol(Try, Decl(parserRealSource11.ts, 2190, 5))
emitter.writeToOutput("try ");
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 2197, 20))
emitter.emitJavascript(this.body, TokenID.Try, false);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 2197, 20))
>this.body : Symbol(Try.body, Decl(parserRealSource11.ts, 2193, 21))
>this : Symbol(Try, Decl(parserRealSource11.ts, 2190, 5))
>body : Symbol(Try.body, Decl(parserRealSource11.ts, 2193, 21))
emitter.recordSourceMappingEnd(this);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 2197, 20))
>this : Symbol(Try, Decl(parserRealSource11.ts, 2190, 5))
emitter.emitParensAndCommentsInPlace(this, false);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 2197, 20))
>this : Symbol(Try, Decl(parserRealSource11.ts, 2190, 5))
}
public typeCheck(typeFlow: TypeFlow) {
>typeCheck : Symbol(Try.typeCheck, Decl(parserRealSource11.ts, 2204, 9))
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 2206, 25))
>TypeFlow : Symbol(TypeFlow)
this.body = typeFlow.typeCheck(this.body);
>this.body : Symbol(Try.body, Decl(parserRealSource11.ts, 2193, 21))
>this : Symbol(Try, Decl(parserRealSource11.ts, 2190, 5))
>body : Symbol(Try.body, Decl(parserRealSource11.ts, 2193, 21))
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 2206, 25))
>this.body : Symbol(Try.body, Decl(parserRealSource11.ts, 2193, 21))
>this : Symbol(Try, Decl(parserRealSource11.ts, 2190, 5))
>body : Symbol(Try.body, Decl(parserRealSource11.ts, 2193, 21))
return this;
>this : Symbol(Try, Decl(parserRealSource11.ts, 2190, 5))
}
public addToControlFlow(context: ControlFlowContext) {
>addToControlFlow : Symbol(Try.addToControlFlow, Decl(parserRealSource11.ts, 2209, 9))
>context : Symbol(context, Decl(parserRealSource11.ts, 2211, 32))
>ControlFlowContext : Symbol(ControlFlowContext)
if (this.body) {
>this.body : Symbol(Try.body, Decl(parserRealSource11.ts, 2193, 21))
>this : Symbol(Try, Decl(parserRealSource11.ts, 2190, 5))
>body : Symbol(Try.body, Decl(parserRealSource11.ts, 2193, 21))
context.walk(this.body, this);
>context : Symbol(context, Decl(parserRealSource11.ts, 2211, 32))
>this.body : Symbol(Try.body, Decl(parserRealSource11.ts, 2193, 21))
>this : Symbol(Try, Decl(parserRealSource11.ts, 2190, 5))
>body : Symbol(Try.body, Decl(parserRealSource11.ts, 2193, 21))
>this : Symbol(Try, Decl(parserRealSource11.ts, 2190, 5))
}
context.walker.options.goChildren = false;
>context : Symbol(context, Decl(parserRealSource11.ts, 2211, 32))
context.noContinuation = false;
>context : Symbol(context, Decl(parserRealSource11.ts, 2211, 32))
}
}
export class Catch extends Statement {
>Catch : Symbol(Catch, Decl(parserRealSource11.ts, 2218, 5))
>Statement : Symbol(Statement, Decl(parserRealSource11.ts, 1291, 5))
constructor (public param: VarDecl, public body: AST) {
>param : Symbol(Catch.param, Decl(parserRealSource11.ts, 2221, 21))
>VarDecl : Symbol(VarDecl, Decl(parserRealSource11.ts, 910, 5))
>body : Symbol(Catch.body, Decl(parserRealSource11.ts, 2221, 43))
>AST : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
super(NodeType.Catch);
>super : Symbol(Statement, Decl(parserRealSource11.ts, 1291, 5))
if (this.param) {
>this.param : Symbol(Catch.param, Decl(parserRealSource11.ts, 2221, 21))
>this : Symbol(Catch, Decl(parserRealSource11.ts, 2218, 5))
>param : Symbol(Catch.param, Decl(parserRealSource11.ts, 2221, 21))
this.param.varFlags |= VarFlags.AutoInit;
>this.param.varFlags : Symbol(BoundDecl.varFlags, Decl(parserRealSource11.ts, 889, 36))
>this.param : Symbol(Catch.param, Decl(parserRealSource11.ts, 2221, 21))
>this : Symbol(Catch, Decl(parserRealSource11.ts, 2218, 5))
>param : Symbol(Catch.param, Decl(parserRealSource11.ts, 2221, 21))
>varFlags : Symbol(BoundDecl.varFlags, Decl(parserRealSource11.ts, 889, 36))
}
}
public statement: ASTSpan = new ASTSpan();
>statement : Symbol(Catch.statement, Decl(parserRealSource11.ts, 2226, 9))
>ASTSpan : Symbol(ASTSpan, Decl(parserRealSource11.ts, 5, 19))
>ASTSpan : Symbol(ASTSpan, Decl(parserRealSource11.ts, 5, 19))
public containedScope: SymbolScope = null;
>containedScope : Symbol(Catch.containedScope, Decl(parserRealSource11.ts, 2227, 50))
>SymbolScope : Symbol(SymbolScope)
public emit(emitter: Emitter, tokenId: TokenID, startLine: boolean) {
>emit : Symbol(Catch.emit, Decl(parserRealSource11.ts, 2228, 50))
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 2230, 20))
>Emitter : Symbol(Emitter)
>tokenId : Symbol(tokenId, Decl(parserRealSource11.ts, 2230, 37))
>TokenID : Symbol(TokenID)
>startLine : Symbol(startLine, Decl(parserRealSource11.ts, 2230, 55))
emitter.emitParensAndCommentsInPlace(this, true);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 2230, 20))
>this : Symbol(Catch, Decl(parserRealSource11.ts, 2218, 5))
emitter.recordSourceMappingStart(this);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 2230, 20))
>this : Symbol(Catch, Decl(parserRealSource11.ts, 2218, 5))
emitter.writeToOutput(" ");
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 2230, 20))
emitter.recordSourceMappingStart(this.statement);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 2230, 20))
>this.statement : Symbol(Catch.statement, Decl(parserRealSource11.ts, 2226, 9))
>this : Symbol(Catch, Decl(parserRealSource11.ts, 2218, 5))
>statement : Symbol(Catch.statement, Decl(parserRealSource11.ts, 2226, 9))
emitter.writeToOutput("catch (");
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 2230, 20))
emitter.emitJavascript(this.param, TokenID.OpenParen, false);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 2230, 20))
>this.param : Symbol(Catch.param, Decl(parserRealSource11.ts, 2221, 21))
>this : Symbol(Catch, Decl(parserRealSource11.ts, 2218, 5))
>param : Symbol(Catch.param, Decl(parserRealSource11.ts, 2221, 21))
emitter.writeToOutput(")");
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 2230, 20))
emitter.recordSourceMappingEnd(this.statement);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 2230, 20))
>this.statement : Symbol(Catch.statement, Decl(parserRealSource11.ts, 2226, 9))
>this : Symbol(Catch, Decl(parserRealSource11.ts, 2218, 5))
>statement : Symbol(Catch.statement, Decl(parserRealSource11.ts, 2226, 9))
emitter.emitJavascript(this.body, TokenID.Catch, false);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 2230, 20))
>this.body : Symbol(Catch.body, Decl(parserRealSource11.ts, 2221, 43))
>this : Symbol(Catch, Decl(parserRealSource11.ts, 2218, 5))
>body : Symbol(Catch.body, Decl(parserRealSource11.ts, 2221, 43))
emitter.recordSourceMappingEnd(this);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 2230, 20))
>this : Symbol(Catch, Decl(parserRealSource11.ts, 2218, 5))
emitter.emitParensAndCommentsInPlace(this, false);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 2230, 20))
>this : Symbol(Catch, Decl(parserRealSource11.ts, 2218, 5))
}
public addToControlFlow(context: ControlFlowContext) {
>addToControlFlow : Symbol(Catch.addToControlFlow, Decl(parserRealSource11.ts, 2242, 9))
>context : Symbol(context, Decl(parserRealSource11.ts, 2244, 32))
>ControlFlowContext : Symbol(ControlFlowContext)
if (this.param) {
>this.param : Symbol(Catch.param, Decl(parserRealSource11.ts, 2221, 21))
>this : Symbol(Catch, Decl(parserRealSource11.ts, 2218, 5))
>param : Symbol(Catch.param, Decl(parserRealSource11.ts, 2221, 21))
context.addContent(this.param);
>context : Symbol(context, Decl(parserRealSource11.ts, 2244, 32))
>this.param : Symbol(Catch.param, Decl(parserRealSource11.ts, 2221, 21))
>this : Symbol(Catch, Decl(parserRealSource11.ts, 2218, 5))
>param : Symbol(Catch.param, Decl(parserRealSource11.ts, 2221, 21))
var bodBlock = new BasicBlock();
>bodBlock : Symbol(bodBlock, Decl(parserRealSource11.ts, 2247, 19))
context.current.addSuccessor(bodBlock);
>context : Symbol(context, Decl(parserRealSource11.ts, 2244, 32))
>bodBlock : Symbol(bodBlock, Decl(parserRealSource11.ts, 2247, 19))
context.current = bodBlock;
>context : Symbol(context, Decl(parserRealSource11.ts, 2244, 32))
>bodBlock : Symbol(bodBlock, Decl(parserRealSource11.ts, 2247, 19))
}
if (this.body) {
>this.body : Symbol(Catch.body, Decl(parserRealSource11.ts, 2221, 43))
>this : Symbol(Catch, Decl(parserRealSource11.ts, 2218, 5))
>body : Symbol(Catch.body, Decl(parserRealSource11.ts, 2221, 43))
context.walk(this.body, this);
>context : Symbol(context, Decl(parserRealSource11.ts, 2244, 32))
>this.body : Symbol(Catch.body, Decl(parserRealSource11.ts, 2221, 43))
>this : Symbol(Catch, Decl(parserRealSource11.ts, 2218, 5))
>body : Symbol(Catch.body, Decl(parserRealSource11.ts, 2221, 43))
>this : Symbol(Catch, Decl(parserRealSource11.ts, 2218, 5))
}
context.noContinuation = false;
>context : Symbol(context, Decl(parserRealSource11.ts, 2244, 32))
context.walker.options.goChildren = false;
>context : Symbol(context, Decl(parserRealSource11.ts, 2244, 32))
}
public typeCheck(typeFlow: TypeFlow) {
>typeCheck : Symbol(Catch.typeCheck, Decl(parserRealSource11.ts, 2256, 9))
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 2258, 25))
>TypeFlow : Symbol(TypeFlow)
var prevScope = typeFlow.scope;
>prevScope : Symbol(prevScope, Decl(parserRealSource11.ts, 2259, 15))
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 2258, 25))
typeFlow.scope = this.containedScope;
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 2258, 25))
>this.containedScope : Symbol(Catch.containedScope, Decl(parserRealSource11.ts, 2227, 50))
>this : Symbol(Catch, Decl(parserRealSource11.ts, 2218, 5))
>containedScope : Symbol(Catch.containedScope, Decl(parserRealSource11.ts, 2227, 50))
this.param = <VarDecl>typeFlow.typeCheck(this.param);
>this.param : Symbol(Catch.param, Decl(parserRealSource11.ts, 2221, 21))
>this : Symbol(Catch, Decl(parserRealSource11.ts, 2218, 5))
>param : Symbol(Catch.param, Decl(parserRealSource11.ts, 2221, 21))
>VarDecl : Symbol(VarDecl, Decl(parserRealSource11.ts, 910, 5))
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 2258, 25))
>this.param : Symbol(Catch.param, Decl(parserRealSource11.ts, 2221, 21))
>this : Symbol(Catch, Decl(parserRealSource11.ts, 2218, 5))
>param : Symbol(Catch.param, Decl(parserRealSource11.ts, 2221, 21))
var exceptVar = new ValueLocation();
>exceptVar : Symbol(exceptVar, Decl(parserRealSource11.ts, 2262, 15))
var varSym = new VariableSymbol((<VarDecl>this.param).id.text,
>varSym : Symbol(varSym, Decl(parserRealSource11.ts, 2263, 15))
>(<VarDecl>this.param).id.text : Symbol(Identifier.text, Decl(parserRealSource11.ts, 251, 26))
>(<VarDecl>this.param).id : Symbol(BoundDecl.id, Decl(parserRealSource11.ts, 893, 21))
>VarDecl : Symbol(VarDecl, Decl(parserRealSource11.ts, 910, 5))
>this.param : Symbol(Catch.param, Decl(parserRealSource11.ts, 2221, 21))
>this : Symbol(Catch, Decl(parserRealSource11.ts, 2218, 5))
>param : Symbol(Catch.param, Decl(parserRealSource11.ts, 2221, 21))
>id : Symbol(BoundDecl.id, Decl(parserRealSource11.ts, 893, 21))
>text : Symbol(Identifier.text, Decl(parserRealSource11.ts, 251, 26))
this.param.minChar,
>this.param.minChar : Symbol(ASTSpan.minChar, Decl(parserRealSource11.ts, 6, 26))
>this.param : Symbol(Catch.param, Decl(parserRealSource11.ts, 2221, 21))
>this : Symbol(Catch, Decl(parserRealSource11.ts, 2218, 5))
>param : Symbol(Catch.param, Decl(parserRealSource11.ts, 2221, 21))
>minChar : Symbol(ASTSpan.minChar, Decl(parserRealSource11.ts, 6, 26))
typeFlow.checker.locationInfo.unitIndex,
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 2258, 25))
exceptVar);
>exceptVar : Symbol(exceptVar, Decl(parserRealSource11.ts, 2262, 15))
exceptVar.symbol = varSym;
>exceptVar : Symbol(exceptVar, Decl(parserRealSource11.ts, 2262, 15))
>varSym : Symbol(varSym, Decl(parserRealSource11.ts, 2263, 15))
exceptVar.typeLink = new TypeLink();
>exceptVar : Symbol(exceptVar, Decl(parserRealSource11.ts, 2262, 15))
// var type for now (add syntax for type annotation)
exceptVar.typeLink.type = typeFlow.anyType;
>exceptVar : Symbol(exceptVar, Decl(parserRealSource11.ts, 2262, 15))
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 2258, 25))
var thisFnc = typeFlow.thisFnc;
>thisFnc : Symbol(thisFnc, Decl(parserRealSource11.ts, 2271, 15))
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 2258, 25))
if (thisFnc && thisFnc.type) {
>thisFnc : Symbol(thisFnc, Decl(parserRealSource11.ts, 2271, 15))
>thisFnc : Symbol(thisFnc, Decl(parserRealSource11.ts, 2271, 15))
exceptVar.symbol.container = thisFnc.type.symbol;
>exceptVar : Symbol(exceptVar, Decl(parserRealSource11.ts, 2262, 15))
>thisFnc : Symbol(thisFnc, Decl(parserRealSource11.ts, 2271, 15))
}
else {
exceptVar.symbol.container = null;
>exceptVar : Symbol(exceptVar, Decl(parserRealSource11.ts, 2262, 15))
}
this.param.sym = exceptVar.symbol;
>this.param.sym : Symbol(BoundDecl.sym, Decl(parserRealSource11.ts, 890, 40))
>this.param : Symbol(Catch.param, Decl(parserRealSource11.ts, 2221, 21))
>this : Symbol(Catch, Decl(parserRealSource11.ts, 2218, 5))
>param : Symbol(Catch.param, Decl(parserRealSource11.ts, 2221, 21))
>sym : Symbol(BoundDecl.sym, Decl(parserRealSource11.ts, 890, 40))
>exceptVar : Symbol(exceptVar, Decl(parserRealSource11.ts, 2262, 15))
typeFlow.scope.enter(exceptVar.symbol.container, this.param, exceptVar.symbol,
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 2258, 25))
>exceptVar : Symbol(exceptVar, Decl(parserRealSource11.ts, 2262, 15))
>this.param : Symbol(Catch.param, Decl(parserRealSource11.ts, 2221, 21))
>this : Symbol(Catch, Decl(parserRealSource11.ts, 2218, 5))
>param : Symbol(Catch.param, Decl(parserRealSource11.ts, 2221, 21))
>exceptVar : Symbol(exceptVar, Decl(parserRealSource11.ts, 2262, 15))
typeFlow.checker.errorReporter, false, false, false);
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 2258, 25))
this.body = typeFlow.typeCheck(this.body);
>this.body : Symbol(Catch.body, Decl(parserRealSource11.ts, 2221, 43))
>this : Symbol(Catch, Decl(parserRealSource11.ts, 2218, 5))
>body : Symbol(Catch.body, Decl(parserRealSource11.ts, 2221, 43))
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 2258, 25))
>this.body : Symbol(Catch.body, Decl(parserRealSource11.ts, 2221, 43))
>this : Symbol(Catch, Decl(parserRealSource11.ts, 2218, 5))
>body : Symbol(Catch.body, Decl(parserRealSource11.ts, 2221, 43))
// if we're in provisional typecheck mode, clean up the symbol entry
// REVIEW: This is obviously bad form, since we're counting on the internal
// layout of the symbol table, but this is also the only place where we insert
// symbols during typecheck
if (typeFlow.checker.inProvisionalTypecheckMode()) {
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 2258, 25))
var table = typeFlow.scope.getTable();
>table : Symbol(table, Decl(parserRealSource11.ts, 2288, 19))
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 2258, 25))
(<any>table).secondaryTable.table[exceptVar.symbol.name] = undefined;
>table : Symbol(table, Decl(parserRealSource11.ts, 2288, 19))
>exceptVar : Symbol(exceptVar, Decl(parserRealSource11.ts, 2262, 15))
>undefined : Symbol(undefined)
}
this.type = typeFlow.voidType;
>this.type : Symbol(AST.type, Decl(parserRealSource11.ts, 11, 38))
>this : Symbol(Catch, Decl(parserRealSource11.ts, 2218, 5))
>type : Symbol(AST.type, Decl(parserRealSource11.ts, 11, 38))
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 2258, 25))
typeFlow.scope = prevScope;
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 2258, 25))
>prevScope : Symbol(prevScope, Decl(parserRealSource11.ts, 2259, 15))
return this;
>this : Symbol(Catch, Decl(parserRealSource11.ts, 2218, 5))
}
}
export class Finally extends Statement {
>Finally : Symbol(Finally, Decl(parserRealSource11.ts, 2295, 5))
>Statement : Symbol(Statement, Decl(parserRealSource11.ts, 1291, 5))
constructor (public body: AST) {
>body : Symbol(Finally.body, Decl(parserRealSource11.ts, 2298, 21))
>AST : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
super(NodeType.Finally);
>super : Symbol(Statement, Decl(parserRealSource11.ts, 1291, 5))
}
public emit(emitter: Emitter, tokenId: TokenID, startLine: boolean) {
>emit : Symbol(Finally.emit, Decl(parserRealSource11.ts, 2300, 9))
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 2302, 20))
>Emitter : Symbol(Emitter)
>tokenId : Symbol(tokenId, Decl(parserRealSource11.ts, 2302, 37))
>TokenID : Symbol(TokenID)
>startLine : Symbol(startLine, Decl(parserRealSource11.ts, 2302, 55))
emitter.emitParensAndCommentsInPlace(this, true);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 2302, 20))
>this : Symbol(Finally, Decl(parserRealSource11.ts, 2295, 5))
emitter.recordSourceMappingStart(this);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 2302, 20))
>this : Symbol(Finally, Decl(parserRealSource11.ts, 2295, 5))
emitter.writeToOutput("finally");
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 2302, 20))
emitter.emitJavascript(this.body, TokenID.Finally, false);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 2302, 20))
>this.body : Symbol(Finally.body, Decl(parserRealSource11.ts, 2298, 21))
>this : Symbol(Finally, Decl(parserRealSource11.ts, 2295, 5))
>body : Symbol(Finally.body, Decl(parserRealSource11.ts, 2298, 21))
emitter.recordSourceMappingEnd(this);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 2302, 20))
>this : Symbol(Finally, Decl(parserRealSource11.ts, 2295, 5))
emitter.emitParensAndCommentsInPlace(this, false);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 2302, 20))
>this : Symbol(Finally, Decl(parserRealSource11.ts, 2295, 5))
}
public addToControlFlow(context: ControlFlowContext) {
>addToControlFlow : Symbol(Finally.addToControlFlow, Decl(parserRealSource11.ts, 2309, 9))
>context : Symbol(context, Decl(parserRealSource11.ts, 2311, 32))
>ControlFlowContext : Symbol(ControlFlowContext)
if (this.body) {
>this.body : Symbol(Finally.body, Decl(parserRealSource11.ts, 2298, 21))
>this : Symbol(Finally, Decl(parserRealSource11.ts, 2295, 5))
>body : Symbol(Finally.body, Decl(parserRealSource11.ts, 2298, 21))
context.walk(this.body, this);
>context : Symbol(context, Decl(parserRealSource11.ts, 2311, 32))
>this.body : Symbol(Finally.body, Decl(parserRealSource11.ts, 2298, 21))
>this : Symbol(Finally, Decl(parserRealSource11.ts, 2295, 5))
>body : Symbol(Finally.body, Decl(parserRealSource11.ts, 2298, 21))
>this : Symbol(Finally, Decl(parserRealSource11.ts, 2295, 5))
}
context.walker.options.goChildren = false;
>context : Symbol(context, Decl(parserRealSource11.ts, 2311, 32))
context.noContinuation = false;
>context : Symbol(context, Decl(parserRealSource11.ts, 2311, 32))
}
public typeCheck(typeFlow: TypeFlow) {
>typeCheck : Symbol(Finally.typeCheck, Decl(parserRealSource11.ts, 2317, 9))
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 2319, 25))
>TypeFlow : Symbol(TypeFlow)
this.body = typeFlow.typeCheck(this.body);
>this.body : Symbol(Finally.body, Decl(parserRealSource11.ts, 2298, 21))
>this : Symbol(Finally, Decl(parserRealSource11.ts, 2295, 5))
>body : Symbol(Finally.body, Decl(parserRealSource11.ts, 2298, 21))
>typeFlow : Symbol(typeFlow, Decl(parserRealSource11.ts, 2319, 25))
>this.body : Symbol(Finally.body, Decl(parserRealSource11.ts, 2298, 21))
>this : Symbol(Finally, Decl(parserRealSource11.ts, 2295, 5))
>body : Symbol(Finally.body, Decl(parserRealSource11.ts, 2298, 21))
return this;
>this : Symbol(Finally, Decl(parserRealSource11.ts, 2295, 5))
}
}
export class Comment extends AST {
>Comment : Symbol(Comment, Decl(parserRealSource11.ts, 2323, 5))
>AST : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
public text: string[] = null;
>text : Symbol(Comment.text, Decl(parserRealSource11.ts, 2325, 38))
constructor (public content: string, public isBlockComment: boolean, public endsLine) {
>content : Symbol(Comment.content, Decl(parserRealSource11.ts, 2329, 21))
>isBlockComment : Symbol(Comment.isBlockComment, Decl(parserRealSource11.ts, 2329, 44))
>endsLine : Symbol(Comment.endsLine, Decl(parserRealSource11.ts, 2329, 76))
super(NodeType.Comment);
>super : Symbol(AST, Decl(parserRealSource11.ts, 9, 5))
}
public getText(): string[] {
>getText : Symbol(Comment.getText, Decl(parserRealSource11.ts, 2331, 9))
if (this.text == null) {
>this.text : Symbol(Comment.text, Decl(parserRealSource11.ts, 2325, 38))
>this : Symbol(Comment, Decl(parserRealSource11.ts, 2323, 5))
>text : Symbol(Comment.text, Decl(parserRealSource11.ts, 2325, 38))
if (this.isBlockComment) {
>this.isBlockComment : Symbol(Comment.isBlockComment, Decl(parserRealSource11.ts, 2329, 44))
>this : Symbol(Comment, Decl(parserRealSource11.ts, 2323, 5))
>isBlockComment : Symbol(Comment.isBlockComment, Decl(parserRealSource11.ts, 2329, 44))
this.text = this.content.split("\n");
>this.text : Symbol(Comment.text, Decl(parserRealSource11.ts, 2325, 38))
>this : Symbol(Comment, Decl(parserRealSource11.ts, 2323, 5))
>text : Symbol(Comment.text, Decl(parserRealSource11.ts, 2325, 38))
>this.content.split : Symbol(String.split, Decl(lib.es5.d.ts, --, --))
>this.content : Symbol(Comment.content, Decl(parserRealSource11.ts, 2329, 21))
>this : Symbol(Comment, Decl(parserRealSource11.ts, 2323, 5))
>content : Symbol(Comment.content, Decl(parserRealSource11.ts, 2329, 21))
>split : Symbol(String.split, Decl(lib.es5.d.ts, --, --))
for (var i = 0; i < this.text.length; i++) {
>i : Symbol(i, Decl(parserRealSource11.ts, 2337, 28))
>i : Symbol(i, Decl(parserRealSource11.ts, 2337, 28))
>this.text.length : Symbol(Array.length, Decl(lib.es5.d.ts, --, --))
>this.text : Symbol(Comment.text, Decl(parserRealSource11.ts, 2325, 38))
>this : Symbol(Comment, Decl(parserRealSource11.ts, 2323, 5))
>text : Symbol(Comment.text, Decl(parserRealSource11.ts, 2325, 38))
>length : Symbol(Array.length, Decl(lib.es5.d.ts, --, --))
>i : Symbol(i, Decl(parserRealSource11.ts, 2337, 28))
this.text[i] = this.text[i].replace(/^\s+|\s+$/g, '');
>this.text : Symbol(Comment.text, Decl(parserRealSource11.ts, 2325, 38))
>this : Symbol(Comment, Decl(parserRealSource11.ts, 2323, 5))
>text : Symbol(Comment.text, Decl(parserRealSource11.ts, 2325, 38))
>i : Symbol(i, Decl(parserRealSource11.ts, 2337, 28))
>this.text[i].replace : Symbol(String.replace, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
>this.text : Symbol(Comment.text, Decl(parserRealSource11.ts, 2325, 38))
>this : Symbol(Comment, Decl(parserRealSource11.ts, 2323, 5))
>text : Symbol(Comment.text, Decl(parserRealSource11.ts, 2325, 38))
>i : Symbol(i, Decl(parserRealSource11.ts, 2337, 28))
>replace : Symbol(String.replace, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
}
}
else {
this.text = [(this.content.replace(/^\s+|\s+$/g, ''))];
>this.text : Symbol(Comment.text, Decl(parserRealSource11.ts, 2325, 38))
>this : Symbol(Comment, Decl(parserRealSource11.ts, 2323, 5))
>text : Symbol(Comment.text, Decl(parserRealSource11.ts, 2325, 38))
>this.content.replace : Symbol(String.replace, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
>this.content : Symbol(Comment.content, Decl(parserRealSource11.ts, 2329, 21))
>this : Symbol(Comment, Decl(parserRealSource11.ts, 2323, 5))
>content : Symbol(Comment.content, Decl(parserRealSource11.ts, 2329, 21))
>replace : Symbol(String.replace, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
}
}
return this.text;
>this.text : Symbol(Comment.text, Decl(parserRealSource11.ts, 2325, 38))
>this : Symbol(Comment, Decl(parserRealSource11.ts, 2323, 5))
>text : Symbol(Comment.text, Decl(parserRealSource11.ts, 2325, 38))
}
}
export class DebuggerStatement extends Statement {
>DebuggerStatement : Symbol(DebuggerStatement, Decl(parserRealSource11.ts, 2348, 5))
>Statement : Symbol(Statement, Decl(parserRealSource11.ts, 1291, 5))
constructor () {
super(NodeType.Debugger);
>super : Symbol(Statement, Decl(parserRealSource11.ts, 1291, 5))
}
public emit(emitter: Emitter, tokenId: TokenID, startLine: boolean) {
>emit : Symbol(DebuggerStatement.emit, Decl(parserRealSource11.ts, 2353, 9))
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 2355, 20))
>Emitter : Symbol(Emitter)
>tokenId : Symbol(tokenId, Decl(parserRealSource11.ts, 2355, 37))
>TokenID : Symbol(TokenID)
>startLine : Symbol(startLine, Decl(parserRealSource11.ts, 2355, 55))
emitter.emitParensAndCommentsInPlace(this, true);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 2355, 20))
>this : Symbol(DebuggerStatement, Decl(parserRealSource11.ts, 2348, 5))
emitter.recordSourceMappingStart(this);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 2355, 20))
>this : Symbol(DebuggerStatement, Decl(parserRealSource11.ts, 2348, 5))
emitter.writeLineToOutput("debugger;");
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 2355, 20))
emitter.recordSourceMappingEnd(this);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 2355, 20))
>this : Symbol(DebuggerStatement, Decl(parserRealSource11.ts, 2348, 5))
emitter.emitParensAndCommentsInPlace(this, false);
>emitter : Symbol(emitter, Decl(parserRealSource11.ts, 2355, 20))
>this : Symbol(DebuggerStatement, Decl(parserRealSource11.ts, 2348, 5))
}
}
}