tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(4,21): error TS6053: File 'tests/cases/conformance/parser/ecmascript5/typescript.ts' not found.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(13,22): error TS2304: Cannot find name 'Type'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(14,24): error TS2304: Cannot find name 'ASTFlags'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(17,38): error TS2304: Cannot find name 'CompilerDiagnostics'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(24,39): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(36,36): error TS2304: Cannot find name 'TypeFlow'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(38,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(39,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(42,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(44,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(47,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(48,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(51,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(53,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(54,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(55,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(64,30): error TS2304: Cannot find name 'Emitter'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(64,48): error TS2304: Cannot find name 'TokenID'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(67,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(69,45): error TS2304: Cannot find name 'hasFlag'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(69,79): error TS2304: Cannot find name 'FncFlags'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(77,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(82,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(87,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(92,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(97,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(99,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(100,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(103,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(108,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(119,31): error TS2304: Cannot find name 'PrintContext'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(130,17): error TS2304: Cannot find name 'hasFlag'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(130,37): error TS2304: Cannot find name 'ASTFlags'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(137,17): error TS2304: Cannot find name 'nodeTypeTable'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(138,24): error TS2304: Cannot find name 'nodeTypeTable'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(141,30): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(145,42): error TS2304: Cannot find name 'ControlFlowContext'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(151,57): error TS2304: Cannot find name 'StringHashTable'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(155,26): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(184,19): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(192,32): error TS2304: Cannot find name 'SymbolScope'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(193,41): error TS1011: An element access expression should take an argument.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(196,19): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(199,42): error TS2304: Cannot find name 'ControlFlowContext'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(219,33): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(231,30): error TS2304: Cannot find name 'Emitter'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(231,48): error TS2304: Cannot find name 'TokenID'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(233,52): error TS2304: Cannot find name 'TokenID'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(237,36): error TS2304: Cannot find name 'TypeFlow'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(268,19): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(298,36): error TS2304: Cannot find name 'TypeFlow'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(302,30): error TS2304: Cannot find name 'Emitter'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(302,48): error TS2304: Cannot find name 'TokenID'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(306,40): error TS2304: Cannot find name 'Token'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(307,54): error TS2304: Cannot find name 'IdentifierToken'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(320,30): error TS2304: Cannot find name 'Emitter'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(320,48): error TS2304: Cannot find name 'TokenID'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(327,19): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(332,36): error TS2304: Cannot find name 'TypeFlow'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(337,30): error TS2304: Cannot find name 'Emitter'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(337,48): error TS2304: Cannot find name 'TokenID'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(350,32): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(360,28): error TS2304: Cannot find name 'Type'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(363,32): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(367,42): error TS2304: Cannot find name 'ControlFlowContext'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(370,34): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(375,36): error TS2304: Cannot find name 'TypeFlow'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(377,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(380,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(383,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(384,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(387,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(388,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(389,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(390,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(393,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(397,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(401,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(406,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(411,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(416,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(427,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(441,30): error TS2304: Cannot find name 'Emitter'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(441,48): error TS2304: Cannot find name 'TokenID'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(445,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(446,58): error TS2304: Cannot find name 'TokenID'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(449,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(451,58): error TS2304: Cannot find name 'TokenID'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(453,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(454,58): error TS2304: Cannot find name 'TokenID'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(457,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(460,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(463,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(465,58): error TS2304: Cannot find name 'TokenID'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(467,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(469,50): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(472,58): error TS2304: Cannot find name 'TokenID'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(474,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(476,50): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(479,58): error TS2304: Cannot find name 'TokenID'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(481,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(483,58): error TS2304: Cannot find name 'TokenID'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(485,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(487,58): error TS2304: Cannot find name 'TokenID'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(489,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(491,58): error TS2304: Cannot find name 'TokenID'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(494,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(496,58): error TS2304: Cannot find name 'TokenID'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(498,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(500,58): error TS2304: Cannot find name 'TokenID'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(502,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(504,58): error TS2304: Cannot find name 'TokenID'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(506,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(507,58): error TS2304: Cannot find name 'TokenID'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(518,32): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(520,29): error TS1210: Code contained in a class is evaluated in JavaScript's strict mode which does not allow this use of 'arguments'. For more information, see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Strict_mode.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(525,27): error TS2304: Cannot find name 'Signature'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(527,36): error TS2304: Cannot find name 'TypeFlow'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(528,34): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(536,30): error TS2304: Cannot find name 'Emitter'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(536,48): error TS2304: Cannot find name 'TokenID'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(540,34): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(553,32): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(557,36): error TS2304: Cannot find name 'TypeFlow'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(559,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(561,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(563,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(564,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(565,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(566,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(567,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(568,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(569,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(571,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(573,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(574,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(577,32): error TS2304: Cannot find name 'nodeTypeTable'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(581,32): error TS2304: Cannot find name 'nodeTypeTable'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(582,84): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(586,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(587,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(588,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(589,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(590,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(591,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(593,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(595,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(598,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(600,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(602,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(603,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(604,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(605,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(606,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(607,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(608,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(610,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(612,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(613,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(614,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(616,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(617,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(618,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(620,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(622,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(624,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(626,22): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(635,30): error TS2304: Cannot find name 'Emitter'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(635,48): error TS2304: Cannot find name 'TokenID'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(636,30): error TS2304: Cannot find name 'nodeTypeToTokTable'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(644,21): error TS2304: Cannot find name 'tokenTable'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(647,26): error TS2304: Cannot find name 'tokenTable'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(651,58): error TS2304: Cannot find name 'tokenTable'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(658,26): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(660,67): error TS2304: Cannot find name 'TokenID'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(665,26): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(669,26): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(670,55): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(672,33): error TS2304: Cannot find name 'hasFlag'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(672,60): error TS2304: Cannot find name 'FncFlags'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(678,67): error TS2304: Cannot find name 'TokenID'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(681,67): error TS2304: Cannot find name 'TokenID'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(684,63): error TS2304: Cannot find name 'TokenID'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(686,26): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(687,63): error TS2304: Cannot find name 'TokenID'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(694,63): error TS2304: Cannot find name 'TokenID'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(696,26): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(711,19): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(714,36): error TS2304: Cannot find name 'TypeFlow'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(718,30): error TS2304: Cannot find name 'Emitter'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(718,48): error TS2304: Cannot find name 'TokenID'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(721,51): error TS2304: Cannot find name 'TokenID'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(723,51): error TS2304: Cannot find name 'TokenID'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(725,51): error TS2304: Cannot find name 'TokenID'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(733,19): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(738,36): error TS2304: Cannot find name 'TypeFlow'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(747,30): error TS2304: Cannot find name 'Emitter'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(747,48): error TS2304: Cannot find name 'TokenID'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(778,19): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(781,36): error TS2304: Cannot find name 'TypeFlow'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(786,30): error TS2304: Cannot find name 'Emitter'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(786,48): error TS2304: Cannot find name 'TokenID'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(797,19): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(800,30): error TS2304: Cannot find name 'Emitter'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(800,48): error TS2304: Cannot find name 'TokenID'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(808,36): error TS2304: Cannot find name 'TypeFlow'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(823,32): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(830,27): error TS2304: Cannot find name 'VarFlags'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(834,19): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(837,30): error TS2304: Cannot find name 'Emitter'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(837,48): error TS2304: Cannot find name 'TokenID'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(838,24): error TS2304: Cannot find name 'ModuleType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(841,61): error TS2304: Cannot find name 'TypeSymbol'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(850,52): error TS2304: Cannot find name 'TokenID'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(863,36): error TS2304: Cannot find name 'TypeFlow'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(868,38): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(877,40): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(891,27): error TS2304: Cannot find name 'VarFlags'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(894,55): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(900,37): error TS2304: Cannot find name 'hasFlag'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(900,60): error TS2304: Cannot find name 'VarFlags'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(901,36): error TS2304: Cannot find name 'hasFlag'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(901,59): error TS2304: Cannot find name 'VarFlags'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(902,38): error TS2304: Cannot find name 'hasFlag'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(902,61): error TS2304: Cannot find name 'VarFlags'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(904,36): error TS2304: Cannot find name 'TypeFlow'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(915,23): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(918,37): error TS2304: Cannot find name 'hasFlag'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(918,60): error TS2304: Cannot find name 'VarFlags'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(919,38): error TS2304: Cannot find name 'hasFlag'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(919,61): error TS2304: Cannot find name 'VarFlags'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(920,36): error TS2304: Cannot find name 'hasFlag'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(920,59): error TS2304: Cannot find name 'VarFlags'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(922,30): error TS2304: Cannot find name 'Emitter'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(922,48): error TS2304: Cannot find name 'TokenID'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(933,23): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(944,38): error TS2304: Cannot find name 'FieldSymbol'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(946,30): error TS2304: Cannot find name 'Emitter'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(946,48): error TS2304: Cannot find name 'TokenID'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(959,27): error TS2304: Cannot find name 'FncFlags'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(961,25): error TS2304: Cannot find name 'IHashTable'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(963,27): error TS2304: Cannot find name 'Signature'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(981,27): error TS2304: Cannot find name 'Type'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(985,29): error TS1210: Code contained in a class is evaluated in JavaScript's strict mode which does not allow this use of 'arguments'. For more information, see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Strict_mode.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1004,44): error TS2304: Cannot find name 'hasFlag'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1004,67): error TS2304: Cannot find name 'FncFlags'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1005,57): error TS2304: Cannot find name 'FncFlags'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1009,46): error TS1011: An element access expression should take an argument.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1014,65): error TS2339: Property 'container' does not exist on type 'Symbol'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1024,48): error TS1011: An element access expression should take an argument.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1026,41): error TS2339: Property 'name' does not exist on type 'Symbol'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1032,36): error TS2304: Cannot find name 'ControlFlowContext'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1033,29): error TS2304: Cannot find name 'BasicBlock'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1034,28): error TS2304: Cannot find name 'BasicBlock'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1036,31): error TS2304: Cannot find name 'ControlFlowContext'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1038,69): error TS2304: Cannot find name 'IAstWalker'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1043,26): error TS2304: Cannot find name 'getAstWalkerFactory'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1050,36): error TS2304: Cannot find name 'TypeFlow'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1054,30): error TS2304: Cannot find name 'Emitter'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1054,48): error TS2304: Cannot find name 'TokenID'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1068,37): error TS2304: Cannot find name 'FncFlags'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1068,57): error TS2304: Cannot find name 'FncFlags'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1071,40): error TS2304: Cannot find name 'hasFlag'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1071,63): error TS2304: Cannot find name 'FncFlags'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1072,45): error TS2304: Cannot find name 'hasFlag'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1072,68): error TS2304: Cannot find name 'FncFlags'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1073,43): error TS2304: Cannot find name 'hasFlag'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1073,66): error TS2304: Cannot find name 'FncFlags'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1076,38): error TS2304: Cannot find name 'hasFlag'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1076,61): error TS2304: Cannot find name 'FncFlags'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1076,86): error TS2304: Cannot find name 'hasFlag'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1076,109): error TS2304: Cannot find name 'FncFlags'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1077,41): error TS2304: Cannot find name 'hasFlag'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1077,64): error TS2304: Cannot find name 'FncFlags'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1078,41): error TS2304: Cannot find name 'hasFlag'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1078,64): error TS2304: Cannot find name 'FncFlags'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1079,37): error TS2304: Cannot find name 'hasFlag'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1079,60): error TS2304: Cannot find name 'FncFlags'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1080,38): error TS2304: Cannot find name 'hasFlag'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1080,61): error TS2304: Cannot find name 'FncFlags'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1081,37): error TS2304: Cannot find name 'hasFlag'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1081,60): error TS2304: Cannot find name 'FncFlags'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1082,36): error TS2304: Cannot find name 'hasFlag'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1082,59): error TS2304: Cannot find name 'FncFlags'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1083,36): error TS2304: Cannot find name 'hasFlag'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1083,59): error TS2304: Cannot find name 'FncFlags'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1095,29): error TS2304: Cannot find name 'FncFlags'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1098,56): error TS2304: Cannot find name 'FncFlags'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1098,79): error TS2304: Cannot find name 'FncFlags'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1111,33): error TS2304: Cannot find name 'IFileReference'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1127,84): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1132,36): error TS2304: Cannot find name 'TypeFlow'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1144,42): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1145,30): error TS2304: Cannot find name 'hasFlag'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1145,74): error TS2304: Cannot find name 'ModuleFlags'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1145,109): error TS2304: Cannot find name 'ModuleFlags'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1149,47): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1150,30): error TS2304: Cannot find name 'hasFlag'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1150,77): error TS2304: Cannot find name 'VarFlags'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1154,47): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1155,30): error TS2304: Cannot find name 'hasFlag'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1155,64): error TS2304: Cannot find name 'VarFlags'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1159,47): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1164,47): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1164,97): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1172,30): error TS2304: Cannot find name 'Emitter'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1172,48): error TS2304: Cannot find name 'TokenID'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1176,60): error TS2304: Cannot find name 'TokenID'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1187,32): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1195,27): error TS2304: Cannot find name 'ModuleFlags'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1196,21): error TS2304: Cannot find name 'ModuleType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1206,19): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1213,38): error TS2304: Cannot find name 'hasFlag'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1213,61): error TS2304: Cannot find name 'ModuleFlags'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1214,37): error TS2304: Cannot find name 'hasFlag'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1214,60): error TS2304: Cannot find name 'ModuleFlags'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1215,34): error TS2304: Cannot find name 'hasFlag'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1215,57): error TS2304: Cannot find name 'ModuleFlags'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1218,31): error TS2304: Cannot find name 'ModuleFlags'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1221,36): error TS2304: Cannot find name 'TypeFlow'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1225,30): error TS2304: Cannot find name 'Emitter'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1225,48): error TS2304: Cannot find name 'TokenID'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1226,18): error TS2304: Cannot find name 'hasFlag'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1226,41): error TS2304: Cannot find name 'ModuleFlags'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1237,27): error TS2304: Cannot find name 'VarFlags'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1239,32): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1248,20): error TS2304: Cannot find name 'hasFlag'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1248,43): error TS2304: Cannot find name 'VarFlags'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1252,20): error TS2304: Cannot find name 'hasFlag'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1252,43): error TS2304: Cannot find name 'VarFlags'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1266,19): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1269,36): error TS2304: Cannot find name 'TypeFlow'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1273,30): error TS2304: Cannot find name 'Emitter'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1273,48): error TS2304: Cannot find name 'TokenID'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1283,19): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1286,36): error TS2304: Cannot find name 'TypeFlow'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1290,30): error TS2304: Cannot find name 'Emitter'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1290,48): error TS2304: Cannot find name 'TokenID'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1295,32): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1297,27): error TS2304: Cannot find name 'ASTFlags'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1306,36): error TS2304: Cannot find name 'TypeFlow'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1314,19): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1317,30): error TS2304: Cannot find name 'Emitter'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1317,48): error TS2304: Cannot find name 'TokenID'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1331,36): error TS2304: Cannot find name 'TypeFlow'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1337,42): error TS2304: Cannot find name 'ControlFlowContext'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1339,26): error TS2304: Cannot find name 'BasicBlock'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1348,19): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1351,30): error TS2304: Cannot find name 'Emitter'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1351,48): error TS2304: Cannot find name 'TokenID'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1362,67): error TS2304: Cannot find name 'TokenID'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1374,42): error TS2304: Cannot find name 'ControlFlowContext'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1375,37): error TS2304: Cannot find name 'BasicBlock'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1388,36): error TS2304: Cannot find name 'TypeFlow'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1405,32): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1409,42): error TS2304: Cannot find name 'Parser'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1414,35): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1419,39): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1430,42): error TS2304: Cannot find name 'ControlFlowContext'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1432,80): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1435,30): error TS2304: Cannot find name 'Emitter'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1435,48): error TS2304: Cannot find name 'TokenID'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1438,34): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1457,19): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1462,30): error TS2304: Cannot find name 'Emitter'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1462,48): error TS2304: Cannot find name 'TokenID'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1467,47): error TS2304: Cannot find name 'TokenID'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1475,36): error TS2304: Cannot find name 'TypeFlow'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1479,42): error TS2304: Cannot find name 'ControlFlowContext'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1481,33): error TS2304: Cannot find name 'BasicBlock'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1482,33): error TS2304: Cannot find name 'BasicBlock'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1488,29): error TS2304: Cannot find name 'ITargetInfo'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1490,39): error TS2304: Cannot find name 'BasicBlock'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1515,19): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1518,30): error TS2304: Cannot find name 'Emitter'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1518,48): error TS2304: Cannot find name 'TokenID'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1528,47): error TS2304: Cannot find name 'TokenID'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1535,36): error TS2304: Cannot find name 'TypeFlow'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1539,42): error TS2304: Cannot find name 'ControlFlowContext'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1541,33): error TS2304: Cannot find name 'BasicBlock'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1542,33): error TS2304: Cannot find name 'BasicBlock'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1545,29): error TS2304: Cannot find name 'ITargetInfo'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1572,19): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1577,30): error TS2304: Cannot find name 'Emitter'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1577,48): error TS2304: Cannot find name 'TokenID'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1583,47): error TS2304: Cannot find name 'TokenID'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1596,36): error TS2304: Cannot find name 'TypeFlow'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1600,42): error TS2304: Cannot find name 'ControlFlowContext'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1602,31): error TS2304: Cannot find name 'BasicBlock'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1606,35): error TS2304: Cannot find name 'BasicBlock'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1615,39): error TS2304: Cannot find name 'BasicBlock'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1651,19): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1654,30): error TS2304: Cannot find name 'Emitter'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1654,48): error TS2304: Cannot find name 'TokenID'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1660,63): error TS2304: Cannot find name 'TokenID'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1670,42): error TS2304: Cannot find name 'ControlFlowContext'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1675,36): error TS2304: Cannot find name 'TypeFlow'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1682,19): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1688,19): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1689,53): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1690,52): error TS2304: Cannot find name 'VarFlags'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1701,43): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1712,48): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1718,48): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1720,46): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1722,52): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1724,65): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1725,59): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1732,66): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1733,73): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1749,30): error TS2304: Cannot find name 'Emitter'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1749,48): error TS2304: Cannot find name 'TokenID'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1755,47): error TS2304: Cannot find name 'TokenID'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1757,46): error TS2304: Cannot find name 'TokenID'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1766,36): error TS2304: Cannot find name 'TypeFlow'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1775,42): error TS2304: Cannot find name 'ControlFlowContext'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1784,33): error TS2304: Cannot find name 'BasicBlock'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1785,33): error TS2304: Cannot find name 'BasicBlock'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1811,19): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1816,30): error TS2304: Cannot find name 'Emitter'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1816,48): error TS2304: Cannot find name 'TokenID'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1822,43): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1823,55): error TS2304: Cannot find name 'TokenID'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1827,65): error TS2304: Cannot find name 'TokenID'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1831,47): error TS2304: Cannot find name 'TokenID'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1833,47): error TS2304: Cannot find name 'TokenID'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1841,36): error TS2304: Cannot find name 'TypeFlow'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1845,42): error TS2304: Cannot find name 'ControlFlowContext'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1850,33): error TS2304: Cannot find name 'BasicBlock'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1851,33): error TS2304: Cannot find name 'BasicBlock'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1855,28): error TS2304: Cannot find name 'BasicBlock'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1857,25): error TS2304: Cannot find name 'BasicBlock'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1859,30): error TS2304: Cannot find name 'BasicBlock'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1865,39): error TS2304: Cannot find name 'BasicBlock'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1868,29): error TS2304: Cannot find name 'ITargetInfo'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1908,25): error TS2304: Cannot find name 'WithSymbol'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1911,19): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1914,30): error TS2304: Cannot find name 'Emitter'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1914,48): error TS2304: Cannot find name 'TokenID'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1919,51): error TS2304: Cannot find name 'TokenID'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1928,36): error TS2304: Cannot find name 'TypeFlow'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1939,19): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1944,30): error TS2304: Cannot find name 'Emitter'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1944,48): error TS2304: Cannot find name 'TokenID'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1950,46): error TS2304: Cannot find name 'TokenID'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1958,50): error TS2304: Cannot find name 'TokenID'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1969,36): error TS2304: Cannot find name 'TypeFlow'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1981,42): error TS2304: Cannot find name 'ControlFlowContext'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1984,33): error TS2304: Cannot find name 'BasicBlock'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(1985,35): error TS2304: Cannot find name 'BasicBlock'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(2014,19): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(2017,30): error TS2304: Cannot find name 'Emitter'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(2017,48): error TS2304: Cannot find name 'TokenID'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(2022,51): error TS2304: Cannot find name 'TokenID'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(2033,36): error TS2304: Cannot find name 'TypeFlow'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(2042,42): error TS2304: Cannot find name 'ControlFlowContext'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(2043,33): error TS2304: Cannot find name 'BasicBlock'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(2047,37): error TS2304: Cannot find name 'BasicBlock'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(2067,19): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(2070,30): error TS2304: Cannot find name 'Emitter'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(2070,48): error TS2304: Cannot find name 'TokenID'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(2074,36): error TS2304: Cannot find name 'TypeFlow'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(2077,28): error TS2304: Cannot find name 'getTypeLink'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(2100,19): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(2105,30): error TS2304: Cannot find name 'Emitter'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(2105,48): error TS2304: Cannot find name 'TokenID'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(2107,50): error TS2304: Cannot find name 'TokenID'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(2108,54): error TS2304: Cannot find name 'TokenID'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(2112,36): error TS2304: Cannot find name 'TypeFlow'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(2119,42): error TS2304: Cannot find name 'ControlFlowContext'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(2120,36): error TS2304: Cannot find name 'BasicBlock'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(2122,32): error TS2304: Cannot find name 'BasicBlock'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(2145,19): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(2150,30): error TS2304: Cannot find name 'Emitter'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(2150,48): error TS2304: Cannot find name 'TokenID'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(2153,50): error TS2304: Cannot find name 'TokenID'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(2154,52): error TS2304: Cannot find name 'TokenID'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(2159,42): error TS2304: Cannot find name 'ControlFlowContext'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(2161,32): error TS2304: Cannot find name 'BasicBlock'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(2164,37): error TS2304: Cannot find name 'BasicBlock'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(2172,35): error TS2304: Cannot find name 'BasicBlock'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(2185,36): error TS2304: Cannot find name 'TypeFlow'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(2195,19): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(2198,30): error TS2304: Cannot find name 'Emitter'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(2198,48): error TS2304: Cannot find name 'TokenID'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(2202,47): error TS2304: Cannot find name 'TokenID'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(2207,36): error TS2304: Cannot find name 'TypeFlow'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(2212,42): error TS2304: Cannot find name 'ControlFlowContext'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(2223,19): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(2225,40): error TS2304: Cannot find name 'VarFlags'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(2229,32): error TS2304: Cannot find name 'SymbolScope'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(2231,30): error TS2304: Cannot find name 'Emitter'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(2231,48): error TS2304: Cannot find name 'TokenID'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(2237,48): error TS2304: Cannot find name 'TokenID'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(2240,47): error TS2304: Cannot find name 'TokenID'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(2245,42): error TS2304: Cannot find name 'ControlFlowContext'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(2248,36): error TS2304: Cannot find name 'BasicBlock'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(2259,36): error TS2304: Cannot find name 'TypeFlow'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(2263,33): error TS2304: Cannot find name 'ValueLocation'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(2264,30): error TS2304: Cannot find name 'VariableSymbol'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(2269,38): error TS2304: Cannot find name 'TypeLink'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(2300,19): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(2303,30): error TS2304: Cannot find name 'Emitter'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(2303,48): error TS2304: Cannot find name 'TokenID'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(2307,47): error TS2304: Cannot find name 'TokenID'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(2312,42): error TS2304: Cannot find name 'ControlFlowContext'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(2320,36): error TS2304: Cannot find name 'TypeFlow'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(2331,19): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(2353,19): error TS2304: Cannot find name 'NodeType'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(2356,30): error TS2304: Cannot find name 'Emitter'.
tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts(2356,48): error TS2304: Cannot find name 'TokenID'.


==== tests/cases/conformance/parser/ecmascript5/parserRealSource11.ts (511 errors) ====
    // 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' />
                        ~~~~~~~~~~~~~
!!! error TS6053: File 'tests/cases/conformance/parser/ecmascript5/typescript.ts' not found.
    
    module TypeScript {
        export class ASTSpan {
            public minChar: number = -1;  // -1 = "undefined" or "compiler generated"
            public limChar: number = -1;  // -1 = "undefined" or "compiler generated"   
        }
    
        export class AST extends ASTSpan {
            public type: Type = null;
                         ~~~~
!!! error TS2304: Cannot find name 'Type'.
            public flags = ASTFlags.Writeable;
                           ~~~~~~~~
!!! error TS2304: Cannot find name 'ASTFlags'.
    
            // REVIEW: for diagnostic purposes
            public passCreated: number = CompilerDiagnostics.analysisPass;
                                         ~~~~~~~~~~~~~~~~~~~
!!! error TS2304: Cannot find name 'CompilerDiagnostics'.
    
            public preComments: Comment[] = null;
            public postComments: Comment[] = null;
    
            public isParenthesized = false;
    
            constructor (public nodeType: NodeType) {
                                          ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                super();
            }
    
            public isExpression() { return false; }
    
            public isStatementOrExpression() { return false; }
    
            public isCompoundStatement() { return false; }
    
            public isLeaf() { return this.isStatementOrExpression() && (!this.isCompoundStatement()); }
    
            public typeCheck(typeFlow: TypeFlow) {
                                       ~~~~~~~~
!!! error TS2304: Cannot find name 'TypeFlow'.
                switch (this.nodeType) {
                    case NodeType.Error:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                    case NodeType.EmptyExpr:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                        this.type = typeFlow.anyType;
                        break;
                    case NodeType.This:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                        return typeFlow.typeCheckThis(this);
                    case NodeType.Null:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                        this.type = typeFlow.nullType;
                        break;
                    case NodeType.False:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                    case NodeType.True:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                        this.type = typeFlow.booleanType;
                        break;
                    case NodeType.Super:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                        return typeFlow.typeCheckSuper(this);
                    case NodeType.EndCode:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                    case NodeType.Empty:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                    case NodeType.Void:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                        this.type = typeFlow.voidType;
                        break;
                    default:
                        throw new Error("please implement in derived class");
                }
                return this;
            }
    
            public emit(emitter: Emitter, tokenId: TokenID, startLine: boolean) {
                                 ~~~~~~~
!!! error TS2304: Cannot find name 'Emitter'.
                                                   ~~~~~~~
!!! error TS2304: Cannot find name 'TokenID'.
                emitter.emitParensAndCommentsInPlace(this, true);
                switch (this.nodeType) {
                    case NodeType.This:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                        emitter.recordSourceMappingStart(this);
                        if (emitter.thisFnc && (hasFlag(emitter.thisFnc.fncFlags, FncFlags.IsFatArrowFunction))) {
                                                ~~~~~~~
!!! error TS2304: Cannot find name 'hasFlag'.
                                                                                  ~~~~~~~~
!!! error TS2304: Cannot find name 'FncFlags'.
                            emitter.writeToOutput("_this");
                        }
                        else {
                            emitter.writeToOutput("this");
                        }
                        emitter.recordSourceMappingEnd(this);
                        break;
                    case NodeType.Null:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                        emitter.recordSourceMappingStart(this);
                        emitter.writeToOutput("null");
                        emitter.recordSourceMappingEnd(this);
                        break;
                    case NodeType.False:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                        emitter.recordSourceMappingStart(this);
                        emitter.writeToOutput("false");
                        emitter.recordSourceMappingEnd(this);
                        break;
                    case NodeType.True:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                        emitter.recordSourceMappingStart(this);
                        emitter.writeToOutput("true");
                        emitter.recordSourceMappingEnd(this);
                        break;
                    case NodeType.Super:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                        emitter.recordSourceMappingStart(this);
                        emitter.emitSuperReference();
                        emitter.recordSourceMappingEnd(this);
                        break;
                    case NodeType.EndCode:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                        break;
                    case NodeType.Error:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                    case NodeType.EmptyExpr:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                        break;
    
                    case NodeType.Empty:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                        emitter.recordSourceMappingStart(this);
                        emitter.writeToOutput("; ");
                        emitter.recordSourceMappingEnd(this);
                        break;
                    case NodeType.Void:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                        emitter.recordSourceMappingStart(this);
                        emitter.writeToOutput("void ");
                        emitter.recordSourceMappingEnd(this);
                        break;
                    default:
                        throw new Error("please implement in derived class");
                }
                emitter.emitParensAndCommentsInPlace(this, false);
            }
    
            public print(context: PrintContext) {
                                  ~~~~~~~~~~~~
!!! error TS2304: Cannot find name 'PrintContext'.
                context.startLine();
                var lineCol = { line: -1, col: -1 };
                var limLineCol = { line: -1, col: -1 };
                if (context.parser !== null) {
                    context.parser.getSourceLineCol(lineCol, this.minChar);
                    context.parser.getSourceLineCol(limLineCol, this.limChar);
                    context.write("(" + lineCol.line + "," + lineCol.col + ")--" +
                                  "(" + limLineCol.line + "," + limLineCol.col + "): ");
                }
                var lab = this.printLabel();
                if (hasFlag(this.flags, ASTFlags.Error)) {
                    ~~~~~~~
!!! error TS2304: Cannot find name 'hasFlag'.
                                        ~~~~~~~~
!!! error TS2304: Cannot find name 'ASTFlags'.
                    lab += " (Error)";
                }
                context.writeLine(lab);
            }
    
            public printLabel() {
                if (nodeTypeTable[this.nodeType] !== undefined) {
                    ~~~~~~~~~~~~~
!!! error TS2304: Cannot find name 'nodeTypeTable'.
                    return nodeTypeTable[this.nodeType];
                           ~~~~~~~~~~~~~
!!! error TS2304: Cannot find name 'nodeTypeTable'.
                }
                else {
                    return (<any>NodeType)._map[this.nodeType];
                                 ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                }
            }
    
            public addToControlFlow(context: ControlFlowContext): void {
                                             ~~~~~~~~~~~~~~~~~~
!!! error TS2304: Cannot find name 'ControlFlowContext'.
                // by default, AST adds itself to current basic block and does not check its children
                context.walker.options.goChildren = false;
                context.addContent(this);
            }
    
            public netFreeUses(container: Symbol, freeUses: StringHashTable) {
                                                            ~~~~~~~~~~~~~~~
!!! error TS2304: Cannot find name 'StringHashTable'.
            }
    
            public treeViewLabel() {
                return (<any>NodeType)._map[this.nodeType];
                             ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
            }
    
            public static getResolvedIdentifierName(name: string): string {
                if (!name) return "";
    
                var resolved = "";
                var start = 0;
                var i = 0;
                while(i <= name.length - 6) {
                    // Look for escape sequence \uxxxx
                    if (name.charAt(i) == '\\' && name.charAt(i+1) == 'u') {
                        var charCode = parseInt(name.substr(i + 2, 4), 16);
                        resolved += name.substr(start, i - start);
                        resolved += String.fromCharCode(charCode);
                        i += 6;
                        start = i;
                        continue;
                    } 
                    i++;
                }
                // Append remaining string
                resolved += name.substring(start);
                return resolved;
            }
        }
    
        export class IncompleteAST extends AST {
            constructor (min: number, lim: number) {
                super(NodeType.Error);
                      ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
    
                this.minChar = min;
                this.limChar = lim;
            }
        }
    
        export class ASTList extends AST {
            public enclosingScope: SymbolScope = null;
                                   ~~~~~~~~~~~
!!! error TS2304: Cannot find name 'SymbolScope'.
            public members: AST[] = new AST[];
                                            
!!! error TS1011: An element access expression should take an argument.
    
            constructor () {
                super(NodeType.List);
                      ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
            }
    
            public addToControlFlow(context: ControlFlowContext) {
                                             ~~~~~~~~~~~~~~~~~~
!!! error TS2304: Cannot find name 'ControlFlowContext'.
                var len = this.members.length;
                for (var i = 0; i < len; i++) {
                    if (context.noContinuation) {
                        context.addUnreachable(this.members[i]);
                        break;
                    }
                    else {
                        this.members[i] = context.walk(this.members[i], this);
                    }
                }
                context.walker.options.goChildren = false;
            }
    
            public append(ast: AST) {
                this.members[this.members.length] = ast;
                return this;
            }
    
            public appendAll(ast: AST) {
                if (ast.nodeType == NodeType.List) {
                                    ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                    var list = <ASTList>ast;
                    for (var i = 0, len = list.members.length; i < len; i++) {
                        this.append(list.members[i]);
                    }
                }
                else {
                    this.append(ast);
                }
                return this;
            }
    
            public emit(emitter: Emitter, tokenId: TokenID, startLine: boolean) {
                                 ~~~~~~~
!!! error TS2304: Cannot find name 'Emitter'.
                                                   ~~~~~~~
!!! error TS2304: Cannot find name 'TokenID'.
                emitter.recordSourceMappingStart(this);
                emitter.emitJavascriptList(this, null, TokenID.Semicolon, startLine, false, false);
                                                       ~~~~~~~
!!! error TS2304: Cannot find name 'TokenID'.
                emitter.recordSourceMappingEnd(this);
            }
    
            public typeCheck(typeFlow: TypeFlow) {
                                       ~~~~~~~~
!!! error TS2304: Cannot find name 'TypeFlow'.
                var len = this.members.length;
                typeFlow.nestingLevel++;
                for (var i = 0; i < len; i++) {
                    if (this.members[i]) {
                        this.members[i] = this.members[i].typeCheck(typeFlow);
                    }
                }
                typeFlow.nestingLevel--;
                return this;
            }
        }
    
        export class Identifier extends AST {
            public sym: Symbol = null;
            public cloId = -1;
            public text: string;
    
            // '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) {
                super(NodeType.Name);
                      ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                this.setText(actualText, hasEscapeSequence);
            }
    
            public setText(actualText: string, hasEscapeSequence?: boolean) {
                this.actualText = actualText;
                if (hasEscapeSequence) {
                    this.text = AST.getResolvedIdentifierName(actualText);
                }
                else {
                    this.text = actualText;
                }
            }
    
            public isMissing() { return false; }
            public isLeaf() { return true; }
    
            public treeViewLabel() {
                return "id: " + this.actualText;
            }
    
            public printLabel() {
                if (this.actualText) {
                    return "id: " + this.actualText;
                }
                else {
                    return "name node";
                }
            }
    
            public typeCheck(typeFlow: TypeFlow) {
                                       ~~~~~~~~
!!! error TS2304: Cannot find name 'TypeFlow'.
                return typeFlow.typeCheckName(this);
            }
    
            public emit(emitter: Emitter, tokenId: TokenID, startLine: boolean) {
                                 ~~~~~~~
!!! error TS2304: Cannot find name 'Emitter'.
                                                   ~~~~~~~
!!! error TS2304: Cannot find name 'TokenID'.
                emitter.emitJavascriptName(this, true);
            }
    
            public static fromToken(token: Token): Identifier {
                                           ~~~~~
!!! error TS2304: Cannot find name 'Token'.
                return new Identifier(token.getText(), (<IdentifierToken>token).hasEscapeSequence);
                                                         ~~~~~~~~~~~~~~~
!!! error TS2304: Cannot find name 'IdentifierToken'.
            }
        }
    
        export class MissingIdentifier extends Identifier {
            constructor () {
                super("__missing");
            }
    
            public isMissing() {
                return true;
            }
    
            public emit(emitter: Emitter, tokenId: TokenID, startLine: boolean) {
                                 ~~~~~~~
!!! error TS2304: Cannot find name 'Emitter'.
                                                   ~~~~~~~
!!! error TS2304: Cannot find name 'TokenID'.
                // Emit nothing for a missing ID
            }
        }
    
        export class Label extends AST {
            constructor (public id: Identifier) {
                super(NodeType.Label);
                      ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
            }
    
            public printLabel() { return this.id.actualText + ":"; }
    
            public typeCheck(typeFlow: TypeFlow) {
                                       ~~~~~~~~
!!! error TS2304: Cannot find name 'TypeFlow'.
                this.type = typeFlow.voidType;
                return this;
            }
    
            public emit(emitter: Emitter, tokenId: TokenID, startLine: boolean) {
                                 ~~~~~~~
!!! error TS2304: Cannot find name 'Emitter'.
                                                   ~~~~~~~
!!! error TS2304: Cannot find name 'TokenID'.
                emitter.emitParensAndCommentsInPlace(this, true);
                emitter.recordSourceMappingStart(this);
                emitter.recordSourceMappingStart(this.id);
                emitter.writeToOutput(this.id.actualText);
                emitter.recordSourceMappingEnd(this.id);
                emitter.writeLineToOutput(":");
                emitter.recordSourceMappingEnd(this);
                emitter.emitParensAndCommentsInPlace(this, false);
            }
        }
    
        export class Expression extends AST {
            constructor (nodeType: NodeType) {
                                   ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                super(nodeType);
            }
    
            public isExpression() { return true; }
    
            public isStatementOrExpression() { return true; }
        }
    
        export class UnaryExpression extends Expression {
            public targetType: Type = null; // Target type for an object literal (null if no target type)
                               ~~~~
!!! error TS2304: Cannot find name 'Type'.
            public castTerm: AST = null;
    
            constructor (nodeType: NodeType, public operand: AST) {
                                   ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                super(nodeType);
            }
    
            public addToControlFlow(context: ControlFlowContext): void {
                                             ~~~~~~~~~~~~~~~~~~
!!! error TS2304: Cannot find name 'ControlFlowContext'.
                super.addToControlFlow(context);
                // TODO: add successor as catch block/finally block if present
                if (this.nodeType == NodeType.Throw) {
                                     ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                    context.returnStmt();
                }
            }
    
            public typeCheck(typeFlow: TypeFlow) {
                                       ~~~~~~~~
!!! error TS2304: Cannot find name 'TypeFlow'.
                switch (this.nodeType) {
                    case NodeType.Not:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                        return typeFlow.typeCheckBitNot(this);
    
                    case NodeType.LogNot:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                        return typeFlow.typeCheckLogNot(this);
    
                    case NodeType.Pos:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                    case NodeType.Neg:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                        return typeFlow.typeCheckUnaryNumberOperator(this);
    
                    case NodeType.IncPost:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                    case NodeType.IncPre:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                    case NodeType.DecPost:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                    case NodeType.DecPre:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                        return typeFlow.typeCheckIncOrDec(this);
    
                    case NodeType.ArrayLit:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                        typeFlow.typeCheckArrayLit(this);
                        return this;
    
                    case NodeType.ObjectLit:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                        typeFlow.typeCheckObjectLit(this);
                        return this;
    
                    case NodeType.Throw:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                        this.operand = typeFlow.typeCheck(this.operand);
                        this.type = typeFlow.voidType;
                        return this;
    
                    case NodeType.Typeof:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                        this.operand = typeFlow.typeCheck(this.operand);
                        this.type = typeFlow.stringType;
                        return this;
    
                    case NodeType.Delete:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                        this.operand = typeFlow.typeCheck(this.operand);
                        this.type = typeFlow.booleanType;
                        break;
    
                    case NodeType.TypeAssertion:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                        this.castTerm = typeFlow.typeCheck(this.castTerm);
                        var applyTargetType = !this.operand.isParenthesized;
    
                        var targetType = applyTargetType ? this.castTerm.type : null;
    
                        typeFlow.checker.typeCheckWithContextualType(targetType, typeFlow.checker.inProvisionalTypecheckMode(), true, this.operand);
                        typeFlow.castWithCoercion(this.operand, this.castTerm.type, false, true);
                        this.type = this.castTerm.type;
                        return this;
    
                    case NodeType.Void:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                        // 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.type = typeFlow.checker.undefinedType;
                        break;
    
                    default:
                        throw new Error("please implement in derived class");
                }
                return this;
            }
    
            public emit(emitter: Emitter, tokenId: TokenID, startLine: boolean) {
                                 ~~~~~~~
!!! error TS2304: Cannot find name 'Emitter'.
                                                   ~~~~~~~
!!! error TS2304: Cannot find name 'TokenID'.
                emitter.emitParensAndCommentsInPlace(this, true);
                emitter.recordSourceMappingStart(this);
                switch (this.nodeType) {
                    case NodeType.IncPost:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                        emitter.emitJavascript(this.operand, TokenID.PlusPlus, false);
                                                             ~~~~~~~
!!! error TS2304: Cannot find name 'TokenID'.
                        emitter.writeToOutput("++");
                        break;
                    case NodeType.LogNot:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                        emitter.writeToOutput("!");
                        emitter.emitJavascript(this.operand, TokenID.Exclamation, false);
                                                             ~~~~~~~
!!! error TS2304: Cannot find name 'TokenID'.
                        break;
                    case NodeType.DecPost:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                        emitter.emitJavascript(this.operand, TokenID.MinusMinus, false);
                                                             ~~~~~~~
!!! error TS2304: Cannot find name 'TokenID'.
                        emitter.writeToOutput("--");
                        break;
                    case NodeType.ObjectLit:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                        emitter.emitObjectLiteral(<ASTList>this.operand);
                        break;
                    case NodeType.ArrayLit:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                        emitter.emitArrayLiteral(<ASTList>this.operand);
                        break;
                    case NodeType.Not:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                        emitter.writeToOutput("~");
                        emitter.emitJavascript(this.operand, TokenID.Tilde, false);
                                                             ~~~~~~~
!!! error TS2304: Cannot find name 'TokenID'.
                        break;
                    case NodeType.Neg:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                        emitter.writeToOutput("-");
                        if (this.operand.nodeType == NodeType.Neg) {
                                                     ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                            this.operand.isParenthesized = true;
                        }
                        emitter.emitJavascript(this.operand, TokenID.Minus, false);
                                                             ~~~~~~~
!!! error TS2304: Cannot find name 'TokenID'.
                        break;
                    case NodeType.Pos:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                        emitter.writeToOutput("+");
                        if (this.operand.nodeType == NodeType.Pos) {
                                                     ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                            this.operand.isParenthesized = true;
                        }
                        emitter.emitJavascript(this.operand, TokenID.Plus, false);
                                                             ~~~~~~~
!!! error TS2304: Cannot find name 'TokenID'.
                        break;
                    case NodeType.IncPre:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                        emitter.writeToOutput("++");
                        emitter.emitJavascript(this.operand, TokenID.PlusPlus, false);
                                                             ~~~~~~~
!!! error TS2304: Cannot find name 'TokenID'.
                        break;
                    case NodeType.DecPre:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                        emitter.writeToOutput("--");
                        emitter.emitJavascript(this.operand, TokenID.MinusMinus, false);
                                                             ~~~~~~~
!!! error TS2304: Cannot find name 'TokenID'.
                        break;
                    case NodeType.Throw:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                        emitter.writeToOutput("throw ");
                        emitter.emitJavascript(this.operand, TokenID.Tilde, false);
                                                             ~~~~~~~
!!! error TS2304: Cannot find name 'TokenID'.
                        emitter.writeToOutput(";");
                        break;
                    case NodeType.Typeof:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                        emitter.writeToOutput("typeof ");
                        emitter.emitJavascript(this.operand, TokenID.Tilde, false);
                                                             ~~~~~~~
!!! error TS2304: Cannot find name 'TokenID'.
                        break;
                    case NodeType.Delete:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                        emitter.writeToOutput("delete ");
                        emitter.emitJavascript(this.operand, TokenID.Tilde, false);
                                                             ~~~~~~~
!!! error TS2304: Cannot find name 'TokenID'.
                        break;
                    case NodeType.Void:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                        emitter.writeToOutput("void ");
                        emitter.emitJavascript(this.operand, TokenID.Tilde, false);
                                                             ~~~~~~~
!!! error TS2304: Cannot find name 'TokenID'.
                        break;
                    case NodeType.TypeAssertion:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                        emitter.emitJavascript(this.operand, TokenID.Tilde, false);
                                                             ~~~~~~~
!!! error TS2304: Cannot find name 'TokenID'.
                        break;
                    default:
                        throw new Error("please implement in derived class");
                }
                emitter.recordSourceMappingEnd(this);
                emitter.emitParensAndCommentsInPlace(this, false);
            }
        }
    
        export class CallExpression extends Expression {
            constructor (nodeType: NodeType,
                                   ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                         public target: AST,
                         public arguments: ASTList) {
                                ~~~~~~~~~
!!! error TS1210: Code contained in a class is evaluated in JavaScript's strict mode which does not allow this use of 'arguments'. For more information, see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Strict_mode.
                super(nodeType);
                this.minChar = this.target.minChar;
            }
    
            public signature: Signature = null;
                              ~~~~~~~~~
!!! error TS2304: Cannot find name 'Signature'.
    
            public typeCheck(typeFlow: TypeFlow) {
                                       ~~~~~~~~
!!! error TS2304: Cannot find name 'TypeFlow'.
                if (this.nodeType == NodeType.New) {
                                     ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                    return typeFlow.typeCheckNew(this);
                }
                else {
                    return typeFlow.typeCheckCall(this);
                }
            }
    
            public emit(emitter: Emitter, tokenId: TokenID, startLine: boolean) {
                                 ~~~~~~~
!!! error TS2304: Cannot find name 'Emitter'.
                                                   ~~~~~~~
!!! error TS2304: Cannot find name 'TokenID'.
                emitter.emitParensAndCommentsInPlace(this, true);
                emitter.recordSourceMappingStart(this);
    
                if (this.nodeType == NodeType.New) {
                                     ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                    emitter.emitNew(this.target, this.arguments);
                }
                else {
                    emitter.emitCall(this, this.target, this.arguments);
                }
    
                emitter.recordSourceMappingEnd(this);
                emitter.emitParensAndCommentsInPlace(this, false);
            }
        }
    
        export class BinaryExpression extends Expression {
            constructor (nodeType: NodeType, public operand1: AST, public operand2: AST) {
                                   ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                super(nodeType);
            }
    
            public typeCheck(typeFlow: TypeFlow) {
                                       ~~~~~~~~
!!! error TS2304: Cannot find name 'TypeFlow'.
                switch (this.nodeType) {
                    case NodeType.Dot:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                        return typeFlow.typeCheckDotOperator(this);
                    case NodeType.Asg:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                        return typeFlow.typeCheckAsgOperator(this);
                    case NodeType.Add:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                    case NodeType.Sub:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                    case NodeType.Mul:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                    case NodeType.Div:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                    case NodeType.Mod:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                    case NodeType.Or:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                    case NodeType.And:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                        return typeFlow.typeCheckArithmeticOperator(this, false);
                    case NodeType.Xor:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                        return typeFlow.typeCheckBitwiseOperator(this, false);
                    case NodeType.Ne:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                    case NodeType.Eq:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                        var text: string;
                        if (typeFlow.checker.styleSettings.eqeqeq) {
                            text = nodeTypeTable[this.nodeType];
                                   ~~~~~~~~~~~~~
!!! error TS2304: Cannot find name 'nodeTypeTable'.
                            typeFlow.checker.errorReporter.styleError(this, "use of " + text);
                        }
                        else if (typeFlow.checker.styleSettings.eqnull) {
                            text = nodeTypeTable[this.nodeType];
                                   ~~~~~~~~~~~~~
!!! error TS2304: Cannot find name 'nodeTypeTable'.
                            if ((this.operand2 !== null) && (this.operand2.nodeType == NodeType.Null)) {
                                                                                       ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                                typeFlow.checker.errorReporter.styleError(this, "use of " + text + " to compare with null");
                            }
                        }
                    case NodeType.Eqv:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                    case NodeType.NEqv:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                    case NodeType.Lt:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                    case NodeType.Le:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                    case NodeType.Ge:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                    case NodeType.Gt:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                        return typeFlow.typeCheckBooleanOperator(this);
                    case NodeType.Index:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                        return typeFlow.typeCheckIndex(this);
                    case NodeType.Member:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                        this.type = typeFlow.voidType;
                        return this;
                    case NodeType.LogOr:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                        return typeFlow.typeCheckLogOr(this);
                    case NodeType.LogAnd:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                        return typeFlow.typeCheckLogAnd(this);
                    case NodeType.AsgAdd:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                    case NodeType.AsgSub:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                    case NodeType.AsgMul:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                    case NodeType.AsgDiv:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                    case NodeType.AsgMod:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                    case NodeType.AsgOr:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                    case NodeType.AsgAnd:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                        return typeFlow.typeCheckArithmeticOperator(this, true);
                    case NodeType.AsgXor:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                        return typeFlow.typeCheckBitwiseOperator(this, true);
                    case NodeType.Lsh:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                    case NodeType.Rsh:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                    case NodeType.Rs2:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                        return typeFlow.typeCheckShift(this, false);
                    case NodeType.AsgLsh:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                    case NodeType.AsgRsh:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                    case NodeType.AsgRs2:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                        return typeFlow.typeCheckShift(this, true);
                    case NodeType.Comma:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                        return typeFlow.typeCheckCommaOperator(this);
                    case NodeType.InstOf:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                        return typeFlow.typeCheckInstOf(this);
                    case NodeType.In:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                        return typeFlow.typeCheckInOperator(this);
                    case NodeType.From:
                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                        typeFlow.checker.errorReporter.simpleError(this, "Illegal use of 'from' keyword in binary expression");
                        break;
                    default:
                        throw new Error("please implement in derived class");
                }
                return this;
            }
    
            public emit(emitter: Emitter, tokenId: TokenID, startLine: boolean) {
                                 ~~~~~~~
!!! error TS2304: Cannot find name 'Emitter'.
                                                   ~~~~~~~
!!! error TS2304: Cannot find name 'TokenID'.
                var binTokenId = nodeTypeToTokTable[this.nodeType];
                                 ~~~~~~~~~~~~~~~~~~
!!! error TS2304: Cannot find name 'nodeTypeToTokTable'.
    
                emitter.emitParensAndCommentsInPlace(this, true);
                emitter.recordSourceMappingStart(this);
                if (binTokenId != undefined) {
    
                    emitter.emitJavascript(this.operand1, binTokenId, false);
    
                    if (tokenTable[binTokenId].text == "instanceof") {
                        ~~~~~~~~~~
!!! error TS2304: Cannot find name 'tokenTable'.
                        emitter.writeToOutput(" instanceof ");
                    }
                    else if (tokenTable[binTokenId].text == "in") {
                             ~~~~~~~~~~
!!! error TS2304: Cannot find name 'tokenTable'.
                        emitter.writeToOutput(" in ");
                    }
                    else {
                        emitter.writeToOutputTrimmable(" " + tokenTable[binTokenId].text + " ");
                                                             ~~~~~~~~~~
!!! error TS2304: Cannot find name 'tokenTable'.
                    }
    
                    emitter.emitJavascript(this.operand2, binTokenId, false);
                }
                else {
                    switch (this.nodeType) {
                        case NodeType.Dot:
                             ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                            if (!emitter.tryEmitConstant(this)) {
                                emitter.emitJavascript(this.operand1, TokenID.Dot, false);
                                                                      ~~~~~~~
!!! error TS2304: Cannot find name 'TokenID'.
                                emitter.writeToOutput(".");
                                emitter.emitJavascriptName(<Identifier>this.operand2, false);
                            }
                            break;
                        case NodeType.Index:
                             ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                            emitter.emitIndex(this.operand1, this.operand2);
                            break;
    
                        case NodeType.Member:
                             ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                            if (this.operand2.nodeType == NodeType.FuncDecl && (<FuncDecl>this.operand2).isAccessor()) {
                                                          ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                                var funcDecl = <FuncDecl>this.operand2;
                                if (hasFlag(funcDecl.fncFlags, FncFlags.GetAccessor)) {
                                    ~~~~~~~
!!! error TS2304: Cannot find name 'hasFlag'.
                                                               ~~~~~~~~
!!! error TS2304: Cannot find name 'FncFlags'.
                                    emitter.writeToOutput("get ");
                                }
                                else {
                                    emitter.writeToOutput("set ");
                                }
                                emitter.emitJavascript(this.operand1, TokenID.Colon, false);
                                                                      ~~~~~~~
!!! error TS2304: Cannot find name 'TokenID'.
                            }
                            else {
                                emitter.emitJavascript(this.operand1, TokenID.Colon, false);
                                                                      ~~~~~~~
!!! error TS2304: Cannot find name 'TokenID'.
                                emitter.writeToOutputTrimmable(": ");
                            }
                            emitter.emitJavascript(this.operand2, TokenID.Comma, false);
                                                                  ~~~~~~~
!!! error TS2304: Cannot find name 'TokenID'.
                            break;
                        case NodeType.Comma:
                             ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                            emitter.emitJavascript(this.operand1, TokenID.Comma, false);
                                                                  ~~~~~~~
!!! error TS2304: Cannot find name 'TokenID'.
                            if (emitter.emitState.inObjectLiteral) {
                                emitter.writeLineToOutput(", ");
                            }
                            else {
                                emitter.writeToOutput(",");
                            }
                            emitter.emitJavascript(this.operand2, TokenID.Comma, false);
                                                                  ~~~~~~~
!!! error TS2304: Cannot find name 'TokenID'.
                            break;
                        case NodeType.Is:
                             ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                            throw new Error("should be de-sugared during type check");
                        default:
                            throw new Error("please implement in derived class");
                    }
                }
                emitter.recordSourceMappingEnd(this);
                emitter.emitParensAndCommentsInPlace(this, false);
            }
        }
    
        export class ConditionalExpression extends Expression {
            constructor (public operand1: AST,
                         public operand2: AST,
                         public operand3: AST) {
                super(NodeType.ConditionalExpression);
                      ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
            }
    
            public typeCheck(typeFlow: TypeFlow) {
                                       ~~~~~~~~
!!! error TS2304: Cannot find name 'TypeFlow'.
                return typeFlow.typeCheckQMark(this);
            }
    
            public emit(emitter: Emitter, tokenId: TokenID, startLine: boolean) {
                                 ~~~~~~~
!!! error TS2304: Cannot find name 'Emitter'.
                                                   ~~~~~~~
!!! error TS2304: Cannot find name 'TokenID'.
                emitter.emitParensAndCommentsInPlace(this, true);
                emitter.recordSourceMappingStart(this);
                emitter.emitJavascript(this.operand1, TokenID.Question, false);
                                                      ~~~~~~~
!!! error TS2304: Cannot find name 'TokenID'.
                emitter.writeToOutput(" ? ");
                emitter.emitJavascript(this.operand2, TokenID.Question, false);
                                                      ~~~~~~~
!!! error TS2304: Cannot find name 'TokenID'.
                emitter.writeToOutput(" : ");
                emitter.emitJavascript(this.operand3, TokenID.Question, false);
                                                      ~~~~~~~
!!! error TS2304: Cannot find name 'TokenID'.
                emitter.recordSourceMappingEnd(this);
                emitter.emitParensAndCommentsInPlace(this, false);
            }
        }
    
        export class NumberLiteral extends Expression {
            constructor (public value: number, public hasEmptyFraction?: boolean) {
                super(NodeType.NumberLit);
                      ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
            }
    
            public isNegativeZero = false;
    
            public typeCheck(typeFlow: TypeFlow) {
                                       ~~~~~~~~
!!! error TS2304: Cannot find name 'TypeFlow'.
                this.type = typeFlow.doubleType;
                return this;
            }
    
            public treeViewLabel() {
                return "num: " + this.printLabel();
            }
    
            public emit(emitter: Emitter, tokenId: TokenID, startLine: boolean) {
                                 ~~~~~~~
!!! error TS2304: Cannot find name 'Emitter'.
                                                   ~~~~~~~
!!! error TS2304: Cannot find name 'TokenID'.
                emitter.emitParensAndCommentsInPlace(this, true);
                emitter.recordSourceMappingStart(this);
                if (this.isNegativeZero) {
                    emitter.writeToOutput("-");
                }
    
                emitter.writeToOutput(this.value.toString());
    
                if (this.hasEmptyFraction)
                    emitter.writeToOutput(".0");
    
                emitter.recordSourceMappingEnd(this);
                emitter.emitParensAndCommentsInPlace(this, false);
            }
    
            public printLabel() {
                if (Math.floor(this.value) != this.value) {
                    return this.value.toFixed(2).toString();
                }
                else if (this.hasEmptyFraction) {
                    return this.value.toString() + ".0";
                }
                else {
                    return this.value.toString();
                }
            }
        }
    
        export class RegexLiteral extends Expression {
            constructor (public regex) {
                super(NodeType.Regex);
                      ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
            }
            
            public typeCheck(typeFlow: TypeFlow) {
                                       ~~~~~~~~
!!! error TS2304: Cannot find name 'TypeFlow'.
                this.type = typeFlow.regexType;
                return this;
            }
    
            public emit(emitter: Emitter, tokenId: TokenID, startLine: boolean) {
                                 ~~~~~~~
!!! error TS2304: Cannot find name 'Emitter'.
                                                   ~~~~~~~
!!! error TS2304: Cannot find name 'TokenID'.
                emitter.emitParensAndCommentsInPlace(this, true);
                emitter.recordSourceMappingStart(this);
                emitter.writeToOutput(this.regex.toString());
                emitter.recordSourceMappingEnd(this);
                emitter.emitParensAndCommentsInPlace(this, false);
            }
        }
    
        export class StringLiteral extends Expression {
            constructor (public text: string) {
                super(NodeType.QString);
                      ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
            }
    
            public emit(emitter: Emitter, tokenId: TokenID, startLine: boolean) {
                                 ~~~~~~~
!!! error TS2304: Cannot find name 'Emitter'.
                                                   ~~~~~~~
!!! error TS2304: Cannot find name 'TokenID'.
                emitter.emitParensAndCommentsInPlace(this, true);
                emitter.recordSourceMappingStart(this);
                emitter.emitStringLiteral(this.text);
                emitter.recordSourceMappingEnd(this);
                emitter.emitParensAndCommentsInPlace(this, false);
            }
    
            public typeCheck(typeFlow: TypeFlow) {
                                       ~~~~~~~~
!!! error TS2304: Cannot find name 'TypeFlow'.
                this.type = typeFlow.stringType;
                return this;
            }
    
            public treeViewLabel() {
                return "st: " + this.text;
            }
    
            public printLabel() {
                return this.text;
            }
        }
    
        export class ModuleElement extends AST {
            constructor (nodeType: NodeType) {
                                   ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                super(nodeType);
            }
        }
    
        export class ImportDeclaration extends ModuleElement {
            public isStatementOrExpression() { return true; }
            public varFlags = VarFlags.None;
                              ~~~~~~~~
!!! error TS2304: Cannot find name 'VarFlags'.
            public isDynamicImport = false;
    
            constructor (public id: Identifier, public alias: AST) {
                super(NodeType.ImportDeclaration);
                      ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
            }
    
            public emit(emitter: Emitter, tokenId: TokenID, startLine: boolean) {
                                 ~~~~~~~
!!! error TS2304: Cannot find name 'Emitter'.
                                                   ~~~~~~~
!!! error TS2304: Cannot find name 'TokenID'.
                var mod = <ModuleType>this.alias.type;
                           ~~~~~~~~~~
!!! error TS2304: Cannot find name 'ModuleType'.
                // 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)) {
                                                                ~~~~~~~~~~
!!! error TS2304: Cannot find name 'TypeSymbol'.
                    var prevModAliasId = emitter.modAliasId;
                    var prevFirstModAlias = emitter.firstModAlias;
    
                    emitter.recordSourceMappingStart(this);
                    emitter.emitParensAndCommentsInPlace(this, true);
                    emitter.writeToOutput("var " + this.id.actualText + " = ");
                    emitter.modAliasId = this.id.actualText;
                    emitter.firstModAlias = this.firstAliasedModToString();
                    emitter.emitJavascript(this.alias, TokenID.Tilde, false);
                                                       ~~~~~~~
!!! error TS2304: Cannot find name 'TokenID'.
                    // the dynamic import case will insert the semi-colon automatically
                    if (!this.isDynamicImport) {
                        emitter.writeToOutput(";");
                    }
                    emitter.emitParensAndCommentsInPlace(this, false);
                    emitter.recordSourceMappingEnd(this);
    
                    emitter.modAliasId = prevModAliasId;
                    emitter.firstModAlias = prevFirstModAlias;
                }
            }
    
            public typeCheck(typeFlow: TypeFlow) {
                                       ~~~~~~~~
!!! error TS2304: Cannot find name 'TypeFlow'.
                return typeFlow.typeCheckImportDecl(this);
            }
    
            public getAliasName(aliasAST?: AST = this.alias) : string {
                if (aliasAST.nodeType == NodeType.Name) {
                                         ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                    return (<Identifier>aliasAST).actualText;
                } else {
                    var dotExpr = <BinaryExpression>aliasAST;
                    return this.getAliasName(dotExpr.operand1) + "." + this.getAliasName(dotExpr.operand2);
                }
            }
    
            public firstAliasedModToString() {
                if (this.alias.nodeType == NodeType.Name) {
                                           ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                    return (<Identifier>this.alias).actualText;
                }
                else {
                    var dotExpr = <BinaryExpression>this.alias;
                    var firstMod = <Identifier>dotExpr.operand1;
                    return firstMod.actualText;
                }
            }
        }
    
        export class BoundDecl extends AST {
            public init: AST = null;
            public typeExpr: AST = null;
            public varFlags = VarFlags.None;
                              ~~~~~~~~
!!! error TS2304: Cannot find name 'VarFlags'.
            public sym: Symbol = null;
    
            constructor (public id: Identifier, nodeType: NodeType, public nestingLevel: number) {
                                                          ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                super(nodeType);
            }
    
            public isStatementOrExpression() { return true; }
    
            public isPrivate() { return hasFlag(this.varFlags, VarFlags.Private); }
                                        ~~~~~~~
!!! error TS2304: Cannot find name 'hasFlag'.
                                                               ~~~~~~~~
!!! error TS2304: Cannot find name 'VarFlags'.
            public isPublic() { return hasFlag(this.varFlags, VarFlags.Public); }
                                       ~~~~~~~
!!! error TS2304: Cannot find name 'hasFlag'.
                                                              ~~~~~~~~
!!! error TS2304: Cannot find name 'VarFlags'.
            public isProperty() { return hasFlag(this.varFlags, VarFlags.Property); }
                                         ~~~~~~~
!!! error TS2304: Cannot find name 'hasFlag'.
                                                                ~~~~~~~~
!!! error TS2304: Cannot find name 'VarFlags'.
    
            public typeCheck(typeFlow: TypeFlow) {
                                       ~~~~~~~~
!!! error TS2304: Cannot find name 'TypeFlow'.
                return typeFlow.typeCheckBoundDecl(this);
            }
    
            public printLabel() {
                return this.treeViewLabel();
            }
        }
    
        export class VarDecl extends BoundDecl {
            constructor (id: Identifier, nest: number) {
                super(id, NodeType.VarDecl, nest);
                          ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
            }
    
            public isAmbient() { return hasFlag(this.varFlags, VarFlags.Ambient); }
                                        ~~~~~~~
!!! error TS2304: Cannot find name 'hasFlag'.
                                                               ~~~~~~~~
!!! error TS2304: Cannot find name 'VarFlags'.
            public isExported() { return hasFlag(this.varFlags, VarFlags.Exported); }
                                         ~~~~~~~
!!! error TS2304: Cannot find name 'hasFlag'.
                                                                ~~~~~~~~
!!! error TS2304: Cannot find name 'VarFlags'.
            public isStatic() { return hasFlag(this.varFlags, VarFlags.Static); }
                                       ~~~~~~~
!!! error TS2304: Cannot find name 'hasFlag'.
                                                              ~~~~~~~~
!!! error TS2304: Cannot find name 'VarFlags'.
    
            public emit(emitter: Emitter, tokenId: TokenID, startLine: boolean) {
                                 ~~~~~~~
!!! error TS2304: Cannot find name 'Emitter'.
                                                   ~~~~~~~
!!! error TS2304: Cannot find name 'TokenID'.
                emitter.emitJavascriptVarDecl(this, tokenId);
            }
    
            public treeViewLabel() {
                return "var " + this.id.actualText;
            }
        }
    
        export class ArgDecl extends BoundDecl {
            constructor (id: Identifier) {
                super(id, NodeType.ArgDecl, 0);
                          ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
            }
    
            public isOptional = false;
    
            public isOptionalArg() { return this.isOptional || this.init; }
    
            public treeViewLabel() {
                return "arg: " + this.id.actualText;
            }
    
            public parameterPropertySym: FieldSymbol = null;
                                         ~~~~~~~~~~~
!!! error TS2304: Cannot find name 'FieldSymbol'.
    
            public emit(emitter: Emitter, tokenId: TokenID, startLine: boolean) {
                                 ~~~~~~~
!!! error TS2304: Cannot find name 'Emitter'.
                                                   ~~~~~~~
!!! error TS2304: Cannot find name 'TokenID'.
                emitter.emitParensAndCommentsInPlace(this, true);
                emitter.recordSourceMappingStart(this);
                emitter.writeToOutput(this.id.actualText);
                emitter.recordSourceMappingEnd(this);
                emitter.emitParensAndCommentsInPlace(this, false);
            }
        }
    
        var internalId = 0;
    
        export class FuncDecl extends AST {
            public hint: string = null;
            public fncFlags = FncFlags.None;
                              ~~~~~~~~
!!! error TS2304: Cannot find name 'FncFlags'.
            public returnTypeAnnotation: AST = null;
            public symbols: IHashTable;
                            ~~~~~~~~~~
!!! error TS2304: Cannot find name 'IHashTable'.
            public variableArgList = false;
            public signature: Signature;
                              ~~~~~~~~~
!!! error TS2304: Cannot find name 'Signature'.
            public envids: Identifier[];
            public jumpRefs: Identifier[] = null;
            public internalNameCache: string = null;
            public tmp1Declared = false;
            public enclosingFnc: FuncDecl = null;
            public freeVariables: Symbol[] = [];
            public unitIndex = -1;
            public classDecl: NamedDeclaration = null;
            public boundToProperty: VarDecl = null;
            public isOverload = false;
            public innerStaticFuncs: FuncDecl[] = [];
            public isTargetTypedAsMethod = false;
            public isInlineCallLiteral = false;
            public accessorSymbol: Symbol = null;
            public leftCurlyCount = 0;
            public rightCurlyCount = 0;
            public returnStatementsWithExpressions: ReturnStatement[] = [];
            public scopeType: Type = null; // Type of the FuncDecl, before target typing
                              ~~~~
!!! error TS2304: Cannot find name 'Type'.
            public endingToken: ASTSpan = null;
    
            constructor (public name: Identifier, public bod: ASTList, public isConstructor: boolean,
                         public arguments: ASTList, public vars: ASTList, public scopes: ASTList, public statics: ASTList,
                                ~~~~~~~~~
!!! error TS1210: Code contained in a class is evaluated in JavaScript's strict mode which does not allow this use of 'arguments'. For more information, see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Strict_mode.
                nodeType: number) {
    
                super(nodeType);
            }
    
            public internalName(): string {
                if (this.internalNameCache == null) {
                    var extName = this.getNameText();
                    if (extName) {
                        this.internalNameCache = "_internal_" + extName;
                    }
                    else {
                        this.internalNameCache = "_internal_" + internalId++;
                    }
                }
                return this.internalNameCache;
            }
    
            public hasSelfReference() { return hasFlag(this.fncFlags, FncFlags.HasSelfReference); }
                                               ~~~~~~~
!!! error TS2304: Cannot find name 'hasFlag'.
                                                                      ~~~~~~~~
!!! error TS2304: Cannot find name 'FncFlags'.
            public setHasSelfReference() { this.fncFlags |= FncFlags.HasSelfReference; }
                                                            ~~~~~~~~
!!! error TS2304: Cannot find name 'FncFlags'.
    
            public addCloRef(id: Identifier, sym: Symbol): number {
                if (this.envids == null) {
                    this.envids = new Identifier[];
                                                 
!!! error TS1011: An element access expression should take an argument.
                }
                this.envids[this.envids.length] = id;
                var outerFnc = this.enclosingFnc;
                if (sym) {
                    while (outerFnc && (outerFnc.type.symbol != sym.container)) {
                                                                    ~~~~~~~~~
!!! error TS2339: Property 'container' does not exist on type 'Symbol'.
                        outerFnc.addJumpRef(sym);
                        outerFnc = outerFnc.enclosingFnc;
                    }
                }
                return this.envids.length - 1;
            }
    
            public addJumpRef(sym: Symbol): void {
                if (this.jumpRefs == null) {
                    this.jumpRefs = new Identifier[];
                                                   
!!! error TS1011: An element access expression should take an argument.
                }
                var id = new Identifier(sym.name);
                                            ~~~~
!!! error TS2339: Property 'name' does not exist on type 'Symbol'.
                this.jumpRefs[this.jumpRefs.length] = id;
                id.sym = sym;
                id.cloId = this.addCloRef(id, null);
            }
    
            public buildControlFlow(): ControlFlowContext {
                                       ~~~~~~~~~~~~~~~~~~
!!! error TS2304: Cannot find name 'ControlFlowContext'.
                var entry = new BasicBlock();
                                ~~~~~~~~~~
!!! error TS2304: Cannot find name 'BasicBlock'.
                var exit = new BasicBlock();
                               ~~~~~~~~~~
!!! error TS2304: Cannot find name 'BasicBlock'.
    
                var context = new ControlFlowContext(entry, exit);
                                  ~~~~~~~~~~~~~~~~~~
!!! error TS2304: Cannot find name 'ControlFlowContext'.
    
                var controlFlowPrefix = (ast: AST, parent: AST, walker: IAstWalker) => {
                                                                        ~~~~~~~~~~
!!! error TS2304: Cannot find name 'IAstWalker'.
                    ast.addToControlFlow(walker.state);
                    return ast;
                }
    
                var walker = getAstWalkerFactory().getWalker(controlFlowPrefix, null, null, context);
                             ~~~~~~~~~~~~~~~~~~~
!!! error TS2304: Cannot find name 'getAstWalkerFactory'.
                context.walker = walker;
                walker.walk(this.bod, this);
    
                return context;
            }
    
            public typeCheck(typeFlow: TypeFlow) {
                                       ~~~~~~~~
!!! error TS2304: Cannot find name 'TypeFlow'.
                return typeFlow.typeCheckFunction(this);
            }
    
            public emit(emitter: Emitter, tokenId: TokenID, startLine: boolean) {
                                 ~~~~~~~
!!! error TS2304: Cannot find name 'Emitter'.
                                                   ~~~~~~~
!!! error TS2304: Cannot find name 'TokenID'.
                emitter.emitJavascriptFunction(this);
            }
    
            public getNameText() {
                if (this.name) {
                    return this.name.actualText;
                }
                else {
                    return this.hint;
                }
            }
    
            public isMethod() {
                return (this.fncFlags & FncFlags.Method) != FncFlags.None;
                                        ~~~~~~~~
!!! error TS2304: Cannot find name 'FncFlags'.
                                                            ~~~~~~~~
!!! error TS2304: Cannot find name 'FncFlags'.
            }
    
            public isCallMember() { return hasFlag(this.fncFlags, FncFlags.CallMember); }
                                           ~~~~~~~
!!! error TS2304: Cannot find name 'hasFlag'.
                                                                  ~~~~~~~~
!!! error TS2304: Cannot find name 'FncFlags'.
            public isConstructMember() { return hasFlag(this.fncFlags, FncFlags.ConstructMember); }
                                                ~~~~~~~
!!! error TS2304: Cannot find name 'hasFlag'.
                                                                       ~~~~~~~~
!!! error TS2304: Cannot find name 'FncFlags'.
            public isIndexerMember() { return hasFlag(this.fncFlags, FncFlags.IndexerMember); }
                                              ~~~~~~~
!!! error TS2304: Cannot find name 'hasFlag'.
                                                                     ~~~~~~~~
!!! error TS2304: Cannot find name 'FncFlags'.
            public isSpecialFn() { return this.isCallMember() || this.isIndexerMember() || this.isConstructMember(); }
            public isAnonymousFn() { return this.name === null; }
            public isAccessor() { return hasFlag(this.fncFlags, FncFlags.GetAccessor) || hasFlag(this.fncFlags, FncFlags.SetAccessor); }
                                         ~~~~~~~
!!! error TS2304: Cannot find name 'hasFlag'.
                                                                ~~~~~~~~
!!! error TS2304: Cannot find name 'FncFlags'.
                                                                                         ~~~~~~~
!!! error TS2304: Cannot find name 'hasFlag'.
                                                                                                                ~~~~~~~~
!!! error TS2304: Cannot find name 'FncFlags'.
            public isGetAccessor() { return hasFlag(this.fncFlags, FncFlags.GetAccessor); }
                                            ~~~~~~~
!!! error TS2304: Cannot find name 'hasFlag'.
                                                                   ~~~~~~~~
!!! error TS2304: Cannot find name 'FncFlags'.
            public isSetAccessor() { return hasFlag(this.fncFlags, FncFlags.SetAccessor); }
                                            ~~~~~~~
!!! error TS2304: Cannot find name 'hasFlag'.
                                                                   ~~~~~~~~
!!! error TS2304: Cannot find name 'FncFlags'.
            public isAmbient() { return hasFlag(this.fncFlags, FncFlags.Ambient); }
                                        ~~~~~~~
!!! error TS2304: Cannot find name 'hasFlag'.
                                                               ~~~~~~~~
!!! error TS2304: Cannot find name 'FncFlags'.
            public isExported() { return hasFlag(this.fncFlags, FncFlags.Exported); }
                                         ~~~~~~~
!!! error TS2304: Cannot find name 'hasFlag'.
                                                                ~~~~~~~~
!!! error TS2304: Cannot find name 'FncFlags'.
            public isPrivate() { return hasFlag(this.fncFlags, FncFlags.Private); }
                                        ~~~~~~~
!!! error TS2304: Cannot find name 'hasFlag'.
                                                               ~~~~~~~~
!!! error TS2304: Cannot find name 'FncFlags'.
            public isPublic() { return hasFlag(this.fncFlags, FncFlags.Public); }
                                       ~~~~~~~
!!! error TS2304: Cannot find name 'hasFlag'.
                                                              ~~~~~~~~
!!! error TS2304: Cannot find name 'FncFlags'.
            public isStatic() { return hasFlag(this.fncFlags, FncFlags.Static); }
                                       ~~~~~~~
!!! error TS2304: Cannot find name 'hasFlag'.
                                                              ~~~~~~~~
!!! error TS2304: Cannot find name 'FncFlags'.
    
            public treeViewLabel() {
                if (this.name == null) {
                    return "funcExpr";
                }
                else {
                    return "func: " + this.name.actualText
                }
            }
    
            public ClearFlags(): void {
                this.fncFlags = FncFlags.None;
                                ~~~~~~~~
!!! error TS2304: Cannot find name 'FncFlags'.
            }
    
            public isSignature() { return (this.fncFlags & FncFlags.Signature) != FncFlags.None; }
                                                           ~~~~~~~~
!!! error TS2304: Cannot find name 'FncFlags'.
                                                                                  ~~~~~~~~
!!! error TS2304: Cannot find name 'FncFlags'.
    
            public hasStaticDeclarations() { return (!this.isConstructor && (this.statics.members.length > 0 || this.innerStaticFuncs.length > 0)); }
        }
    
        export class LocationInfo {
            constructor (public filename: string, public lineMap: number[], public unitIndex) { }
        }
    
        export var unknownLocationInfo = new LocationInfo("unknown", null, -1);
    
        export class Script extends FuncDecl {
            public locationInfo: LocationInfo = null;
            public referencedFiles: IFileReference[] = [];
                                    ~~~~~~~~~~~~~~
!!! error TS2304: Cannot find name 'IFileReference'.
            public requiresGlobal = false;
            public requiresInherits = false;
            public isResident = false;
            public isDeclareFile = false;
            public hasBeenTypeChecked = false;
            public topLevelMod: ModuleDeclaration = null;
            public leftCurlyCount = 0;
            public rightCurlyCount = 0;
            public vars: ASTList;
            public scopes: ASTList;
            // 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;
            public containsUnicodeCharInComment = false;
    
            constructor (vars: ASTList, scopes: ASTList) {
                super(new Identifier("script"), null, false, null, vars, scopes, null, NodeType.Script);
                                                                                       ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                this.vars = vars;
                this.scopes = scopes;
            }
    
            public typeCheck(typeFlow: TypeFlow) {
                                       ~~~~~~~~
!!! error TS2304: Cannot find name 'TypeFlow'.
                return typeFlow.typeCheckScript(this);
            }
    
            public treeViewLabel() {
                return "Script";
            }
    
            public emitRequired() {
                if (!this.isDeclareFile && !this.isResident && this.bod) {
                    for (var i = 0, len = this.bod.members.length; i < len; i++) {
                        var stmt = this.bod.members[i];
                        if (stmt.nodeType == NodeType.ModuleDeclaration) {
                                             ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                            if (!hasFlag((<ModuleDeclaration>stmt).modFlags, ModuleFlags.ShouldEmitModuleDecl | ModuleFlags.Ambient)) {
                                 ~~~~~~~
!!! error TS2304: Cannot find name 'hasFlag'.
                                                                             ~~~~~~~~~~~
!!! error TS2304: Cannot find name 'ModuleFlags'.
                                                                                                                ~~~~~~~~~~~
!!! error TS2304: Cannot find name 'ModuleFlags'.
                                return true;
                            }
                        }
                        else if (stmt.nodeType == NodeType.ClassDeclaration) {
                                                  ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                            if (!hasFlag((<InterfaceDeclaration>stmt).varFlags, VarFlags.Ambient)) {
                                 ~~~~~~~
!!! error TS2304: Cannot find name 'hasFlag'.
                                                                                ~~~~~~~~
!!! error TS2304: Cannot find name 'VarFlags'.
                                return true;
                            }
                        }
                        else if (stmt.nodeType == NodeType.VarDecl) {
                                                  ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                            if (!hasFlag((<VarDecl>stmt).varFlags, VarFlags.Ambient)) {
                                 ~~~~~~~
!!! error TS2304: Cannot find name 'hasFlag'.
                                                                   ~~~~~~~~
!!! error TS2304: Cannot find name 'VarFlags'.
                                return true;
                            }
                        }
                        else if (stmt.nodeType == NodeType.FuncDecl) {
                                                  ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                            if (!(<FuncDecl>stmt).isSignature()) {
                                return true;
                            }
                        }
                        else if (stmt.nodeType != NodeType.InterfaceDeclaration && stmt.nodeType != NodeType.Empty) {
                                                  ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                                                                                                    ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                            return true;
                        }
                    }
                }
                return false;
            }
    
            public emit(emitter: Emitter, tokenId: TokenID, startLine: boolean) {
                                 ~~~~~~~
!!! error TS2304: Cannot find name 'Emitter'.
                                                   ~~~~~~~
!!! error TS2304: Cannot find name 'TokenID'.
                if (this.emitRequired()) {
                    emitter.emitParensAndCommentsInPlace(this, true);
                    emitter.recordSourceMappingStart(this);
                    emitter.emitJavascriptList(this.bod, null, TokenID.Semicolon, true, false, false, true, this.requiresInherits);
                                                               ~~~~~~~
!!! error TS2304: Cannot find name 'TokenID'.
                    emitter.recordSourceMappingEnd(this);
                    emitter.emitParensAndCommentsInPlace(this, false);
                }
            }
        }
    
        export class NamedDeclaration extends ModuleElement {
            public leftCurlyCount = 0;
            public rightCurlyCount = 0;
    
            constructor (nodeType: NodeType,
                                   ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                         public name: Identifier,
                         public members: ASTList) {
                super(nodeType);
            }
        }
    
        export class ModuleDeclaration extends NamedDeclaration {
            public modFlags = ModuleFlags.ShouldEmitModuleDecl;
                              ~~~~~~~~~~~
!!! error TS2304: Cannot find name 'ModuleFlags'.
            public mod: ModuleType;
                        ~~~~~~~~~~
!!! error TS2304: Cannot find name 'ModuleType'.
            public prettyName: string;
            public amdDependencies: string[] = [];
            public vars: ASTList;
            public scopes: ASTList;
            // Remember if the module contains Unicode chars, that is needed for dynamic module as we will generate a file for each.
            public containsUnicodeChar = false;
            public containsUnicodeCharInComment = false;
    
            constructor (name: Identifier, members: ASTList, vars: ASTList, scopes: ASTList, public endingToken: ASTSpan) {
                super(NodeType.ModuleDeclaration, name, members);
                      ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
    
                this.vars = vars;
                this.scopes = scopes;
                this.prettyName = this.name.actualText;
            }
    
            public isExported() { return hasFlag(this.modFlags, ModuleFlags.Exported); }
                                         ~~~~~~~
!!! error TS2304: Cannot find name 'hasFlag'.
                                                                ~~~~~~~~~~~
!!! error TS2304: Cannot find name 'ModuleFlags'.
            public isAmbient() { return hasFlag(this.modFlags, ModuleFlags.Ambient); }
                                        ~~~~~~~
!!! error TS2304: Cannot find name 'hasFlag'.
                                                               ~~~~~~~~~~~
!!! error TS2304: Cannot find name 'ModuleFlags'.
            public isEnum() { return hasFlag(this.modFlags, ModuleFlags.IsEnum); }
                                     ~~~~~~~
!!! error TS2304: Cannot find name 'hasFlag'.
                                                            ~~~~~~~~~~~
!!! error TS2304: Cannot find name 'ModuleFlags'.
    
            public recordNonInterface() {
                this.modFlags &= ~ModuleFlags.ShouldEmitModuleDecl;
                                  ~~~~~~~~~~~
!!! error TS2304: Cannot find name 'ModuleFlags'.
            }
    
            public typeCheck(typeFlow: TypeFlow) {
                                       ~~~~~~~~
!!! error TS2304: Cannot find name 'TypeFlow'.
                return typeFlow.typeCheckModule(this);
            }
    
            public emit(emitter: Emitter, tokenId: TokenID, startLine: boolean) {
                                 ~~~~~~~
!!! error TS2304: Cannot find name 'Emitter'.
                                                   ~~~~~~~
!!! error TS2304: Cannot find name 'TokenID'.
                if (!hasFlag(this.modFlags, ModuleFlags.ShouldEmitModuleDecl)) {
                     ~~~~~~~
!!! error TS2304: Cannot find name 'hasFlag'.
                                            ~~~~~~~~~~~
!!! error TS2304: Cannot find name 'ModuleFlags'.
                    emitter.emitParensAndCommentsInPlace(this, true);
                    emitter.recordSourceMappingStart(this);
                    emitter.emitJavascriptModule(this);
                    emitter.recordSourceMappingEnd(this);
                    emitter.emitParensAndCommentsInPlace(this, false);
                }
            }
        }
    
        export class TypeDeclaration extends NamedDeclaration {
            public varFlags = VarFlags.None;
                              ~~~~~~~~
!!! error TS2304: Cannot find name 'VarFlags'.
    
            constructor (nodeType: NodeType,
                                   ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                         name: Identifier,
                         public extendsList: ASTList,
                         public implementsList: ASTList,
                         members: ASTList) {
                super(nodeType, name, members);
            }
    
            public isExported() { 
                return hasFlag(this.varFlags, VarFlags.Exported);
                       ~~~~~~~
!!! error TS2304: Cannot find name 'hasFlag'.
                                              ~~~~~~~~
!!! error TS2304: Cannot find name 'VarFlags'.
            }
    
            public isAmbient() {
                return hasFlag(this.varFlags, VarFlags.Ambient);
                       ~~~~~~~
!!! error TS2304: Cannot find name 'hasFlag'.
                                              ~~~~~~~~
!!! error TS2304: Cannot find name 'VarFlags'.
            }
        }
    
        export class ClassDeclaration extends TypeDeclaration {
            public knownMemberNames: any = {};
            public constructorDecl: FuncDecl = null;
            public constructorNestingLevel = 0;
            public endingToken: ASTSpan = null;
    
            constructor (name: Identifier,
                         members: ASTList,
                         extendsList: ASTList,
                         implementsList: ASTList) {
                super(NodeType.ClassDeclaration, name, extendsList, implementsList, members);
                      ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
            }
    
            public typeCheck(typeFlow: TypeFlow) {
                                       ~~~~~~~~
!!! error TS2304: Cannot find name 'TypeFlow'.
                return typeFlow.typeCheckClass(this);
            }
    
            public emit(emitter: Emitter, tokenId: TokenID, startLine: boolean) {
                                 ~~~~~~~
!!! error TS2304: Cannot find name 'Emitter'.
                                                   ~~~~~~~
!!! error TS2304: Cannot find name 'TokenID'.
                emitter.emitJavascriptClass(this);
            }
        }
    
        export class InterfaceDeclaration extends TypeDeclaration {
            constructor (name: Identifier,
                         members: ASTList,
                         extendsList: ASTList,
                         implementsList: ASTList) {
                super(NodeType.InterfaceDeclaration, name, extendsList, implementsList, members);
                      ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
            }
    
            public typeCheck(typeFlow: TypeFlow) {
                                       ~~~~~~~~
!!! error TS2304: Cannot find name 'TypeFlow'.
                return typeFlow.typeCheckInterface(this);
            }
    
            public emit(emitter: Emitter, tokenId: TokenID, startLine: boolean) {
                                 ~~~~~~~
!!! error TS2304: Cannot find name 'Emitter'.
                                                   ~~~~~~~
!!! error TS2304: Cannot find name 'TokenID'.
            }
        }
    
        export class Statement extends ModuleElement {
            constructor (nodeType: NodeType) {
                                   ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                super(nodeType);
                this.flags |= ASTFlags.IsStatement;
                              ~~~~~~~~
!!! error TS2304: Cannot find name 'ASTFlags'.
            }
    
            public isLoop() { return false; }
    
            public isStatementOrExpression() { return true; }
    
            public isCompoundStatement() { return this.isLoop(); }
    
            public typeCheck(typeFlow: TypeFlow) {
                                       ~~~~~~~~
!!! error TS2304: Cannot find name 'TypeFlow'.
                this.type = typeFlow.voidType;
                return this;
            }
        }
    
        export class LabeledStatement extends Statement {
            constructor (public labels: ASTList, public stmt: AST) {
                super(NodeType.LabeledStatement);
                      ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
            }
    
            public emit(emitter: Emitter, tokenId: TokenID, startLine: boolean) {
                                 ~~~~~~~
!!! error TS2304: Cannot find name 'Emitter'.
                                                   ~~~~~~~
!!! error TS2304: Cannot find name 'TokenID'.
                emitter.emitParensAndCommentsInPlace(this, true);
                emitter.recordSourceMappingStart(this);
                if (this.labels) {
                    var labelsLen = this.labels.members.length;
                    for (var i = 0; i < labelsLen; i++) {
                        this.labels.members[i].emit(emitter, tokenId, startLine);
                    }
                }
                this.stmt.emit(emitter, tokenId, true);
                emitter.recordSourceMappingEnd(this);
                emitter.emitParensAndCommentsInPlace(this, false);
            }
    
            public typeCheck(typeFlow: TypeFlow) {
                                       ~~~~~~~~
!!! error TS2304: Cannot find name 'TypeFlow'.
                typeFlow.typeCheck(this.labels);
                this.stmt = this.stmt.typeCheck(typeFlow);
                return this;
            }
    
            public addToControlFlow(context: ControlFlowContext): void {
                                             ~~~~~~~~~~~~~~~~~~
!!! error TS2304: Cannot find name 'ControlFlowContext'.
                var beforeBB = context.current;
                var bb = new BasicBlock();
                             ~~~~~~~~~~
!!! error TS2304: Cannot find name 'BasicBlock'.
                context.current = bb;
                beforeBB.addSuccessor(bb);
            }
        }
    
        export class Block extends Statement {
            constructor (public statements: ASTList,
                         public isStatementBlock: boolean) {
                super(NodeType.Block);
                      ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
            }
    
            public emit(emitter: Emitter, tokenId: TokenID, startLine: boolean) {
                                 ~~~~~~~
!!! error TS2304: Cannot find name 'Emitter'.
                                                   ~~~~~~~
!!! error TS2304: Cannot find name 'TokenID'.
                emitter.emitParensAndCommentsInPlace(this, true);
                emitter.recordSourceMappingStart(this);
                if (this.isStatementBlock) {
                    emitter.writeLineToOutput(" {");
                    emitter.indenter.increaseIndent();
                } else {
                    emitter.setInVarBlock(this.statements.members.length);
                }
                var temp = emitter.setInObjectLiteral(false);
                if (this.statements) {
                    emitter.emitJavascriptList(this.statements, null, TokenID.Semicolon, true, false, false);
                                                                      ~~~~~~~
!!! error TS2304: Cannot find name 'TokenID'.
                }
                if (this.isStatementBlock) {
                    emitter.indenter.decreaseIndent();
                    emitter.emitIndent();
                    emitter.writeToOutput("}");
                }
                emitter.setInObjectLiteral(temp);
                emitter.recordSourceMappingEnd(this);
                emitter.emitParensAndCommentsInPlace(this, false);
            }
    
            public addToControlFlow(context: ControlFlowContext) {
                                             ~~~~~~~~~~~~~~~~~~
!!! error TS2304: Cannot find name 'ControlFlowContext'.
                var afterIfNeeded = new BasicBlock();
                                        ~~~~~~~~~~
!!! error TS2304: Cannot find name 'BasicBlock'.
                context.pushStatement(this, context.current, afterIfNeeded);
                if (this.statements) {
                    context.walk(this.statements, this);
                }
                context.walker.options.goChildren = false;
                context.popStatement();
                if (afterIfNeeded.predecessors.length > 0) {
                    context.current.addSuccessor(afterIfNeeded);
                    context.current = afterIfNeeded;
                }
            }
    
            public typeCheck(typeFlow: TypeFlow) {
                                       ~~~~~~~~
!!! error TS2304: Cannot find name 'TypeFlow'.
                if (!typeFlow.checker.styleSettings.emptyBlocks) {
                    if ((this.statements === null) || (this.statements.members.length == 0)) {
                        typeFlow.checker.errorReporter.styleError(this, "empty block");
                    }
                }
    
                typeFlow.typeCheck(this.statements);
                return this;
            }
        }
    
        export class Jump extends Statement {
            public target: string = null;
            public hasExplicitTarget() { return (this.target); }
            public resolvedTarget: Statement = null;
    
            constructor (nodeType: NodeType) {
                                   ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                super(nodeType);
            }
    
            public setResolvedTarget(parser: Parser, stmt: Statement): boolean {
                                             ~~~~~~
!!! error TS2304: Cannot find name 'Parser'.
                if (stmt.isLoop()) {
                    this.resolvedTarget = stmt;
                    return true;
                }
                if (this.nodeType === NodeType.Continue) {
                                      ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                    parser.reportParseError("continue statement applies only to loops");
                    return false;
                }
                else {
                    if ((stmt.nodeType == NodeType.Switch) || this.hasExplicitTarget()) {
                                          ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                        this.resolvedTarget = stmt;
                        return true;
                    }
                    else {
                        parser.reportParseError("break statement with no label can apply only to a loop or switch statement");
                        return false;
                    }
                }
            }
    
            public addToControlFlow(context: ControlFlowContext): void {
                                             ~~~~~~~~~~~~~~~~~~
!!! error TS2304: Cannot find name 'ControlFlowContext'.
                super.addToControlFlow(context);
                context.unconditionalBranch(this.resolvedTarget, (this.nodeType == NodeType.Continue));
                                                                                   ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
            }
    
            public emit(emitter: Emitter, tokenId: TokenID, startLine: boolean) {
                                 ~~~~~~~
!!! error TS2304: Cannot find name 'Emitter'.
                                                   ~~~~~~~
!!! error TS2304: Cannot find name 'TokenID'.
                emitter.emitParensAndCommentsInPlace(this, true);
                emitter.recordSourceMappingStart(this);
                if (this.nodeType == NodeType.Break) {
                                     ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                    emitter.writeToOutput("break");
                }
                else {
                    emitter.writeToOutput("continue");
                }
                if (this.hasExplicitTarget()) {
                    emitter.writeToOutput(" " + this.target);
                }
                emitter.recordSourceMappingEnd(this);
                emitter.writeToOutput(";");
                emitter.emitParensAndCommentsInPlace(this, false);
            }
        }
    
        export class WhileStatement extends Statement {
            public body: AST = null;
    
            constructor (public cond: AST) {
                super(NodeType.While);
                      ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
            }
    
            public isLoop() { return true; }
    
            public emit(emitter: Emitter, tokenId: TokenID, startLine: boolean) {
                                 ~~~~~~~
!!! error TS2304: Cannot find name 'Emitter'.
                                                   ~~~~~~~
!!! error TS2304: Cannot find name 'TokenID'.
                emitter.emitParensAndCommentsInPlace(this, true);
                emitter.recordSourceMappingStart(this);
                var temp = emitter.setInObjectLiteral(false);
                emitter.writeToOutput("while(");
                emitter.emitJavascript(this.cond, TokenID.While, false);
                                                  ~~~~~~~
!!! error TS2304: Cannot find name 'TokenID'.
                emitter.writeToOutput(")");
                emitter.emitJavascriptStatements(this.body, false, false);
                emitter.setInObjectLiteral(temp);
                emitter.recordSourceMappingEnd(this);
                emitter.emitParensAndCommentsInPlace(this, false);
            }
    
            public typeCheck(typeFlow: TypeFlow) {
                                       ~~~~~~~~
!!! error TS2304: Cannot find name 'TypeFlow'.
                return typeFlow.typeCheckWhile(this);
            }
    
            public addToControlFlow(context: ControlFlowContext): void {
                                             ~~~~~~~~~~~~~~~~~~
!!! error TS2304: Cannot find name 'ControlFlowContext'.
                var loopHeader = context.current;
                var loopStart = new BasicBlock();
                                    ~~~~~~~~~~
!!! error TS2304: Cannot find name 'BasicBlock'.
                var afterLoop = new BasicBlock();
                                    ~~~~~~~~~~
!!! error TS2304: Cannot find name 'BasicBlock'.
    
                loopHeader.addSuccessor(loopStart);
                context.current = loopStart;
                context.addContent(this.cond);
                var condBlock = context.current;
                var targetInfo: ITargetInfo = null;
                                ~~~~~~~~~~~
!!! error TS2304: Cannot find name 'ITargetInfo'.
                if (this.body) {
                    context.current = new BasicBlock();
                                          ~~~~~~~~~~
!!! error TS2304: Cannot find name 'BasicBlock'.
                    condBlock.addSuccessor(context.current);
                    context.pushStatement(this, loopStart, afterLoop);
                    context.walk(this.body, this);
                    targetInfo = context.popStatement();
                }
                if (!(context.noContinuation)) {
                    var loopEnd = context.current;
                    loopEnd.addSuccessor(loopStart);
                }
                context.current = afterLoop;
                condBlock.addSuccessor(afterLoop);
                // TODO: check for while (true) and then only continue if afterLoop has predecessors
                context.noContinuation = false;
                context.walker.options.goChildren = false;
            }
        }
    
        export class DoWhileStatement extends Statement {
            public body: AST = null;
            public whileAST: AST = null;
            public cond: AST = null;
            public isLoop() { return true; }
    
            constructor () {
                super(NodeType.DoWhile);
                      ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
            }
    
            public emit(emitter: Emitter, tokenId: TokenID, startLine: boolean) {
                                 ~~~~~~~
!!! error TS2304: Cannot find name 'Emitter'.
                                                   ~~~~~~~
!!! error TS2304: Cannot find name 'TokenID'.
                emitter.emitParensAndCommentsInPlace(this, true);
                emitter.recordSourceMappingStart(this);
                var temp = emitter.setInObjectLiteral(false);
                emitter.writeToOutput("do");
                emitter.emitJavascriptStatements(this.body, true, false);
                emitter.recordSourceMappingStart(this.whileAST);
                emitter.writeToOutput("while");
                emitter.recordSourceMappingEnd(this.whileAST);
                emitter.writeToOutput('(');
                emitter.emitJavascript(this.cond, TokenID.CloseParen, false);
                                                  ~~~~~~~
!!! error TS2304: Cannot find name 'TokenID'.
                emitter.writeToOutput(")");
                emitter.setInObjectLiteral(temp);
                emitter.recordSourceMappingEnd(this);
                emitter.emitParensAndCommentsInPlace(this, false);
            }
    
            public typeCheck(typeFlow: TypeFlow) {
                                       ~~~~~~~~
!!! error TS2304: Cannot find name 'TypeFlow'.
                return typeFlow.typeCheckDoWhile(this);
            }
    
            public addToControlFlow(context: ControlFlowContext): void {
                                             ~~~~~~~~~~~~~~~~~~
!!! error TS2304: Cannot find name 'ControlFlowContext'.
                var loopHeader = context.current;
                var loopStart = new BasicBlock();
                                    ~~~~~~~~~~
!!! error TS2304: Cannot find name 'BasicBlock'.
                var afterLoop = new BasicBlock();
                                    ~~~~~~~~~~
!!! error TS2304: Cannot find name 'BasicBlock'.
                loopHeader.addSuccessor(loopStart);
                context.current = loopStart;
                var targetInfo: ITargetInfo = null;
                                ~~~~~~~~~~~
!!! error TS2304: Cannot find name 'ITargetInfo'.
                if (this.body) {
                    context.pushStatement(this, loopStart, afterLoop);
                    context.walk(this.body, this);
                    targetInfo = context.popStatement();
                }
                if (!(context.noContinuation)) {
                    var loopEnd = context.current;
                    loopEnd.addSuccessor(loopStart);
                    context.addContent(this.cond);
                    // TODO: check for while (true) 
                    context.current = afterLoop;
                    loopEnd.addSuccessor(afterLoop);
                }
                else {
                    context.addUnreachable(this.cond);
                }
                context.walker.options.goChildren = false;
            }
        }
    
        export class IfStatement extends Statement {
            public thenBod: AST;
            public elseBod: AST = null;
            public statement: ASTSpan = new ASTSpan();
    
            constructor (public cond: AST) {
                super(NodeType.If);
                      ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
            }
    
            public isCompoundStatement() { return true; }
    
            public emit(emitter: Emitter, tokenId: TokenID, startLine: boolean) {
                                 ~~~~~~~
!!! error TS2304: Cannot find name 'Emitter'.
                                                   ~~~~~~~
!!! error TS2304: Cannot find name 'TokenID'.
                emitter.emitParensAndCommentsInPlace(this, true);
                emitter.recordSourceMappingStart(this);
                var temp = emitter.setInObjectLiteral(false);
                emitter.recordSourceMappingStart(this.statement);
                emitter.writeToOutput("if(");
                emitter.emitJavascript(this.cond, TokenID.If, false);
                                                  ~~~~~~~
!!! error TS2304: Cannot find name 'TokenID'.
                emitter.writeToOutput(")");
                emitter.recordSourceMappingEnd(this.statement);
                emitter.emitJavascriptStatements(this.thenBod, true, false);
                if (this.elseBod) {
                    emitter.writeToOutput(" else");
                    emitter.emitJavascriptStatements(this.elseBod, true, true);
                }
                emitter.setInObjectLiteral(temp);
                emitter.recordSourceMappingEnd(this);
                emitter.emitParensAndCommentsInPlace(this, false);
            }
    
            public typeCheck(typeFlow: TypeFlow) {
                                       ~~~~~~~~
!!! error TS2304: Cannot find name 'TypeFlow'.
                return typeFlow.typeCheckIf(this);
            }
    
            public addToControlFlow(context: ControlFlowContext): void {
                                             ~~~~~~~~~~~~~~~~~~
!!! error TS2304: Cannot find name 'ControlFlowContext'.
                this.cond.addToControlFlow(context);
                var afterIf = new BasicBlock();
                                  ~~~~~~~~~~
!!! error TS2304: Cannot find name 'BasicBlock'.
                var beforeIf = context.current;
                context.pushStatement(this, beforeIf, afterIf);
                var hasContinuation = false;
                context.current = new BasicBlock();
                                      ~~~~~~~~~~
!!! error TS2304: Cannot find name 'BasicBlock'.
                beforeIf.addSuccessor(context.current);
                context.walk(this.thenBod, this);
                if (!context.noContinuation) {
                    hasContinuation = true;
                    context.current.addSuccessor(afterIf);
                }
                if (this.elseBod) {
                    // current block will be thenBod
                    context.current = new BasicBlock();
                                          ~~~~~~~~~~
!!! error TS2304: Cannot find name 'BasicBlock'.
                    context.noContinuation = false;
                    beforeIf.addSuccessor(context.current);
                    context.walk(this.elseBod, this);
                    if (!context.noContinuation) {
                        hasContinuation = true;
                        context.current.addSuccessor(afterIf);
                    }
                    else {
                        // thenBod created continuation for if statement
                        if (hasContinuation) {
                            context.noContinuation = false;
                        }
                    }
                }
                else {
                    beforeIf.addSuccessor(afterIf);
                    context.noContinuation = false;
                    hasContinuation = true;
                }
                var targetInfo = context.popStatement();
                if (afterIf.predecessors.length > 0) {
                    context.noContinuation = false;
                    hasContinuation = true;
                }
                if (hasContinuation) {
                    context.current = afterIf;
                }
                context.walker.options.goChildren = false;
            }
        }
    
        export class ReturnStatement extends Statement {
            public returnExpression: AST = null;
    
            constructor () {
                super(NodeType.Return);
                      ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
            }
    
            public emit(emitter: Emitter, tokenId: TokenID, startLine: boolean) {
                                 ~~~~~~~
!!! error TS2304: Cannot find name 'Emitter'.
                                                   ~~~~~~~
!!! error TS2304: Cannot find name 'TokenID'.
                emitter.emitParensAndCommentsInPlace(this, true);
                emitter.recordSourceMappingStart(this);
                var temp = emitter.setInObjectLiteral(false);
                if (this.returnExpression) {
                    emitter.writeToOutput("return ");
                    emitter.emitJavascript(this.returnExpression, TokenID.Semicolon, false);
                                                                  ~~~~~~~
!!! error TS2304: Cannot find name 'TokenID'.
                }
                else {
                    emitter.writeToOutput("return;");
                }
                emitter.setInObjectLiteral(temp);
                emitter.recordSourceMappingEnd(this);
                emitter.emitParensAndCommentsInPlace(this, false);
            }
    
            public addToControlFlow(context: ControlFlowContext): void {
                                             ~~~~~~~~~~~~~~~~~~
!!! error TS2304: Cannot find name 'ControlFlowContext'.
                super.addToControlFlow(context);
                context.returnStmt();
            }
    
            public typeCheck(typeFlow: TypeFlow) {
                                       ~~~~~~~~
!!! error TS2304: Cannot find name 'TypeFlow'.
                return typeFlow.typeCheckReturn(this);
            }
        }
    
        export class EndCode extends AST {
            constructor () {
                super(NodeType.EndCode);
                      ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
            }
        }
    
        export class ForInStatement extends Statement {
            constructor (public lval: AST, public obj: AST) {
                super(NodeType.ForIn);
                      ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                if (this.lval && (this.lval.nodeType == NodeType.VarDecl)) {
                                                        ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                    (<BoundDecl>this.lval).varFlags |= VarFlags.AutoInit;
                                                       ~~~~~~~~
!!! error TS2304: Cannot find name 'VarFlags'.
                }
            }
            public statement: ASTSpan = new ASTSpan();
            public body: AST;
    
            public isLoop() { return true; }
    
            public isFiltered() {
                if (this.body) {
                    var singleItem: AST = null;
                    if (this.body.nodeType == NodeType.List) {
                                              ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                        var stmts = <ASTList>this.body;
                        if (stmts.members.length == 1) {
                            singleItem = stmts.members[0];
                        }
                    }
                    else {
                        singleItem = this.body;
                    }
                    // match template for filtering 'own' properties from obj
                    if (singleItem !== null) {
                        if (singleItem.nodeType == NodeType.Block) {
                                                   ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                            var block = <Block>singleItem;
                            if ((block.statements !== null) && (block.statements.members.length == 1)) {
                                singleItem = block.statements.members[0];
                            }
                        }
                        if (singleItem.nodeType == NodeType.If) {
                                                   ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                            var cond = (<IfStatement>singleItem).cond;
                            if (cond.nodeType == NodeType.Call) {
                                                 ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                                var target = (<CallExpression>cond).target;
                                if (target.nodeType == NodeType.Dot) {
                                                       ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                                    var binex = <BinaryExpression>target;
                                    if ((binex.operand1.nodeType == NodeType.Name) &&
                                                                    ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                                        (this.obj.nodeType == NodeType.Name) &&
                                                              ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                                        ((<Identifier>binex.operand1).actualText == (<Identifier>this.obj).actualText)) {
                                        var prop = <Identifier>binex.operand2;
                                        if (prop.actualText == "hasOwnProperty") {
                                            var args = (<CallExpression>cond).arguments;
                                            if ((args !== null) && (args.members.length == 1)) {
                                                var arg = args.members[0];
                                                if ((arg.nodeType == NodeType.Name) &&
                                                                     ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                                                     (this.lval.nodeType == NodeType.Name)) {
                                                                            ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                                                    if (((<Identifier>this.lval).actualText) == (<Identifier>arg).actualText) {
                                                        return true;
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
                return false;
            }
    
            public emit(emitter: Emitter, tokenId: TokenID, startLine: boolean) {
                                 ~~~~~~~
!!! error TS2304: Cannot find name 'Emitter'.
                                                   ~~~~~~~
!!! error TS2304: Cannot find name 'TokenID'.
                emitter.emitParensAndCommentsInPlace(this, true);
                emitter.recordSourceMappingStart(this);
                var temp = emitter.setInObjectLiteral(false);
                emitter.recordSourceMappingStart(this.statement);
                emitter.writeToOutput("for(");
                emitter.emitJavascript(this.lval, TokenID.For, false);
                                                  ~~~~~~~
!!! error TS2304: Cannot find name 'TokenID'.
                emitter.writeToOutput(" in ");
                emitter.emitJavascript(this.obj, TokenID.For, false);
                                                 ~~~~~~~
!!! error TS2304: Cannot find name 'TokenID'.
                emitter.writeToOutput(")");
                emitter.recordSourceMappingEnd(this.statement);
                emitter.emitJavascriptStatements(this.body, true, false);
                emitter.setInObjectLiteral(temp);
                emitter.recordSourceMappingEnd(this);
                emitter.emitParensAndCommentsInPlace(this, false);
            }
    
            public typeCheck(typeFlow: TypeFlow) {
                                       ~~~~~~~~
!!! error TS2304: Cannot find name 'TypeFlow'.
                if (typeFlow.checker.styleSettings.forin) {
                    if (!this.isFiltered()) {
                        typeFlow.checker.errorReporter.styleError(this, "no hasOwnProperty filter");
                    }
                }
                return typeFlow.typeCheckForIn(this);
            }
    
            public addToControlFlow(context: ControlFlowContext): void {
                                             ~~~~~~~~~~~~~~~~~~
!!! error TS2304: Cannot find name 'ControlFlowContext'.
                if (this.lval) {
                    context.addContent(this.lval);
                }
                if (this.obj) {
                    context.addContent(this.obj);
                }
    
                var loopHeader = context.current;
                var loopStart = new BasicBlock();
                                    ~~~~~~~~~~
!!! error TS2304: Cannot find name 'BasicBlock'.
                var afterLoop = new BasicBlock();
                                    ~~~~~~~~~~
!!! error TS2304: Cannot find name 'BasicBlock'.
    
                loopHeader.addSuccessor(loopStart);
                context.current = loopStart;
                if (this.body) {
                    context.pushStatement(this, loopStart, afterLoop);
                    context.walk(this.body, this);
                    context.popStatement();
                }
                if (!(context.noContinuation)) {
                    var loopEnd = context.current;
                    loopEnd.addSuccessor(loopStart);
                }
                context.current = afterLoop;
                context.noContinuation = false;
                loopHeader.addSuccessor(afterLoop);
                context.walker.options.goChildren = false;
            }
        }
    
        export class ForStatement extends Statement {
            public cond: AST;
            public body: AST;
            public incr: AST;
    
            constructor (public init: AST) {
                super(NodeType.For);
                      ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
            }
    
            public isLoop() { return true; }
    
            public emit(emitter: Emitter, tokenId: TokenID, startLine: boolean) {
                                 ~~~~~~~
!!! error TS2304: Cannot find name 'Emitter'.
                                                   ~~~~~~~
!!! error TS2304: Cannot find name 'TokenID'.
                emitter.emitParensAndCommentsInPlace(this, true);
                emitter.recordSourceMappingStart(this);
                var temp = emitter.setInObjectLiteral(false);
                emitter.writeToOutput("for(");
                if (this.init) {
                    if (this.init.nodeType != NodeType.List) {
                                              ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                        emitter.emitJavascript(this.init, TokenID.For, false);
                                                          ~~~~~~~
!!! error TS2304: Cannot find name 'TokenID'.
                    }
                    else {
                        emitter.setInVarBlock((<ASTList>this.init).members.length); 
                        emitter.emitJavascriptList(this.init, null, TokenID.For, false, false, false);
                                                                    ~~~~~~~
!!! error TS2304: Cannot find name 'TokenID'.
                    }
                }
                emitter.writeToOutput("; ");
                emitter.emitJavascript(this.cond, TokenID.For, false);
                                                  ~~~~~~~
!!! error TS2304: Cannot find name 'TokenID'.
                emitter.writeToOutput("; ");
                emitter.emitJavascript(this.incr, TokenID.For, false);
                                                  ~~~~~~~
!!! error TS2304: Cannot find name 'TokenID'.
                emitter.writeToOutput(")");
                emitter.emitJavascriptStatements(this.body, true, false);
                emitter.setInObjectLiteral(temp);
                emitter.recordSourceMappingEnd(this);
                emitter.emitParensAndCommentsInPlace(this, false);
            }
    
            public typeCheck(typeFlow: TypeFlow) {
                                       ~~~~~~~~
!!! error TS2304: Cannot find name 'TypeFlow'.
                return typeFlow.typeCheckFor(this);
            }
    
            public addToControlFlow(context: ControlFlowContext): void {
                                             ~~~~~~~~~~~~~~~~~~
!!! error TS2304: Cannot find name 'ControlFlowContext'.
                if (this.init) {
                    context.addContent(this.init);
                }
                var loopHeader = context.current;
                var loopStart = new BasicBlock();
                                    ~~~~~~~~~~
!!! error TS2304: Cannot find name 'BasicBlock'.
                var afterLoop = new BasicBlock();
                                    ~~~~~~~~~~
!!! error TS2304: Cannot find name 'BasicBlock'.
    
                loopHeader.addSuccessor(loopStart);
                context.current = loopStart;
                var condBlock: BasicBlock = null;
                               ~~~~~~~~~~
!!! error TS2304: Cannot find name 'BasicBlock'.
                var continueTarget = loopStart;
                var incrBB: BasicBlock = null;
                            ~~~~~~~~~~
!!! error TS2304: Cannot find name 'BasicBlock'.
                if (this.incr) {
                    incrBB = new BasicBlock();
                                 ~~~~~~~~~~
!!! error TS2304: Cannot find name 'BasicBlock'.
                    continueTarget = incrBB;
                }
                if (this.cond) {
                    condBlock = context.current;
                    context.addContent(this.cond);
                    context.current = new BasicBlock();
                                          ~~~~~~~~~~
!!! error TS2304: Cannot find name 'BasicBlock'.
                    condBlock.addSuccessor(context.current);
                }
                var targetInfo: ITargetInfo = null;
                                ~~~~~~~~~~~
!!! error TS2304: Cannot find name 'ITargetInfo'.
                if (this.body) {
                    context.pushStatement(this, continueTarget, afterLoop);
                    context.walk(this.body, this);
                    targetInfo = context.popStatement();
                }
                if (this.incr) {
                    if (context.noContinuation) {
                        if (incrBB.predecessors.length == 0) {
                            context.addUnreachable(this.incr);
                        }
                    }
                    else {
                        context.current.addSuccessor(incrBB);
                        context.current = incrBB;
                        context.addContent(this.incr);
                    }
                }
                var loopEnd = context.current;
                if (!(context.noContinuation)) {
                    loopEnd.addSuccessor(loopStart);
    
                }
                if (condBlock) {
                    condBlock.addSuccessor(afterLoop);
                    context.noContinuation = false;
                }
                if (afterLoop.predecessors.length > 0) {
                    context.noContinuation = false;
                    context.current = afterLoop;
                }
                context.walker.options.goChildren = false;
            }
        }
    
        export class WithStatement extends Statement {
            public body: AST;
    
            public isCompoundStatement() { return true; }
    
            public withSym: WithSymbol = null;
                            ~~~~~~~~~~
!!! error TS2304: Cannot find name 'WithSymbol'.
    
            constructor (public expr: AST) {
                super(NodeType.With);
                      ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
            }
    
            public emit(emitter: Emitter, tokenId: TokenID, startLine: boolean) {
                                 ~~~~~~~
!!! error TS2304: Cannot find name 'Emitter'.
                                                   ~~~~~~~
!!! error TS2304: Cannot find name 'TokenID'.
                emitter.emitParensAndCommentsInPlace(this, true);
                emitter.recordSourceMappingStart(this);
                emitter.writeToOutput("with (");
                if (this.expr) {
                    emitter.emitJavascript(this.expr, TokenID.With, false);
                                                      ~~~~~~~
!!! error TS2304: Cannot find name 'TokenID'.
                }
    
                emitter.writeToOutput(")");
                emitter.emitJavascriptStatements(this.body, true, false);
                emitter.recordSourceMappingEnd(this);
                emitter.emitParensAndCommentsInPlace(this, false);
            }
    
            public typeCheck(typeFlow: TypeFlow) {
                                       ~~~~~~~~
!!! error TS2304: Cannot find name 'TypeFlow'.
                return typeFlow.typeCheckWith(this);
            }
        }
    
        export class SwitchStatement extends Statement {
            public caseList: ASTList;
            public defaultCase: CaseStatement = null;
            public statement: ASTSpan = new ASTSpan();
    
            constructor (public val: AST) {
                super(NodeType.Switch);
                      ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
            }
    
            public isCompoundStatement() { return true; }
    
            public emit(emitter: Emitter, tokenId: TokenID, startLine: boolean) {
                                 ~~~~~~~
!!! error TS2304: Cannot find name 'Emitter'.
                                                   ~~~~~~~
!!! error TS2304: Cannot find name 'TokenID'.
                emitter.emitParensAndCommentsInPlace(this, true);
                emitter.recordSourceMappingStart(this);
                var temp = emitter.setInObjectLiteral(false);
                emitter.recordSourceMappingStart(this.statement);
                emitter.writeToOutput("switch(");
                emitter.emitJavascript(this.val, TokenID.Identifier, false);
                                                 ~~~~~~~
!!! error TS2304: Cannot find name 'TokenID'.
                emitter.writeToOutput(")"); 
                emitter.recordSourceMappingEnd(this.statement);
                emitter.writeLineToOutput(" {");
                emitter.indenter.increaseIndent();
                var casesLen = this.caseList.members.length;
                for (var i = 0; i < casesLen; i++) {
                    var caseExpr = this.caseList.members[i];
                    emitter.emitJavascript(caseExpr, TokenID.Case, true);
                                                     ~~~~~~~
!!! error TS2304: Cannot find name 'TokenID'.
                    emitter.writeLineToOutput("");
                }
                emitter.indenter.decreaseIndent();
                emitter.emitIndent();
                emitter.writeToOutput("}");
                emitter.setInObjectLiteral(temp);
                emitter.recordSourceMappingEnd(this);
                emitter.emitParensAndCommentsInPlace(this, false);
            }
    
            public typeCheck(typeFlow: TypeFlow) {
                                       ~~~~~~~~
!!! error TS2304: Cannot find name 'TypeFlow'.
                var len = this.caseList.members.length;
                this.val = typeFlow.typeCheck(this.val);
                for (var i = 0; i < len; i++) {
                    this.caseList.members[i] = typeFlow.typeCheck(this.caseList.members[i]);
                }
                this.defaultCase = <CaseStatement>typeFlow.typeCheck(this.defaultCase);
                this.type = typeFlow.voidType;
                return this;
            }
    
            // if there are break statements that match this switch, then just link cond block with block after switch
            public addToControlFlow(context: ControlFlowContext) {
                                             ~~~~~~~~~~~~~~~~~~
!!! error TS2304: Cannot find name 'ControlFlowContext'.
                var condBlock = context.current;
                context.addContent(this.val);
                var execBlock = new BasicBlock();
                                    ~~~~~~~~~~
!!! error TS2304: Cannot find name 'BasicBlock'.
                var afterSwitch = new BasicBlock();
                                      ~~~~~~~~~~
!!! error TS2304: Cannot find name 'BasicBlock'.
    
                condBlock.addSuccessor(execBlock);
                context.pushSwitch(execBlock);
                context.current = execBlock;
                context.pushStatement(this, execBlock, afterSwitch);
                context.walk(this.caseList, this);
                context.popSwitch();
                var targetInfo = context.popStatement();
                var hasCondContinuation = (this.defaultCase == null);
                if (this.defaultCase == null) {
                    condBlock.addSuccessor(afterSwitch);
                }
                if (afterSwitch.predecessors.length > 0) {
                    context.noContinuation = false;
                    context.current = afterSwitch;
                }
                else {
                    context.noContinuation = true;
                }
                context.walker.options.goChildren = false;
            }
        }
    
        export class CaseStatement extends Statement {
            public expr: AST = null;
            public body: ASTList;
    
            constructor () {
                super(NodeType.Case);
                      ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
            }
    
            public emit(emitter: Emitter, tokenId: TokenID, startLine: boolean) {
                                 ~~~~~~~
!!! error TS2304: Cannot find name 'Emitter'.
                                                   ~~~~~~~
!!! error TS2304: Cannot find name 'TokenID'.
                emitter.emitParensAndCommentsInPlace(this, true);
                emitter.recordSourceMappingStart(this);
                if (this.expr) {
                    emitter.writeToOutput("case ");
                    emitter.emitJavascript(this.expr, TokenID.Identifier, false);
                                                      ~~~~~~~
!!! error TS2304: Cannot find name 'TokenID'.
                }
                else {
                    emitter.writeToOutput("default");
                }
                emitter.writeToOutput(":");
                emitter.emitJavascriptStatements(this.body, false, false);
                emitter.recordSourceMappingEnd(this);
                emitter.emitParensAndCommentsInPlace(this, false);
            }
    
            public typeCheck(typeFlow: TypeFlow) {
                                       ~~~~~~~~
!!! error TS2304: Cannot find name 'TypeFlow'.
                this.expr = typeFlow.typeCheck(this.expr);
                typeFlow.typeCheck(this.body);
                this.type = typeFlow.voidType;
                return this;
            }
    
            // 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) {
                                             ~~~~~~~~~~~~~~~~~~
!!! error TS2304: Cannot find name 'ControlFlowContext'.
                var execBlock = new BasicBlock();
                                    ~~~~~~~~~~
!!! error TS2304: Cannot find name 'BasicBlock'.
                var sw = context.currentSwitch[context.currentSwitch.length - 1];
                // TODO: fall-through from previous (+ to end of switch)
                if (this.expr) {
                    var exprBlock = new BasicBlock();
                                        ~~~~~~~~~~
!!! error TS2304: Cannot find name 'BasicBlock'.
                    context.current = exprBlock;
                    sw.addSuccessor(exprBlock);
                    context.addContent(this.expr);
                    exprBlock.addSuccessor(execBlock);
                }
                else {
                    sw.addSuccessor(execBlock);
                }
                context.current = execBlock;
                if (this.body) {
                    context.walk(this.body, this);
                }
                context.noContinuation = false;
                context.walker.options.goChildren = false;
            }
        }
    
        export class TypeReference extends AST {
            constructor (public term: AST, public arrayCount: number) {
                super(NodeType.TypeRef);
                      ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
            }
    
            public emit(emitter: Emitter, tokenId: TokenID, startLine: boolean) {
                                 ~~~~~~~
!!! error TS2304: Cannot find name 'Emitter'.
                                                   ~~~~~~~
!!! error TS2304: Cannot find name 'TokenID'.
                throw new Error("should not emit a type ref");
            }
    
            public typeCheck(typeFlow: TypeFlow) {
                                       ~~~~~~~~
!!! error TS2304: Cannot find name 'TypeFlow'.
                var prevInTCTR = typeFlow.inTypeRefTypeCheck;
                typeFlow.inTypeRefTypeCheck = true;
                var typeLink = getTypeLink(this, typeFlow.checker, true);
                               ~~~~~~~~~~~
!!! error TS2304: Cannot find name 'getTypeLink'.
                typeFlow.checker.resolveTypeLink(typeFlow.scope, typeLink, false);
    
                if (this.term) {
                    typeFlow.typeCheck(this.term);
                }
    
                typeFlow.checkForVoidConstructor(typeLink.type, this);
    
                this.type = typeLink.type;
    
                // in error recovery cases, there may not be a term
                if (this.term) {
                    this.term.type = this.type;
                }
    
                typeFlow.inTypeRefTypeCheck = prevInTCTR;
                return this;
            }
        }
    
        export class TryFinally extends Statement {
            constructor (public tryNode: AST, public finallyNode: Finally) {
                super(NodeType.TryFinally);
                      ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
            }
    
            public isCompoundStatement() { return true; }
    
            public emit(emitter: Emitter, tokenId: TokenID, startLine: boolean) {
                                 ~~~~~~~
!!! error TS2304: Cannot find name 'Emitter'.
                                                   ~~~~~~~
!!! error TS2304: Cannot find name 'TokenID'.
                emitter.recordSourceMappingStart(this);
                emitter.emitJavascript(this.tryNode, TokenID.Try, false);
                                                     ~~~~~~~
!!! error TS2304: Cannot find name 'TokenID'.
                emitter.emitJavascript(this.finallyNode, TokenID.Finally, false);
                                                         ~~~~~~~
!!! error TS2304: Cannot find name 'TokenID'.
                emitter.recordSourceMappingEnd(this);
            }
    
            public typeCheck(typeFlow: TypeFlow) {
                                       ~~~~~~~~
!!! error TS2304: Cannot find name 'TypeFlow'.
                this.tryNode = typeFlow.typeCheck(this.tryNode);
                this.finallyNode = <Finally>typeFlow.typeCheck(this.finallyNode);
                this.type = typeFlow.voidType;
                return this;
            }
    
            public addToControlFlow(context: ControlFlowContext) {
                                             ~~~~~~~~~~~~~~~~~~
!!! error TS2304: Cannot find name 'ControlFlowContext'.
                var afterFinally = new BasicBlock();
                                       ~~~~~~~~~~
!!! error TS2304: Cannot find name 'BasicBlock'.
                context.walk(this.tryNode, this);
                var finBlock = new BasicBlock();
                                   ~~~~~~~~~~
!!! error TS2304: Cannot find name 'BasicBlock'.
                if (context.current) {
                    context.current.addSuccessor(finBlock);
                }
                context.current = finBlock;
                context.pushStatement(this, null, afterFinally);
                context.walk(this.finallyNode, this);
                if (!context.noContinuation && context.current) {
                    context.current.addSuccessor(afterFinally);
                }
                if (afterFinally.predecessors.length > 0) {
                    context.current = afterFinally;
                }
                else {
                    context.noContinuation = true;
                }
                context.popStatement();
                context.walker.options.goChildren = false;
            }
        }
    
        export class TryCatch extends Statement {
            constructor (public tryNode: Try, public catchNode: Catch) {
                super(NodeType.TryCatch);
                      ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
            }
    
            public isCompoundStatement() { return true; }
    
            public emit(emitter: Emitter, tokenId: TokenID, startLine: boolean) {
                                 ~~~~~~~
!!! error TS2304: Cannot find name 'Emitter'.
                                                   ~~~~~~~
!!! error TS2304: Cannot find name 'TokenID'.
                emitter.emitParensAndCommentsInPlace(this, true);
                emitter.recordSourceMappingStart(this);
                emitter.emitJavascript(this.tryNode, TokenID.Try, false);
                                                     ~~~~~~~
!!! error TS2304: Cannot find name 'TokenID'.
                emitter.emitJavascript(this.catchNode, TokenID.Catch, false);
                                                       ~~~~~~~
!!! error TS2304: Cannot find name 'TokenID'.
                emitter.recordSourceMappingEnd(this);
                emitter.emitParensAndCommentsInPlace(this, false);
            }
    
            public addToControlFlow(context: ControlFlowContext) {
                                             ~~~~~~~~~~~~~~~~~~
!!! error TS2304: Cannot find name 'ControlFlowContext'.
                var beforeTry = context.current;
                var tryBlock = new BasicBlock();
                                   ~~~~~~~~~~
!!! error TS2304: Cannot find name 'BasicBlock'.
                beforeTry.addSuccessor(tryBlock);
                context.current = tryBlock;
                var afterTryCatch = new BasicBlock();
                                        ~~~~~~~~~~
!!! error TS2304: Cannot find name 'BasicBlock'.
                context.pushStatement(this, null, afterTryCatch);
                context.walk(this.tryNode, this);
                if (!context.noContinuation) {
                    if (context.current) {
                        context.current.addSuccessor(afterTryCatch);
                    }
                }
                context.current = new BasicBlock();
                                      ~~~~~~~~~~
!!! error TS2304: Cannot find name 'BasicBlock'.
                beforeTry.addSuccessor(context.current);
                context.walk(this.catchNode, this);
                context.popStatement();
                if (!context.noContinuation) {
                    if (context.current) {
                        context.current.addSuccessor(afterTryCatch);
                    }
                }
                context.current = afterTryCatch;
                context.walker.options.goChildren = false;
            }
    
            public typeCheck(typeFlow: TypeFlow) {
                                       ~~~~~~~~
!!! error TS2304: Cannot find name 'TypeFlow'.
                this.tryNode = <Try>typeFlow.typeCheck(this.tryNode);
                this.catchNode = <Catch>typeFlow.typeCheck(this.catchNode);
                this.type = typeFlow.voidType;
                return this;
            }
        }
    
        export class Try extends Statement {
            constructor (public body: AST) {
                super(NodeType.Try);
                      ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
            }
    
            public emit(emitter: Emitter, tokenId: TokenID, startLine: boolean) {
                                 ~~~~~~~
!!! error TS2304: Cannot find name 'Emitter'.
                                                   ~~~~~~~
!!! error TS2304: Cannot find name 'TokenID'.
                emitter.emitParensAndCommentsInPlace(this, true);
                emitter.recordSourceMappingStart(this);
                emitter.writeToOutput("try ");
                emitter.emitJavascript(this.body, TokenID.Try, false);
                                                  ~~~~~~~
!!! error TS2304: Cannot find name 'TokenID'.
                emitter.recordSourceMappingEnd(this);
                emitter.emitParensAndCommentsInPlace(this, false);
            }
    
            public typeCheck(typeFlow: TypeFlow) {
                                       ~~~~~~~~
!!! error TS2304: Cannot find name 'TypeFlow'.
                this.body = typeFlow.typeCheck(this.body);
                return this;
            }
    
            public addToControlFlow(context: ControlFlowContext) {
                                             ~~~~~~~~~~~~~~~~~~
!!! error TS2304: Cannot find name 'ControlFlowContext'.
                if (this.body) {
                    context.walk(this.body, this);
                }
                context.walker.options.goChildren = false;
                context.noContinuation = false;
            }
        }
    
        export class Catch extends Statement {
            constructor (public param: VarDecl, public body: AST) {
                super(NodeType.Catch);
                      ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
                if (this.param) {
                    this.param.varFlags |= VarFlags.AutoInit;
                                           ~~~~~~~~
!!! error TS2304: Cannot find name 'VarFlags'.
                }
            }
            public statement: ASTSpan = new ASTSpan();
            public containedScope: SymbolScope = null;
                                   ~~~~~~~~~~~
!!! error TS2304: Cannot find name 'SymbolScope'.
    
            public emit(emitter: Emitter, tokenId: TokenID, startLine: boolean) {
                                 ~~~~~~~
!!! error TS2304: Cannot find name 'Emitter'.
                                                   ~~~~~~~
!!! error TS2304: Cannot find name 'TokenID'.
                emitter.emitParensAndCommentsInPlace(this, true);
                emitter.recordSourceMappingStart(this);
                emitter.writeToOutput(" ");
                emitter.recordSourceMappingStart(this.statement);
                emitter.writeToOutput("catch (");
                emitter.emitJavascript(this.param, TokenID.OpenParen, false);
                                                   ~~~~~~~
!!! error TS2304: Cannot find name 'TokenID'.
                emitter.writeToOutput(")");
                emitter.recordSourceMappingEnd(this.statement);
                emitter.emitJavascript(this.body, TokenID.Catch, false);
                                                  ~~~~~~~
!!! error TS2304: Cannot find name 'TokenID'.
                emitter.recordSourceMappingEnd(this);
                emitter.emitParensAndCommentsInPlace(this, false);
            }
    
            public addToControlFlow(context: ControlFlowContext) {
                                             ~~~~~~~~~~~~~~~~~~
!!! error TS2304: Cannot find name 'ControlFlowContext'.
                if (this.param) {
                    context.addContent(this.param);
                    var bodBlock = new BasicBlock();
                                       ~~~~~~~~~~
!!! error TS2304: Cannot find name 'BasicBlock'.
                    context.current.addSuccessor(bodBlock);
                    context.current = bodBlock;
                }
                if (this.body) {
                    context.walk(this.body, this);
                }
                context.noContinuation = false;
                context.walker.options.goChildren = false;
            }
    
            public typeCheck(typeFlow: TypeFlow) {
                                       ~~~~~~~~
!!! error TS2304: Cannot find name 'TypeFlow'.
                var prevScope = typeFlow.scope;
                typeFlow.scope = this.containedScope;
                this.param = <VarDecl>typeFlow.typeCheck(this.param);
                var exceptVar = new ValueLocation();
                                    ~~~~~~~~~~~~~
!!! error TS2304: Cannot find name 'ValueLocation'.
                var varSym = new VariableSymbol((<VarDecl>this.param).id.text,
                                 ~~~~~~~~~~~~~~
!!! error TS2304: Cannot find name 'VariableSymbol'.
                                              this.param.minChar,
                                              typeFlow.checker.locationInfo.unitIndex,
                                              exceptVar);
                exceptVar.symbol = varSym;
                exceptVar.typeLink = new TypeLink();
                                         ~~~~~~~~
!!! error TS2304: Cannot find name 'TypeLink'.
                // var type for now (add syntax for type annotation)
                exceptVar.typeLink.type = typeFlow.anyType;
                var thisFnc = typeFlow.thisFnc;
                if (thisFnc && thisFnc.type) {
                    exceptVar.symbol.container = thisFnc.type.symbol;
                }
                else {
                    exceptVar.symbol.container = null;
                }
                this.param.sym = exceptVar.symbol;
                typeFlow.scope.enter(exceptVar.symbol.container, this.param, exceptVar.symbol,
                                     typeFlow.checker.errorReporter, false, false, false);
                this.body = typeFlow.typeCheck(this.body);
    
                // 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()) {
                    var table = typeFlow.scope.getTable();
                    (<any>table).secondaryTable.table[exceptVar.symbol.name] = undefined;
                }
                this.type = typeFlow.voidType;
                typeFlow.scope = prevScope;
                return this;
            }
        }
    
        export class Finally extends Statement {
            constructor (public body: AST) {
                super(NodeType.Finally);
                      ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
            }
    
            public emit(emitter: Emitter, tokenId: TokenID, startLine: boolean) {
                                 ~~~~~~~
!!! error TS2304: Cannot find name 'Emitter'.
                                                   ~~~~~~~
!!! error TS2304: Cannot find name 'TokenID'.
                emitter.emitParensAndCommentsInPlace(this, true);
                emitter.recordSourceMappingStart(this);
                emitter.writeToOutput("finally");
                emitter.emitJavascript(this.body, TokenID.Finally, false);
                                                  ~~~~~~~
!!! error TS2304: Cannot find name 'TokenID'.
                emitter.recordSourceMappingEnd(this);
                emitter.emitParensAndCommentsInPlace(this, false);
            }
    
            public addToControlFlow(context: ControlFlowContext) {
                                             ~~~~~~~~~~~~~~~~~~
!!! error TS2304: Cannot find name 'ControlFlowContext'.
                if (this.body) {
                    context.walk(this.body, this);
                }
                context.walker.options.goChildren = false;
                context.noContinuation = false;
            }
    
            public typeCheck(typeFlow: TypeFlow) {
                                       ~~~~~~~~
!!! error TS2304: Cannot find name 'TypeFlow'.
                this.body = typeFlow.typeCheck(this.body);
                return this;
            }
        }
    
        export class Comment extends AST {
    
            public text: string[] = null;
    
            constructor (public content: string, public isBlockComment: boolean, public endsLine) {
                super(NodeType.Comment);
                      ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
            }
    
            public getText(): string[] {
                if (this.text == null) {
                    if (this.isBlockComment) {
                        this.text = this.content.split("\n");
                        for (var i = 0; i < this.text.length; i++) {
                            this.text[i] = this.text[i].replace(/^\s+|\s+$/g, '');
                        }
                    }
                    else {
                        this.text = [(this.content.replace(/^\s+|\s+$/g, ''))];
                    }
                }
    
                return this.text;
            }
        }
    
        export class DebuggerStatement extends Statement {
            constructor () {
                super(NodeType.Debugger);
                      ~~~~~~~~
!!! error TS2304: Cannot find name 'NodeType'.
            }
    
            public emit(emitter: Emitter, tokenId: TokenID, startLine: boolean) {
                                 ~~~~~~~
!!! error TS2304: Cannot find name 'Emitter'.
                                                   ~~~~~~~
!!! error TS2304: Cannot find name 'TokenID'.
                emitter.emitParensAndCommentsInPlace(this, true);
                emitter.recordSourceMappingStart(this);
                emitter.writeLineToOutput("debugger;");
                emitter.recordSourceMappingEnd(this);
                emitter.emitParensAndCommentsInPlace(this, false);
            }
        }
    }