From 03a2d0197bebac728f22f597e0f5c78a12331c48 Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Mon, 1 Dec 2014 23:17:34 -0800 Subject: [PATCH] Make 'CatchClause' have-a block, instead of be-a block. --- src/compiler/binder.ts | 10 ++--- src/compiler/checker.ts | 16 +++---- src/compiler/emitter.ts | 18 ++++---- src/compiler/parser.ts | 45 +++++++++---------- src/compiler/types.ts | 12 +++-- src/services/breakpoints.ts | 6 ++- src/services/formatting.ts | 6 +-- src/services/formatting/rules.ts | 5 +-- src/services/outliningElementsCollector.ts | 4 +- src/services/services.ts | 14 +++--- src/services/smartIndenter.ts | 4 +- .../sourceMapValidationStatements.js.map | 2 +- ...ourceMapValidationStatements.sourcemap.txt | 20 ++++----- .../sourceMapValidationTryCatchFinally.js.map | 2 +- ...MapValidationTryCatchFinally.sourcemap.txt | 22 ++++----- 15 files changed, 94 insertions(+), 92 deletions(-) diff --git a/src/compiler/binder.ts b/src/compiler/binder.ts index 469a794d13d..a45561e7ed6 100644 --- a/src/compiler/binder.ts +++ b/src/compiler/binder.ts @@ -348,8 +348,8 @@ module ts { bindChildren(node, symbolKind, isBlockScopeContainer); } - function bindCatchVariableDeclaration(node: CatchBlock) { - var symbol = createSymbol(SymbolFlags.FunctionScopedVariable, node.variable.text || "__missing"); + function bindCatchVariableDeclaration(node: CatchClause) { + var symbol = createSymbol(SymbolFlags.FunctionScopedVariable, node.name.text || "__missing"); addDeclarationToSymbol(symbol, node, SymbolFlags.FunctionScopedVariable); var saveParent = parent; var savedBlockScopeContainer = blockScopeContainer; @@ -444,8 +444,8 @@ module ts { case SyntaxKind.ArrowFunction: bindAnonymousDeclaration(node, SymbolFlags.Function, "__function", /*isBlockScopeContainer*/ true); break; - case SyntaxKind.CatchBlock: - bindCatchVariableDeclaration(node); + case SyntaxKind.CatchClause: + bindCatchVariableDeclaration(node); break; case SyntaxKind.ClassDeclaration: bindDeclaration(node, SymbolFlags.Class, SymbolFlags.ClassExcludes, /*isBlockScopeContainer*/ false); @@ -478,7 +478,7 @@ module ts { case SyntaxKind.Block: case SyntaxKind.TryBlock: - case SyntaxKind.CatchBlock: + case SyntaxKind.CatchClause: case SyntaxKind.FinallyBlock: case SyntaxKind.ForStatement: case SyntaxKind.ForInStatement: diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 64ed5f25bca..c6c58347b19 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -415,8 +415,8 @@ module ts { break loop; } break; - case SyntaxKind.CatchBlock: - var id = (location).variable; + case SyntaxKind.CatchClause: + var id = (location).name; if (name === id.text) { result = location.symbol; break loop; @@ -1753,7 +1753,7 @@ module ts { } // Handle catch clause variables var declaration = symbol.valueDeclaration; - if (declaration.kind === SyntaxKind.CatchBlock) { + if (declaration.kind === SyntaxKind.CatchClause) { return links.type = anyType; } // Handle variable, parameter or property @@ -4375,7 +4375,7 @@ module ts { case SyntaxKind.ThrowStatement: case SyntaxKind.TryStatement: case SyntaxKind.TryBlock: - case SyntaxKind.CatchBlock: + case SyntaxKind.CatchClause: case SyntaxKind.FinallyBlock: return forEachChild(node, isAssignedIn); } @@ -7767,7 +7767,7 @@ module ts { function checkTryStatement(node: TryStatement) { checkBlock(node.tryBlock); - if (node.catchBlock) checkBlock(node.catchBlock); + if (node.catchClause) checkBlock(node.catchClause.block); if (node.finallyBlock) checkBlock(node.finallyBlock); } @@ -8605,7 +8605,7 @@ module ts { case SyntaxKind.ThrowStatement: case SyntaxKind.TryStatement: case SyntaxKind.TryBlock: - case SyntaxKind.CatchBlock: + case SyntaxKind.CatchClause: case SyntaxKind.FinallyBlock: case SyntaxKind.VariableDeclaration: case SyntaxKind.ClassDeclaration: @@ -8767,8 +8767,8 @@ module ts { copySymbol(location.symbol, meaning); } break; - case SyntaxKind.CatchBlock: - if ((location).variable.text) { + case SyntaxKind.CatchClause: + if ((location).name.text) { copySymbol(location.symbol, meaning); } break; diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index b065287b7d2..53914ac4c62 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -2142,8 +2142,8 @@ module ts { return false; case SyntaxKind.LabeledStatement: return (node.parent).label === node; - case SyntaxKind.CatchBlock: - return (node.parent).variable === node; + case SyntaxKind.CatchClause: + return (node.parent).name === node; } } @@ -2650,7 +2650,7 @@ module ts { function emitTryStatement(node: TryStatement) { write("try "); emit(node.tryBlock); - emit(node.catchBlock); + emit(node.catchClause); if (node.finallyBlock) { writeLine(); write("finally "); @@ -2658,15 +2658,15 @@ module ts { } } - function emitCatchBlock(node: CatchBlock) { + function emitCatchClause(node: CatchClause) { writeLine(); var endPos = emitToken(SyntaxKind.CatchKeyword, node.pos); write(" "); emitToken(SyntaxKind.OpenParenToken, endPos); - emit(node.variable); - emitToken(SyntaxKind.CloseParenToken, node.variable.end); + emit(node.name); + emitToken(SyntaxKind.CloseParenToken, node.name.end); write(" "); - emitBlock(node); + emitBlock(node.block); } function emitDebuggerStatement(node: Node) { @@ -3599,8 +3599,8 @@ module ts { return emitThrowStatement(node); case SyntaxKind.TryStatement: return emitTryStatement(node); - case SyntaxKind.CatchBlock: - return emitCatchBlock(node); + case SyntaxKind.CatchClause: + return emitCatchClause(node); case SyntaxKind.DebuggerStatement: return emitDebuggerStatement(node); case SyntaxKind.VariableDeclaration: diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index a45de6309d4..553d51b1bd2 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -364,11 +364,12 @@ module ts { return child((node).expression); case SyntaxKind.TryStatement: return child((node).tryBlock) || - child((node).catchBlock) || + child((node).catchClause) || child((node).finallyBlock); - case SyntaxKind.CatchBlock: - return child((node).variable) || - children((node).statements); + case SyntaxKind.CatchClause: + return child((node).name) || + child((node).type) || + child((node).block); case SyntaxKind.VariableDeclaration: return children(node.modifiers) || child((node).name) || @@ -445,7 +446,7 @@ module ts { case SyntaxKind.LabeledStatement: case SyntaxKind.TryStatement: case SyntaxKind.TryBlock: - case SyntaxKind.CatchBlock: + case SyntaxKind.CatchClause: case SyntaxKind.FinallyBlock: return forEachChild(node, traverse); } @@ -733,8 +734,8 @@ module ts { return (parent).name === name; } - if (parent.kind === SyntaxKind.CatchBlock) { - return (parent).variable === name; + if (parent.kind === SyntaxKind.CatchClause) { + return (parent).name === name; } return false; @@ -3439,11 +3440,11 @@ module ts { function parseTryStatement(): TryStatement { var node = createNode(SyntaxKind.TryStatement); node.tryBlock = parseTokenAndBlock(SyntaxKind.TryKeyword); - node.catchBlock = token === SyntaxKind.CatchKeyword ? parseCatchBlock() : undefined; + node.catchClause = token === SyntaxKind.CatchKeyword ? parseCatchClause() : undefined; // If we don't have a catch clause, then we must have a finally clause. Try to parse // one out no matter what. - node.finallyBlock = !node.catchBlock || token === SyntaxKind.FinallyKeyword + node.finallyBlock = !node.catchClause || token === SyntaxKind.FinallyKeyword ? parseTokenAndBlock(SyntaxKind.FinallyKeyword) : undefined; return finishNode(node); @@ -3459,19 +3460,15 @@ module ts { return result; } - function parseCatchBlock(): CatchBlock { - var pos = getNodePos(); + function parseCatchClause(): CatchClause { + var result = createNode(SyntaxKind.CatchClause); parseExpected(SyntaxKind.CatchKeyword); parseExpected(SyntaxKind.OpenParenToken); - var variable = parseIdentifier(); - var typeAnnotation = parseTypeAnnotation(); + result.name = parseIdentifier(); + result.type = parseTypeAnnotation(); parseExpected(SyntaxKind.CloseParenToken); - var result = parseBlock(SyntaxKind.CatchBlock, /* ignoreMissingOpenBrace */ false, /*checkForStrictMode*/ false); - result.pos = pos; - result.variable = variable; - result.type = typeAnnotation; - - return result; + result.block = parseBlock(SyntaxKind.Block, /* ignoreMissingOpenBrace */ false, /*checkForStrictMode*/ false); + return finishNode(result); } function parseDebuggerStatement(): Statement { @@ -4325,7 +4322,7 @@ module ts { case SyntaxKind.EnumDeclaration: return checkEnumDeclaration(node); case SyntaxKind.BinaryExpression: return checkBinaryExpression(node); - case SyntaxKind.CatchBlock: return checkCatchBlock(node); + case SyntaxKind.CatchClause: return checkCatchClause(node); case SyntaxKind.ClassDeclaration: return checkClassDeclaration(node); case SyntaxKind.ComputedPropertyName: return checkComputedPropertyName(node); case SyntaxKind.Constructor: return checkConstructor(node); @@ -4583,15 +4580,15 @@ module ts { } } - function checkCatchBlock(node: CatchBlock) { + function checkCatchClause(node: CatchClause) { if (node.type) { - var colonStart = skipTrivia(sourceText, node.variable.end); + var colonStart = skipTrivia(sourceText, node.name.end); return grammarErrorAtPos(colonStart, ":".length, Diagnostics.Catch_clause_parameter_cannot_have_a_type_annotation); } - if (node.parserContextFlags & ParserContextFlags.StrictMode && isEvalOrArgumentsIdentifier(node.variable)) { + if (node.parserContextFlags & ParserContextFlags.StrictMode && isEvalOrArgumentsIdentifier(node.name)) { // It is a SyntaxError if a TryStatement with a Catch occurs within strict code and the Identifier of the // Catch production is eval or arguments - return reportInvalidUseInStrictMode(node.variable); + return reportInvalidUseInStrictMode(node.name); } } diff --git a/src/compiler/types.ts b/src/compiler/types.ts index a042ceae14d..d8cbf204ebc 100644 --- a/src/compiler/types.ts +++ b/src/compiler/types.ts @@ -208,7 +208,6 @@ module ts { ThrowStatement, TryStatement, TryBlock, - CatchBlock, FinallyBlock, DebuggerStatement, VariableDeclaration, @@ -222,12 +221,16 @@ module ts { ModuleBlock, ImportDeclaration, ExportAssignment, + // Module references ExternalModuleReference, + // Clauses CaseClause, DefaultClause, HeritageClause, + CatchClause, + // Property assignments PropertyAssignment, ShorthandPropertyAssignment, @@ -693,13 +696,14 @@ module ts { export interface TryStatement extends Statement { tryBlock: Block; - catchBlock?: CatchBlock; + catchClause?: CatchClause; finallyBlock?: Block; } - export interface CatchBlock extends Block, Declaration { - variable: Identifier; + export interface CatchClause extends Declaration { + name: Identifier; type?: TypeNode; + block: Block; } export interface ModuleElement extends Node { diff --git a/src/services/breakpoints.ts b/src/services/breakpoints.ts index eb9c88088aa..a67a89dd82f 100644 --- a/src/services/breakpoints.ts +++ b/src/services/breakpoints.ts @@ -106,11 +106,13 @@ module ts.BreakpointResolver { case SyntaxKind.Block: case SyntaxKind.TryBlock: - case SyntaxKind.CatchBlock: case SyntaxKind.FinallyBlock: case SyntaxKind.ModuleBlock: return spanInBlock(node); + case SyntaxKind.CatchClause: + return spanInBlock((node).block); + case SyntaxKind.ExpressionStatement: // span on the expression return textSpan((node).expression); @@ -420,7 +422,7 @@ module ts.BreakpointResolver { case SyntaxKind.Block: case SyntaxKind.TryBlock: - case SyntaxKind.CatchBlock: + case SyntaxKind.CatchClause: case SyntaxKind.FinallyBlock: return spanInNode((node.parent).statements[(node.parent).statements.length - 1]);; diff --git a/src/services/formatting.ts b/src/services/formatting.ts index 741b853b7ba..3322ea1e65b 100644 --- a/src/services/formatting.ts +++ b/src/services/formatting.ts @@ -155,10 +155,11 @@ module ts.formatting { case SyntaxKind.SourceFile: case SyntaxKind.Block: case SyntaxKind.TryBlock: - case SyntaxKind.CatchBlock: case SyntaxKind.FinallyBlock: case SyntaxKind.ModuleBlock: - return rangeContainsRange((parent).statements, node) + return rangeContainsRange((parent).statements, node); + case SyntaxKind.CatchClause: + return rangeContainsRange((parent).block.statements, node); } return false; @@ -898,7 +899,6 @@ module ts.formatting { case SyntaxKind.Block: case SyntaxKind.FunctionBlock: case SyntaxKind.TryBlock: - case SyntaxKind.CatchBlock: case SyntaxKind.FinallyBlock: case SyntaxKind.ModuleBlock: return true; diff --git a/src/services/formatting/rules.ts b/src/services/formatting/rules.ts index 7de7baee6ca..2723b50af7b 100644 --- a/src/services/formatting/rules.ts +++ b/src/services/formatting/rules.ts @@ -525,7 +525,6 @@ module ts.formatting { case SyntaxKind.SwitchStatement: case SyntaxKind.ObjectLiteralExpression: case SyntaxKind.TryBlock: - case SyntaxKind.CatchBlock: case SyntaxKind.FinallyBlock: case SyntaxKind.FunctionBlock: case SyntaxKind.ModuleBlock: @@ -581,7 +580,7 @@ module ts.formatting { case SyntaxKind.EnumDeclaration: case SyntaxKind.Block: case SyntaxKind.TryBlock: - case SyntaxKind.CatchBlock: + case SyntaxKind.CatchClause: case SyntaxKind.FinallyBlock: case SyntaxKind.FunctionBlock: case SyntaxKind.ModuleBlock: @@ -603,7 +602,7 @@ module ts.formatting { case SyntaxKind.WithStatement: // TODO // case SyntaxKind.ElseClause: - case SyntaxKind.CatchBlock: + case SyntaxKind.CatchClause: case SyntaxKind.FinallyBlock: return true; diff --git a/src/services/outliningElementsCollector.ts b/src/services/outliningElementsCollector.ts index 7f071e5c224..68f30bee781 100644 --- a/src/services/outliningElementsCollector.ts +++ b/src/services/outliningElementsCollector.ts @@ -79,7 +79,8 @@ module ts { parent.kind === SyntaxKind.ForStatement || parent.kind === SyntaxKind.IfStatement || parent.kind === SyntaxKind.WhileStatement || - parent.kind === SyntaxKind.WithStatement) { + parent.kind === SyntaxKind.WithStatement || + parent.kind === SyntaxKind.CatchClause) { addOutliningSpan(parent, openBrace, closeBrace, autoCollapse(n)); } @@ -100,7 +101,6 @@ module ts { case SyntaxKind.FunctionBlock: case SyntaxKind.ModuleBlock: case SyntaxKind.TryBlock: - case SyntaxKind.CatchBlock: case SyntaxKind.FinallyBlock: var openBrace = findChildOfKind(n, SyntaxKind.OpenBraceToken, sourceFile); var closeBrace = findChildOfKind(n, SyntaxKind.CloseBraceToken, sourceFile); diff --git a/src/services/services.ts b/src/services/services.ts index 7e9e84cd7af..b20067887b3 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -2576,7 +2576,7 @@ module ts { isFunction(containingNodeKind); case SyntaxKind.OpenParenToken: - return containingNodeKind === SyntaxKind.CatchBlock || + return containingNodeKind === SyntaxKind.CatchClause || isFunction(containingNodeKind); case SyntaxKind.OpenBraceToken: @@ -3567,8 +3567,8 @@ module ts { else if (node.kind === SyntaxKind.TryStatement) { var tryStatement = node; - if (tryStatement.catchBlock) { - aggregate(tryStatement.catchBlock); + if (tryStatement.catchClause) { + aggregate(tryStatement.catchClause); } else { // Exceptions thrown within a try block lacking a catch clause @@ -3607,7 +3607,7 @@ module ts { if (parent.kind === SyntaxKind.TryStatement) { var tryStatement = parent; - if (tryStatement.tryBlock === child && tryStatement.catchBlock) { + if (tryStatement.tryBlock === child && tryStatement.catchClause) { return child; } } @@ -3623,8 +3623,8 @@ module ts { pushKeywordIf(keywords, tryStatement.getFirstToken(), SyntaxKind.TryKeyword); - if (tryStatement.catchBlock) { - pushKeywordIf(keywords, tryStatement.catchBlock.getFirstToken(), SyntaxKind.CatchKeyword); + if (tryStatement.catchClause) { + pushKeywordIf(keywords, tryStatement.catchClause.getFirstToken(), SyntaxKind.CatchKeyword); } if (tryStatement.finallyBlock) { @@ -4738,7 +4738,7 @@ module ts { case SyntaxKind.FunctionDeclaration: case SyntaxKind.FunctionExpression: case SyntaxKind.ArrowFunction: - case SyntaxKind.CatchBlock: + case SyntaxKind.CatchClause: return SemanticMeaning.Value; case SyntaxKind.TypeParameter: diff --git a/src/services/smartIndenter.ts b/src/services/smartIndenter.ts index 4e32522040e..82226449b96 100644 --- a/src/services/smartIndenter.ts +++ b/src/services/smartIndenter.ts @@ -328,7 +328,6 @@ module ts.formatting { case SyntaxKind.Block: case SyntaxKind.FunctionBlock: case SyntaxKind.TryBlock: - case SyntaxKind.CatchBlock: case SyntaxKind.FinallyBlock: case SyntaxKind.ModuleBlock: case SyntaxKind.ObjectLiteralExpression: @@ -404,12 +403,13 @@ module ts.formatting { case SyntaxKind.EnumDeclaration: case SyntaxKind.ObjectLiteralExpression: case SyntaxKind.Block: - case SyntaxKind.CatchBlock: case SyntaxKind.FinallyBlock: case SyntaxKind.FunctionBlock: case SyntaxKind.ModuleBlock: case SyntaxKind.SwitchStatement: return nodeEndsWith(n, SyntaxKind.CloseBraceToken, sourceFile); + case SyntaxKind.CatchClause: + return isCompletedNode((n).block, sourceFile); case SyntaxKind.ParenthesizedExpression: case SyntaxKind.CallSignature: case SyntaxKind.CallExpression: diff --git a/tests/baselines/reference/sourceMapValidationStatements.js.map b/tests/baselines/reference/sourceMapValidationStatements.js.map index 02b5c0bb806..8eb99944914 100644 --- a/tests/baselines/reference/sourceMapValidationStatements.js.map +++ b/tests/baselines/reference/sourceMapValidationStatements.js.map @@ -1,2 +1,2 @@ //// [sourceMapValidationStatements.js.map] -{"version":3,"file":"sourceMapValidationStatements.js","sourceRoot":"","sources":["sourceMapValidationStatements.ts"],"names":["f"],"mappings":"AAAA,SAAS,CAAC;IACNA,IAAIA,CAACA,CAACA;IACNA,IAAIA,CAACA,GAAGA,CAACA,CAACA;IACVA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,EAAEA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QAC1BA,CAACA,IAAIA,CAACA,CAACA;QACPA,CAACA,IAAIA,CAACA,CAACA;IACXA,CAACA;IACDA,EAAEA,CAACA,CAACA,CAACA,GAAGA,EAAEA,CAACA,CAACA,CAACA;QACTA,CAACA,IAAIA,CAACA,CAACA;IACXA,CAACA;IAACA,IAAIA,CAACA,CAACA;QACJA,CAACA,IAAIA,EAAEA,CAACA;QACRA,CAACA,EAAEA,CAACA;IACRA,CAACA;IACDA,IAAIA,CAACA,GAAGA;QACJA,CAACA;QACDA,CAACA;QACDA,CAACA;KACJA,CAACA;IACFA,IAAIA,GAAGA,GAAGA;QACNA,CAACA,EAAEA,CAACA;QACJA,CAACA,EAAEA,OAAOA;KACbA,CAACA;IACFA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;QACdA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,CAACA,CAACA,CAACA;QACbA,IAAIA,CAACA,GAAGA,EAAEA,CAACA;IACfA,CAACA;IACDA,IAAAA,CAACA;QACGA,GAAGA,CAACA,CAACA,GAAGA,MAAMA,CAACA;IACnBA,CAAEA;IAAAA,KAAKA,CAACA,CAACA,CAACA,CAACA,CAATA,CAACA;QACCA,EAAEA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,EAAEA,CAACA,CAACA,CAACA;YACbA,GAAGA,CAACA,CAACA,GAAGA,EAAEA,CAACA;QACfA,CAACA;QAACA,IAAIA,CAACA,CAACA;YACJA,GAAGA,CAACA,CAACA,GAAGA,KAAKA,CAACA;QAClBA,CAACA;IACLA,CAACA;IACDA,IAAAA,CAACA;QACGA,MAAMA,IAAIA,KAAKA,EAAEA,CAACA;IACtBA,CAAEA;IAAAA,KAAKA,CAACA,CAACA,EAAEA,CAACA,CAAVA,CAACA;QACCA,IAAIA,CAACA,GAAGA,EAAEA,CAACA;IACfA,CAACA;YAACA,CAACA;QACCA,CAACA,GAAGA,EAAEA,CAACA;IACXA,CAACA;IACDA,MAAMA,GAAGA,EAAEA,CAACA;QACRA,CAACA,GAAGA,CAACA,CAACA;QACNA,CAACA,GAAGA,EAAEA,CAACA;IACXA,CAACA;IACDA,MAAMA,CAACA,CAACA,GAAGA,CAACA,CAACA,CAACA,CAACA,CAACA;QACZA,KAAKA,CAACA,EAAEA,CAACA;YACLA,CAACA,EAAEA,CAACA;YACJA,KAAKA,CAACA;QAEVA,CAACA;QACDA,KAAKA,CAACA,EAAEA,CAACA;YACLA,CAACA,EAAEA,CAACA;YACJA,KAAKA,CAACA;QAEVA,CAACA;QACDA,SAASA,CAACA;YACNA,CAACA,IAAIA,CAACA,CAACA;YACPA,CAACA,GAAGA,EAAEA,CAACA;YACPA,KAAKA,CAACA;QAEVA,CAACA;IACLA,CAACA;IACDA,OAAOA,CAACA,GAAGA,EAAEA,EAAEA,CAACA;QACZA,CAACA,EAAEA,CAACA;IACRA,CAACA;IACDA,GAAGA,CAACA;QACAA,CAACA,EAAEA,CAACA;IACRA,CAACA,QAAQA,CAACA,GAAGA,CAACA,EAACA;IACfA,CAACA,GAAGA,CAACA,CAACA;IACNA,IAAIA,CAACA,GAAGA,CAACA,CAACA,IAAIA,CAACA,CAACA,GAAGA,CAACA,GAAGA,CAACA,GAAGA,CAACA,GAAGA,CAACA,CAACA;IACjCA,CAACA,CAACA,IAAIA,CAACA,CAACA,GAAGA,CAACA,GAAGA,CAACA,GAAGA,CAACA,GAAGA,CAACA,CAACA;IACzBA,CAACA,KAAKA,CAACA,CAACA;IACRA,CAACA,GAAGA,CAACA,GAAGA,EAAEA,CAACA;IACXA,IAAIA,CAACA,GAAGA,CAACA,CAACA;IACVA,MAAMA,CAACA;AACXA,CAACA;AACD,IAAI,CAAC,GAAG;IACJ,IAAI,CAAC,GAAG,EAAE,CAAC;IACX,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACd,CAAC,CAAC;AACF,CAAC,EAAE,CAAC"} \ No newline at end of file +{"version":3,"file":"sourceMapValidationStatements.js","sourceRoot":"","sources":["sourceMapValidationStatements.ts"],"names":["f"],"mappings":"AAAA,SAAS,CAAC;IACNA,IAAIA,CAACA,CAACA;IACNA,IAAIA,CAACA,GAAGA,CAACA,CAACA;IACVA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,CAACA,EAAEA,CAACA,GAAGA,EAAEA,EAAEA,CAACA,EAAEA,EAAEA,CAACA;QAC1BA,CAACA,IAAIA,CAACA,CAACA;QACPA,CAACA,IAAIA,CAACA,CAACA;IACXA,CAACA;IACDA,EAAEA,CAACA,CAACA,CAACA,GAAGA,EAAEA,CAACA,CAACA,CAACA;QACTA,CAACA,IAAIA,CAACA,CAACA;IACXA,CAACA;IAACA,IAAIA,CAACA,CAACA;QACJA,CAACA,IAAIA,EAAEA,CAACA;QACRA,CAACA,EAAEA,CAACA;IACRA,CAACA;IACDA,IAAIA,CAACA,GAAGA;QACJA,CAACA;QACDA,CAACA;QACDA,CAACA;KACJA,CAACA;IACFA,IAAIA,GAAGA,GAAGA;QACNA,CAACA,EAAEA,CAACA;QACJA,CAACA,EAAEA,OAAOA;KACbA,CAACA;IACFA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,IAAIA,CAACA,CAACA,CAACA,CAACA;QACdA,GAAGA,CAACA,CAACA,GAAGA,CAACA,CAACA,CAACA,CAACA,CAACA;QACbA,IAAIA,CAACA,GAAGA,EAAEA,CAACA;IACfA,CAACA;IACDA,IAAAA,CAACA;QACGA,GAAGA,CAACA,CAACA,GAAGA,MAAMA,CAACA;IACnBA,CAAEA;IAAAA,KAAKA,CAACA,CAACA,CAACA,CAACA,CAACA,CAACA;QACTA,EAAEA,CAACA,CAACA,GAAGA,CAACA,CAACA,GAAGA,EAAEA,CAACA,CAACA,CAACA;YACbA,GAAGA,CAACA,CAACA,GAAGA,EAAEA,CAACA;QACfA,CAACA;QAACA,IAAIA,CAACA,CAACA;YACJA,GAAGA,CAACA,CAACA,GAAGA,KAAKA,CAACA;QAClBA,CAACA;IACLA,CAACA;IACDA,IAAAA,CAACA;QACGA,MAAMA,IAAIA,KAAKA,EAAEA,CAACA;IACtBA,CAAEA;IAAAA,KAAKA,CAACA,CAACA,EAAEA,CAACA,CAACA,CAACA;QACVA,IAAIA,CAACA,GAAGA,EAAEA,CAACA;IACfA,CAACA;YAACA,CAACA;QACCA,CAACA,GAAGA,EAAEA,CAACA;IACXA,CAACA;IACDA,MAAMA,GAAGA,EAAEA,CAACA;QACRA,CAACA,GAAGA,CAACA,CAACA;QACNA,CAACA,GAAGA,EAAEA,CAACA;IACXA,CAACA;IACDA,MAAMA,CAACA,CAACA,GAAGA,CAACA,CAACA,CAACA,CAACA,CAACA;QACZA,KAAKA,CAACA,EAAEA,CAACA;YACLA,CAACA,EAAEA,CAACA;YACJA,KAAKA,CAACA;QAEVA,CAACA;QACDA,KAAKA,CAACA,EAAEA,CAACA;YACLA,CAACA,EAAEA,CAACA;YACJA,KAAKA,CAACA;QAEVA,CAACA;QACDA,SAASA,CAACA;YACNA,CAACA,IAAIA,CAACA,CAACA;YACPA,CAACA,GAAGA,EAAEA,CAACA;YACPA,KAAKA,CAACA;QAEVA,CAACA;IACLA,CAACA;IACDA,OAAOA,CAACA,GAAGA,EAAEA,EAAEA,CAACA;QACZA,CAACA,EAAEA,CAACA;IACRA,CAACA;IACDA,GAAGA,CAACA;QACAA,CAACA,EAAEA,CAACA;IACRA,CAACA,QAAQA,CAACA,GAAGA,CAACA,EAACA;IACfA,CAACA,GAAGA,CAACA,CAACA;IACNA,IAAIA,CAACA,GAAGA,CAACA,CAACA,IAAIA,CAACA,CAACA,GAAGA,CAACA,GAAGA,CAACA,GAAGA,CAACA,GAAGA,CAACA,CAACA;IACjCA,CAACA,CAACA,IAAIA,CAACA,CAACA,GAAGA,CAACA,GAAGA,CAACA,GAAGA,CAACA,GAAGA,CAACA,CAACA;IACzBA,CAACA,KAAKA,CAACA,CAACA;IACRA,CAACA,GAAGA,CAACA,GAAGA,EAAEA,CAACA;IACXA,IAAIA,CAACA,GAAGA,CAACA,CAACA;IACVA,MAAMA,CAACA;AACXA,CAACA;AACD,IAAI,CAAC,GAAG;IACJ,IAAI,CAAC,GAAG,EAAE,CAAC;IACX,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACd,CAAC,CAAC;AACF,CAAC,EAAE,CAAC"} \ No newline at end of file diff --git a/tests/baselines/reference/sourceMapValidationStatements.sourcemap.txt b/tests/baselines/reference/sourceMapValidationStatements.sourcemap.txt index 1a288e3a830..ef7aef275c0 100644 --- a/tests/baselines/reference/sourceMapValidationStatements.sourcemap.txt +++ b/tests/baselines/reference/sourceMapValidationStatements.sourcemap.txt @@ -557,16 +557,16 @@ sourceFile:sourceMapValidationStatements.ts 4 > ( 5 > e 6 > ) -7 > -8 > c +7 > +8 > { 1->Emitted(31, 5) Source(29, 7) + SourceIndex(0) name (f) 2 >Emitted(31, 10) Source(29, 12) + SourceIndex(0) name (f) 3 >Emitted(31, 11) Source(29, 13) + SourceIndex(0) name (f) 4 >Emitted(31, 12) Source(29, 14) + SourceIndex(0) name (f) 5 >Emitted(31, 13) Source(29, 15) + SourceIndex(0) name (f) 6 >Emitted(31, 14) Source(29, 16) + SourceIndex(0) name (f) -7 >Emitted(31, 15) Source(29, 7) + SourceIndex(0) name (f) -8 >Emitted(31, 16) Source(29, 8) + SourceIndex(0) name (f) +7 >Emitted(31, 15) Source(29, 17) + SourceIndex(0) name (f) +8 >Emitted(31, 16) Source(29, 18) + SourceIndex(0) name (f) --- >>> if (obj.z < 10) { 1->^^^^^^^^ @@ -581,7 +581,7 @@ sourceFile:sourceMapValidationStatements.ts 10> ^ 11> ^ 12> ^ -1->atch (e) { +1-> > 2 > if 3 > @@ -759,16 +759,16 @@ sourceFile:sourceMapValidationStatements.ts 4 > ( 5 > e1 6 > ) -7 > -8 > c +7 > +8 > { 1->Emitted(42, 5) Source(38, 7) + SourceIndex(0) name (f) 2 >Emitted(42, 10) Source(38, 12) + SourceIndex(0) name (f) 3 >Emitted(42, 11) Source(38, 13) + SourceIndex(0) name (f) 4 >Emitted(42, 12) Source(38, 14) + SourceIndex(0) name (f) 5 >Emitted(42, 14) Source(38, 16) + SourceIndex(0) name (f) 6 >Emitted(42, 15) Source(38, 17) + SourceIndex(0) name (f) -7 >Emitted(42, 16) Source(38, 7) + SourceIndex(0) name (f) -8 >Emitted(42, 17) Source(38, 8) + SourceIndex(0) name (f) +7 >Emitted(42, 16) Source(38, 18) + SourceIndex(0) name (f) +8 >Emitted(42, 17) Source(38, 19) + SourceIndex(0) name (f) --- >>> var b = e1; 1->^^^^^^^^ @@ -777,7 +777,7 @@ sourceFile:sourceMapValidationStatements.ts 4 > ^^^ 5 > ^^ 6 > ^ -1->atch (e1) { +1-> > 2 > var 3 > b diff --git a/tests/baselines/reference/sourceMapValidationTryCatchFinally.js.map b/tests/baselines/reference/sourceMapValidationTryCatchFinally.js.map index 24b7b84a3d0..89716807538 100644 --- a/tests/baselines/reference/sourceMapValidationTryCatchFinally.js.map +++ b/tests/baselines/reference/sourceMapValidationTryCatchFinally.js.map @@ -1,2 +1,2 @@ //// [sourceMapValidationTryCatchFinally.js.map] -{"version":3,"file":"sourceMapValidationTryCatchFinally.js","sourceRoot":"","sources":["sourceMapValidationTryCatchFinally.ts"],"names":[],"mappings":"AAAA,IAAI,CAAC,GAAG,EAAE,CAAC;AACX,IAAA,CAAC;IACG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACd,CAAE;AAAA,KAAK,CAAC,CAAC,CAAC,CAAC,CAAT,CAAC;IACC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACd,CAAC;QAAC,CAAC;IACC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AACf,CAAC;AACD,IAAA,CAAC;IAEG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACV,MAAM,IAAI,KAAK,EAAE,CAAC;AACtB,CACA;AAAA,KAAK,CAAC,CAAC,CAAC,CAAC,CAAT,CAAC;IAEG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACd,CAAC;QACD,CAAC;IAEG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AACf,CAAC"} \ No newline at end of file +{"version":3,"file":"sourceMapValidationTryCatchFinally.js","sourceRoot":"","sources":["sourceMapValidationTryCatchFinally.ts"],"names":[],"mappings":"AAAA,IAAI,CAAC,GAAG,EAAE,CAAC;AACX,IAAA,CAAC;IACG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACd,CAAE;AAAA,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACT,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACd,CAAC;QAAC,CAAC;IACC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AACf,CAAC;AACD,IAAA,CAAC;IAEG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACV,MAAM,IAAI,KAAK,EAAE,CAAC;AACtB,CACA;AAAA,KAAK,CAAC,CAAC,CAAC,CAAC,CACT,CAAC;IACG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACd,CAAC;QACD,CAAC;IAEG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AACf,CAAC"} \ No newline at end of file diff --git a/tests/baselines/reference/sourceMapValidationTryCatchFinally.sourcemap.txt b/tests/baselines/reference/sourceMapValidationTryCatchFinally.sourcemap.txt index aa0b846ece8..25dee4fbc45 100644 --- a/tests/baselines/reference/sourceMapValidationTryCatchFinally.sourcemap.txt +++ b/tests/baselines/reference/sourceMapValidationTryCatchFinally.sourcemap.txt @@ -91,16 +91,16 @@ sourceFile:sourceMapValidationTryCatchFinally.ts 4 > ( 5 > e 6 > ) -7 > -8 > c +7 > +8 > { 1->Emitted(5, 1) Source(4, 3) + SourceIndex(0) 2 >Emitted(5, 6) Source(4, 8) + SourceIndex(0) 3 >Emitted(5, 7) Source(4, 9) + SourceIndex(0) 4 >Emitted(5, 8) Source(4, 10) + SourceIndex(0) 5 >Emitted(5, 9) Source(4, 11) + SourceIndex(0) 6 >Emitted(5, 10) Source(4, 12) + SourceIndex(0) -7 >Emitted(5, 11) Source(4, 3) + SourceIndex(0) -8 >Emitted(5, 12) Source(4, 4) + SourceIndex(0) +7 >Emitted(5, 11) Source(4, 13) + SourceIndex(0) +8 >Emitted(5, 12) Source(4, 14) + SourceIndex(0) --- >>> x = x - 1; 1->^^^^ @@ -110,7 +110,7 @@ sourceFile:sourceMapValidationTryCatchFinally.ts 5 > ^^^ 6 > ^ 7 > ^ -1->atch (e) { +1-> > 2 > x 3 > = @@ -266,16 +266,17 @@ sourceFile:sourceMapValidationTryCatchFinally.ts 4 > ( 5 > e 6 > ) -7 > -8 > c +7 > + > +8 > { 1->Emitted(15, 1) Source(14, 1) + SourceIndex(0) 2 >Emitted(15, 6) Source(14, 6) + SourceIndex(0) 3 >Emitted(15, 7) Source(14, 7) + SourceIndex(0) 4 >Emitted(15, 8) Source(14, 8) + SourceIndex(0) 5 >Emitted(15, 9) Source(14, 9) + SourceIndex(0) 6 >Emitted(15, 10) Source(14, 10) + SourceIndex(0) -7 >Emitted(15, 11) Source(14, 1) + SourceIndex(0) -8 >Emitted(15, 12) Source(14, 2) + SourceIndex(0) +7 >Emitted(15, 11) Source(15, 1) + SourceIndex(0) +8 >Emitted(15, 12) Source(15, 2) + SourceIndex(0) --- >>> x = x - 1; 1->^^^^ @@ -285,8 +286,7 @@ sourceFile:sourceMapValidationTryCatchFinally.ts 5 > ^^^ 6 > ^ 7 > ^ -1->atch (e) - >{ +1-> > 2 > x 3 > =