From fde2591d6fc16c167895ffe6ab648fddf8487f08 Mon Sep 17 00:00:00 2001 From: Jason Freeman Date: Thu, 24 Jul 2014 12:55:51 -0700 Subject: [PATCH] Add interface LabelledStatementInfo --- src/compiler/parser.ts | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index 763968e763e..3e1f9afe580 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -385,6 +385,14 @@ module ts { CrossingFunctionBoundary } + interface LabelledStatementInfo { + addLabel(label: Identifier): void; + pushCurrentLabelSet(isIterationStatement: boolean): void; + pushFunctionBoundary(): void; + pop(): void; + nodeIsNestedInLabel(label: Identifier, requireIterationStatement: boolean, stopAtFunctionBoundary: boolean): ControlBlockContext; + } + export function createSourceFile(filename: string, sourceText: string, languageVersion: ScriptTarget): SourceFile { var file: SourceFile; var scanner: Scanner; @@ -402,8 +410,7 @@ module ts { var inSwitchStatement = ControlBlockContext.NotNested; var inIterationStatement = ControlBlockContext.NotNested; - var labelledStatementInfo = (() => { - // TODO(jfreeman): Implement a data structure for tracking labels + var labelledStatementInfo: LabelledStatementInfo = (() => { var functionBoundarySentinel: StringSet = {}; var currentLabelSet: StringSet; var labelSetStack: StringSet[];