mirror of
https://github.com/microsoft/TypeScript.git
synced 2025-11-18 17:21:48 +00:00
Fixes various source map emit issues
This commit is contained in:
+66
-13
@@ -257,6 +257,26 @@ const _super = (function (geti, seti) {
|
||||
emitNodeWithNotificationOption(node, emitWithoutNotificationOption);
|
||||
}
|
||||
|
||||
/**
|
||||
* Emits a node with specialized emit flags.
|
||||
*/
|
||||
// TODO(rbuckton): This should be removed once source maps are aligned with the old
|
||||
// emitter and new baselines are taken. This exists solely to
|
||||
// align with the old emitter.
|
||||
function emitSpecialized(node: Node, flags: NodeEmitFlags) {
|
||||
if (node) {
|
||||
const flagsToAdd = flags & ~getNodeEmitFlags(node);
|
||||
if (flagsToAdd) {
|
||||
setNodeEmitFlags(node, flagsToAdd);
|
||||
emit(node);
|
||||
setNodeEmitFlags(node, getNodeEmitFlags(node) & ~flagsToAdd);
|
||||
return;
|
||||
}
|
||||
|
||||
emit(node);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Emits a node without calling onEmitNode.
|
||||
* NOTE: Do not call this method directly.
|
||||
@@ -299,9 +319,9 @@ const _super = (function (geti, seti) {
|
||||
const leadingComments = getLeadingComments(node, shouldSkipLeadingCommentsForNode);
|
||||
const trailingComments = getTrailingComments(node, shouldSkipTrailingCommentsForNode);
|
||||
emitLeadingComments(node, leadingComments);
|
||||
emitStart(node, shouldSkipSourceMapForNode, shouldSkipSourceMapForChildren);
|
||||
emitStart(node, shouldSkipLeadingSourceMapForNode, shouldSkipSourceMapForChildren);
|
||||
emitWorker(node);
|
||||
emitEnd(node, shouldSkipSourceMapForNode, shouldSkipSourceMapForChildren);
|
||||
emitEnd(node, shouldSkipTrailingSourceMapForNode, shouldSkipSourceMapForChildren);
|
||||
emitTrailingComments(node, trailingComments);
|
||||
}
|
||||
}
|
||||
@@ -333,16 +353,30 @@ const _super = (function (geti, seti) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Determines whether to skip source map emit for a node.
|
||||
* Determines whether to skip source map emit for the start position of a node.
|
||||
*
|
||||
* We do not emit source maps for NotEmittedStatement nodes or any node that
|
||||
* has NodeEmitFlags.NoSourceMap.
|
||||
* has NodeEmitFlags.NoLeadingSourceMap.
|
||||
*
|
||||
* @param node A Node.
|
||||
*/
|
||||
function shouldSkipSourceMapForNode(node: Node) {
|
||||
function shouldSkipLeadingSourceMapForNode(node: Node) {
|
||||
return isNotEmittedStatement(node)
|
||||
|| (getNodeEmitFlags(node) & NodeEmitFlags.NoSourceMap) !== 0;
|
||||
|| (getNodeEmitFlags(node) & NodeEmitFlags.NoLeadingSourceMap) !== 0;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Determines whether to skip source map emit for the end position of a node.
|
||||
*
|
||||
* We do not emit source maps for NotEmittedStatement nodes or any node that
|
||||
* has NodeEmitFlags.NoTrailingSourceMap.
|
||||
*
|
||||
* @param node A Node.
|
||||
*/
|
||||
function shouldSkipTrailingSourceMapForNode(node: Node) {
|
||||
return isNotEmittedStatement(node)
|
||||
|| (getNodeEmitFlags(node) & NodeEmitFlags.NoTrailingSourceMap) !== 0;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1448,7 +1482,7 @@ const _super = (function (geti, seti) {
|
||||
emitDecorators(node, node.decorators);
|
||||
emitModifiers(node, node.modifiers);
|
||||
write(node.asteriskToken ? "function* " : "function ");
|
||||
emit(node.name);
|
||||
emitSpecialized(node.name, NodeEmitFlags.NoSourceMap);
|
||||
emitSignatureAndBody(node, emitSignatureHead);
|
||||
}
|
||||
|
||||
@@ -1530,7 +1564,16 @@ const _super = (function (geti, seti) {
|
||||
}
|
||||
|
||||
function emitBlockFunctionBodyAndEndLexicalEnvironment(parentNode: Node, body: Block) {
|
||||
write(" {");
|
||||
// TODO(rbuckton): This should be removed once source maps are aligned with the old
|
||||
// emitter and new baselines are taken. This exists solely to
|
||||
// align with the old emitter.
|
||||
if (getNodeEmitFlags(body) & NodeEmitFlags.SourceMapEmitOpenBraceAsToken) {
|
||||
write(" ");
|
||||
writeToken(SyntaxKind.OpenBraceToken, body.pos);
|
||||
}
|
||||
else {
|
||||
write(" {");
|
||||
}
|
||||
|
||||
const startingLine = writer.getLine();
|
||||
increaseIndent();
|
||||
@@ -1564,7 +1607,7 @@ const _super = (function (geti, seti) {
|
||||
emitDecorators(node, node.decorators);
|
||||
emitModifiers(node, node.modifiers);
|
||||
write("class");
|
||||
emitWithPrefix(" ", node.name);
|
||||
emitSpecializedWithPrefix(" ", node.name, NodeEmitFlags.NoSourceMap);
|
||||
|
||||
const indentedFlag = getNodeEmitFlags(node) & NodeEmitFlags.Indented;
|
||||
if (indentedFlag) {
|
||||
@@ -1663,9 +1706,9 @@ const _super = (function (geti, seti) {
|
||||
}
|
||||
|
||||
function emitCaseBlock(node: CaseBlock) {
|
||||
write("{");
|
||||
writeToken(SyntaxKind.OpenBraceToken, node.pos);
|
||||
emitList(node, node.clauses, ListFormat.CaseBlockClauses);
|
||||
write("}");
|
||||
writeToken(SyntaxKind.CloseBraceToken, node.clauses.end);
|
||||
}
|
||||
|
||||
function emitImportEqualsDeclaration(node: ImportEqualsDeclaration) {
|
||||
@@ -2106,6 +2149,16 @@ const _super = (function (geti, seti) {
|
||||
emitNodeWithPrefix(prefix, node, emit);
|
||||
}
|
||||
|
||||
// TODO(rbuckton): This should be removed once source maps are aligned with the old
|
||||
// emitter and new baselines are taken. This exists solely to
|
||||
// align with the old emitter.
|
||||
function emitSpecializedWithPrefix(prefix: string, node: Node, flags: NodeEmitFlags) {
|
||||
if (node) {
|
||||
write(prefix);
|
||||
emitSpecialized(node, flags);
|
||||
}
|
||||
}
|
||||
|
||||
function emitExpressionWithPrefix(prefix: string, node: Node) {
|
||||
emitNodeWithPrefix(prefix, node, emitExpression);
|
||||
}
|
||||
@@ -2352,9 +2405,9 @@ const _super = (function (geti, seti) {
|
||||
|
||||
function writeTokenNode(node: Node) {
|
||||
if (node) {
|
||||
emitStart(node, shouldSkipSourceMapForNode, shouldSkipSourceMapForChildren);
|
||||
emitStart(node, shouldSkipLeadingSourceMapForNode, shouldSkipSourceMapForChildren);
|
||||
writeTokenText(node.kind);
|
||||
emitEnd(node, shouldSkipSourceMapForNode, shouldSkipSourceMapForChildren);
|
||||
emitEnd(node, shouldSkipTrailingSourceMapForNode, shouldSkipSourceMapForChildren);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -465,7 +465,9 @@ namespace ts {
|
||||
// From ES6 specification:
|
||||
// HasLexicalDeclaration (N) : Determines if the argument identifier has a binding in this environment record that was created using
|
||||
// a lexical declaration such as a LexicalDeclaration or a ClassDeclaration.
|
||||
addInitializedPropertyStatements(statements, node, staticProperties, name);
|
||||
if (staticProperties.length) {
|
||||
addInitializedPropertyStatements(statements, node, staticProperties, getLocalName(node, /*noSourceMaps*/ true));
|
||||
}
|
||||
|
||||
// Write any decorators of the node.
|
||||
addClassElementDecorationStatements(statements, node, /*isStatic*/ false);
|
||||
@@ -2541,7 +2543,7 @@ namespace ts {
|
||||
|
||||
currentNamespaceContainerName = savedCurrentNamespaceContainerName;
|
||||
currentNamespace = savedCurrentNamespace;
|
||||
return createBlock(
|
||||
const block = createBlock(
|
||||
createNodeArray(
|
||||
statements,
|
||||
/*location*/ statementsLocation
|
||||
@@ -2549,6 +2551,15 @@ namespace ts {
|
||||
/*location*/ blockLocation,
|
||||
/*multiLine*/ true
|
||||
);
|
||||
|
||||
// TODO(rbuckton): This should be removed once source maps are aligned with the old
|
||||
// emitter and new baselines are taken. This exists solely to
|
||||
// align with the old emitter.
|
||||
if (body.kind === SyntaxKind.ModuleBlock) {
|
||||
setNodeEmitFlags(block, NodeEmitFlags.SourceMapEmitOpenBraceAsToken);
|
||||
}
|
||||
|
||||
return block;
|
||||
}
|
||||
|
||||
function getInnerMostModuleDeclarationFromDottedModule(moduleDeclaration: ModuleDeclaration): ModuleDeclaration {
|
||||
|
||||
+16
-8
@@ -2873,15 +2873,23 @@ namespace ts {
|
||||
AdviseOnEmitNode = 1 << 7, // The printer should invoke the onEmitNode callback when printing this node.
|
||||
NoSubstitution = 1 << 8, // Disables further substitution of an expression.
|
||||
CapturesThis = 1 << 9, // The function captures a lexical `this`
|
||||
NoSourceMap = 1 << 10, // Do not emit a source map location for this node.
|
||||
NoNestedSourceMaps = 1 << 11, // Do not emit source map locations for children of this node.
|
||||
NoTokenSourceMaps = 1 << 12, // Do not emit source map locations for tokens of this node.
|
||||
NoLeadingComments = 1 << 13, // Do not emit leading comments for this node.
|
||||
NoTrailingComments = 1 << 14, // Do not emit trailing comments for this node.
|
||||
NoLeadingSourceMap = 1 << 10, // Do not emit a leading source map location for this node.
|
||||
NoTrailingSourceMap = 1 << 11, // Do not emit a trailing source map location for this node.
|
||||
NoSourceMap = NoLeadingSourceMap | NoTrailingSourceMap, // Do not emit a source map location for this node.
|
||||
NoNestedSourceMaps = 1 << 12, // Do not emit source map locations for children of this node.
|
||||
NoTokenSourceMaps = 1 << 13, // Do not emit source map locations for tokens of this node.
|
||||
NoLeadingComments = 1 << 14, // Do not emit leading comments for this node.
|
||||
NoTrailingComments = 1 << 15, // Do not emit trailing comments for this node.
|
||||
NoComments = NoLeadingComments | NoTrailingComments, // Do not emit comments for this node.
|
||||
ExportName = 1 << 15, // Ensure an export prefix is added for an identifier that points to an exported declaration with a local name (see SymbolFlags.ExportHasLocal).
|
||||
LocalName = 1 << 16, // Ensure an export prefix is not added for an identifier that points to an exported declaration.
|
||||
Indented = 1 << 17, // Adds an explicit extra indentation level for class and function bodies when printing (used to match old emitter).
|
||||
ExportName = 1 << 16, // Ensure an export prefix is added for an identifier that points to an exported declaration with a local name (see SymbolFlags.ExportHasLocal).
|
||||
LocalName = 1 << 17, // Ensure an export prefix is not added for an identifier that points to an exported declaration.
|
||||
Indented = 1 << 18, // Adds an explicit extra indentation level for class and function bodies when printing (used to match old emitter).
|
||||
|
||||
// SourceMap Specialization.
|
||||
// TODO(rbuckton): This should be removed once source maps are aligned with the old
|
||||
// emitter and new baselines are taken. This exists solely to
|
||||
// align with the old emitter.
|
||||
SourceMapEmitOpenBraceAsToken = 1 << 19,
|
||||
}
|
||||
|
||||
/** Additional context provided to `visitEachChild` */
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
//// [ES5For-of8.js.map]
|
||||
{"version":3,"file":"ES5For-of8.js","sourceRoot":"","sources":["ES5For-of8.ts"],"names":[],"mappings":"AAAA,SAAS,GAAG;IACR,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AACpB,CAAC;AACD,GAAG,CAAC,CAAY,UAAe,EAAf,MAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAf,cAAe,EAAf,IAAe;IAA1B,GAAG,EAAE,CAAC,CAAC,SAAA;IACR,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;CACnB"}
|
||||
{"version":3,"file":"ES5For-of8.js","sourceRoot":"","sources":["ES5For-of8.ts"],"names":[],"mappings":"AAAA;IACI,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AACpB,CAAC;AACD,GAAG,CAAC,CAAY,UAAe,EAAf,MAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAf,cAAe,EAAf,IAAe;IAA1B,GAAG,EAAE,CAAC,CAAC,SAAA;IACR,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;CACnB"}
|
||||
@@ -10,15 +10,9 @@ sourceFile:ES5For-of8.ts
|
||||
-------------------------------------------------------------------
|
||||
>>>function foo() {
|
||||
1 >
|
||||
2 >^^^^^^^^^
|
||||
3 > ^^^
|
||||
4 > ^^^^^^^^^->
|
||||
2 >^^^^^^^^^^^^^^^^^^^^^->
|
||||
1 >
|
||||
2 >function
|
||||
3 > foo
|
||||
1 >Emitted(1, 1) Source(1, 1) + SourceIndex(0)
|
||||
2 >Emitted(1, 10) Source(1, 10) + SourceIndex(0)
|
||||
3 >Emitted(1, 13) Source(1, 13) + SourceIndex(0)
|
||||
---
|
||||
>>> return { x: 0 };
|
||||
1->^^^^
|
||||
@@ -30,7 +24,7 @@ sourceFile:ES5For-of8.ts
|
||||
7 > ^
|
||||
8 > ^^
|
||||
9 > ^
|
||||
1->() {
|
||||
1->function foo() {
|
||||
>
|
||||
2 > return
|
||||
3 >
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
//// [computedPropertyNamesSourceMap1_ES6.js.map]
|
||||
{"version":3,"file":"computedPropertyNamesSourceMap1_ES6.js","sourceRoot":"","sources":["computedPropertyNamesSourceMap1_ES6.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC;IACH,CAAC,OAAO,CAAC;QACL,QAAQ,CAAC;IACb,CAAC;CACJ"}
|
||||
{"version":3,"file":"computedPropertyNamesSourceMap1_ES6.js","sourceRoot":"","sources":["computedPropertyNamesSourceMap1_ES6.ts"],"names":[],"mappings":"AAAA;IACI,CAAC,OAAO,CAAC;QACL,QAAQ,CAAC;IACb,CAAC;CACJ"}
|
||||
@@ -10,15 +10,9 @@ sourceFile:computedPropertyNamesSourceMap1_ES6.ts
|
||||
-------------------------------------------------------------------
|
||||
>>>class C {
|
||||
1 >
|
||||
2 >^^^^^^
|
||||
3 > ^
|
||||
4 > ^^^^^^^^^^^->
|
||||
2 >^^^^^^^^^^^^^^^^^^->
|
||||
1 >
|
||||
2 >class
|
||||
3 > C
|
||||
1 >Emitted(1, 1) Source(1, 1) + SourceIndex(0)
|
||||
2 >Emitted(1, 7) Source(1, 7) + SourceIndex(0)
|
||||
3 >Emitted(1, 8) Source(1, 8) + SourceIndex(0)
|
||||
---
|
||||
>>> ["hello"]() {
|
||||
1->^^^^
|
||||
@@ -26,7 +20,7 @@ sourceFile:computedPropertyNamesSourceMap1_ES6.ts
|
||||
3 > ^^^^^^^
|
||||
4 > ^
|
||||
5 > ^^^^^->
|
||||
1-> {
|
||||
1->class C {
|
||||
>
|
||||
2 > [
|
||||
3 > "hello"
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
//// [es6-sourcemap-amd.js.map]
|
||||
{"version":3,"file":"es6-sourcemap-amd.js","sourceRoot":"","sources":["es6-sourcemap-amd.ts"],"names":[],"mappings":"AACA,MAAM,CAAC;IAEH;IAGA,CAAC;IAEM,CAAC;QAEJ,MAAM,CAAC,EAAE,CAAC;IACd,CAAC;CACJ"}
|
||||
{"version":3,"file":"es6-sourcemap-amd.js","sourceRoot":"","sources":["es6-sourcemap-amd.ts"],"names":[],"mappings":"AACA;IAEI;IAGA,CAAC;IAEM,CAAC;QAEJ,MAAM,CAAC,EAAE,CAAC;IACd,CAAC;CACJ"}
|
||||
@@ -10,21 +10,15 @@ sourceFile:es6-sourcemap-amd.ts
|
||||
-------------------------------------------------------------------
|
||||
>>>class A {
|
||||
1 >
|
||||
2 >^^^^^^
|
||||
3 > ^
|
||||
4 > ^^^^^^^^^^^^^->
|
||||
2 >^^^^^^^^^^^^^^^^^^^^->
|
||||
1 >
|
||||
>
|
||||
2 >class
|
||||
3 > A
|
||||
1 >Emitted(1, 1) Source(2, 1) + SourceIndex(0)
|
||||
2 >Emitted(1, 7) Source(2, 7) + SourceIndex(0)
|
||||
3 >Emitted(1, 8) Source(2, 8) + SourceIndex(0)
|
||||
---
|
||||
>>> constructor() {
|
||||
1->^^^^
|
||||
2 > ^^->
|
||||
1->
|
||||
1->class A
|
||||
>{
|
||||
>
|
||||
1->Emitted(2, 5) Source(4, 5) + SourceIndex(0)
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
//// [recursiveClassReferenceTest.js.map]
|
||||
{"version":3,"file":"recursiveClassReferenceTest.js","sourceRoot":"","sources":["recursiveClassReferenceTest.ts"],"names":[],"mappings":"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"}
|
||||
{"version":3,"file":"recursiveClassReferenceTest.js","sourceRoot":"","sources":["recursiveClassReferenceTest.ts"],"names":[],"mappings":"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"}
|
||||
@@ -198,18 +198,24 @@ sourceFile:recursiveClassReferenceTest.ts
|
||||
1->^^^^^^^^^^^^
|
||||
2 > ^^^^^^^^^^^
|
||||
3 > ^^^^
|
||||
4 > ^^^^^^^^^^^^^^^^^^^^^^^^^^->
|
||||
4 > ^^
|
||||
5 > ^
|
||||
6 > ^^^^^^^^^^^^^^^^^^^^^^^->
|
||||
1->
|
||||
2 >
|
||||
3 > Find
|
||||
4 >
|
||||
5 > {
|
||||
1->Emitted(15, 13) Source(32, 29) + SourceIndex(0)
|
||||
2 >Emitted(15, 24) Source(32, 29) + SourceIndex(0)
|
||||
3 >Emitted(15, 28) Source(32, 33) + SourceIndex(0)
|
||||
4 >Emitted(15, 30) Source(32, 34) + SourceIndex(0)
|
||||
5 >Emitted(15, 31) Source(32, 35) + SourceIndex(0)
|
||||
---
|
||||
>>> var StartFindAction = (function () {
|
||||
1->^^^^^^^^^^^^^^^^
|
||||
2 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
|
||||
1-> {
|
||||
1->
|
||||
>
|
||||
1->Emitted(16, 17) Source(33, 2) + SourceIndex(0)
|
||||
---
|
||||
@@ -657,18 +663,24 @@ sourceFile:recursiveClassReferenceTest.ts
|
||||
1->^^^^^^^^
|
||||
2 > ^^^^^^^^^^^
|
||||
3 > ^^^^^^^
|
||||
4 > ^^^^^^^^^^^^^^^^^^->
|
||||
4 > ^^
|
||||
5 > ^
|
||||
6 > ^^^^^^^^^^^^^^^->
|
||||
1->
|
||||
2 >
|
||||
3 > Widgets
|
||||
4 >
|
||||
5 > {
|
||||
1->Emitted(35, 9) Source(44, 21) + SourceIndex(0)
|
||||
2 >Emitted(35, 20) Source(44, 21) + SourceIndex(0)
|
||||
3 >Emitted(35, 27) Source(44, 28) + SourceIndex(0)
|
||||
4 >Emitted(35, 29) Source(44, 29) + SourceIndex(0)
|
||||
5 >Emitted(35, 30) Source(44, 30) + SourceIndex(0)
|
||||
---
|
||||
>>> var FindWidget = (function () {
|
||||
1->^^^^^^^^^^^^
|
||||
2 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
|
||||
1-> {
|
||||
1->
|
||||
>
|
||||
1->Emitted(36, 13) Source(45, 2) + SourceIndex(0)
|
||||
---
|
||||
@@ -1431,18 +1443,24 @@ sourceFile:recursiveClassReferenceTest.ts
|
||||
1->^^^^^^^^^^^^
|
||||
2 > ^^^^^^^^^^^
|
||||
3 > ^^^^^^^^^
|
||||
4 > ^^^^^^^^^^^->
|
||||
4 > ^^
|
||||
5 > ^
|
||||
6 > ^^^^^^^^->
|
||||
1->
|
||||
2 >
|
||||
3 > PlainText
|
||||
4 >
|
||||
5 > {
|
||||
1->Emitted(70, 13) Source(76, 31) + SourceIndex(0)
|
||||
2 >Emitted(70, 24) Source(76, 31) + SourceIndex(0)
|
||||
3 >Emitted(70, 33) Source(76, 40) + SourceIndex(0)
|
||||
4 >Emitted(70, 35) Source(76, 41) + SourceIndex(0)
|
||||
5 >Emitted(70, 36) Source(76, 42) + SourceIndex(0)
|
||||
---
|
||||
>>> var State = (function () {
|
||||
1->^^^^^^^^^^^^^^^^
|
||||
2 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^->
|
||||
1-> {
|
||||
1->
|
||||
>
|
||||
>
|
||||
1->Emitted(71, 17) Source(78, 2) + SourceIndex(0)
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
//// [sourceMap-FileWithComments.js.map]
|
||||
{"version":3,"file":"sourceMap-FileWithComments.js","sourceRoot":"","sources":["sourceMap-FileWithComments.ts"],"names":[],"mappings":"AAMA,SAAS;AACT,IAAO,MAAM,CAwBZ;AAxBD,WAAO,MAAM,EAAC,CAAC;IAEX,QAAQ;IACR;QACI,cAAc;QACd,eAAmB,CAAS,EAAS,CAAS;YAA3B,MAAC,GAAD,CAAC,CAAQ;YAAS,MAAC,GAAD,CAAC,CAAQ;QAAI,CAAC;QAEnD,kBAAkB;QAClB,uBAAO,GAAP,cAAY,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAItE,YAAC;IAAD,CAAC,AATD;IAOI,gBAAgB;IACT,YAAM,GAAG,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAClC;IATY,YAAK,QASjB,CAAA;IAED,+BAA+B;IAC/B,IAAI,CAAC,GAAG,EAAE,CAAC;IAEX;IACA,CAAC;IADe,UAAG,MAClB,CAAA;IAED;;MAEE;IACF,IAAI,CAAC,GAAG,EAAE,CAAC;AACf,CAAC,EAxBM,MAAM,KAAN,MAAM,QAwBZ;AAED,qBAAqB;AACrB,IAAI,CAAC,GAAW,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACvC,IAAI,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC"}
|
||||
{"version":3,"file":"sourceMap-FileWithComments.js","sourceRoot":"","sources":["sourceMap-FileWithComments.ts"],"names":[],"mappings":"AAMA,SAAS;AACT,IAAO,MAAM,CAwBZ;AAxBD,WAAO,MAAM,EAAC,CAAC;IAEX,QAAQ;IACR;QACI,cAAc;QACd,eAAmB,CAAS,EAAS,CAAS;YAA3B,MAAC,GAAD,CAAC,CAAQ;YAAS,MAAC,GAAD,CAAC,CAAQ;QAAI,CAAC;QAEnD,kBAAkB;QAClB,uBAAO,GAAP,cAAY,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAItE,YAAC;IAAD,CAAC,AATD;IAOI,gBAAgB;IACT,YAAM,GAAG,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IARvB,YAAK,QASjB,CAAA;IAED,+BAA+B;IAC/B,IAAI,CAAC,GAAG,EAAE,CAAC;IAEX;IACA,CAAC;IADe,UAAG,MAClB,CAAA;IAED;;MAEE;IACF,IAAI,CAAC,GAAG,EAAE,CAAC;AACf,CAAC,EAxBM,MAAM,KAAN,MAAM,QAwBZ;AAED,qBAAqB;AACrB,IAAI,CAAC,GAAW,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACvC,IAAI,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC"}
|
||||
@@ -334,8 +334,7 @@ sourceFile:sourceMap-FileWithComments.ts
|
||||
8 > ,
|
||||
9 > 0
|
||||
10> )
|
||||
11> ;
|
||||
> }
|
||||
11> ;
|
||||
1->Emitted(16, 5) Source(19, 16) + SourceIndex(0)
|
||||
2 >Emitted(16, 17) Source(19, 22) + SourceIndex(0)
|
||||
3 >Emitted(16, 20) Source(19, 25) + SourceIndex(0)
|
||||
@@ -346,7 +345,7 @@ sourceFile:sourceMap-FileWithComments.ts
|
||||
8 >Emitted(16, 33) Source(19, 38) + SourceIndex(0)
|
||||
9 >Emitted(16, 34) Source(19, 39) + SourceIndex(0)
|
||||
10>Emitted(16, 35) Source(19, 40) + SourceIndex(0)
|
||||
11>Emitted(16, 36) Source(20, 6) + SourceIndex(0)
|
||||
11>Emitted(16, 36) Source(19, 41) + SourceIndex(0)
|
||||
---
|
||||
>>> Shapes.Point = Point;
|
||||
1 >^^^^
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
//// [sourceMapValidationClasses.js.map]
|
||||
{"version":3,"file":"sourceMapValidationClasses.js","sourceRoot":"","sources":["sourceMapValidationClasses.ts"],"names":[],"mappings":"AAAA,IAAO,GAAG,CAmCT;AAnCD,WAAO,GAAG;IAAC,IAAA,GAAG,CAmCb;IAnCU,WAAA,GAAG;QACV,YAAY,CAAC;QAEb;YACI,iBAAmB,QAAgB;gBAAhB,aAAQ,GAAR,QAAQ,CAAQ;YACnC,CAAC;YAED,uBAAK,GAAL;gBACI,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;YAC5C,CAAC;YACL,cAAC;QAAD,CAAC,AAPD,IAOC;QAGD,SAAS,GAAG,CAAC,QAAgB;YACzB,MAAM,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;QACjC,CAAC;QAED,IAAI,OAAO,GAAG,IAAI,OAAO,CAAC,eAAe,CAAC,CAAC;QAC3C,IAAI,GAAG,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;QAE1B,SAAS,IAAI,CAAC,QAAgB;YAAE,kBAAiB,mBAAmB,MAAU;iBAA9C,UAA8C,EAA9C,qBAA8C,EAA9C,IAA8C;gBAA9C,sCAA8C;;YAC1E,IAAI,QAAQ,GAAc,EAAE,CAAC,CAAC,0BAA0B;YACxD,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;YACpC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC5C,QAAQ,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACjD,CAAC;YAED,MAAM,CAAC,QAAQ,CAAC;QACpB,CAAC;QAED,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;QACpC,qCAAqC;QACrC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAChC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QACjB,CAAC;IACL,CAAC,EAnCU,GAAG,GAAH,OAAG,KAAH,OAAG,QAmCb;AAAD,CAAC,EAnCM,GAAG,KAAH,GAAG,QAmCT"}
|
||||
{"version":3,"file":"sourceMapValidationClasses.js","sourceRoot":"","sources":["sourceMapValidationClasses.ts"],"names":[],"mappings":"AAAA,IAAO,GAAG,CAmCT;AAnCD,WAAO,GAAG;IAAC,IAAA,GAAG,CAmCb;IAnCU,WAAA,GAAG,EAAC,CAAC;QACZ,YAAY,CAAC;QAEb;YACI,iBAAmB,QAAgB;gBAAhB,aAAQ,GAAR,QAAQ,CAAQ;YACnC,CAAC;YAED,uBAAK,GAAL;gBACI,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;YAC5C,CAAC;YACL,cAAC;QAAD,CAAC,AAPD,IAOC;QAGD,aAAa,QAAgB;YACzB,MAAM,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;QACjC,CAAC;QAED,IAAI,OAAO,GAAG,IAAI,OAAO,CAAC,eAAe,CAAC,CAAC;QAC3C,IAAI,GAAG,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;QAE1B,cAAc,QAAgB;YAAE,kBAAiB,mBAAmB,MAAU;iBAA9C,UAA8C,EAA9C,qBAA8C,EAA9C,IAA8C;gBAA9C,sCAA8C;;YAC1E,IAAI,QAAQ,GAAc,EAAE,CAAC,CAAC,0BAA0B;YACxD,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;YACpC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC5C,QAAQ,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACjD,CAAC;YAED,MAAM,CAAC,QAAQ,CAAC;QACpB,CAAC;QAED,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;QACpC,qCAAqC;QACrC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAChC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QACjB,CAAC;IACL,CAAC,EAnCU,GAAG,GAAH,OAAG,KAAH,OAAG,QAmCb;AAAD,CAAC,EAnCM,GAAG,KAAH,GAAG,QAmCT"}
|
||||
@@ -123,20 +123,26 @@ sourceFile:sourceMapValidationClasses.ts
|
||||
1->^^^^
|
||||
2 > ^^^^^^^^^^^
|
||||
3 > ^^^
|
||||
4 > ^^^^->
|
||||
4 > ^^
|
||||
5 > ^
|
||||
6 > ^->
|
||||
1->
|
||||
2 >
|
||||
3 > Bar
|
||||
4 >
|
||||
5 > {
|
||||
1->Emitted(4, 5) Source(1, 12) + SourceIndex(0)
|
||||
2 >Emitted(4, 16) Source(1, 12) + SourceIndex(0)
|
||||
3 >Emitted(4, 19) Source(1, 15) + SourceIndex(0)
|
||||
4 >Emitted(4, 21) Source(1, 16) + SourceIndex(0)
|
||||
5 >Emitted(4, 22) Source(1, 17) + SourceIndex(0)
|
||||
---
|
||||
>>> "use strict";
|
||||
1->^^^^^^^^
|
||||
2 > ^^^^^^^^^^^^
|
||||
3 > ^
|
||||
4 > ^^^^^^^^^^^^^^^^->
|
||||
1-> {
|
||||
1->
|
||||
>
|
||||
2 > "use strict"
|
||||
3 > ;
|
||||
@@ -285,24 +291,18 @@ sourceFile:sourceMapValidationClasses.ts
|
||||
---
|
||||
>>> function foo(greeting) {
|
||||
1->^^^^^^^^
|
||||
2 > ^^^^^^^^^
|
||||
3 > ^^^
|
||||
4 > ^
|
||||
5 > ^^^^^^^^
|
||||
6 > ^^^^^^^^^^^^^->
|
||||
2 > ^^^^^^^^^^^^^
|
||||
3 > ^^^^^^^^
|
||||
4 > ^^^^^^^^^^^^^->
|
||||
1->
|
||||
>
|
||||
>
|
||||
>
|
||||
2 > function
|
||||
3 > foo
|
||||
4 > (
|
||||
5 > greeting: string
|
||||
2 > function foo(
|
||||
3 > greeting: string
|
||||
1->Emitted(15, 9) Source(14, 5) + SourceIndex(0)
|
||||
2 >Emitted(15, 18) Source(14, 14) + SourceIndex(0)
|
||||
3 >Emitted(15, 21) Source(14, 17) + SourceIndex(0)
|
||||
4 >Emitted(15, 22) Source(14, 18) + SourceIndex(0)
|
||||
5 >Emitted(15, 30) Source(14, 34) + SourceIndex(0)
|
||||
2 >Emitted(15, 22) Source(14, 18) + SourceIndex(0)
|
||||
3 >Emitted(15, 30) Source(14, 34) + SourceIndex(0)
|
||||
---
|
||||
>>> return new Greeter(greeting);
|
||||
1->^^^^^^^^^^^^
|
||||
@@ -410,23 +410,17 @@ sourceFile:sourceMapValidationClasses.ts
|
||||
---
|
||||
>>> function foo2(greeting) {
|
||||
1 >^^^^^^^^
|
||||
2 > ^^^^^^^^^
|
||||
3 > ^^^^
|
||||
4 > ^
|
||||
5 > ^^^^^^^^
|
||||
6 > ^^^^^^^^^^^^^^^^^^^^^^^^^^->
|
||||
2 > ^^^^^^^^^^^^^^
|
||||
3 > ^^^^^^^^
|
||||
4 > ^^^^^^^^^^^^^^^^^^^^^^^^^^->
|
||||
1 >
|
||||
>
|
||||
>
|
||||
2 > function
|
||||
3 > foo2
|
||||
4 > (
|
||||
5 > greeting: string
|
||||
2 > function foo2(
|
||||
3 > greeting: string
|
||||
1 >Emitted(20, 9) Source(21, 5) + SourceIndex(0)
|
||||
2 >Emitted(20, 18) Source(21, 14) + SourceIndex(0)
|
||||
3 >Emitted(20, 22) Source(21, 18) + SourceIndex(0)
|
||||
4 >Emitted(20, 23) Source(21, 19) + SourceIndex(0)
|
||||
5 >Emitted(20, 31) Source(21, 35) + SourceIndex(0)
|
||||
2 >Emitted(20, 23) Source(21, 19) + SourceIndex(0)
|
||||
3 >Emitted(20, 31) Source(21, 35) + SourceIndex(0)
|
||||
---
|
||||
>>> var restGreetings /* more greeting */ = [];
|
||||
1->^^^^^^^^^^^^
|
||||
|
||||
Reference in New Issue
Block a user