= {};
pattern = pattern.trim();
- let fullPatternSegment = createSegment(pattern);
- let dotSeparatedSegments = pattern.split(".").map(p => createSegment(p.trim()));
- let invalidPattern = dotSeparatedSegments.length === 0 || forEach(dotSeparatedSegments, segmentIsInvalid);
+ const dotSeparatedSegments = pattern.split(".").map(p => createSegment(p.trim()));
+ const invalidPattern = dotSeparatedSegments.length === 0 || forEach(dotSeparatedSegments, segmentIsInvalid);
return {
getMatches,
- getMatchesForLastSegmentOfPattern,
+ getMatchesForLastSegmentOfPattern,
patternContainsDots: dotSeparatedSegments.length > 1
};
@@ -131,7 +130,7 @@ namespace ts {
function skipMatch(candidate: string) {
return invalidPattern || !candidate;
}
-
+
function getMatchesForLastSegmentOfPattern(candidate: string): PatternMatch[] {
if (skipMatch(candidate)) {
return undefined;
@@ -148,7 +147,7 @@ namespace ts {
// First, check that the last part of the dot separated pattern matches the name of the
// candidate. If not, then there's no point in proceeding and doing the more
// expensive work.
- let candidateMatch = matchSegment(candidate, lastOrUndefined(dotSeparatedSegments));
+ const candidateMatch = matchSegment(candidate, lastOrUndefined(dotSeparatedSegments));
if (!candidateMatch) {
return undefined;
}
@@ -165,16 +164,16 @@ namespace ts {
// So far so good. Now break up the container for the candidate and check if all
// the dotted parts match up correctly.
- let totalMatch = candidateMatch;
+ const totalMatch = candidateMatch;
for (let i = dotSeparatedSegments.length - 2, j = candidateContainers.length - 1;
i >= 0;
- i--, j--) {
+ i -= 1, j -= 1) {
- let segment = dotSeparatedSegments[i];
- let containerName = candidateContainers[j];
+ const segment = dotSeparatedSegments[i];
+ const containerName = candidateContainers[j];
- let containerMatch = matchSegment(containerName, segment);
+ const containerMatch = matchSegment(containerName, segment);
if (!containerMatch) {
// This container didn't match the pattern piece. So there's no match at all.
return undefined;
@@ -197,7 +196,7 @@ namespace ts {
}
function matchTextChunk(candidate: string, chunk: TextChunk, punctuationStripped: boolean): PatternMatch {
- let index = indexOfIgnoringCase(candidate, chunk.textLowerCase);
+ const index = indexOfIgnoringCase(candidate, chunk.textLowerCase);
if (index === 0) {
if (chunk.text.length === candidate.length) {
// a) Check if the part matches the candidate entirely, in an case insensitive or
@@ -211,18 +210,18 @@ namespace ts {
}
}
- let isLowercase = chunk.isLowerCase;
+ const isLowercase = chunk.isLowerCase;
if (isLowercase) {
if (index > 0) {
// c) If the part is entirely lowercase, then check if it is contained anywhere in the
// candidate in a case insensitive manner. If so, return that there was a substring
- // match.
+ // match.
//
// Note: We only have a substring match if the lowercase part is prefix match of some
// word part. That way we don't match something like 'Class' when the user types 'a'.
// But we would match 'FooAttribute' (since 'Attribute' starts with 'a').
- let wordSpans = getWordSpans(candidate);
- for (let span of wordSpans) {
+ const wordSpans = getWordSpans(candidate);
+ for (const span of wordSpans) {
if (partStartsWith(candidate, span, chunk.text, /*ignoreCase:*/ true)) {
return createPatternMatch(PatternMatchKind.substring, punctuationStripped,
/*isCaseSensitive:*/ partStartsWith(candidate, span, chunk.text, /*ignoreCase:*/ false));
@@ -242,7 +241,7 @@ namespace ts {
if (!isLowercase) {
// e) If the part was not entirely lowercase, then attempt a camel cased match as well.
if (chunk.characterSpans.length > 0) {
- let candidateParts = getWordSpans(candidate);
+ const candidateParts = getWordSpans(candidate);
let camelCaseWeight = tryCamelCaseMatch(candidate, candidateParts, chunk, /*ignoreCase:*/ false);
if (camelCaseWeight !== undefined) {
return createPatternMatch(PatternMatchKind.camelCase, punctuationStripped, /*isCaseSensitive:*/ true, /*camelCaseWeight:*/ camelCaseWeight);
@@ -259,8 +258,8 @@ namespace ts {
// f) Is the pattern a substring of the candidate starting on one of the candidate's word boundaries?
// We could check every character boundary start of the candidate for the pattern. However, that's
- // an m * n operation in the wost case. Instead, find the first instance of the pattern
- // substring, and see if it starts on a capital letter. It seems unlikely that the user will try to
+ // an m * n operation in the wost case. Instead, find the first instance of the pattern
+ // substring, and see if it starts on a capital letter. It seems unlikely that the user will try to
// filter the list based on a substring that starts on a capital letter and also with a lowercase one.
// (Pattern: fogbar, Candidate: quuxfogbarFogBar).
if (chunk.text.length < candidate.length) {
@@ -275,7 +274,7 @@ namespace ts {
function containsSpaceOrAsterisk(text: string): boolean {
for (let i = 0; i < text.length; i++) {
- let ch = text.charCodeAt(i);
+ const ch = text.charCodeAt(i);
if (ch === CharacterCodes.space || ch === CharacterCodes.asterisk) {
return true;
}
@@ -293,7 +292,7 @@ namespace ts {
// Note: if the segment contains a space or an asterisk then we must assume that it's a
// multi-word segment.
if (!containsSpaceOrAsterisk(segment.totalTextChunk.text)) {
- let match = matchTextChunk(candidate, segment.totalTextChunk, /*punctuationStripped:*/ false);
+ const match = matchTextChunk(candidate, segment.totalTextChunk, /*punctuationStripped:*/ false);
if (match) {
return [match];
}
@@ -317,7 +316,7 @@ namespace ts {
//
// c) If the word is entirely lowercase, then check if it is contained anywhere in the
// candidate in a case insensitive manner. If so, return that there was a substring
- // match.
+ // match.
//
// Note: We only have a substring match if the lowercase part is prefix match of
// some word part. That way we don't match something like 'Class' when the user
@@ -331,17 +330,17 @@ namespace ts {
// e) If the word was not entirely lowercase, then attempt a camel cased match as
// well.
//
- // f) The word is all lower case. Is it a case insensitive substring of the candidate starting
+ // f) The word is all lower case. Is it a case insensitive substring of the candidate starting
// on a part boundary of the candidate?
//
// Only if all words have some sort of match is the pattern considered matched.
- let subWordTextChunks = segment.subWordTextChunks;
+ const subWordTextChunks = segment.subWordTextChunks;
let matches: PatternMatch[] = undefined;
- for (let subWordTextChunk of subWordTextChunks) {
+ for (const subWordTextChunk of subWordTextChunks) {
// Try to match the candidate with this word
- let result = matchTextChunk(candidate, subWordTextChunk, /*punctuationStripped:*/ true);
+ const result = matchTextChunk(candidate, subWordTextChunk, /*punctuationStripped:*/ true);
if (!result) {
return undefined;
}
@@ -354,18 +353,18 @@ namespace ts {
}
function partStartsWith(candidate: string, candidateSpan: TextSpan, pattern: string, ignoreCase: boolean, patternSpan?: TextSpan): boolean {
- let patternPartStart = patternSpan ? patternSpan.start : 0;
- let patternPartLength = patternSpan ? patternSpan.length : pattern.length;
+ const patternPartStart = patternSpan ? patternSpan.start : 0;
+ const patternPartLength = patternSpan ? patternSpan.length : pattern.length;
if (patternPartLength > candidateSpan.length) {
// Pattern part is longer than the candidate part. There can never be a match.
return false;
}
-
+
if (ignoreCase) {
for (let i = 0; i < patternPartLength; i++) {
- let ch1 = pattern.charCodeAt(patternPartStart + i);
- let ch2 = candidate.charCodeAt(candidateSpan.start + i);
+ const ch1 = pattern.charCodeAt(patternPartStart + i);
+ const ch2 = candidate.charCodeAt(candidateSpan.start + i);
if (toLowerCase(ch1) !== toLowerCase(ch2)) {
return false;
}
@@ -373,8 +372,8 @@ namespace ts {
}
else {
for (let i = 0; i < patternPartLength; i++) {
- let ch1 = pattern.charCodeAt(patternPartStart + i);
- let ch2 = candidate.charCodeAt(candidateSpan.start + i);
+ const ch1 = pattern.charCodeAt(patternPartStart + i);
+ const ch2 = candidate.charCodeAt(candidateSpan.start + i);
if (ch1 !== ch2) {
return false;
}
@@ -385,12 +384,12 @@ namespace ts {
}
function tryCamelCaseMatch(candidate: string, candidateParts: TextSpan[], chunk: TextChunk, ignoreCase: boolean): number {
- let chunkCharacterSpans = chunk.characterSpans;
+ const chunkCharacterSpans = chunk.characterSpans;
// Note: we may have more pattern parts than candidate parts. This is because multiple
// pattern parts may match a candidate part. For example "SiUI" against "SimpleUI".
// We'll have 3 pattern parts Si/U/I against two candidate parts Simple/UI. However, U
- // and I will both match in UI.
+ // and I will both match in UI.
let currentCandidate = 0;
let currentChunkSpan = 0;
@@ -426,14 +425,14 @@ namespace ts {
// Consider the case of matching SiUI against SimpleUIElement. The candidate parts
// will be Simple/UI/Element, and the pattern parts will be Si/U/I. We'll match 'Si'
// against 'Simple' first. Then we'll match 'U' against 'UI'. However, we want to
- // still keep matching pattern parts against that candidate part.
+ // still keep matching pattern parts against that candidate part.
for (; currentChunkSpan < chunkCharacterSpans.length; currentChunkSpan++) {
- let chunkCharacterSpan = chunkCharacterSpans[currentChunkSpan];
+ const chunkCharacterSpan = chunkCharacterSpans[currentChunkSpan];
if (gotOneMatchThisCandidate) {
// We've already gotten one pattern part match in this candidate. We will
// only continue trying to consumer pattern parts if the last part and this
- // part are both upper case.
+ // part are both upper case.
if (!isUpperCaseLetter(chunk.text.charCodeAt(chunkCharacterSpans[currentChunkSpan - 1].start)) ||
!isUpperCaseLetter(chunk.text.charCodeAt(chunkCharacterSpans[currentChunkSpan].start))) {
break;
@@ -470,55 +469,11 @@ namespace ts {
}
}
- // Helper function to compare two matches to determine which is better. Matches are first
- // ordered by kind (so all prefix matches always beat all substring matches). Then, if the
- // match is a camel case match, the relative weights of the match are used to determine
- // which is better (with a greater weight being better). Then if the match is of the same
- // type, then a case sensitive match is considered better than an insensitive one.
- function patternMatchCompareTo(match1: PatternMatch, match2: PatternMatch): number {
- return compareType(match1, match2) ||
- compareCamelCase(match1, match2) ||
- compareCase(match1, match2) ||
- comparePunctuation(match1, match2);
- }
-
- function comparePunctuation(result1: PatternMatch, result2: PatternMatch) {
- // Consider a match to be better if it was successful without stripping punctuation
- // versus a match that had to strip punctuation to succeed.
- if (result1.punctuationStripped !== result2.punctuationStripped) {
- return result1.punctuationStripped ? 1 : -1;
- }
-
- return 0;
- }
-
- function compareCase(result1: PatternMatch, result2: PatternMatch) {
- if (result1.isCaseSensitive !== result2.isCaseSensitive) {
- return result1.isCaseSensitive ? -1 : 1;
- }
-
- return 0;
- }
-
- function compareType(result1: PatternMatch, result2: PatternMatch) {
- return result1.kind - result2.kind;
- }
-
- function compareCamelCase(result1: PatternMatch, result2: PatternMatch) {
- if (result1.kind === PatternMatchKind.camelCase && result2.kind === PatternMatchKind.camelCase) {
- // Swap the values here. If result1 has a higher weight, then we want it to come
- // first.
- return result2.camelCaseWeight - result1.camelCaseWeight;
- }
-
- return 0;
- }
-
function createSegment(text: string): Segment {
return {
totalTextChunk: createTextChunk(text),
subWordTextChunks: breakPatternIntoTextChunks(text)
- }
+ };
}
// A segment is considered invalid if we couldn't find any words in it.
@@ -536,9 +491,9 @@ namespace ts {
return false;
}
- // TODO: find a way to determine this for any unicode characters in a
+ // TODO: find a way to determine this for any unicode characters in a
// non-allocating manner.
- let str = String.fromCharCode(ch);
+ const str = String.fromCharCode(ch);
return str === str.toUpperCase();
}
@@ -553,22 +508,12 @@ namespace ts {
}
- // TODO: find a way to determine this for any unicode characters in a
+ // TODO: find a way to determine this for any unicode characters in a
// non-allocating manner.
- let str = String.fromCharCode(ch);
+ const str = String.fromCharCode(ch);
return str === str.toLowerCase();
}
- function containsUpperCaseLetter(string: string): boolean {
- for (let i = 0, n = string.length; i < n; i++) {
- if (isUpperCaseLetter(string.charCodeAt(i))) {
- return true;
- }
- }
-
- return false;
- }
-
function startsWith(string: string, search: string) {
for (let i = 0, n = search.length; i < n; i++) {
if (string.charCodeAt(i) !== search.charCodeAt(i)) {
@@ -593,8 +538,8 @@ namespace ts {
// Assumes 'value' is already lowercase.
function startsWithIgnoringCase(string: string, value: string, start: number): boolean {
for (let i = 0, n = value.length; i < n; i++) {
- let ch1 = toLowerCase(string.charCodeAt(i + start));
- let ch2 = value.charCodeAt(i);
+ const ch1 = toLowerCase(string.charCodeAt(i + start));
+ const ch2 = value.charCodeAt(i);
if (ch1 !== ch2) {
return false;
@@ -614,7 +559,7 @@ namespace ts {
return ch;
}
- // TODO: find a way to compute this for any unicode characters in a
+ // TODO: find a way to compute this for any unicode characters in a
// non-allocating manner.
return String.fromCharCode(ch).toLowerCase().charCodeAt(0);
}
@@ -629,16 +574,17 @@ namespace ts {
}
function breakPatternIntoTextChunks(pattern: string): TextChunk[] {
- let result: TextChunk[] = [];
+ const result: TextChunk[] = [];
let wordStart = 0;
let wordLength = 0;
for (let i = 0; i < pattern.length; i++) {
- let ch = pattern.charCodeAt(i);
+ const ch = pattern.charCodeAt(i);
if (isWordChar(ch)) {
- if (wordLength++ === 0) {
+ if (wordLength === 0) {
wordStart = i;
}
+ wordLength++;
}
else {
if (wordLength > 0) {
@@ -656,13 +602,13 @@ namespace ts {
}
function createTextChunk(text: string): TextChunk {
- let textLowerCase = text.toLowerCase();
+ const textLowerCase = text.toLowerCase();
return {
text,
textLowerCase,
isLowerCase: text === textLowerCase,
characterSpans: breakIntoCharacterSpans(text)
- }
+ };
}
/* @internal */ export function breakIntoCharacterSpans(identifier: string): TextSpan[] {
@@ -674,15 +620,15 @@ namespace ts {
}
function breakIntoSpans(identifier: string, word: boolean): TextSpan[] {
- let result: TextSpan[] = [];
+ const result: TextSpan[] = [];
let wordStart = 0;
for (let i = 1, n = identifier.length; i < n; i++) {
- let lastIsDigit = isDigit(identifier.charCodeAt(i - 1));
- let currentIsDigit = isDigit(identifier.charCodeAt(i));
+ const lastIsDigit = isDigit(identifier.charCodeAt(i - 1));
+ const currentIsDigit = isDigit(identifier.charCodeAt(i));
- let hasTransitionFromLowerToUpper = transitionFromLowerToUpper(identifier, word, i);
- let hasTransitionFromUpperToLower = transitionFromUpperToLower(identifier, word, i, wordStart);
+ const hasTransitionFromLowerToUpper = transitionFromLowerToUpper(identifier, word, i);
+ const hasTransitionFromUpperToLower = transitionFromUpperToLower(identifier, word, i, wordStart);
if (charIsPunctuation(identifier.charCodeAt(i - 1)) ||
charIsPunctuation(identifier.charCodeAt(i)) ||
@@ -738,7 +684,7 @@ namespace ts {
function isAllPunctuation(identifier: string, start: number, end: number): boolean {
for (let i = start; i < end; i++) {
- let ch = identifier.charCodeAt(i);
+ const ch = identifier.charCodeAt(i);
// We don't consider _ or $ as punctuation as there may be things with that name.
if (!charIsPunctuation(ch) || ch === CharacterCodes._ || ch === CharacterCodes.$) {
@@ -759,8 +705,8 @@ namespace ts {
// etc.
if (index !== wordStart &&
index + 1 < identifier.length) {
- let currentIsUpper = isUpperCaseLetter(identifier.charCodeAt(index));
- let nextIsLower = isLowerCaseLetter(identifier.charCodeAt(index + 1));
+ const currentIsUpper = isUpperCaseLetter(identifier.charCodeAt(index));
+ const nextIsLower = isLowerCaseLetter(identifier.charCodeAt(index + 1));
if (currentIsUpper && nextIsLower) {
// We have a transition from an upper to a lower letter here. But we only
@@ -786,12 +732,12 @@ namespace ts {
}
function transitionFromLowerToUpper(identifier: string, word: boolean, index: number): boolean {
- let lastIsUpper = isUpperCaseLetter(identifier.charCodeAt(index - 1));
- let currentIsUpper = isUpperCaseLetter(identifier.charCodeAt(index));
+ const lastIsUpper = isUpperCaseLetter(identifier.charCodeAt(index - 1));
+ const currentIsUpper = isUpperCaseLetter(identifier.charCodeAt(index));
// See if the casing indicates we're starting a new word. Note: if we're breaking on
// words, then just seeing an upper case character isn't enough. Instead, it has to
- // be uppercase and the previous character can't be uppercase.
+ // be uppercase and the previous character can't be uppercase.
//
// For example, breaking "AddMetadata" on words would make: Add Metadata
//
@@ -802,7 +748,7 @@ namespace ts {
// on characters would be: A M
//
// We break the search string on characters. But we break the symbol name on words.
- let transition = word
+ const transition = word
? (currentIsUpper && !lastIsUpper)
: currentIsUpper;
return transition;
diff --git a/src/services/services.ts b/src/services/services.ts
index 0ffd1138cba..0fd4df19907 100644
--- a/src/services/services.ts
+++ b/src/services/services.ts
@@ -469,7 +469,8 @@ namespace ts {
function pushDocCommentLineText(docComments: SymbolDisplayPart[], text: string, blankLineCount: number) {
// Add the empty lines in between texts
- while (blankLineCount--) {
+ while (blankLineCount) {
+ blankLineCount--;
docComments.push(textPart(""));
}
diff --git a/tests/baselines/reference/aliasesInSystemModule1.js b/tests/baselines/reference/aliasesInSystemModule1.js
index 43037c7634c..11f02c18ea4 100644
--- a/tests/baselines/reference/aliasesInSystemModule1.js
+++ b/tests/baselines/reference/aliasesInSystemModule1.js
@@ -17,7 +17,7 @@ module M {
//// [aliasesInSystemModule1.js]
-System.register(['foo'], function(exports_1) {
+System.register(['foo'], function(exports_1, __moduleName) {
"use strict";
var alias;
var cls, cls2, x, y, z, M;
diff --git a/tests/baselines/reference/aliasesInSystemModule2.js b/tests/baselines/reference/aliasesInSystemModule2.js
index 7effb2721be..7378536e2fd 100644
--- a/tests/baselines/reference/aliasesInSystemModule2.js
+++ b/tests/baselines/reference/aliasesInSystemModule2.js
@@ -16,7 +16,7 @@ module M {
}
//// [aliasesInSystemModule2.js]
-System.register(["foo"], function(exports_1) {
+System.register(["foo"], function(exports_1, __moduleName) {
"use strict";
var foo_1;
var cls, cls2, x, y, z, M;
diff --git a/tests/baselines/reference/allowSyntheticDefaultImports2.js b/tests/baselines/reference/allowSyntheticDefaultImports2.js
index fcc029415cf..0480250d71a 100644
--- a/tests/baselines/reference/allowSyntheticDefaultImports2.js
+++ b/tests/baselines/reference/allowSyntheticDefaultImports2.js
@@ -10,7 +10,7 @@ export class Foo {
}
//// [b.js]
-System.register([], function(exports_1) {
+System.register([], function(exports_1, __moduleName) {
"use strict";
var Foo;
return {
@@ -26,7 +26,7 @@ System.register([], function(exports_1) {
}
});
//// [a.js]
-System.register(["./b"], function(exports_1) {
+System.register(["./b"], function(exports_1, __moduleName) {
"use strict";
var b_1;
var x;
diff --git a/tests/baselines/reference/allowSyntheticDefaultImports3.js b/tests/baselines/reference/allowSyntheticDefaultImports3.js
index b14d25dbd61..adf85792fd9 100644
--- a/tests/baselines/reference/allowSyntheticDefaultImports3.js
+++ b/tests/baselines/reference/allowSyntheticDefaultImports3.js
@@ -11,7 +11,7 @@ export class Foo {
//// [b.js]
-System.register([], function(exports_1) {
+System.register([], function(exports_1, __moduleName) {
"use strict";
var Foo;
return {
@@ -27,7 +27,7 @@ System.register([], function(exports_1) {
}
});
//// [a.js]
-System.register(["./b"], function(exports_1) {
+System.register(["./b"], function(exports_1, __moduleName) {
"use strict";
var b_1;
var x;
diff --git a/tests/baselines/reference/allowSyntheticDefaultImports5.js b/tests/baselines/reference/allowSyntheticDefaultImports5.js
index c9121512b61..d0dfdcb76d1 100644
--- a/tests/baselines/reference/allowSyntheticDefaultImports5.js
+++ b/tests/baselines/reference/allowSyntheticDefaultImports5.js
@@ -12,7 +12,7 @@ export var x = new Foo();
//// [a.js]
-System.register(["./b"], function(exports_1) {
+System.register(["./b"], function(exports_1, __moduleName) {
"use strict";
var b_1;
var x;
diff --git a/tests/baselines/reference/allowSyntheticDefaultImports6.js b/tests/baselines/reference/allowSyntheticDefaultImports6.js
index 64d52e70af9..eaafb5ee276 100644
--- a/tests/baselines/reference/allowSyntheticDefaultImports6.js
+++ b/tests/baselines/reference/allowSyntheticDefaultImports6.js
@@ -12,7 +12,7 @@ export var x = new Foo();
//// [a.js]
-System.register(["./b"], function(exports_1) {
+System.register(["./b"], function(exports_1, __moduleName) {
"use strict";
var b_1;
var x;
diff --git a/tests/baselines/reference/anonymousDefaultExportsSystem.js b/tests/baselines/reference/anonymousDefaultExportsSystem.js
index 74913a57a99..4ee7e2a11bc 100644
--- a/tests/baselines/reference/anonymousDefaultExportsSystem.js
+++ b/tests/baselines/reference/anonymousDefaultExportsSystem.js
@@ -7,7 +7,7 @@ export default class {}
export default function() {}
//// [a.js]
-System.register([], function(exports_1) {
+System.register([], function(exports_1, __moduleName) {
"use strict";
var default_1;
return {
@@ -20,7 +20,7 @@ System.register([], function(exports_1) {
}
});
//// [b.js]
-System.register([], function(exports_1) {
+System.register([], function(exports_1, __moduleName) {
"use strict";
function default_1() { }
exports_1("default", default_1);
diff --git a/tests/baselines/reference/capturedLetConstInLoop4.js b/tests/baselines/reference/capturedLetConstInLoop4.js
index 724c84fe04f..c2d2c998616 100644
--- a/tests/baselines/reference/capturedLetConstInLoop4.js
+++ b/tests/baselines/reference/capturedLetConstInLoop4.js
@@ -144,7 +144,7 @@ for (const y = 0; y < 1;) {
//// [capturedLetConstInLoop4.js]
-System.register([], function(exports_1) {
+System.register([], function(exports_1, __moduleName) {
"use strict";
var v0, v00, v1, v2, v3, v4, v5, v6, v7, v8, v0_c, v00_c, v1_c, v2_c, v3_c, v4_c, v5_c, v6_c, v7_c, v8_c;
//======let
diff --git a/tests/baselines/reference/decoratedDefaultExportsGetExportedSystem.js b/tests/baselines/reference/decoratedDefaultExportsGetExportedSystem.js
index ed322374799..be20d5ffc12 100644
--- a/tests/baselines/reference/decoratedDefaultExportsGetExportedSystem.js
+++ b/tests/baselines/reference/decoratedDefaultExportsGetExportedSystem.js
@@ -13,7 +13,7 @@ var decorator: ClassDecorator;
export default class {}
//// [a.js]
-System.register([], function(exports_1) {
+System.register([], function(exports_1, __moduleName) {
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
@@ -35,7 +35,7 @@ System.register([], function(exports_1) {
}
});
//// [b.js]
-System.register([], function(exports_1) {
+System.register([], function(exports_1, __moduleName) {
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
diff --git a/tests/baselines/reference/defaultExportsGetExportedSystem.js b/tests/baselines/reference/defaultExportsGetExportedSystem.js
index 67dc47f4bd5..f67ccb6ee23 100644
--- a/tests/baselines/reference/defaultExportsGetExportedSystem.js
+++ b/tests/baselines/reference/defaultExportsGetExportedSystem.js
@@ -8,7 +8,7 @@ export default function foo() {}
//// [a.js]
-System.register([], function(exports_1) {
+System.register([], function(exports_1, __moduleName) {
"use strict";
var Foo;
return {
@@ -21,7 +21,7 @@ System.register([], function(exports_1) {
}
});
//// [b.js]
-System.register([], function(exports_1) {
+System.register([], function(exports_1, __moduleName) {
"use strict";
function foo() { }
exports_1("default", foo);
diff --git a/tests/baselines/reference/es5-system.js b/tests/baselines/reference/es5-system.js
index a9633352b8b..1cd1dac13d1 100644
--- a/tests/baselines/reference/es5-system.js
+++ b/tests/baselines/reference/es5-system.js
@@ -15,7 +15,7 @@ export default class A
//// [es5-system.js]
-System.register([], function(exports_1) {
+System.register([], function(exports_1, __moduleName) {
"use strict";
var A;
return {
diff --git a/tests/baselines/reference/exportNonInitializedVariablesSystem.js b/tests/baselines/reference/exportNonInitializedVariablesSystem.js
index b5674bf5ce3..53d8a5424ef 100644
--- a/tests/baselines/reference/exportNonInitializedVariablesSystem.js
+++ b/tests/baselines/reference/exportNonInitializedVariablesSystem.js
@@ -35,7 +35,7 @@ export let h1: D = new D;
//// [exportNonInitializedVariablesSystem.js]
-System.register([], function(exports_1) {
+System.register([], function(exports_1, __moduleName) {
"use strict";
var a, b, c, d, A, e, f, B, C, a1, b1, c1, d1, D, e1, f1, g1, h1;
return {
diff --git a/tests/baselines/reference/exportStarForValues10.js b/tests/baselines/reference/exportStarForValues10.js
index dca5dad9b7a..1149baf8b27 100644
--- a/tests/baselines/reference/exportStarForValues10.js
+++ b/tests/baselines/reference/exportStarForValues10.js
@@ -13,7 +13,7 @@ export * from "file1";
var x = 1;
//// [file0.js]
-System.register([], function(exports_1) {
+System.register([], function(exports_1, __moduleName) {
"use strict";
var v;
return {
@@ -24,7 +24,7 @@ System.register([], function(exports_1) {
}
});
//// [file1.js]
-System.register([], function(exports_1) {
+System.register([], function(exports_1, __moduleName) {
"use strict";
return {
setters:[],
@@ -33,7 +33,7 @@ System.register([], function(exports_1) {
}
});
//// [file2.js]
-System.register(["file0"], function(exports_1) {
+System.register(["file0"], function(exports_1, __moduleName) {
"use strict";
var x;
function exportStar_1(m) {
diff --git a/tests/baselines/reference/exportStarForValues6.js b/tests/baselines/reference/exportStarForValues6.js
index 69357d87ee0..f2257277630 100644
--- a/tests/baselines/reference/exportStarForValues6.js
+++ b/tests/baselines/reference/exportStarForValues6.js
@@ -9,7 +9,7 @@ export * from "file1"
export var x = 1;
//// [file1.js]
-System.register([], function(exports_1) {
+System.register([], function(exports_1, __moduleName) {
"use strict";
return {
setters:[],
@@ -18,7 +18,7 @@ System.register([], function(exports_1) {
}
});
//// [file2.js]
-System.register([], function(exports_1) {
+System.register([], function(exports_1, __moduleName) {
"use strict";
var x;
return {
diff --git a/tests/baselines/reference/exportStarForValuesInSystem.js b/tests/baselines/reference/exportStarForValuesInSystem.js
index a33465f7e2e..33ca1f8b24d 100644
--- a/tests/baselines/reference/exportStarForValuesInSystem.js
+++ b/tests/baselines/reference/exportStarForValuesInSystem.js
@@ -9,7 +9,7 @@ export * from "file1"
var x = 1;
//// [file1.js]
-System.register([], function(exports_1) {
+System.register([], function(exports_1, __moduleName) {
"use strict";
return {
setters:[],
@@ -18,7 +18,7 @@ System.register([], function(exports_1) {
}
});
//// [file2.js]
-System.register([], function(exports_1) {
+System.register([], function(exports_1, __moduleName) {
"use strict";
var x;
return {
diff --git a/tests/baselines/reference/isolatedModulesPlainFile-System.js b/tests/baselines/reference/isolatedModulesPlainFile-System.js
index b66bd497810..44eec5161c0 100644
--- a/tests/baselines/reference/isolatedModulesPlainFile-System.js
+++ b/tests/baselines/reference/isolatedModulesPlainFile-System.js
@@ -5,7 +5,7 @@ run(1);
//// [isolatedModulesPlainFile-System.js]
-System.register([], function(exports_1) {
+System.register([], function(exports_1, __moduleName) {
"use strict";
return {
setters:[],
diff --git a/tests/baselines/reference/modulePrologueSystem.js b/tests/baselines/reference/modulePrologueSystem.js
index 80a46fb27fc..04519898166 100644
--- a/tests/baselines/reference/modulePrologueSystem.js
+++ b/tests/baselines/reference/modulePrologueSystem.js
@@ -4,7 +4,7 @@
export class Foo {}
//// [modulePrologueSystem.js]
-System.register([], function(exports_1) {
+System.register([], function(exports_1, __moduleName) {
"use strict";
var Foo;
return {
diff --git a/tests/baselines/reference/outFilerootDirModuleNamesSystem.js b/tests/baselines/reference/outFilerootDirModuleNamesSystem.js
index 298ad52689f..e6ac346dc7f 100644
--- a/tests/baselines/reference/outFilerootDirModuleNamesSystem.js
+++ b/tests/baselines/reference/outFilerootDirModuleNamesSystem.js
@@ -11,7 +11,7 @@ export default function foo() { new Foo(); }
//// [output.js]
-System.register("b", ["a"], function(exports_1) {
+System.register("b", ["a"], function(exports_1, __moduleName) {
"use strict";
var a_1;
function foo() { new a_1.default(); }
@@ -25,7 +25,7 @@ System.register("b", ["a"], function(exports_1) {
}
}
});
-System.register("a", ["b"], function(exports_2) {
+System.register("a", ["b"], function(exports_2, __moduleName) {
"use strict";
var b_1;
var Foo;
diff --git a/tests/baselines/reference/outModuleConcatSystem.js b/tests/baselines/reference/outModuleConcatSystem.js
index d4552d33167..bd2753c6d5f 100644
--- a/tests/baselines/reference/outModuleConcatSystem.js
+++ b/tests/baselines/reference/outModuleConcatSystem.js
@@ -14,7 +14,7 @@ var __extends = (this && this.__extends) || function (d, b) {
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
-System.register("ref/a", [], function(exports_1) {
+System.register("ref/a", [], function(exports_1, __moduleName) {
"use strict";
var A;
return {
@@ -29,7 +29,7 @@ System.register("ref/a", [], function(exports_1) {
}
}
});
-System.register("b", ["ref/a"], function(exports_2) {
+System.register("b", ["ref/a"], function(exports_2, __moduleName) {
"use strict";
var a_1;
var B;
diff --git a/tests/baselines/reference/outModuleConcatSystem.sourcemap.txt b/tests/baselines/reference/outModuleConcatSystem.sourcemap.txt
index e3f521c828c..0b1f9cc5294 100644
--- a/tests/baselines/reference/outModuleConcatSystem.sourcemap.txt
+++ b/tests/baselines/reference/outModuleConcatSystem.sourcemap.txt
@@ -13,7 +13,7 @@ sourceFile:tests/cases/compiler/ref/a.ts
>>> function __() { this.constructor = d; }
>>> d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
>>>};
->>>System.register("ref/a", [], function(exports_1) {
+>>>System.register("ref/a", [], function(exports_1, __moduleName) {
>>> "use strict";
>>> var A;
>>> return {
@@ -82,7 +82,7 @@ sourceFile:tests/cases/compiler/b.ts
>>> }
>>> }
>>>});
->>>System.register("b", ["ref/a"], function(exports_2) {
+>>>System.register("b", ["ref/a"], function(exports_2, __moduleName) {
>>> "use strict";
>>> var a_1;
>>> var B;
diff --git a/tests/baselines/reference/prefixUnaryOperatorsOnExportedVariables.js b/tests/baselines/reference/prefixUnaryOperatorsOnExportedVariables.js
index 5d414c97d05..a3b70bde6d5 100644
--- a/tests/baselines/reference/prefixUnaryOperatorsOnExportedVariables.js
+++ b/tests/baselines/reference/prefixUnaryOperatorsOnExportedVariables.js
@@ -31,7 +31,7 @@ if (++y) {
}
//// [prefixUnaryOperatorsOnExportedVariables.js]
-System.register([], function(exports_1) {
+System.register([], function(exports_1, __moduleName) {
"use strict";
var x, y;
return {
diff --git a/tests/baselines/reference/systemExportAssignment.js b/tests/baselines/reference/systemExportAssignment.js
index 72962cf835c..f8b50cb580f 100644
--- a/tests/baselines/reference/systemExportAssignment.js
+++ b/tests/baselines/reference/systemExportAssignment.js
@@ -10,7 +10,7 @@ import * as a from "a";
//// [b.js]
-System.register([], function(exports_1) {
+System.register([], function(exports_1, __moduleName) {
"use strict";
return {
setters:[],
diff --git a/tests/baselines/reference/systemExportAssignment2.js b/tests/baselines/reference/systemExportAssignment2.js
index 0f4dd712493..6a5c0e8f397 100644
--- a/tests/baselines/reference/systemExportAssignment2.js
+++ b/tests/baselines/reference/systemExportAssignment2.js
@@ -10,7 +10,7 @@ import * as a from "a";
//// [a.js]
-System.register([], function(exports_1) {
+System.register([], function(exports_1, __moduleName) {
"use strict";
var a;
return {
@@ -21,7 +21,7 @@ System.register([], function(exports_1) {
}
});
//// [b.js]
-System.register([], function(exports_1) {
+System.register([], function(exports_1, __moduleName) {
"use strict";
return {
setters:[],
diff --git a/tests/baselines/reference/systemExportAssignment3.js b/tests/baselines/reference/systemExportAssignment3.js
index ca2492a54e1..9c6d3cdbb2f 100644
--- a/tests/baselines/reference/systemExportAssignment3.js
+++ b/tests/baselines/reference/systemExportAssignment3.js
@@ -12,7 +12,7 @@ import * as a from "a";
//// [b.js]
-System.register([], function(exports_1) {
+System.register([], function(exports_1, __moduleName) {
"use strict";
return {
setters:[],
diff --git a/tests/baselines/reference/systemModule1.js b/tests/baselines/reference/systemModule1.js
index 52f3b482069..749d8170dcb 100644
--- a/tests/baselines/reference/systemModule1.js
+++ b/tests/baselines/reference/systemModule1.js
@@ -3,7 +3,7 @@
export var x = 1;
//// [systemModule1.js]
-System.register([], function(exports_1) {
+System.register([], function(exports_1, __moduleName) {
"use strict";
var x;
return {
diff --git a/tests/baselines/reference/systemModule10.js b/tests/baselines/reference/systemModule10.js
index ac32c4948e7..f23e7ca1d76 100644
--- a/tests/baselines/reference/systemModule10.js
+++ b/tests/baselines/reference/systemModule10.js
@@ -10,7 +10,7 @@ export {n2}
export {n2 as n3}
//// [systemModule10.js]
-System.register(['file1', 'file2'], function(exports_1) {
+System.register(['file1', 'file2'], function(exports_1, __moduleName) {
"use strict";
var file1_1, n2;
return {
diff --git a/tests/baselines/reference/systemModule10_ES5.js b/tests/baselines/reference/systemModule10_ES5.js
index 0c98df6ba99..3d63e092df4 100644
--- a/tests/baselines/reference/systemModule10_ES5.js
+++ b/tests/baselines/reference/systemModule10_ES5.js
@@ -10,7 +10,7 @@ export {n2}
export {n2 as n3}
//// [systemModule10_ES5.js]
-System.register(['file1', 'file2'], function(exports_1) {
+System.register(['file1', 'file2'], function(exports_1, __moduleName) {
"use strict";
var file1_1, n2;
return {
diff --git a/tests/baselines/reference/systemModule11.js b/tests/baselines/reference/systemModule11.js
index 92b0576b919..1e755a86541 100644
--- a/tests/baselines/reference/systemModule11.js
+++ b/tests/baselines/reference/systemModule11.js
@@ -42,7 +42,7 @@ export * from 'a';
//// [file1.js]
// set of tests cases that checks generation of local storage for exported names
-System.register(['bar'], function(exports_1) {
+System.register(['bar'], function(exports_1, __moduleName) {
"use strict";
var x;
function foo() { }
@@ -68,7 +68,7 @@ System.register(['bar'], function(exports_1) {
}
});
//// [file2.js]
-System.register(['bar'], function(exports_1) {
+System.register(['bar'], function(exports_1, __moduleName) {
"use strict";
var x, y;
var exportedNames_1 = {
@@ -94,7 +94,7 @@ System.register(['bar'], function(exports_1) {
}
});
//// [file3.js]
-System.register(['a', 'bar'], function(exports_1) {
+System.register(['a', 'bar'], function(exports_1, __moduleName) {
"use strict";
function foo() { }
exports_1("default", foo);
@@ -125,7 +125,7 @@ System.register(['a', 'bar'], function(exports_1) {
}
});
//// [file4.js]
-System.register(['a'], function(exports_1) {
+System.register(['a'], function(exports_1, __moduleName) {
"use strict";
var x, z, z1;
function foo() { }
@@ -147,7 +147,7 @@ System.register(['a'], function(exports_1) {
}
});
//// [file5.js]
-System.register(['a'], function(exports_1) {
+System.register(['a'], function(exports_1, __moduleName) {
"use strict";
function foo() { }
function exportStar_1(m) {
diff --git a/tests/baselines/reference/systemModule12.js b/tests/baselines/reference/systemModule12.js
index d8961c3b001..04252396926 100644
--- a/tests/baselines/reference/systemModule12.js
+++ b/tests/baselines/reference/systemModule12.js
@@ -5,7 +5,7 @@ import n from 'file1'
//// [systemModule12.js]
-System.register("NamedModule", [], function(exports_1) {
+System.register("NamedModule", [], function(exports_1, __moduleName) {
"use strict";
return {
setters:[],
diff --git a/tests/baselines/reference/systemModule13.js b/tests/baselines/reference/systemModule13.js
index 0b81a946de4..509534ee0fe 100644
--- a/tests/baselines/reference/systemModule13.js
+++ b/tests/baselines/reference/systemModule13.js
@@ -5,7 +5,7 @@ export const {a: z0, b: {c: z1}} = {a: true, b: {c: "123"}};
for ([x] of [[1]]) {}
//// [systemModule13.js]
-System.register([], function(exports_1) {
+System.register([], function(exports_1, __moduleName) {
"use strict";
var x, y, z, z0, z1;
return {
diff --git a/tests/baselines/reference/systemModule14.js b/tests/baselines/reference/systemModule14.js
index 2ec8fc600f4..af78af7f6b1 100644
--- a/tests/baselines/reference/systemModule14.js
+++ b/tests/baselines/reference/systemModule14.js
@@ -11,7 +11,7 @@ var x = 1;
export {foo as b}
//// [systemModule14.js]
-System.register(["foo"], function(exports_1) {
+System.register(["foo"], function(exports_1, __moduleName) {
"use strict";
var foo_1;
var x;
diff --git a/tests/baselines/reference/systemModule15.js b/tests/baselines/reference/systemModule15.js
index f8dc11b0ac7..f347ad59671 100644
--- a/tests/baselines/reference/systemModule15.js
+++ b/tests/baselines/reference/systemModule15.js
@@ -34,7 +34,7 @@ export default value;
export var value2 = "v";
//// [file3.js]
-System.register([], function(exports_1) {
+System.register([], function(exports_1, __moduleName) {
"use strict";
var value;
return {
@@ -46,7 +46,7 @@ System.register([], function(exports_1) {
}
});
//// [file4.js]
-System.register([], function(exports_1) {
+System.register([], function(exports_1, __moduleName) {
"use strict";
var value2;
return {
@@ -57,7 +57,7 @@ System.register([], function(exports_1) {
}
});
//// [file2.js]
-System.register(["./file3"], function(exports_1) {
+System.register(["./file3"], function(exports_1, __moduleName) {
"use strict";
var moduleCStar, file3_1, file3_2;
return {
@@ -75,7 +75,7 @@ System.register(["./file3"], function(exports_1) {
}
});
//// [file1.js]
-System.register(["./file2"], function(exports_1) {
+System.register(["./file2"], function(exports_1, __moduleName) {
"use strict";
var moduleB;
return {
diff --git a/tests/baselines/reference/systemModule16.js b/tests/baselines/reference/systemModule16.js
index 76fb85cd3ae..0986218b65d 100644
--- a/tests/baselines/reference/systemModule16.js
+++ b/tests/baselines/reference/systemModule16.js
@@ -13,7 +13,7 @@ x,y,a1,b1,d1;
//// [systemModule16.js]
-System.register(["foo", "bar"], function(exports_1) {
+System.register(["foo", "bar"], function(exports_1, __moduleName) {
"use strict";
var x, y, foo_1;
var exportedNames_1 = {
diff --git a/tests/baselines/reference/systemModule17.js b/tests/baselines/reference/systemModule17.js
index 6daa119d287..b441004408b 100644
--- a/tests/baselines/reference/systemModule17.js
+++ b/tests/baselines/reference/systemModule17.js
@@ -42,7 +42,7 @@ export {II};
export {II as II1};
//// [f1.js]
-System.register([], function(exports_1) {
+System.register([], function(exports_1, __moduleName) {
"use strict";
var A;
return {
@@ -58,7 +58,7 @@ System.register([], function(exports_1) {
}
});
//// [f2.js]
-System.register(["f1"], function(exports_1) {
+System.register(["f1"], function(exports_1, __moduleName) {
"use strict";
var f1_1;
var x, N, IX;
diff --git a/tests/baselines/reference/systemModule2.js b/tests/baselines/reference/systemModule2.js
index ee3dfd327ec..78be2c008e4 100644
--- a/tests/baselines/reference/systemModule2.js
+++ b/tests/baselines/reference/systemModule2.js
@@ -4,7 +4,7 @@ var x = 1;
export = x;
//// [systemModule2.js]
-System.register([], function(exports_1) {
+System.register([], function(exports_1, __moduleName) {
"use strict";
var x;
return {
diff --git a/tests/baselines/reference/systemModule3.js b/tests/baselines/reference/systemModule3.js
index dbef74f3036..9ccc5ea7894 100644
--- a/tests/baselines/reference/systemModule3.js
+++ b/tests/baselines/reference/systemModule3.js
@@ -18,7 +18,7 @@ export default class C {}
export default class {}
//// [file1.js]
-System.register([], function(exports_1) {
+System.register([], function(exports_1, __moduleName) {
"use strict";
function default_1() { }
exports_1("default", default_1);
@@ -29,7 +29,7 @@ System.register([], function(exports_1) {
}
});
//// [file2.js]
-System.register([], function(exports_1) {
+System.register([], function(exports_1, __moduleName) {
"use strict";
function f() { }
exports_1("default", f);
@@ -40,7 +40,7 @@ System.register([], function(exports_1) {
}
});
//// [file3.js]
-System.register([], function(exports_1) {
+System.register([], function(exports_1, __moduleName) {
"use strict";
var C;
return {
@@ -56,7 +56,7 @@ System.register([], function(exports_1) {
}
});
//// [file4.js]
-System.register([], function(exports_1) {
+System.register([], function(exports_1, __moduleName) {
"use strict";
var default_1;
return {
diff --git a/tests/baselines/reference/systemModule4.js b/tests/baselines/reference/systemModule4.js
index 192c87d49ea..526ee5d2c3a 100644
--- a/tests/baselines/reference/systemModule4.js
+++ b/tests/baselines/reference/systemModule4.js
@@ -4,7 +4,7 @@ export var x = 1;
export var y;
//// [systemModule4.js]
-System.register([], function(exports_1) {
+System.register([], function(exports_1, __moduleName) {
"use strict";
var x, y;
return {
diff --git a/tests/baselines/reference/systemModule5.js b/tests/baselines/reference/systemModule5.js
index 4a455f25b13..6d6a8e52823 100644
--- a/tests/baselines/reference/systemModule5.js
+++ b/tests/baselines/reference/systemModule5.js
@@ -4,7 +4,7 @@ export function foo() {}
//// [systemModule5.js]
-System.register([], function(exports_1) {
+System.register([], function(exports_1, __moduleName) {
"use strict";
function foo() { }
exports_1("foo", foo);
diff --git a/tests/baselines/reference/systemModule6.js b/tests/baselines/reference/systemModule6.js
index 51c8fbc68fb..d93b1b861e0 100644
--- a/tests/baselines/reference/systemModule6.js
+++ b/tests/baselines/reference/systemModule6.js
@@ -7,7 +7,7 @@ function foo() {
//// [systemModule6.js]
-System.register([], function(exports_1) {
+System.register([], function(exports_1, __moduleName) {
"use strict";
var C;
function foo() {
diff --git a/tests/baselines/reference/systemModule7.js b/tests/baselines/reference/systemModule7.js
index d76d86a3b0f..6abf76cf075 100644
--- a/tests/baselines/reference/systemModule7.js
+++ b/tests/baselines/reference/systemModule7.js
@@ -11,7 +11,7 @@ export module M {
}
//// [systemModule7.js]
-System.register([], function(exports_1) {
+System.register([], function(exports_1, __moduleName) {
"use strict";
var M;
return {
diff --git a/tests/baselines/reference/systemModule8.js b/tests/baselines/reference/systemModule8.js
index b6cdd677f00..6d48a4a9d45 100644
--- a/tests/baselines/reference/systemModule8.js
+++ b/tests/baselines/reference/systemModule8.js
@@ -31,7 +31,7 @@ export const {a: z0, b: {c: z1}} = {a: true, b: {c: "123"}};
for ([x] of [[1]]) {}
//// [systemModule8.js]
-System.register([], function(exports_1) {
+System.register([], function(exports_1, __moduleName) {
"use strict";
var x, y, z0, z1;
function foo() {
diff --git a/tests/baselines/reference/systemModule9.js b/tests/baselines/reference/systemModule9.js
index 137dd019a02..4804a08fd39 100644
--- a/tests/baselines/reference/systemModule9.js
+++ b/tests/baselines/reference/systemModule9.js
@@ -22,7 +22,7 @@ export {x};
export {y as z};
//// [systemModule9.js]
-System.register(['file1', 'file2', 'file3', 'file4', 'file5', 'file6', 'file7'], function(exports_1) {
+System.register(['file1', 'file2', 'file3', 'file4', 'file5', 'file6', 'file7'], function(exports_1, __moduleName) {
"use strict";
var ns, file2_1, file3_1, file5_1, ns3;
var x, y;
diff --git a/tests/baselines/reference/systemModuleAmbientDeclarations.js b/tests/baselines/reference/systemModuleAmbientDeclarations.js
index 9bdde23a842..35e48fe2aff 100644
--- a/tests/baselines/reference/systemModuleAmbientDeclarations.js
+++ b/tests/baselines/reference/systemModuleAmbientDeclarations.js
@@ -29,7 +29,7 @@ export declare module M { var v: number; }
//// [file1.js]
-System.register([], function(exports_1) {
+System.register([], function(exports_1, __moduleName) {
"use strict";
var promise, foo, c, e;
return {
@@ -44,7 +44,7 @@ System.register([], function(exports_1) {
}
});
//// [file2.js]
-System.register([], function(exports_1) {
+System.register([], function(exports_1, __moduleName) {
"use strict";
return {
setters:[],
@@ -53,7 +53,7 @@ System.register([], function(exports_1) {
}
});
//// [file3.js]
-System.register([], function(exports_1) {
+System.register([], function(exports_1, __moduleName) {
"use strict";
return {
setters:[],
@@ -62,7 +62,7 @@ System.register([], function(exports_1) {
}
});
//// [file4.js]
-System.register([], function(exports_1) {
+System.register([], function(exports_1, __moduleName) {
"use strict";
return {
setters:[],
@@ -71,7 +71,7 @@ System.register([], function(exports_1) {
}
});
//// [file5.js]
-System.register([], function(exports_1) {
+System.register([], function(exports_1, __moduleName) {
"use strict";
return {
setters:[],
@@ -80,7 +80,7 @@ System.register([], function(exports_1) {
}
});
//// [file6.js]
-System.register([], function(exports_1) {
+System.register([], function(exports_1, __moduleName) {
"use strict";
return {
setters:[],
diff --git a/tests/baselines/reference/systemModuleConstEnums.js b/tests/baselines/reference/systemModuleConstEnums.js
index 8b8707768d9..abcd9ca5802 100644
--- a/tests/baselines/reference/systemModuleConstEnums.js
+++ b/tests/baselines/reference/systemModuleConstEnums.js
@@ -13,7 +13,7 @@ module M {
}
//// [systemModuleConstEnums.js]
-System.register([], function(exports_1) {
+System.register([], function(exports_1, __moduleName) {
"use strict";
function foo() {
use(0 /* X */);
diff --git a/tests/baselines/reference/systemModuleConstEnumsSeparateCompilation.js b/tests/baselines/reference/systemModuleConstEnumsSeparateCompilation.js
index 8466d399ac9..5eaa354bc2a 100644
--- a/tests/baselines/reference/systemModuleConstEnumsSeparateCompilation.js
+++ b/tests/baselines/reference/systemModuleConstEnumsSeparateCompilation.js
@@ -13,7 +13,7 @@ module M {
}
//// [systemModuleConstEnumsSeparateCompilation.js]
-System.register([], function(exports_1) {
+System.register([], function(exports_1, __moduleName) {
"use strict";
var TopLevelConstEnum, M;
function foo() {
diff --git a/tests/baselines/reference/systemModuleDeclarationMerging.js b/tests/baselines/reference/systemModuleDeclarationMerging.js
index 5ed029a769a..68dec6f3805 100644
--- a/tests/baselines/reference/systemModuleDeclarationMerging.js
+++ b/tests/baselines/reference/systemModuleDeclarationMerging.js
@@ -10,7 +10,7 @@ export enum E {}
export module E { var x; }
//// [systemModuleDeclarationMerging.js]
-System.register([], function(exports_1) {
+System.register([], function(exports_1, __moduleName) {
"use strict";
var F, C, E;
function F() { }
diff --git a/tests/baselines/reference/systemModuleExportDefault.js b/tests/baselines/reference/systemModuleExportDefault.js
index cf1a99a4ad7..05e23840a51 100644
--- a/tests/baselines/reference/systemModuleExportDefault.js
+++ b/tests/baselines/reference/systemModuleExportDefault.js
@@ -16,7 +16,7 @@ export default class C {}
//// [file1.js]
-System.register([], function(exports_1) {
+System.register([], function(exports_1, __moduleName) {
"use strict";
function default_1() { }
exports_1("default", default_1);
@@ -27,7 +27,7 @@ System.register([], function(exports_1) {
}
});
//// [file2.js]
-System.register([], function(exports_1) {
+System.register([], function(exports_1, __moduleName) {
"use strict";
function foo() { }
exports_1("default", foo);
@@ -38,7 +38,7 @@ System.register([], function(exports_1) {
}
});
//// [file3.js]
-System.register([], function(exports_1) {
+System.register([], function(exports_1, __moduleName) {
"use strict";
var default_1;
return {
@@ -54,7 +54,7 @@ System.register([], function(exports_1) {
}
});
//// [file4.js]
-System.register([], function(exports_1) {
+System.register([], function(exports_1, __moduleName) {
"use strict";
var C;
return {
diff --git a/tests/baselines/reference/systemModuleNonTopLevelModuleMembers.js b/tests/baselines/reference/systemModuleNonTopLevelModuleMembers.js
index ee9858a7fec..3bce3b662ae 100644
--- a/tests/baselines/reference/systemModuleNonTopLevelModuleMembers.js
+++ b/tests/baselines/reference/systemModuleNonTopLevelModuleMembers.js
@@ -13,7 +13,7 @@ export module TopLevelModule2 {
}
//// [systemModuleNonTopLevelModuleMembers.js]
-System.register([], function(exports_1) {
+System.register([], function(exports_1, __moduleName) {
"use strict";
var TopLevelClass, TopLevelModule, TopLevelEnum, TopLevelModule2;
function TopLevelFunction() { }
diff --git a/tests/baselines/reference/systemModuleWithSuperClass.js b/tests/baselines/reference/systemModuleWithSuperClass.js
index fe9c2742f2d..21b262fd217 100644
--- a/tests/baselines/reference/systemModuleWithSuperClass.js
+++ b/tests/baselines/reference/systemModuleWithSuperClass.js
@@ -13,7 +13,7 @@ export class Bar extends Foo {
}
//// [foo.js]
-System.register([], function(exports_1) {
+System.register([], function(exports_1, __moduleName) {
"use strict";
var Foo;
return {
@@ -29,7 +29,7 @@ System.register([], function(exports_1) {
}
});
//// [bar.js]
-System.register(['./foo'], function(exports_1) {
+System.register(['./foo'], function(exports_1, __moduleName) {
"use strict";
var __extends = (this && this.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
diff --git a/tests/baselines/reference/tsxPreserveEmit1.js b/tests/baselines/reference/tsxPreserveEmit1.js
index 7ac6c18ebca..6d795c946c3 100644
--- a/tests/baselines/reference/tsxPreserveEmit1.js
+++ b/tests/baselines/reference/tsxPreserveEmit1.js
@@ -34,7 +34,7 @@ module M {
//// [test.jsx]
-define(["require", "exports", 'react-router'], function (require, exports, ReactRouter) {
+define(["require", "exports", 'react', 'react-router'], function (require, exports, React, ReactRouter) {
"use strict";
var Route = ReactRouter.Route;
var routes1 = ;
diff --git a/tests/baselines/reference/tsxPreserveEmit2.js b/tests/baselines/reference/tsxPreserveEmit2.js
new file mode 100644
index 00000000000..6a87da7b285
--- /dev/null
+++ b/tests/baselines/reference/tsxPreserveEmit2.js
@@ -0,0 +1,10 @@
+//// [test.tsx]
+
+
+var Route: any;
+var routes1 = ;
+
+
+//// [test.jsx]
+var Route;
+var routes1 = ;
diff --git a/tests/baselines/reference/tsxPreserveEmit2.symbols b/tests/baselines/reference/tsxPreserveEmit2.symbols
new file mode 100644
index 00000000000..4013b2e35ea
--- /dev/null
+++ b/tests/baselines/reference/tsxPreserveEmit2.symbols
@@ -0,0 +1,10 @@
+=== tests/cases/conformance/jsx/test.tsx ===
+
+
+var Route: any;
+>Route : Symbol(Route, Decl(test.tsx, 2, 3))
+
+var routes1 = ;
+>routes1 : Symbol(routes1, Decl(test.tsx, 3, 3))
+>Route : Symbol(Route, Decl(test.tsx, 2, 3))
+
diff --git a/tests/baselines/reference/tsxPreserveEmit2.types b/tests/baselines/reference/tsxPreserveEmit2.types
new file mode 100644
index 00000000000..c01f564ff53
--- /dev/null
+++ b/tests/baselines/reference/tsxPreserveEmit2.types
@@ -0,0 +1,11 @@
+=== tests/cases/conformance/jsx/test.tsx ===
+
+
+var Route: any;
+>Route : any
+
+var routes1 = ;
+>routes1 : any
+> : any
+>Route : any
+
diff --git a/tests/baselines/reference/tsxPreserveEmit3.js b/tests/baselines/reference/tsxPreserveEmit3.js
new file mode 100644
index 00000000000..500b7d26c93
--- /dev/null
+++ b/tests/baselines/reference/tsxPreserveEmit3.js
@@ -0,0 +1,24 @@
+//// [tests/cases/conformance/jsx/tsxPreserveEmit3.tsx] ////
+
+//// [file.tsx]
+
+declare module JSX {
+ interface Element { }
+ interface IntrinsicElements {
+ [s: string]: any;
+ }
+}
+
+//// [test.d.ts]
+export var React;
+
+//// [react-consumer.tsx]
+// This import should be elided
+import {React} from "./test";
+
+
+//// [file.jsx]
+//// [react-consumer.jsx]
+define(["require", "exports"], function (require, exports) {
+ "use strict";
+});
diff --git a/tests/baselines/reference/tsxPreserveEmit3.symbols b/tests/baselines/reference/tsxPreserveEmit3.symbols
new file mode 100644
index 00000000000..ab534241049
--- /dev/null
+++ b/tests/baselines/reference/tsxPreserveEmit3.symbols
@@ -0,0 +1,25 @@
+=== tests/cases/conformance/jsx/file.tsx ===
+
+declare module JSX {
+>JSX : Symbol(JSX, Decl(file.tsx, 0, 0))
+
+ interface Element { }
+>Element : Symbol(Element, Decl(file.tsx, 1, 20))
+
+ interface IntrinsicElements {
+>IntrinsicElements : Symbol(IntrinsicElements, Decl(file.tsx, 2, 22))
+
+ [s: string]: any;
+>s : Symbol(s, Decl(file.tsx, 4, 3))
+ }
+}
+
+=== tests/cases/conformance/jsx/test.d.ts ===
+export var React;
+>React : Symbol(React, Decl(test.d.ts, 0, 10))
+
+=== tests/cases/conformance/jsx/react-consumer.tsx ===
+// This import should be elided
+import {React} from "./test";
+>React : Symbol(React, Decl(react-consumer.tsx, 1, 8))
+
diff --git a/tests/baselines/reference/tsxPreserveEmit3.types b/tests/baselines/reference/tsxPreserveEmit3.types
new file mode 100644
index 00000000000..152f742a240
--- /dev/null
+++ b/tests/baselines/reference/tsxPreserveEmit3.types
@@ -0,0 +1,25 @@
+=== tests/cases/conformance/jsx/file.tsx ===
+
+declare module JSX {
+>JSX : any
+
+ interface Element { }
+>Element : Element
+
+ interface IntrinsicElements {
+>IntrinsicElements : IntrinsicElements
+
+ [s: string]: any;
+>s : string
+ }
+}
+
+=== tests/cases/conformance/jsx/test.d.ts ===
+export var React;
+>React : any
+
+=== tests/cases/conformance/jsx/react-consumer.tsx ===
+// This import should be elided
+import {React} from "./test";
+>React : any
+
diff --git a/tests/baselines/reference/tsxReactEmitEntities.js b/tests/baselines/reference/tsxReactEmitEntities.js
index c1fba50fd8f..a20f3380bf7 100644
--- a/tests/baselines/reference/tsxReactEmitEntities.js
+++ b/tests/baselines/reference/tsxReactEmitEntities.js
@@ -8,7 +8,9 @@ declare module JSX {
declare var React: any;
Dot goes here: · ¬AnEntity;
;
+Be careful of "-ed strings!
;
//// [file.js]
React.createElement("div", null, "Dot goes here: ยท ¬AnEntity; ");
+React.createElement("div", null, "Be careful of \"-ed strings!");
diff --git a/tests/baselines/reference/tsxReactEmitEntities.symbols b/tests/baselines/reference/tsxReactEmitEntities.symbols
index b633f57ec13..5a0274029e4 100644
--- a/tests/baselines/reference/tsxReactEmitEntities.symbols
+++ b/tests/baselines/reference/tsxReactEmitEntities.symbols
@@ -19,3 +19,7 @@ declare var React: any;
>div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
>div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+Be careful of "-ed strings!
;
+>div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+
diff --git a/tests/baselines/reference/tsxReactEmitEntities.types b/tests/baselines/reference/tsxReactEmitEntities.types
index d6d6c285d79..111653ea140 100644
--- a/tests/baselines/reference/tsxReactEmitEntities.types
+++ b/tests/baselines/reference/tsxReactEmitEntities.types
@@ -20,3 +20,8 @@ declare var React: any;
>div : any
>div : any
+Be careful of "-ed strings!
;
+>Be careful of "-ed strings!
: JSX.Element
+>div : any
+>div : any
+
diff --git a/tests/cases/conformance/jsx/tsxPreserveEmit2.tsx b/tests/cases/conformance/jsx/tsxPreserveEmit2.tsx
new file mode 100644
index 00000000000..978c96a2019
--- /dev/null
+++ b/tests/cases/conformance/jsx/tsxPreserveEmit2.tsx
@@ -0,0 +1,8 @@
+//@module: amd
+//@jsx: preserve
+//@target: ES5
+
+//@Filename: test.tsx
+
+var Route: any;
+var routes1 = ;
diff --git a/tests/cases/conformance/jsx/tsxPreserveEmit3.tsx b/tests/cases/conformance/jsx/tsxPreserveEmit3.tsx
new file mode 100644
index 00000000000..d7565cacbe2
--- /dev/null
+++ b/tests/cases/conformance/jsx/tsxPreserveEmit3.tsx
@@ -0,0 +1,17 @@
+//@jsx: preserve
+//@module: amd
+
+//@filename: file.tsx
+declare module JSX {
+ interface Element { }
+ interface IntrinsicElements {
+ [s: string]: any;
+ }
+}
+
+//@filename: test.d.ts
+export var React;
+
+//@filename: react-consumer.tsx
+// This import should be elided
+import {React} from "./test";
diff --git a/tests/cases/conformance/jsx/tsxReactEmitEntities.tsx b/tests/cases/conformance/jsx/tsxReactEmitEntities.tsx
index 4b7dc5780f8..4726008d6be 100644
--- a/tests/cases/conformance/jsx/tsxReactEmitEntities.tsx
+++ b/tests/cases/conformance/jsx/tsxReactEmitEntities.tsx
@@ -9,3 +9,4 @@ declare module JSX {
declare var React: any;
Dot goes here: · ¬AnEntity;
;
+Be careful of "-ed strings!
;
diff --git a/tests/cases/fourslash/formattingJsxElements.ts b/tests/cases/fourslash/formattingJsxElements.ts
index fd4ccc504a4..fbe4bb5d29e 100644
--- a/tests/cases/fourslash/formattingJsxElements.ts
+++ b/tests/cases/fourslash/formattingJsxElements.ts
@@ -9,7 +9,7 @@
////
//// )
////}
-////
+////
////function foo1() {
//// return (
////
@@ -45,8 +45,26 @@
//// class3= {/*5*/
//// }/>/*6*/
//// )
+////}
+////
+////(function () {
+//// return
/*danglingBracketAutoformat*/
+////
/*closingTagAutoformat*/
+////})
+////
+////let h5 =
+/////*childJsxElementAutoformat*/
+/////*childJsxElementIndent*/
+/////*grandchildJsxElementAutoformat*/
+/////*containedClosingTagAutoformat*/
+////
format.document();
goTo.marker("autoformat");
@@ -83,3 +101,28 @@ goTo.marker("5");
verify.currentLineContentIs(' class3= {');
goTo.marker("6");
verify.currentLineContentIs(' }/>');
+
+
+goTo.marker("attrAutoformat");
+verify.currentLineContentIs(' className=""');
+goTo.marker("attrIndent");
+verify.indentationIs(8);
+goTo.marker("expressionAutoformat");
+verify.currentLineContentIs(' "abc" + "cde"');
+goTo.marker("expressionIndent");
+verify.indentationIs(12);
+
+goTo.marker("danglingBracketAutoformat")
+// TODO: verify.currentLineContentIs(" >");
+verify.currentLineContentIs(" >");
+goTo.marker("closingTagAutoformat");
+verify.currentLineContentIs("
");
+
+goTo.marker("childJsxElementAutoformat");
+verify.currentLineContentIs(" ");
+goTo.marker("childJsxElementIndent");
+verify.indentationIs(8);
+goTo.marker("grandchildJsxElementAutoformat");
+verify.currentLineContentIs(" ");
+goTo.marker("containedClosingTagAutoformat");
+verify.currentLineContentIs(" ");
\ No newline at end of file
diff --git a/tests/cases/unittests/transpile.ts b/tests/cases/unittests/transpile.ts
index 513d37673bb..882b4e2094b 100644
--- a/tests/cases/unittests/transpile.ts
+++ b/tests/cases/unittests/transpile.ts
@@ -134,7 +134,7 @@ var x = 0;`,
it("Sets module name", () => {
let output =
- `System.register("NamedModule", [], function(exports_1) {\n "use strict";\n var x;\n` +
+ `System.register("NamedModule", [], function(exports_1, __moduleName) {\n "use strict";\n var x;\n` +
` return {\n` +
` setters:[],\n` +
` execute: function() {\n` +
@@ -159,7 +159,7 @@ var x = 0;`,
`declare function use(a: any);\n` +
`use(foo);`
let output =
- `System.register(["SomeOtherName"], function(exports_1) {\n` +
+ `System.register(["SomeOtherName"], function(exports_1, __moduleName) {\n` +
` "use strict";\n` +
` var SomeName_1;\n` +
` return {\n` +
diff --git a/tslint.json b/tslint.json
index 71efb21ad7b..2d2e42d4383 100644
--- a/tslint.json
+++ b/tslint.json
@@ -42,6 +42,7 @@
"boolean-trivia": true,
"type-operator-spacing": true,
"prefer-const": true,
- "no-in-operator": true
+ "no-in-operator": true,
+ "no-increment-decrement": true
}
}