diff --git a/Jakefile b/Jakefile index 324356a4af5..3a19812b958 100644 --- a/Jakefile +++ b/Jakefile @@ -252,6 +252,8 @@ function compileFile(outFile, sources, prereqs, prefixes, useBuiltCompiler, noOu options += " --stripInternal" } + options += " --cacheDownlevelForOfLength --preserveNewLines"; + var cmd = host + " " + dir + compilerFilename + " " + options + " "; cmd = cmd + sources.join(" "); console.log(cmd + "\n"); diff --git a/bin/tsc.js b/bin/tsc.js index a19101dc546..1d7c008595d 100644 --- a/bin/tsc.js +++ b/bin/tsc.js @@ -44,8 +44,9 @@ var ts; ts.forEach = forEach; function contains(array, value) { if (array) { - for (var i = 0, len = array.length; i < len; i++) { - if (array[i] === value) { + for (var _i = 0, _n = array.length; _i < _n; _i++) { + var v = array[_i]; + if (v === value) { return true; } } @@ -67,8 +68,9 @@ var ts; function countWhere(array, predicate) { var count = 0; if (array) { - for (var i = 0, len = array.length; i < len; i++) { - if (predicate(array[i])) { + for (var _i = 0, _n = array.length; _i < _n; _i++) { + var v = array[_i]; + if (predicate(v)) { count++; } } @@ -77,12 +79,13 @@ var ts; } ts.countWhere = countWhere; function filter(array, f) { + var result; if (array) { - var result = []; - for (var i = 0, len = array.length; i < len; i++) { - var item = array[i]; - if (f(item)) { - result.push(item); + result = []; + for (var _i = 0, _n = array.length; _i < _n; _i++) { + var _item = array[_i]; + if (f(_item)) { + result.push(_item); } } } @@ -90,10 +93,12 @@ var ts; } ts.filter = filter; function map(array, f) { + var result; if (array) { - var result = []; - for (var i = 0, len = array.length; i < len; i++) { - result.push(f(array[i])); + result = []; + for (var _i = 0, _n = array.length; _i < _n; _i++) { + var v = array[_i]; + result.push(f(v)); } } return result; @@ -108,12 +113,14 @@ var ts; } ts.concatenate = concatenate; function deduplicate(array) { + var result; if (array) { - var result = []; - for (var i = 0, len = array.length; i < len; i++) { - var item = array[i]; - if (!contains(result, item)) - result.push(item); + result = []; + for (var _i = 0, _n = array.length; _i < _n; _i++) { + var _item = array[_i]; + if (!contains(result, _item)) { + result.push(_item); + } } } return result; @@ -121,15 +128,17 @@ var ts; ts.deduplicate = deduplicate; function sum(array, prop) { var result = 0; - for (var i = 0; i < array.length; i++) { - result += array[i][prop]; + for (var _i = 0, _n = array.length; _i < _n; _i++) { + var v = array[_i]; + result += v[prop]; } return result; } ts.sum = sum; function addRange(to, from) { - for (var i = 0, n = from.length; i < n; i++) { - to.push(from[i]); + for (var _i = 0, _n = from.length; _i < _n; _i++) { + var v = from[_i]; + to.push(v); } } ts.addRange = addRange; @@ -190,9 +199,9 @@ var ts; for (var id in first) { result[id] = first[id]; } - for (var id in second) { - if (!hasProperty(result, id)) { - result[id] = second[id]; + for (var _id in second) { + if (!hasProperty(result, _id)) { + result[_id] = second[_id]; } } return result; @@ -394,8 +403,8 @@ var ts; function getNormalizedParts(normalizedSlashedPath, rootLength) { var parts = normalizedSlashedPath.substr(rootLength).split(ts.directorySeparator); var normalized = []; - for (var i = 0; i < parts.length; i++) { - var part = parts[i]; + for (var _i = 0, _n = parts.length; _i < _n; _i++) { + var part = parts[_i]; if (part !== ".") { if (part === ".." && normalized.length > 0 && normalized[normalized.length - 1] !== "..") { normalized.pop(); @@ -410,7 +419,7 @@ var ts; return normalized; } function normalizePath(path) { - var path = normalizeSlashes(path); + path = normalizeSlashes(path); var rootLength = getRootLength(path); var normalized = getNormalizedParts(path, rootLength); return path.substr(0, rootLength) + normalized.join(ts.directorySeparator); @@ -433,7 +442,7 @@ var ts; return [path.substr(0, rootLength)].concat(normalizedParts); } function getNormalizedPathComponents(path, currentDirectory) { - var path = normalizeSlashes(path); + path = normalizeSlashes(path); var rootLength = getRootLength(path); if (rootLength == 0) { path = combinePaths(normalizeSlashes(currentDirectory), path); @@ -536,8 +545,8 @@ var ts; ts.fileExtensionIs = fileExtensionIs; var supportedExtensions = [".d.ts", ".ts", ".js"]; function removeFileExtension(path) { - for (var i = 0; i < supportedExtensions.length; i++) { - var ext = supportedExtensions[i]; + for (var _i = 0, _n = supportedExtensions.length; _i < _n; _i++) { + var ext = supportedExtensions[_i]; if (fileExtensionIs(path, ext)) { return path.substr(0, path.length - ext.length); } @@ -688,15 +697,16 @@ var ts; function visitDirectory(path) { var folder = fso.GetFolder(path || "."); var files = getNames(folder.files); - for (var i = 0; i < files.length; i++) { - var name = files[i]; - if (!extension || ts.fileExtensionIs(name, extension)) { - result.push(ts.combinePaths(path, name)); + for (var _i = 0, _n = files.length; _i < _n; _i++) { + var _name = files[_i]; + if (!extension || ts.fileExtensionIs(_name, extension)) { + result.push(ts.combinePaths(path, _name)); } } var subfolders = getNames(folder.subfolders); - for (var i = 0; i < subfolders.length; i++) { - visitDirectory(ts.combinePaths(path, subfolders[i])); + for (var _a = 0, _b = subfolders.length; _a < _b; _a++) { + var current = subfolders[_a]; + visitDirectory(ts.combinePaths(path, current)); } } } @@ -781,8 +791,9 @@ var ts; function visitDirectory(path) { var files = _fs.readdirSync(path || ".").sort(); var directories = []; - for (var i = 0; i < files.length; i++) { - var name = ts.combinePaths(path, files[i]); + for (var _i = 0, _n = files.length; _i < _n; _i++) { + var current = files[_i]; + var name = ts.combinePaths(path, current); var stat = _fs.lstatSync(name); if (stat.isFile()) { if (!extension || ts.fileExtensionIs(name, extension)) { @@ -793,8 +804,9 @@ var ts; directories.push(name); } } - for (var i = 0; i < directories.length; i++) { - visitDirectory(directories[i]); + for (var _a = 0, _b = directories.length; _a < _b; _a++) { + var _current = directories[_a]; + visitDirectory(_current); } } } @@ -1506,9 +1518,9 @@ var ts; } function makeReverseMap(source) { var result = []; - for (var name in source) { - if (source.hasOwnProperty(name)) { - result[source[name]] = name; + for (var _name in source) { + if (source.hasOwnProperty(_name)) { + result[source[_name]] = _name; } } return result; @@ -1684,8 +1696,8 @@ var ts; else { ts.Debug.assert(ch === 61); while (pos < len) { - var ch = text.charCodeAt(pos); - if (ch === 62 && isConflictMarkerTrivia(text, pos)) { + var _ch = text.charCodeAt(pos); + if (_ch === 62 && isConflictMarkerTrivia(text, pos)) { break; } pos++; @@ -2083,8 +2095,8 @@ var ts; return result; } function getIdentifierToken() { - var len = tokenValue.length; - if (len >= 2 && len <= 11) { + var _len = tokenValue.length; + if (_len >= 2 && _len <= 11) { var ch = tokenValue.charCodeAt(0); if (ch >= 97 && ch <= 122 && hasOwnProperty.call(textToToken, tokenValue)) { return token = textToToken[tokenValue]; @@ -2236,13 +2248,13 @@ var ts; pos += 2; var commentClosed = false; while (pos < len) { - var ch = text.charCodeAt(pos); - if (ch === 42 && text.charCodeAt(pos + 1) === 47) { + var _ch = text.charCodeAt(pos); + if (_ch === 42 && text.charCodeAt(pos + 1) === 47) { pos += 2; commentClosed = true; break; } - if (isLineBreak(ch)) { + if (isLineBreak(_ch)) { precedingLineBreak = true; } pos++; @@ -2275,22 +2287,22 @@ var ts; } else if (pos + 2 < len && (text.charCodeAt(pos + 1) === 66 || text.charCodeAt(pos + 1) === 98)) { pos += 2; - var value = scanBinaryOrOctalDigits(2); - if (value < 0) { + var _value = scanBinaryOrOctalDigits(2); + if (_value < 0) { error(ts.Diagnostics.Binary_digit_expected); - value = 0; + _value = 0; } - tokenValue = "" + value; + tokenValue = "" + _value; return token = 7; } else if (pos + 2 < len && (text.charCodeAt(pos + 1) === 79 || text.charCodeAt(pos + 1) === 111)) { pos += 2; - var value = scanBinaryOrOctalDigits(8); - if (value < 0) { + var _value_1 = scanBinaryOrOctalDigits(8); + if (_value_1 < 0) { error(ts.Diagnostics.Octal_digit_expected); - value = 0; + _value_1 = 0; } - tokenValue = "" + value; + tokenValue = "" + _value_1; return token = 7; } if (pos + 1 < len && isOctalDigit(text.charCodeAt(pos + 1))) { @@ -2389,10 +2401,10 @@ var ts; case 126: return pos++, token = 47; case 92: - var ch = peekUnicodeEscape(); - if (ch >= 0 && isIdentifierStart(ch)) { + var cookedChar = peekUnicodeEscape(); + if (cookedChar >= 0 && isIdentifierStart(cookedChar)) { pos += 6; - tokenValue = String.fromCharCode(ch) + scanIdentifierParts(); + tokenValue = String.fromCharCode(cookedChar) + scanIdentifierParts(); return token = getIdentifierToken(); } error(ts.Diagnostics.Invalid_character); @@ -2556,8 +2568,8 @@ var ts; (function (ts) { function getDeclarationOfKind(symbol, kind) { var declarations = symbol.declarations; - for (var i = 0; i < declarations.length; i++) { - var declaration = declarations[i]; + for (var _i = 0, _n = declarations.length; _i < _n; _i++) { + var declaration = declarations[_i]; if (declaration.kind === kind) { return declaration; } @@ -3039,8 +3051,8 @@ var ts; } case 7: case 8: - var parent = node.parent; - switch (parent.kind) { + var _parent = node.parent; + switch (_parent.kind) { case 193: case 128: case 130: @@ -3048,7 +3060,7 @@ var ts; case 220: case 218: case 150: - return parent.initializer === node; + return _parent.initializer === node; case 177: case 178: case 179: @@ -3059,25 +3071,25 @@ var ts; case 214: case 190: case 188: - return parent.expression === node; + return _parent.expression === node; case 181: - var forStatement = parent; + var forStatement = _parent; return (forStatement.initializer === node && forStatement.initializer.kind !== 194) || forStatement.condition === node || forStatement.iterator === node; case 182: case 183: - var forInStatement = parent; + var forInStatement = _parent; return (forInStatement.initializer === node && forInStatement.initializer.kind !== 194) || forInStatement.expression === node; case 158: - return node === parent.expression; + return node === _parent.expression; case 173: - return node === parent.expression; + return node === _parent.expression; case 126: - return node === parent.expression; + return node === _parent.expression; default: - if (isExpression(parent)) { + if (isExpression(_parent)) { return true; } } @@ -3236,14 +3248,14 @@ var ts; if (name.kind !== 64 && name.kind !== 8 && name.kind !== 7) { return false; } - var parent = name.parent; - if (parent.kind === 208 || parent.kind === 212) { - if (parent.propertyName) { + var _parent = name.parent; + if (_parent.kind === 208 || _parent.kind === 212) { + if (_parent.propertyName) { return true; } } - if (isDeclaration(parent)) { - return parent.name === name; + if (isDeclaration(_parent)) { + return _parent.name === name; } return false; } @@ -3265,9 +3277,10 @@ var ts; ts.getInterfaceBaseTypeNodes = getInterfaceBaseTypeNodes; function getHeritageClause(clauses, kind) { if (clauses) { - for (var i = 0, n = clauses.length; i < n; i++) { - if (clauses[i].token === kind) { - return clauses[i]; + for (var _i = 0, _n = clauses.length; _i < _n; _i++) { + var clause = clauses[_i]; + if (clause.token === kind) { + return clause; } } } @@ -3508,7 +3521,7 @@ var ts; ts.createSynthesizedNode = createSynthesizedNode; function generateUniqueName(baseName, isExistingName) { if (baseName.charCodeAt(0) !== 95) { - var baseName = "_" + baseName; + baseName = "_" + baseName; if (!isExistingName(baseName)) { return baseName; } @@ -3518,9 +3531,9 @@ var ts; } var i = 1; while (true) { - var name = baseName + i; - if (!isExistingName(name)) { - return name; + var _name = baseName + i; + if (!isExistingName(_name)) { + return _name; } i++; } @@ -3651,8 +3664,9 @@ var ts; } function visitEachNode(cbNode, nodes) { if (nodes) { - for (var i = 0, len = nodes.length; i < len; i++) { - var result = cbNode(nodes[i]); + for (var _i = 0, _n = nodes.length; _i < _n; _i++) { + var node = nodes[_i]; + var result = cbNode(node); if (result) { return result; } @@ -3953,16 +3967,16 @@ var ts; } ts.modifierToFlag = modifierToFlag; function fixupParentReferences(sourceFile) { - var parent = sourceFile; + var _parent = sourceFile; forEachChild(sourceFile, visitNode); return; function visitNode(n) { - if (n.parent !== parent) { - n.parent = parent; - var saveParent = parent; - parent = n; + if (n.parent !== _parent) { + n.parent = _parent; + var saveParent = _parent; + _parent = n; forEachChild(n, visitNode); - parent = saveParent; + _parent = saveParent; } } } @@ -4000,8 +4014,9 @@ var ts; array._children = undefined; array.pos += delta; array.end += delta; - for (var i = 0, n = array.length; i < n; i++) { - visitNode(array[i]); + for (var _i = 0, _n = array.length; _i < _n; _i++) { + var node = array[_i]; + visitNode(node); } } } @@ -4063,8 +4078,9 @@ var ts; array.intersectsChange = true; array._children = undefined; adjustIntersectingElement(array, changeStart, changeRangeOldEnd, changeRangeNewEnd, delta); - for (var i = 0, n = array.length; i < n; i++) { - visitNode(array[i]); + for (var _i = 0, _n = array.length; _i < _n; _i++) { + var node = array[_i]; + visitNode(node); } return; } @@ -4357,8 +4373,8 @@ var ts; } function parseErrorAtCurrentToken(message, arg0) { var start = scanner.getTokenPos(); - var length = scanner.getTextPos() - start; - parseErrorAtPosition(start, length, message, arg0); + var _length = scanner.getTextPos() - start; + parseErrorAtPosition(start, _length, message, arg0); } function parseErrorAtPosition(start, length, message, arg0) { var lastError = ts.lastOrUndefined(sourceFile.parseDiagnostics); @@ -5184,11 +5200,11 @@ var ts; } function parsePropertyOrMethodSignature() { var fullStart = scanner.getStartPos(); - var name = parsePropertyName(); + var _name = parsePropertyName(); var questionToken = parseOptionalToken(50); if (token === 16 || token === 24) { var method = createNode(131, fullStart); - method.name = name; + method.name = _name; method.questionToken = questionToken; fillSignature(51, false, false, method); parseTypeMemberSemicolon(); @@ -5196,7 +5212,7 @@ var ts; } else { var property = createNode(129, fullStart); - property.name = name; + property.name = _name; property.questionToken = questionToken; property.type = parseTypeAnnotation(); parseTypeMemberSemicolon(); @@ -5523,6 +5539,11 @@ var ts; nextToken(); return !scanner.hasPrecedingLineBreak() && isIdentifier(); } + function nextTokenIsIdentifierOrStartOfDestructuringOnTheSameLine() { + nextToken(); + return !scanner.hasPrecedingLineBreak() && + (isIdentifier() || token === 14 || token === 18); + } function parseYieldExpression() { var node = createNode(170); nextToken(); @@ -5859,10 +5880,10 @@ var ts; continue; } else if (token === 16) { - var callExpr = createNode(155, expression.pos); - callExpr.expression = expression; - callExpr.arguments = parseArgumentList(); - expression = finishNode(callExpr); + var _callExpr = createNode(155, expression.pos); + _callExpr.expression = expression; + _callExpr.arguments = parseArgumentList(); + expression = finishNode(_callExpr); continue; } return expression; @@ -6516,15 +6537,15 @@ var ts; } function parsePropertyOrMethodDeclaration(fullStart, modifiers) { var asteriskToken = parseOptionalToken(35); - var name = parsePropertyName(); + var _name = parsePropertyName(); var questionToken = parseOptionalToken(50); if (asteriskToken || token === 16 || token === 24) { - return parseMethodDeclaration(fullStart, modifiers, asteriskToken, name, questionToken, ts.Diagnostics.or_expected); + return parseMethodDeclaration(fullStart, modifiers, asteriskToken, _name, questionToken, ts.Diagnostics.or_expected); } else { var property = createNode(130, fullStart); setModifiers(property, modifiers); - property.name = name; + property.name = _name; property.questionToken = questionToken; property.type = parseTypeAnnotation(); property.initializer = allowInAnd(parseNonParameterInitializer); @@ -6881,7 +6902,7 @@ var ts; return finishNode(node); } function isLetDeclaration() { - return inStrictModeContext() || lookAhead(nextTokenIsIdentifierOnSameLine); + return inStrictModeContext() || lookAhead(nextTokenIsIdentifierOrStartOfDestructuringOnTheSameLine); } function isDeclarationStart() { switch (token) { @@ -7131,7 +7152,7 @@ var ts; } ts.bindSourceFile = bindSourceFile; function bindSourceFileWorker(file) { - var parent; + var _parent; var container; var blockScopeContainer; var lastContainer; @@ -7204,9 +7225,10 @@ var ts; } function declareSymbol(symbols, parent, node, includes, excludes) { ts.Debug.assert(!ts.hasDynamicName(node)); - var name = node.flags & 256 && parent ? "default" : getDeclarationName(node); - if (name !== undefined) { - var symbol = ts.hasProperty(symbols, name) ? symbols[name] : (symbols[name] = createSymbol(0, name)); + var _name = node.flags & 256 && parent ? "default" : getDeclarationName(node); + var symbol; + if (_name !== undefined) { + symbol = ts.hasProperty(symbols, _name) ? symbols[_name] : (symbols[_name] = createSymbol(0, _name)); if (symbol.flags & excludes) { if (node.name) { node.name.parent = node; @@ -7218,7 +7240,7 @@ var ts; file.bindDiagnostics.push(ts.createDiagnosticForNode(declaration.name || declaration, message, getDisplayName(declaration))); }); file.bindDiagnostics.push(ts.createDiagnosticForNode(node.name || node, message, getDisplayName(node))); - symbol = createSymbol(0, name); + symbol = createSymbol(0, _name); } } else { @@ -7275,10 +7297,10 @@ var ts; if (symbolKind & 255504) { node.locals = {}; } - var saveParent = parent; + var saveParent = _parent; var saveContainer = container; var savedBlockScopeContainer = blockScopeContainer; - parent = node; + _parent = node; if (symbolKind & 262128) { container = node; if (lastContainer) { @@ -7291,7 +7313,7 @@ var ts; } ts.forEachChild(node, bind); container = saveContainer; - parent = saveParent; + _parent = saveParent; blockScopeContainer = savedBlockScopeContainer; } function bindDeclaration(node, symbolKind, symbolExcludes, isBlockScopeContainer) { @@ -7394,7 +7416,7 @@ var ts; return "__" + ts.indexOf(node.parent.parameters, node); } function bind(node) { - node.parent = parent; + node.parent = _parent; switch (node.kind) { case 127: bindDeclaration(node, 262144, 530912, false); @@ -7528,10 +7550,10 @@ var ts; bindChildren(node, 0, true); break; default: - var saveParent = parent; - parent = node; + var saveParent = _parent; + _parent = node; ts.forEachChild(node, bind); - parent = saveParent; + _parent = saveParent; } } function bindParameter(node) { @@ -7574,6 +7596,8 @@ var ts; var compilerOptions = host.getCompilerOptions(); var languageVersion = compilerOptions.target || 0; var emitResolver = createResolver(); + var undefinedSymbol = createSymbol(4 | 67108864, "undefined"); + var argumentsSymbol = createSymbol(4 | 67108864, "arguments"); var checker = { getNodeCount: function () { return ts.sum(host.getSourceFiles(), "nodeCount"); }, getIdentifierCount: function () { return ts.sum(host.getSourceFiles(), "identifierCount"); }, @@ -7610,8 +7634,6 @@ var ts; getEmitResolver: getEmitResolver, getExportsOfExternalModule: getExportsOfExternalModule }; - var undefinedSymbol = createSymbol(4 | 67108864, "undefined"); - var argumentsSymbol = createSymbol(4 | 67108864, "arguments"); var unknownSymbol = createSymbol(4 | 67108864, "unknown"); var resolvingSymbol = createSymbol(67108864, "__resolving__"); var anyType = createIntrinsicType(1, "any"); @@ -8018,11 +8040,11 @@ var ts; function getExternalModuleMember(node, specifier) { var moduleSymbol = resolveExternalModuleName(node, node.moduleSpecifier); if (moduleSymbol) { - var name = specifier.propertyName || specifier.name; - if (name.text) { - var symbol = getSymbol(getExportsOfSymbol(moduleSymbol), name.text, 107455 | 793056 | 1536); + var _name = specifier.propertyName || specifier.name; + if (_name.text) { + var symbol = getSymbol(getExportsOfSymbol(moduleSymbol), _name.text, 107455 | 793056 | 1536); if (!symbol) { - error(name, ts.Diagnostics.Module_0_has_no_exported_member_1, getFullyQualifiedName(moduleSymbol), ts.declarationNameToString(name)); + error(_name, ts.Diagnostics.Module_0_has_no_exported_member_1, getFullyQualifiedName(moduleSymbol), ts.declarationNameToString(_name)); return; } return symbol.flags & (107455 | 793056 | 1536) ? symbol : resolveAlias(symbol); @@ -8121,8 +8143,9 @@ var ts; if (ts.getFullWidth(name) === 0) { return undefined; } + var symbol; if (name.kind === 64) { - var symbol = resolveName(name, name.text, meaning, ts.Diagnostics.Cannot_find_name_0, name); + symbol = resolveName(name, name.text, meaning, ts.Diagnostics.Cannot_find_name_0, name); if (!symbol) { return undefined; } @@ -8133,7 +8156,7 @@ var ts; return undefined; } var right = name.right; - var symbol = getSymbol(getExportsOfSymbol(namespace), right.text, meaning); + symbol = getSymbol(getExportsOfSymbol(namespace), right.text, meaning); if (!symbol) { error(right, ts.Diagnostics.Module_0_has_no_exported_member_1, getFullyQualifiedName(namespace), ts.declarationNameToString(right)); return undefined; @@ -8161,14 +8184,17 @@ var ts; return symbol; } } + var sourceFile; while (true) { var fileName = ts.normalizePath(ts.combinePaths(searchPath, moduleName)); - var sourceFile = host.getSourceFile(fileName + ".ts") || host.getSourceFile(fileName + ".d.ts"); - if (sourceFile || isRelative) + sourceFile = host.getSourceFile(fileName + ".ts") || host.getSourceFile(fileName + ".d.ts"); + if (sourceFile || isRelative) { break; + } var parentPath = ts.getDirectoryPath(searchPath); - if (parentPath === searchPath) + if (parentPath === searchPath) { break; + } searchPath = parentPath; } if (sourceFile) { @@ -8268,8 +8294,8 @@ var ts; } function findConstructorDeclaration(node) { var members = node.members; - for (var i = 0; i < members.length; i++) { - var member = members[i]; + for (var _i = 0, _n = members.length; _i < _n; _i++) { + var member = members[_i]; if (member.kind === 133 && ts.nodeIsPresent(member.body)) { return member; } @@ -8328,25 +8354,25 @@ var ts; } function forEachSymbolTableInScope(enclosingDeclaration, callback) { var result; - for (var location = enclosingDeclaration; location; location = location.parent) { - if (location.locals && !isGlobalSourceFile(location)) { - if (result = callback(location.locals)) { + for (var _location = enclosingDeclaration; _location; _location = _location.parent) { + if (_location.locals && !isGlobalSourceFile(_location)) { + if (result = callback(_location.locals)) { return result; } } - switch (location.kind) { + switch (_location.kind) { case 221: - if (!ts.isExternalModule(location)) { + if (!ts.isExternalModule(_location)) { break; } case 200: - if (result = callback(getSymbolOfNode(location).exports)) { + if (result = callback(getSymbolOfNode(_location).exports)) { return result; } break; case 196: case 197: - if (result = callback(getSymbolOfNode(location).members)) { + if (result = callback(getSymbolOfNode(_location).members)) { return result; } break; @@ -8587,8 +8613,9 @@ var ts; walkSymbol(getParentOfSymbol(accessibleSymbolChain ? accessibleSymbolChain[0] : symbol), getQualifiedLeftMeaning(meaning)); } if (accessibleSymbolChain) { - for (var i = 0, n = accessibleSymbolChain.length; i < n; i++) { - appendParentTypeArgumentsAndSymbolName(accessibleSymbolChain[i]); + for (var _i = 0, _n = accessibleSymbolChain.length; _i < _n; _i++) { + var accessibleSymbol = accessibleSymbolChain[_i]; + appendParentTypeArgumentsAndSymbolName(accessibleSymbol); } } else { @@ -8770,15 +8797,17 @@ var ts; writePunctuation(writer, 14); writer.writeLine(); writer.increaseIndent(); - for (var i = 0; i < resolved.callSignatures.length; i++) { - buildSignatureDisplay(resolved.callSignatures[i], writer, enclosingDeclaration, globalFlagsToPass, typeStack); + for (var _i = 0, _a = resolved.callSignatures, _n = _a.length; _i < _n; _i++) { + var signature = _a[_i]; + buildSignatureDisplay(signature, writer, enclosingDeclaration, globalFlagsToPass, typeStack); writePunctuation(writer, 22); writer.writeLine(); } - for (var i = 0; i < resolved.constructSignatures.length; i++) { + for (var _b = 0, _c = resolved.constructSignatures, _d = _c.length; _b < _d; _b++) { + var _signature = _c[_b]; writeKeyword(writer, 87); writeSpace(writer); - buildSignatureDisplay(resolved.constructSignatures[i], writer, enclosingDeclaration, globalFlagsToPass, typeStack); + buildSignatureDisplay(_signature, writer, enclosingDeclaration, globalFlagsToPass, typeStack); writePunctuation(writer, 22); writer.writeLine(); } @@ -8808,17 +8837,18 @@ var ts; writePunctuation(writer, 22); writer.writeLine(); } - for (var i = 0; i < resolved.properties.length; i++) { - var p = resolved.properties[i]; + for (var _e = 0, _f = resolved.properties, _g = _f.length; _e < _g; _e++) { + var p = _f[_e]; var t = getTypeOfSymbol(p); if (p.flags & (16 | 8192) && !getPropertiesOfObjectType(t).length) { var signatures = getSignaturesOfType(t, 0); - for (var j = 0; j < signatures.length; j++) { + for (var _h = 0, _j = signatures.length; _h < _j; _h++) { + var _signature_1 = signatures[_h]; buildSymbolDisplay(p, writer); if (p.flags & 536870912) { writePunctuation(writer, 50); } - buildSignatureDisplay(signatures[j], writer, enclosingDeclaration, globalFlagsToPass, typeStack); + buildSignatureDisplay(_signature_1, writer, enclosingDeclaration, globalFlagsToPass, typeStack); writePunctuation(writer, 22); writer.writeLine(); } @@ -8956,10 +8986,11 @@ var ts; } function isUsedInExportAssignment(node) { var externalModule = getContainingExternalModule(node); + var exportAssignmentSymbol; + var resolvedExportSymbol; if (externalModule) { var externalModuleSymbol = getSymbolOfNode(externalModule); - var exportAssignmentSymbol = getExportAssignmentSymbol(externalModuleSymbol); - var resolvedExportSymbol; + exportAssignmentSymbol = getExportAssignmentSymbol(externalModuleSymbol); var symbolOfNode = getSymbolOfNode(node); if (isSymbolUsedInExportAssignment(symbolOfNode)) { return true; @@ -8999,12 +9030,12 @@ var ts; case 195: case 199: case 203: - var parent = getDeclarationContainer(node); + var _parent = getDeclarationContainer(node); if (!(ts.getCombinedNodeFlags(node) & 1) && - !(node.kind !== 203 && parent.kind !== 221 && ts.isInAmbientContext(parent))) { - return isGlobalSourceFile(parent) || isUsedInExportAssignment(node); + !(node.kind !== 203 && _parent.kind !== 221 && ts.isInAmbientContext(_parent))) { + return isGlobalSourceFile(_parent) || isUsedInExportAssignment(node); } - return isDeclarationVisible(parent); + return isDeclarationVisible(_parent); case 130: case 129: case 134: @@ -9074,13 +9105,14 @@ var ts; } return parentType; } + var type; if (pattern.kind === 148) { - var name = declaration.propertyName || declaration.name; - var type = getTypeOfPropertyOfType(parentType, name.text) || - isNumericLiteralName(name.text) && getIndexTypeOfType(parentType, 1) || + var _name = declaration.propertyName || declaration.name; + type = getTypeOfPropertyOfType(parentType, _name.text) || + isNumericLiteralName(_name.text) && getIndexTypeOfType(parentType, 1) || getIndexTypeOfType(parentType, 0); if (!type) { - error(name, ts.Diagnostics.Type_0_has_no_property_1_and_no_string_index_signature, typeToString(parentType), ts.declarationNameToString(name)); + error(_name, ts.Diagnostics.Type_0_has_no_property_1_and_no_string_index_signature, typeToString(parentType), ts.declarationNameToString(_name)); return unknownType; } } @@ -9091,7 +9123,7 @@ var ts; } if (!declaration.dotDotDotToken) { var propName = "" + ts.indexOf(pattern.elements, declaration); - var type = isTupleLikeType(parentType) ? getTypeOfPropertyOfType(parentType, propName) : getIndexTypeOfType(parentType, 1); + type = isTupleLikeType(parentType) ? getTypeOfPropertyOfType(parentType, propName) : getIndexTypeOfType(parentType, 1); if (!type) { if (isTupleType(parentType)) { error(declaration, ts.Diagnostics.Tuple_type_0_with_length_1_cannot_be_assigned_to_tuple_with_length_2, typeToString(parentType), parentType.elementTypes.length, pattern.elements.length); @@ -9103,7 +9135,7 @@ var ts; } } else { - var type = createArrayType(getIndexTypeOfType(parentType, 1)); + type = createArrayType(getIndexTypeOfType(parentType, 1)); } } return type; @@ -9155,8 +9187,8 @@ var ts; var members = {}; ts.forEach(pattern.elements, function (e) { var flags = 4 | 67108864 | (e.initializer ? 536870912 : 0); - var name = e.propertyName || e.name; - var symbol = createSymbol(flags, name.text); + var _name = e.propertyName || e.name; + var symbol = createSymbol(flags, _name.text); symbol.type = getTypeFromBindingElement(e); members[symbol.name] = symbol; }); @@ -9283,8 +9315,8 @@ var ts; else if (links.type === resolvingType) { links.type = anyType; if (compilerOptions.noImplicitAny) { - var getter = ts.getDeclarationOfKind(symbol, 134); - error(getter, ts.Diagnostics._0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions, symbolToString(symbol)); + var _getter = ts.getDeclarationOfKind(symbol, 134); + error(_getter, ts.Diagnostics._0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions, symbolToString(symbol)); } } } @@ -9461,8 +9493,8 @@ var ts; } else if (links.declaredType === resolvingType) { links.declaredType = unknownType; - var declaration = ts.getDeclarationOfKind(symbol, 198); - error(declaration.name, ts.Diagnostics.Type_alias_0_circularly_references_itself, symbolToString(symbol)); + var _declaration = ts.getDeclarationOfKind(symbol, 198); + error(_declaration.name, ts.Diagnostics.Type_alias_0_circularly_references_itself, symbolToString(symbol)); } return links.declaredType; } @@ -9518,23 +9550,23 @@ var ts; } function createSymbolTable(symbols) { var result = {}; - for (var i = 0; i < symbols.length; i++) { - var symbol = symbols[i]; + for (var _i = 0, _n = symbols.length; _i < _n; _i++) { + var symbol = symbols[_i]; result[symbol.name] = symbol; } return result; } function createInstantiatedSymbolTable(symbols, mapper) { var result = {}; - for (var i = 0; i < symbols.length; i++) { - var symbol = symbols[i]; + for (var _i = 0, _n = symbols.length; _i < _n; _i++) { + var symbol = symbols[_i]; result[symbol.name] = instantiateSymbol(symbol, mapper); } return result; } function addInheritedMembers(symbols, baseSymbols) { - for (var i = 0; i < baseSymbols.length; i++) { - var s = baseSymbols[i]; + for (var _i = 0, _n = baseSymbols.length; _i < _n; _i++) { + var s = baseSymbols[_i]; if (!ts.hasProperty(symbols, s.name)) { symbols[s.name] = s; } @@ -9542,8 +9574,9 @@ var ts; } function addInheritedSignatures(signatures, baseSignatures) { if (baseSignatures) { - for (var i = 0; i < baseSignatures.length; i++) { - signatures.push(baseSignatures[i]); + for (var _i = 0, _n = baseSignatures.length; _i < _n; _i++) { + var signature = baseSignatures[_i]; + signatures.push(signature); } } } @@ -9640,13 +9673,14 @@ var ts; function getUnionSignatures(types, kind) { var signatureLists = ts.map(types, function (t) { return getSignaturesOfType(t, kind); }); var signatures = signatureLists[0]; - for (var i = 0; i < signatures.length; i++) { - if (signatures[i].typeParameters) { + for (var _i = 0, _n = signatures.length; _i < _n; _i++) { + var signature = signatures[_i]; + if (signature.typeParameters) { return emptyArray; } } - for (var i = 1; i < signatureLists.length; i++) { - if (!signatureListsIdentical(signatures, signatureLists[i])) { + for (var _i_1 = 1; _i_1 < signatureLists.length; _i_1++) { + if (!signatureListsIdentical(signatures, signatureLists[_i_1])) { return emptyArray; } } @@ -9660,8 +9694,9 @@ var ts; } function getUnionIndexType(types, kind) { var indexTypes = []; - for (var i = 0; i < types.length; i++) { - var indexType = getIndexTypeOfType(types[i], kind); + for (var _i = 0, _n = types.length; _i < _n; _i++) { + var type = types[_i]; + var indexType = getIndexTypeOfType(type, kind); if (!indexType) { return undefined; } @@ -9678,17 +9713,22 @@ var ts; } function resolveAnonymousTypeMembers(type) { var symbol = type.symbol; + var members; + var callSignatures; + var constructSignatures; + var stringIndexType; + var numberIndexType; if (symbol.flags & 2048) { - var members = symbol.members; - var callSignatures = getSignaturesOfSymbol(members["__call"]); - var constructSignatures = getSignaturesOfSymbol(members["__new"]); - var stringIndexType = getIndexTypeOfSymbol(symbol, 0); - var numberIndexType = getIndexTypeOfSymbol(symbol, 1); + members = symbol.members; + callSignatures = getSignaturesOfSymbol(members["__call"]); + constructSignatures = getSignaturesOfSymbol(members["__new"]); + stringIndexType = getIndexTypeOfSymbol(symbol, 0); + numberIndexType = getIndexTypeOfSymbol(symbol, 1); } else { - var members = emptySymbols; - var callSignatures = emptyArray; - var constructSignatures = emptyArray; + members = emptySymbols; + callSignatures = emptyArray; + constructSignatures = emptyArray; if (symbol.flags & 1952) { members = getExportsOfSymbol(symbol); } @@ -9706,8 +9746,8 @@ var ts; addInheritedMembers(members, getPropertiesOfObjectType(getTypeOfSymbol(classType.baseTypes[0].symbol))); } } - var stringIndexType = undefined; - var numberIndexType = (symbol.flags & 384) ? stringType : undefined; + stringIndexType = undefined; + numberIndexType = (symbol.flags & 384) ? stringType : undefined; } setObjectTypeMembers(type, members, callSignatures, constructSignatures, stringIndexType, numberIndexType); } @@ -9790,8 +9830,9 @@ var ts; function createUnionProperty(unionType, name) { var types = unionType.types; var props; - for (var i = 0; i < types.length; i++) { - var type = getApparentType(types[i]); + for (var _i = 0, _n = types.length; _i < _n; _i++) { + var current = types[_i]; + var type = getApparentType(current); if (type !== unknownType) { var prop = getPropertyOfType(type, name); if (!prop) { @@ -9807,12 +9848,12 @@ var ts; } var propTypes = []; var declarations = []; - for (var i = 0; i < props.length; i++) { - var prop = props[i]; - if (prop.declarations) { - declarations.push.apply(declarations, prop.declarations); + for (var _a = 0, _b = props.length; _a < _b; _a++) { + var _prop = props[_a]; + if (_prop.declarations) { + declarations.push.apply(declarations, _prop.declarations); } - propTypes.push(getTypeOfSymbol(prop)); + propTypes.push(getTypeOfSymbol(_prop)); } var result = createSymbol(4 | 67108864 | 268435456, name); result.unionType = unionType; @@ -9849,9 +9890,9 @@ var ts; } } if (resolved === anyFunctionType || resolved.callSignatures.length || resolved.constructSignatures.length) { - var symbol = getPropertyOfObjectType(globalFunctionType, name); - if (symbol) - return symbol; + var _symbol = getPropertyOfObjectType(globalFunctionType, name); + if (_symbol) + return _symbol; } return getPropertyOfObjectType(globalObjectType, name); } @@ -9972,14 +10013,15 @@ var ts; function getReturnTypeOfSignature(signature) { if (!signature.resolvedReturnType) { signature.resolvedReturnType = resolvingType; + var type; if (signature.target) { - var type = instantiateType(getReturnTypeOfSignature(signature.target), signature.mapper); + type = instantiateType(getReturnTypeOfSignature(signature.target), signature.mapper); } else if (signature.unionSignatures) { - var type = getUnionType(ts.map(signature.unionSignatures, getReturnTypeOfSignature)); + type = getUnionType(ts.map(signature.unionSignatures, getReturnTypeOfSignature)); } else { - var type = getReturnTypeFromBody(signature.declaration); + type = getReturnTypeFromBody(signature.declaration); } if (signature.resolvedReturnType === resolvingType) { signature.resolvedReturnType = type; @@ -10044,8 +10086,9 @@ var ts; var indexSymbol = getIndexSymbol(symbol); if (indexSymbol) { var len = indexSymbol.declarations.length; - for (var i = 0; i < len; i++) { - var node = indexSymbol.declarations[i]; + for (var _i = 0, _a = indexSymbol.declarations, _n = _a.length; _i < _n; _i++) { + var decl = _a[_i]; + var node = decl; if (node.parameters.length === 1) { var parameter = node.parameters[0]; if (parameter && parameter.type && parameter.type.kind === syntaxKind) { @@ -10083,8 +10126,9 @@ var ts; default: var result = ""; for (var i = 0; i < types.length; i++) { - if (i > 0) + if (i > 0) { result += ","; + } result += types[i].id; } return result; @@ -10092,8 +10136,9 @@ var ts; } function getWideningFlagsOfTypes(types) { var result = 0; - for (var i = 0; i < types.length; i++) { - result |= types[i].flags; + for (var _i = 0, _n = types.length; _i < _n; _i++) { + var type = types[_i]; + result |= type.flags; } return result & 786432; } @@ -10146,8 +10191,8 @@ var ts; var links = getNodeLinks(node); if (!links.resolvedType) { var symbol = resolveEntityName(node.typeName, 793056); + var type; if (symbol) { - var type; if ((symbol.flags & 262144) && isTypeParameterReferenceIllegalInConstraint(node, symbol)) { type = unknownType; } @@ -10185,8 +10230,8 @@ var ts; function getTypeOfGlobalSymbol(symbol, arity) { function getTypeDeclaration(symbol) { var declarations = symbol.declarations; - for (var i = 0; i < declarations.length; i++) { - var declaration = declarations[i]; + for (var _i = 0, _n = declarations.length; _i < _n; _i++) { + var declaration = declarations[_i]; switch (declaration.kind) { case 196: case 197: @@ -10268,13 +10313,15 @@ var ts; } } function addTypesToSortedSet(sortedTypes, types) { - for (var i = 0, len = types.length; i < len; i++) { - addTypeToSortedSet(sortedTypes, types[i]); + for (var _i = 0, _n = types.length; _i < _n; _i++) { + var type = types[_i]; + addTypeToSortedSet(sortedTypes, type); } } function isSubtypeOfAny(candidate, types) { - for (var i = 0, len = types.length; i < len; i++) { - if (candidate !== types[i] && isTypeSubtypeOf(candidate, types[i])) { + for (var _i = 0, _n = types.length; _i < _n; _i++) { + var type = types[_i]; + if (candidate !== type && isTypeSubtypeOf(candidate, type)) { return true; } } @@ -10290,8 +10337,9 @@ var ts; } } function containsAnyType(types) { - for (var i = 0; i < types.length; i++) { - if (types[i].flags & 1) { + for (var _i = 0, _n = types.length; _i < _n; _i++) { + var type = types[_i]; + if (type.flags & 1) { return true; } } @@ -10405,8 +10453,9 @@ var ts; function instantiateList(items, mapper, instantiator) { if (items && items.length) { var result = []; - for (var i = 0; i < items.length; i++) { - result.push(instantiator(items[i], mapper)); + for (var _i = 0, _n = items.length; _i < _n; _i++) { + var v = items[_i]; + result.push(instantiator(v, mapper)); } return result; } @@ -10425,8 +10474,9 @@ var ts; } return function (t) { for (var i = 0; i < sources.length; i++) { - if (t === sources[i]) + if (t === sources[i]) { return targets[i]; + } } return t; }; @@ -10443,9 +10493,11 @@ var ts; case 2: return createBinaryTypeEraser(sources[0], sources[1]); } return function (t) { - for (var i = 0; i < sources.length; i++) { - if (t === sources[i]) + for (var _i = 0, _n = sources.length; _i < _n; _i++) { + var source = sources[_i]; + if (t === source) { return anyType; + } } return t; }; @@ -10479,8 +10531,9 @@ var ts; return result; } function instantiateSignature(signature, mapper, eraseTypeParameters) { + var freshTypeParameters; if (signature.typeParameters && !eraseTypeParameters) { - var freshTypeParameters = instantiateList(signature.typeParameters, mapper, instantiateTypeParameter); + freshTypeParameters = instantiateList(signature.typeParameters, mapper, instantiateTypeParameter); mapper = combineTypeMappers(createTypeMapper(signature.typeParameters, freshTypeParameters), mapper); } var result = createSignature(signature.declaration, freshTypeParameters, instantiateList(signature.parameters, mapper, instantiateSymbol), signature.resolvedReturnType ? instantiateType(signature.resolvedReturnType, mapper) : undefined, signature.minArgumentCount, signature.hasRestParameter, signature.hasStringLiterals); @@ -10637,7 +10690,7 @@ var ts; } function isRelatedTo(source, target, reportErrors, headMessage, elaborateErrors) { if (elaborateErrors === void 0) { elaborateErrors = false; } - var result; + var _result; if (source === target) return -1; if (relation !== identityRelation) { @@ -10661,54 +10714,54 @@ var ts; if (source.flags & 16384 || target.flags & 16384) { if (relation === identityRelation) { if (source.flags & 16384 && target.flags & 16384) { - if (result = unionTypeRelatedToUnionType(source, target)) { - if (result &= unionTypeRelatedToUnionType(target, source)) { - return result; + if (_result = unionTypeRelatedToUnionType(source, target)) { + if (_result &= unionTypeRelatedToUnionType(target, source)) { + return _result; } } } else if (source.flags & 16384) { - if (result = unionTypeRelatedToType(source, target, reportErrors)) { - return result; + if (_result = unionTypeRelatedToType(source, target, reportErrors)) { + return _result; } } else { - if (result = unionTypeRelatedToType(target, source, reportErrors)) { - return result; + if (_result = unionTypeRelatedToType(target, source, reportErrors)) { + return _result; } } } else { if (source.flags & 16384) { - if (result = unionTypeRelatedToType(source, target, reportErrors)) { - return result; + if (_result = unionTypeRelatedToType(source, target, reportErrors)) { + return _result; } } else { - if (result = typeRelatedToUnionType(source, target, reportErrors)) { - return result; + if (_result = typeRelatedToUnionType(source, target, reportErrors)) { + return _result; } } } } else if (source.flags & 512 && target.flags & 512) { - if (result = typeParameterRelatedTo(source, target, reportErrors)) { - return result; + if (_result = typeParameterRelatedTo(source, target, reportErrors)) { + return _result; } } else { var saveErrorInfo = errorInfo; if (source.flags & 4096 && target.flags & 4096 && source.target === target.target) { - if (result = typesRelatedTo(source.typeArguments, target.typeArguments, reportErrors)) { - return result; + if (_result = typesRelatedTo(source.typeArguments, target.typeArguments, reportErrors)) { + return _result; } } var reportStructuralErrors = reportErrors && errorInfo === saveErrorInfo; var sourceOrApparentType = relation === identityRelation ? source : getApparentType(source); if (sourceOrApparentType.flags & 48128 && target.flags & 48128 && - (result = objectTypeRelatedTo(sourceOrApparentType, target, reportStructuralErrors, elaborateErrors))) { + (_result = objectTypeRelatedTo(sourceOrApparentType, target, reportStructuralErrors, elaborateErrors))) { errorInfo = saveErrorInfo; - return result; + return _result; } } if (reportErrors) { @@ -10724,16 +10777,17 @@ var ts; return 0; } function unionTypeRelatedToUnionType(source, target) { - var result = -1; + var _result = -1; var sourceTypes = source.types; - for (var i = 0, len = sourceTypes.length; i < len; i++) { - var related = typeRelatedToUnionType(sourceTypes[i], target, false); + for (var _i = 0, _n = sourceTypes.length; _i < _n; _i++) { + var sourceType = sourceTypes[_i]; + var related = typeRelatedToUnionType(sourceType, target, false); if (!related) { return 0; } - result &= related; + _result &= related; } - return result; + return _result; } function typeRelatedToUnionType(source, target, reportErrors) { var targetTypes = target.types; @@ -10746,27 +10800,28 @@ var ts; return 0; } function unionTypeRelatedToType(source, target, reportErrors) { - var result = -1; + var _result = -1; var sourceTypes = source.types; - for (var i = 0, len = sourceTypes.length; i < len; i++) { - var related = isRelatedTo(sourceTypes[i], target, reportErrors); + for (var _i = 0, _n = sourceTypes.length; _i < _n; _i++) { + var sourceType = sourceTypes[_i]; + var related = isRelatedTo(sourceType, target, reportErrors); if (!related) { return 0; } - result &= related; + _result &= related; } - return result; + return _result; } function typesRelatedTo(sources, targets, reportErrors) { - var result = -1; + var _result = -1; for (var i = 0, len = sources.length; i < len; i++) { var related = isRelatedTo(sources[i], targets[i], reportErrors); if (!related) { return 0; } - result &= related; + _result &= related; } - return result; + return _result; } function typeParameterRelatedTo(source, target, reportErrors) { if (relation === identityRelation) { @@ -10832,19 +10887,20 @@ var ts; expandingFlags |= 1; if (!(expandingFlags & 2) && isDeeplyNestedGeneric(target, targetStack)) expandingFlags |= 2; + var _result; if (expandingFlags === 3) { - var result = 1; + _result = 1; } else { - var result = propertiesRelatedTo(source, target, reportErrors); - if (result) { - result &= signaturesRelatedTo(source, target, 0, reportErrors); - if (result) { - result &= signaturesRelatedTo(source, target, 1, reportErrors); - if (result) { - result &= stringIndexTypesRelatedTo(source, target, reportErrors); - if (result) { - result &= numberIndexTypesRelatedTo(source, target, reportErrors); + _result = propertiesRelatedTo(source, target, reportErrors); + if (_result) { + _result &= signaturesRelatedTo(source, target, 0, reportErrors); + if (_result) { + _result &= signaturesRelatedTo(source, target, 1, reportErrors); + if (_result) { + _result &= stringIndexTypesRelatedTo(source, target, reportErrors); + if (_result) { + _result &= numberIndexTypesRelatedTo(source, target, reportErrors); } } } @@ -10852,23 +10908,23 @@ var ts; } expandingFlags = saveExpandingFlags; depth--; - if (result) { + if (_result) { var maybeCache = maybeStack[depth]; - var destinationCache = (result === -1 || depth === 0) ? relation : maybeStack[depth - 1]; + var destinationCache = (_result === -1 || depth === 0) ? relation : maybeStack[depth - 1]; ts.copyMap(maybeCache, destinationCache); } else { relation[id] = reportErrors ? 3 : 2; } - return result; + return _result; } function isDeeplyNestedGeneric(type, stack) { if (type.flags & 4096 && depth >= 10) { - var target = type.target; + var _target = type.target; var count = 0; for (var i = 0; i < depth; i++) { var t = stack[i]; - if (t.flags & 4096 && t.target === target) { + if (t.flags & 4096 && t.target === _target) { count++; if (count >= 10) return true; @@ -10881,11 +10937,11 @@ var ts; if (relation === identityRelation) { return propertiesIdenticalTo(source, target); } - var result = -1; + var _result = -1; var properties = getPropertiesOfObjectType(target); var requireOptionalProperties = relation === subtypeRelation && !(source.flags & 131072); - for (var i = 0; i < properties.length; i++) { - var targetProp = properties[i]; + for (var _i = 0, _n = properties.length; _i < _n; _i++) { + var targetProp = properties[_i]; var sourceProp = getPropertyOfType(source, targetProp.name); if (sourceProp !== targetProp) { if (!sourceProp) { @@ -10936,7 +10992,7 @@ var ts; } return 0; } - result &= related; + _result &= related; if (sourceProp.flags & 536870912 && !(targetProp.flags & 536870912)) { if (reportErrors) { reportError(ts.Diagnostics.Property_0_is_optional_in_type_1_but_required_in_type_2, symbolToString(targetProp), typeToString(source), typeToString(target)); @@ -10946,7 +11002,7 @@ var ts; } } } - return result; + return _result; } function propertiesIdenticalTo(source, target) { var sourceProperties = getPropertiesOfObjectType(source); @@ -10954,9 +11010,9 @@ var ts; if (sourceProperties.length !== targetProperties.length) { return 0; } - var result = -1; - for (var i = 0, len = sourceProperties.length; i < len; ++i) { - var sourceProp = sourceProperties[i]; + var _result = -1; + for (var _i = 0, _n = sourceProperties.length; _i < _n; _i++) { + var sourceProp = sourceProperties[_i]; var targetProp = getPropertyOfObjectType(target, sourceProp.name); if (!targetProp) { return 0; @@ -10965,9 +11021,9 @@ var ts; if (!related) { return 0; } - result &= related; + _result &= related; } - return result; + return _result; } function signaturesRelatedTo(source, target, kind, reportErrors) { if (relation === identityRelation) { @@ -10978,18 +11034,18 @@ var ts; } var sourceSignatures = getSignaturesOfType(source, kind); var targetSignatures = getSignaturesOfType(target, kind); - var result = -1; + var _result = -1; var saveErrorInfo = errorInfo; - outer: for (var i = 0; i < targetSignatures.length; i++) { - var t = targetSignatures[i]; + outer: for (var _i = 0, _n = targetSignatures.length; _i < _n; _i++) { + var t = targetSignatures[_i]; if (!t.hasStringLiterals || target.flags & 65536) { var localErrors = reportErrors; - for (var j = 0; j < sourceSignatures.length; j++) { - var s = sourceSignatures[j]; + for (var _a = 0, _b = sourceSignatures.length; _a < _b; _a++) { + var s = sourceSignatures[_a]; if (!s.hasStringLiterals || source.flags & 65536) { var related = signatureRelatedTo(s, t, localErrors); if (related) { - result &= related; + _result &= related; errorInfo = saveErrorInfo; continue outer; } @@ -10999,7 +11055,7 @@ var ts; return 0; } } - return result; + return _result; } function signatureRelatedTo(source, target, reportErrors) { if (source === target) { @@ -11029,14 +11085,14 @@ var ts; } source = getErasedSignature(source); target = getErasedSignature(target); - var result = -1; + var _result = -1; for (var i = 0; i < checkCount; i++) { - var s = i < sourceMax ? getTypeOfSymbol(source.parameters[i]) : getRestTypeOfSignature(source); - var t = i < targetMax ? getTypeOfSymbol(target.parameters[i]) : getRestTypeOfSignature(target); + var _s = i < sourceMax ? getTypeOfSymbol(source.parameters[i]) : getRestTypeOfSignature(source); + var _t = i < targetMax ? getTypeOfSymbol(target.parameters[i]) : getRestTypeOfSignature(target); var saveErrorInfo = errorInfo; - var related = isRelatedTo(s, t, reportErrors); + var related = isRelatedTo(_s, _t, reportErrors); if (!related) { - related = isRelatedTo(t, s, false); + related = isRelatedTo(_t, _s, false); if (!related) { if (reportErrors) { reportError(ts.Diagnostics.Types_of_parameters_0_and_1_are_incompatible, source.parameters[i < sourceMax ? i : sourceMax].name, target.parameters[i < targetMax ? i : targetMax].name); @@ -11045,13 +11101,13 @@ var ts; } errorInfo = saveErrorInfo; } - result &= related; + _result &= related; } var t = getReturnTypeOfSignature(target); if (t === voidType) - return result; + return _result; var s = getReturnTypeOfSignature(source); - return result & isRelatedTo(s, t, reportErrors); + return _result & isRelatedTo(s, t, reportErrors); } function signaturesIdenticalTo(source, target, kind) { var sourceSignatures = getSignaturesOfType(source, kind); @@ -11059,15 +11115,15 @@ var ts; if (sourceSignatures.length !== targetSignatures.length) { return 0; } - var result = -1; + var _result = -1; for (var i = 0, len = sourceSignatures.length; i < len; ++i) { var related = compareSignatures(sourceSignatures[i], targetSignatures[i], true, isRelatedTo); if (!related) { return 0; } - result &= related; + _result &= related; } - return result; + return _result; } function stringIndexTypesRelatedTo(source, target, reportErrors) { if (relation === identityRelation) { @@ -11107,11 +11163,12 @@ var ts; } return 0; } + var related; if (sourceStringType && sourceNumberType) { - var related = isRelatedTo(sourceStringType, targetType, false) || isRelatedTo(sourceNumberType, targetType, reportErrors); + related = isRelatedTo(sourceStringType, targetType, false) || isRelatedTo(sourceNumberType, targetType, reportErrors); } else { - var related = isRelatedTo(sourceStringType || sourceNumberType, targetType, reportErrors); + related = isRelatedTo(sourceStringType || sourceNumberType, targetType, reportErrors); } if (!related) { if (reportErrors) { @@ -11186,14 +11243,14 @@ var ts; } source = getErasedSignature(source); target = getErasedSignature(target); - for (var i = 0, len = source.parameters.length; i < len; i++) { - var s = source.hasRestParameter && i === len - 1 ? getRestTypeOfSignature(source) : getTypeOfSymbol(source.parameters[i]); - var t = target.hasRestParameter && i === len - 1 ? getRestTypeOfSignature(target) : getTypeOfSymbol(target.parameters[i]); - var related = compareTypes(s, t); - if (!related) { + for (var _i = 0, _len = source.parameters.length; _i < _len; _i++) { + var s = source.hasRestParameter && _i === _len - 1 ? getRestTypeOfSignature(source) : getTypeOfSymbol(source.parameters[_i]); + var t = target.hasRestParameter && _i === _len - 1 ? getRestTypeOfSignature(target) : getTypeOfSymbol(target.parameters[_i]); + var _related = compareTypes(s, t); + if (!_related) { return 0; } - result &= related; + result &= _related; } if (compareReturnTypes) { result &= compareTypes(getReturnTypeOfSignature(source), getReturnTypeOfSignature(target)); @@ -11201,8 +11258,9 @@ var ts; return result; } function isSupertypeOfEach(candidate, types) { - for (var i = 0, len = types.length; i < len; i++) { - if (candidate !== types[i] && !isTypeSubtypeOf(types[i], candidate)) + for (var _i = 0, _n = types.length; _i < _n; _i++) { + var type = types[_i]; + if (candidate !== type && !isTypeSubtypeOf(type, candidate)) return false; } return true; @@ -11305,29 +11363,30 @@ var ts; return reportWideningErrorsInType(type.typeArguments[0]); } if (type.flags & 131072) { - var errorReported = false; + var _errorReported = false; ts.forEach(getPropertiesOfObjectType(type), function (p) { var t = getTypeOfSymbol(p); if (t.flags & 262144) { if (!reportWideningErrorsInType(t)) { error(p.valueDeclaration, ts.Diagnostics.Object_literal_s_property_0_implicitly_has_an_1_type, p.name, typeToString(getWidenedType(t))); } - errorReported = true; + _errorReported = true; } }); - return errorReported; + return _errorReported; } return false; } function reportImplicitAnyError(declaration, type) { var typeAsString = typeToString(getWidenedType(type)); + var diagnostic; switch (declaration.kind) { case 130: case 129: - var diagnostic = ts.Diagnostics.Member_0_implicitly_has_an_1_type; + diagnostic = ts.Diagnostics.Member_0_implicitly_has_an_1_type; break; case 128: - var diagnostic = declaration.dotDotDotToken ? + diagnostic = declaration.dotDotDotToken ? ts.Diagnostics.Rest_parameter_0_implicitly_has_an_any_type : ts.Diagnostics.Parameter_0_implicitly_has_an_1_type; break; @@ -11342,10 +11401,10 @@ var ts; error(declaration, ts.Diagnostics.Function_expression_which_lacks_return_type_annotation_implicitly_has_an_0_return_type, typeAsString); return; } - var diagnostic = ts.Diagnostics._0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type; + diagnostic = ts.Diagnostics._0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type; break; default: - var diagnostic = ts.Diagnostics.Variable_0_implicitly_has_an_1_type; + diagnostic = ts.Diagnostics.Variable_0_implicitly_has_an_1_type; } error(declaration, diagnostic, ts.declarationNameToString(declaration.name), typeAsString); } @@ -11384,7 +11443,8 @@ var ts; } function createInferenceContext(typeParameters, inferUnionTypes) { var inferences = []; - for (var i = 0; i < typeParameters.length; i++) { + for (var _i = 0, _n = typeParameters.length; _i < _n; _i++) { + var unused = typeParameters[_i]; inferences.push({ primary: undefined, secondary: undefined }); } return { @@ -11403,19 +11463,21 @@ var ts; inferFromTypes(source, target); function isInProcess(source, target) { for (var i = 0; i < depth; i++) { - if (source === sourceStack[i] && target === targetStack[i]) + if (source === sourceStack[i] && target === targetStack[i]) { return true; + } } return false; } function isWithinDepthLimit(type, stack) { if (depth >= 5) { - var target = type.target; + var _target = type.target; var count = 0; for (var i = 0; i < depth; i++) { var t = stack[i]; - if (t.flags & 4096 && t.target === target) + if (t.flags & 4096 && t.target === _target) { count++; + } } return count < 5; } @@ -11442,16 +11504,16 @@ var ts; else if (source.flags & 4096 && target.flags & 4096 && source.target === target.target) { var sourceTypes = source.typeArguments; var targetTypes = target.typeArguments; - for (var i = 0; i < sourceTypes.length; i++) { - inferFromTypes(sourceTypes[i], targetTypes[i]); + for (var _i = 0; _i < sourceTypes.length; _i++) { + inferFromTypes(sourceTypes[_i], targetTypes[_i]); } } else if (target.flags & 16384) { - var targetTypes = target.types; + var _targetTypes = target.types; var typeParameterCount = 0; var typeParameter; - for (var i = 0; i < targetTypes.length; i++) { - var t = targetTypes[i]; + for (var _a = 0, _n = _targetTypes.length; _a < _n; _a++) { + var t = _targetTypes[_a]; if (t.flags & 512 && ts.contains(context.typeParameters, t)) { typeParameter = t; typeParameterCount++; @@ -11467,9 +11529,10 @@ var ts; } } else if (source.flags & 16384) { - var sourceTypes = source.types; - for (var i = 0; i < sourceTypes.length; i++) { - inferFromTypes(sourceTypes[i], target); + var _sourceTypes = source.types; + for (var _b = 0, _c = _sourceTypes.length; _b < _c; _b++) { + var sourceType = _sourceTypes[_b]; + inferFromTypes(sourceType, target); } } else if (source.flags & 48128 && (target.flags & (4096 | 8192) || @@ -11494,8 +11557,8 @@ var ts; } function inferFromProperties(source, target) { var properties = getPropertiesOfObjectType(target); - for (var i = 0; i < properties.length; i++) { - var targetProp = properties[i]; + for (var _i = 0, _n = properties.length; _i < _n; _i++) { + var targetProp = properties[_i]; var sourceProp = getPropertyOfObjectType(source, targetProp.name); if (sourceProp) { inferFromTypes(getTypeOfSymbol(sourceProp), getTypeOfSymbol(targetProp)); @@ -11677,10 +11740,10 @@ var ts; } function resolveLocation(node) { var containerNodes = []; - for (var parent = node.parent; parent; parent = parent.parent) { - if ((ts.isExpression(parent) || ts.isObjectLiteralMethod(node)) && - isContextSensitive(parent)) { - containerNodes.unshift(parent); + for (var _parent = node.parent; _parent; _parent = _parent.parent) { + if ((ts.isExpression(_parent) || ts.isObjectLiteralMethod(node)) && + isContextSensitive(_parent)) { + containerNodes.unshift(_parent); } } ts.forEach(containerNodes, function (node) { getTypeOfNode(node); }); @@ -11966,11 +12029,12 @@ var ts; var container = ts.getSuperContainer(node, true); if (container) { var canUseSuperExpression = false; + var needToCaptureLexicalThis; if (isCallExpression) { canUseSuperExpression = container.kind === 133; } else { - var needToCaptureLexicalThis = false; + needToCaptureLexicalThis = false; while (container && container.kind === 161) { container = ts.getSuperContainer(container, true); needToCaptureLexicalThis = true; @@ -12117,8 +12181,9 @@ var ts; var types = type.types; var mappedType; var mappedTypes; - for (var i = 0; i < types.length; i++) { - var t = mapper(types[i]); + for (var _i = 0, _n = types.length; _i < _n; _i++) { + var current = types[_i]; + var t = mapper(current); if (t) { if (!mappedType) { mappedType = t; @@ -12193,8 +12258,8 @@ var ts; if (node.contextualType) { return node.contextualType; } - var parent = node.parent; - switch (parent.kind) { + var _parent = node.parent; + switch (_parent.kind) { case 193: case 128: case 130: @@ -12206,22 +12271,22 @@ var ts; return getContextualTypeForReturnExpression(node); case 155: case 156: - return getContextualTypeForArgument(parent, node); + return getContextualTypeForArgument(_parent, node); case 158: - return getTypeFromTypeNode(parent.type); + return getTypeFromTypeNode(_parent.type); case 167: return getContextualTypeForBinaryOperand(node); case 218: - return getContextualTypeForObjectLiteralElement(parent); + return getContextualTypeForObjectLiteralElement(_parent); case 151: return getContextualTypeForElementExpression(node); case 168: return getContextualTypeForConditionalOperand(node); case 173: - ts.Debug.assert(parent.parent.kind === 169); - return getContextualTypeForSubstitutionExpression(parent.parent, node); + ts.Debug.assert(_parent.parent.kind === 169); + return getContextualTypeForSubstitutionExpression(_parent.parent, node); case 159: - return getContextualType(parent); + return getContextualType(_parent); } return undefined; } @@ -12253,12 +12318,13 @@ var ts; } var signatureList; var types = type.types; - for (var i = 0; i < types.length; i++) { + for (var _i = 0, _n = types.length; _i < _n; _i++) { + var current = types[_i]; if (signatureList && - getSignaturesOfObjectOrUnionType(types[i], 0).length > 1) { + getSignaturesOfObjectOrUnionType(current, 0).length > 1) { return undefined; } - var signature = getNonGenericSignature(types[i]); + var signature = getNonGenericSignature(current); if (signature) { if (!signatureList) { signatureList = [signature]; @@ -12283,15 +12349,15 @@ var ts; return mapper && mapper !== identityMapper; } function isAssignmentTarget(node) { - var parent = node.parent; - if (parent.kind === 167 && parent.operatorToken.kind === 52 && parent.left === node) { + var _parent = node.parent; + if (_parent.kind === 167 && _parent.operatorToken.kind === 52 && _parent.left === node) { return true; } - if (parent.kind === 218) { - return isAssignmentTarget(parent.parent); + if (_parent.kind === 218) { + return isAssignmentTarget(_parent.parent); } - if (parent.kind === 151) { - return isAssignmentTarget(parent); + if (_parent.kind === 151) { + return isAssignmentTarget(_parent); } return false; } @@ -12356,21 +12422,22 @@ var ts; var propertiesArray = []; var contextualType = getContextualType(node); var typeFlags; - for (var i = 0; i < node.properties.length; i++) { - var memberDecl = node.properties[i]; + for (var _i = 0, _a = node.properties, _n = _a.length; _i < _n; _i++) { + var memberDecl = _a[_i]; var member = memberDecl.symbol; if (memberDecl.kind === 218 || memberDecl.kind === 219 || ts.isObjectLiteralMethod(memberDecl)) { + var type = void 0; if (memberDecl.kind === 218) { - var type = checkPropertyAssignment(memberDecl, contextualMapper); + type = checkPropertyAssignment(memberDecl, contextualMapper); } else if (memberDecl.kind === 132) { - var type = checkObjectLiteralMethod(memberDecl, contextualMapper); + type = checkObjectLiteralMethod(memberDecl, contextualMapper); } else { ts.Debug.assert(memberDecl.kind === 219); - var type = memberDecl.name.kind === 126 + type = memberDecl.name.kind === 126 ? unknownType : checkExpression(memberDecl.name, contextualMapper); } @@ -12405,15 +12472,15 @@ var ts; for (var i = 0; i < propertiesArray.length; i++) { var propertyDecl = node.properties[i]; if (kind === 0 || isNumericName(propertyDecl.name)) { - var type = getTypeOfSymbol(propertiesArray[i]); - if (!ts.contains(propTypes, type)) { - propTypes.push(type); + var _type = getTypeOfSymbol(propertiesArray[i]); + if (!ts.contains(propTypes, _type)) { + propTypes.push(_type); } } } - var result = propTypes.length ? getUnionType(propTypes) : undefinedType; - typeFlags |= result.flags; - return result; + var _result = propTypes.length ? getUnionType(propTypes) : undefinedType; + typeFlags |= _result.flags; + return _result; } return undefined; } @@ -12516,9 +12583,9 @@ var ts; grammarErrorAtPos(sourceFile, start, end - start, ts.Diagnostics.new_T_cannot_be_used_to_create_an_array_Use_new_Array_T_instead); } else { - var start = node.end - "]".length; - var end = node.end; - grammarErrorAtPos(sourceFile, start, end - start, ts.Diagnostics.Expression_expected); + var _start = node.end - "]".length; + var _end = node.end; + grammarErrorAtPos(sourceFile, _start, _end - _start, ts.Diagnostics.Expression_expected); } } var objectType = getApparentType(checkExpression(node.expression)); @@ -12533,15 +12600,15 @@ var ts; return unknownType; } if (node.argumentExpression) { - var name = getPropertyNameForIndexedAccess(node.argumentExpression, indexType); - if (name !== undefined) { - var prop = getPropertyOfType(objectType, name); + var _name = getPropertyNameForIndexedAccess(node.argumentExpression, indexType); + if (_name !== undefined) { + var prop = getPropertyOfType(objectType, _name); if (prop) { getNodeLinks(node).resolvedSymbol = prop; return getTypeOfSymbol(prop); } else if (isConstEnum) { - error(node.argumentExpression, ts.Diagnostics.Property_0_does_not_exist_on_const_enum_1, name, symbolToString(objectType.symbol)); + error(node.argumentExpression, ts.Diagnostics.Property_0_does_not_exist_on_const_enum_1, _name, symbolToString(objectType.symbol)); return unknownType; } } @@ -12628,22 +12695,22 @@ var ts; var specializedIndex = -1; var spliceIndex; ts.Debug.assert(!result.length); - for (var i = 0; i < signatures.length; i++) { - var signature = signatures[i]; + for (var _i = 0, _n = signatures.length; _i < _n; _i++) { + var signature = signatures[_i]; var symbol = signature.declaration && getSymbolOfNode(signature.declaration); - var parent = signature.declaration && signature.declaration.parent; + var _parent = signature.declaration && signature.declaration.parent; if (!lastSymbol || symbol === lastSymbol) { - if (lastParent && parent === lastParent) { + if (lastParent && _parent === lastParent) { index++; } else { - lastParent = parent; + lastParent = _parent; index = cutoffIndex; } } else { index = cutoffIndex = result.length; - lastParent = parent; + lastParent = _parent; } lastSymbol = symbol; if (signature.hasStringLiterals) { @@ -12735,30 +12802,31 @@ var ts; var arg = args[i]; if (arg.kind !== 172) { var paramType = getTypeAtPosition(signature, arg.kind === 171 ? -1 : i); + var argType = void 0; if (i === 0 && args[i].parent.kind === 157) { - var argType = globalTemplateStringsArrayType; + argType = globalTemplateStringsArrayType; } else { var mapper = excludeArgument && excludeArgument[i] !== undefined ? identityMapper : inferenceMapper; - var argType = checkExpressionWithContextualType(arg, paramType, mapper); + argType = checkExpressionWithContextualType(arg, paramType, mapper); } inferTypes(context, argType, paramType); } } if (excludeArgument) { - for (var i = 0; i < args.length; i++) { - if (excludeArgument[i] === false) { - var arg = args[i]; - var paramType = getTypeAtPosition(signature, arg.kind === 171 ? -1 : i); - inferTypes(context, checkExpressionWithContextualType(arg, paramType, inferenceMapper), paramType); + for (var _i = 0; _i < args.length; _i++) { + if (excludeArgument[_i] === false) { + var _arg = args[_i]; + var _paramType = getTypeAtPosition(signature, _arg.kind === 171 ? -1 : _i); + inferTypes(context, checkExpressionWithContextualType(_arg, _paramType, inferenceMapper), _paramType); } } } var inferredTypes = getInferredTypes(context); context.failedTypeParameterIndex = ts.indexOf(inferredTypes, inferenceFailureType); - for (var i = 0; i < inferredTypes.length; i++) { - if (inferredTypes[i] === inferenceFailureType) { - inferredTypes[i] = unknownType; + for (var _i_1 = 0; _i_1 < inferredTypes.length; _i_1++) { + if (inferredTypes[_i_1] === inferenceFailureType) { + inferredTypes[_i_1] = unknownType; } } return context; @@ -12880,50 +12948,53 @@ var ts; error(node, ts.Diagnostics.Supplied_parameters_do_not_match_any_signature_of_call_target); } if (!produceDiagnostics) { - for (var i = 0, n = candidates.length; i < n; i++) { - if (hasCorrectArity(node, args, candidates[i])) { - return candidates[i]; + for (var _i = 0, _n = candidates.length; _i < _n; _i++) { + var candidate = candidates[_i]; + if (hasCorrectArity(node, args, candidate)) { + return candidate; } } } return resolveErrorCall(node); function chooseOverload(candidates, relation) { - for (var i = 0; i < candidates.length; i++) { - if (!hasCorrectArity(node, args, candidates[i])) { + for (var _a = 0, _b = candidates.length; _a < _b; _a++) { + var current = candidates[_a]; + if (!hasCorrectArity(node, args, current)) { continue; } - var originalCandidate = candidates[i]; - var inferenceResult; + var originalCandidate = current; + var inferenceResult = void 0; + var _candidate = void 0; + var typeArgumentsAreValid = void 0; while (true) { - var candidate = originalCandidate; - if (candidate.typeParameters) { - var typeArgumentTypes; - var typeArgumentsAreValid; + _candidate = originalCandidate; + if (_candidate.typeParameters) { + var typeArgumentTypes = void 0; if (typeArguments) { - typeArgumentTypes = new Array(candidate.typeParameters.length); - typeArgumentsAreValid = checkTypeArguments(candidate, typeArguments, typeArgumentTypes, false); + typeArgumentTypes = new Array(_candidate.typeParameters.length); + typeArgumentsAreValid = checkTypeArguments(_candidate, typeArguments, typeArgumentTypes, false); } else { - inferenceResult = inferTypeArguments(candidate, args, excludeArgument); + inferenceResult = inferTypeArguments(_candidate, args, excludeArgument); typeArgumentsAreValid = inferenceResult.failedTypeParameterIndex < 0; typeArgumentTypes = inferenceResult.inferredTypes; } if (!typeArgumentsAreValid) { break; } - candidate = getSignatureInstantiation(candidate, typeArgumentTypes); + _candidate = getSignatureInstantiation(_candidate, typeArgumentTypes); } - if (!checkApplicableSignature(node, args, candidate, relation, excludeArgument, false)) { + if (!checkApplicableSignature(node, args, _candidate, relation, excludeArgument, false)) { break; } var index = excludeArgument ? ts.indexOf(excludeArgument, true) : -1; if (index < 0) { - return candidate; + return _candidate; } excludeArgument[index] = false; } if (originalCandidate.typeParameters) { - var instantiatedCandidate = candidate; + var instantiatedCandidate = _candidate; if (typeArgumentsAreValid) { candidateForArgumentError = instantiatedCandidate; } @@ -12935,7 +13006,7 @@ var ts; } } else { - ts.Debug.assert(originalCandidate === candidate); + ts.Debug.assert(originalCandidate === _candidate); candidateForArgumentError = originalCandidate; } } @@ -13094,9 +13165,9 @@ var ts; links.type = instantiateType(getTypeAtPosition(context, i), mapper); } if (signature.hasRestParameter && context.hasRestParameter && signature.parameters.length >= context.parameters.length) { - var parameter = signature.parameters[signature.parameters.length - 1]; - var links = getSymbolLinks(parameter); - links.type = instantiateType(getTypeOfSymbol(context.parameters[context.parameters.length - 1]), mapper); + var _parameter = signature.parameters[signature.parameters.length - 1]; + var _links = getSymbolLinks(_parameter); + _links.type = instantiateType(getTypeOfSymbol(context.parameters[context.parameters.length - 1]), mapper); } } function getReturnTypeFromBody(func, contextualMapper) { @@ -13104,15 +13175,16 @@ var ts; if (!func.body) { return unknownType; } + var type; if (func.body.kind !== 174) { - var type = checkExpressionCached(func.body, contextualMapper); + type = checkExpressionCached(func.body, contextualMapper); } else { var types = checkAndAggregateReturnExpressionTypes(func.body, contextualMapper); if (types.length === 0) { return voidType; } - var type = contextualSignature ? getUnionType(types) : getCommonSupertype(types); + type = contextualSignature ? getUnionType(types) : getCommonSupertype(types); if (!type) { error(func, ts.Diagnostics.No_best_common_type_exists_among_return_expressions); return unknownType; @@ -13232,12 +13304,14 @@ var ts; } function isReferenceOrErrorExpression(n) { switch (n.kind) { - case 64: + case 64: { var symbol = findSymbol(n); return !symbol || symbol === unknownSymbol || symbol === argumentsSymbol || (symbol.flags & 3) !== 0; - case 153: - var symbol = findSymbol(n); - return !symbol || symbol === unknownSymbol || (symbol.flags & ~8) !== 0; + } + case 153: { + var _symbol = findSymbol(n); + return !_symbol || _symbol === unknownSymbol || (_symbol.flags & ~8) !== 0; + } case 154: return true; case 159: @@ -13249,18 +13323,20 @@ var ts; function isConstVariableReference(n) { switch (n.kind) { case 64: - case 153: + case 153: { var symbol = findSymbol(n); return symbol && (symbol.flags & 3) !== 0 && (getDeclarationFlagsFromSymbol(symbol) & 8192) !== 0; - case 154: + } + case 154: { var index = n.argumentExpression; - var symbol = findSymbol(n.expression); - if (symbol && index && index.kind === 8) { - var name = index.text; - var prop = getPropertyOfType(getTypeOfSymbol(symbol), name); + var _symbol = findSymbol(n.expression); + if (_symbol && index && index.kind === 8) { + var _name = index.text; + var prop = getPropertyOfType(getTypeOfSymbol(_symbol), _name); return prop && (prop.flags & 3) !== 0 && (getDeclarationFlagsFromSymbol(prop) & 8192) !== 0; } return false; + } case 159: return isConstVariableReference(n.expression); default: @@ -13332,8 +13408,9 @@ var ts; } if (type.flags & 16384) { var types = type.types; - for (var i = 0; i < types.length; i++) { - if (types[i].flags & kind) { + for (var _i = 0, _n = types.length; _i < _n; _i++) { + var current = types[_i]; + if (current.flags & kind) { return true; } } @@ -13347,8 +13424,9 @@ var ts; } if (type.flags & 16384) { var types = type.types; - for (var i = 0; i < types.length; i++) { - if (!(types[i].flags & kind)) { + for (var _i = 0, _n = types.length; _i < _n; _i++) { + var current = types[_i]; + if (!(current.flags & kind)) { return false; } } @@ -13382,19 +13460,19 @@ var ts; } function checkObjectLiteralAssignment(node, sourceType, contextualMapper) { var properties = node.properties; - for (var i = 0; i < properties.length; i++) { - var p = properties[i]; + for (var _i = 0, _n = properties.length; _i < _n; _i++) { + var p = properties[_i]; if (p.kind === 218 || p.kind === 219) { - var name = p.name; + var _name = p.name; var type = sourceType.flags & 1 ? sourceType : - getTypeOfPropertyOfType(sourceType, name.text) || - isNumericLiteralName(name.text) && getIndexTypeOfType(sourceType, 1) || + getTypeOfPropertyOfType(sourceType, _name.text) || + isNumericLiteralName(_name.text) && getIndexTypeOfType(sourceType, 1) || getIndexTypeOfType(sourceType, 0); if (type) { - checkDestructuringAssignment(p.initializer || name, type); + checkDestructuringAssignment(p.initializer || _name, type); } else { - error(name, ts.Diagnostics.Type_0_has_no_property_1_and_no_string_index_signature, typeToString(sourceType), ts.declarationNameToString(name)); + error(_name, ts.Diagnostics.Type_0_has_no_property_1_and_no_string_index_signature, typeToString(sourceType), ts.declarationNameToString(_name)); } } else { @@ -13829,8 +13907,9 @@ var ts; if (indexSymbol) { var seenNumericIndexer = false; var seenStringIndexer = false; - for (var i = 0, len = indexSymbol.declarations.length; i < len; ++i) { - var declaration = indexSymbol.declarations[i]; + for (var _i = 0, _a = indexSymbol.declarations, _n = _a.length; _i < _n; _i++) { + var decl = _a[_i]; + var declaration = decl; if (declaration.parameters.length === 1 && declaration.parameters[0].type) { switch (declaration.parameters[0].type.kind) { case 120: @@ -14017,8 +14096,8 @@ var ts; else { signaturesToCheck = getSignaturesOfSymbol(getSymbolOfNode(signatureDeclarationNode)); } - for (var i = 0; i < signaturesToCheck.length; i++) { - var otherSignature = signaturesToCheck[i]; + for (var _i = 0, _n = signaturesToCheck.length; _i < _n; _i++) { + var otherSignature = signaturesToCheck[_i]; if (!otherSignature.hasStringLiterals && isSignatureAssignableTo(signature, otherSignature)) { return; } @@ -14098,16 +14177,16 @@ var ts; }); if (subsequentNode) { if (subsequentNode.kind === node.kind) { - var errorNode = subsequentNode.name || subsequentNode; + var _errorNode = subsequentNode.name || subsequentNode; if (node.name && subsequentNode.name && node.name.text === subsequentNode.name.text) { ts.Debug.assert(node.kind === 132 || node.kind === 131); ts.Debug.assert((node.flags & 128) !== (subsequentNode.flags & 128)); var diagnostic = node.flags & 128 ? ts.Diagnostics.Function_overload_must_be_static : ts.Diagnostics.Function_overload_must_not_be_static; - error(errorNode, diagnostic); + error(_errorNode, diagnostic); return; } else if (ts.nodeIsPresent(subsequentNode.body)) { - error(errorNode, ts.Diagnostics.Function_implementation_name_must_be_0, ts.declarationNameToString(node.name)); + error(_errorNode, ts.Diagnostics.Function_implementation_name_must_be_0, ts.declarationNameToString(node.name)); return; } } @@ -14123,8 +14202,9 @@ var ts; var isExportSymbolInsideModule = symbol.parent && symbol.parent.flags & 1536; var duplicateFunctionDeclaration = false; var multipleConstructorImplementation = false; - for (var i = 0; i < declarations.length; i++) { - var node = declarations[i]; + for (var _i = 0, _n = declarations.length; _i < _n; _i++) { + var current = declarations[_i]; + var node = current; var inAmbientContext = ts.isInAmbientContext(node); var inAmbientContextOrInterface = node.parent.kind === 197 || node.parent.kind === 143 || inAmbientContext; if (inAmbientContextOrInterface) { @@ -14181,9 +14261,10 @@ var ts; var signatures = getSignaturesOfSymbol(symbol); var bodySignature = getSignatureFromDeclaration(bodyDeclaration); if (!bodySignature.hasStringLiterals) { - for (var i = 0, len = signatures.length; i < len; ++i) { - if (!signatures[i].hasStringLiterals && !isSignatureAssignableTo(bodySignature, signatures[i])) { - error(signatures[i].declaration, ts.Diagnostics.Overload_signature_is_not_compatible_with_function_implementation); + for (var _a = 0, _b = signatures.length; _a < _b; _a++) { + var signature = signatures[_a]; + if (!signature.hasStringLiterals && !isSignatureAssignableTo(bodySignature, signature)) { + error(signature.declaration, ts.Diagnostics.Overload_signature_is_not_compatible_with_function_implementation); break; } } @@ -14195,7 +14276,6 @@ var ts; if (!produceDiagnostics) { return; } - var symbol; var symbol = node.localSymbol; if (!symbol) { symbol = getSymbolOfNode(node); @@ -14332,8 +14412,8 @@ var ts; var current = node; while (current) { if (getNodeCheckFlags(current) & 4) { - var isDeclaration = node.kind !== 64; - if (isDeclaration) { + var _isDeclaration = node.kind !== 64; + if (_isDeclaration) { error(node.name, ts.Diagnostics.Duplicate_identifier_this_Compiler_uses_variable_declaration_this_to_capture_this_reference); } else { @@ -14353,8 +14433,8 @@ var ts; return; } if (ts.getClassBaseTypeNode(enclosingClass)) { - var isDeclaration = node.kind !== 64; - if (isDeclaration) { + var _isDeclaration = node.kind !== 64; + if (_isDeclaration) { error(node, ts.Diagnostics.Duplicate_identifier_super_Compiler_uses_super_to_capture_base_class_reference); } else { @@ -14369,8 +14449,8 @@ var ts; if (node.kind === 200 && ts.getModuleInstanceState(node) !== 1) { return; } - var parent = getDeclarationContainer(node); - if (parent.kind === 221 && ts.isExternalModule(parent)) { + var _parent = getDeclarationContainer(node); + if (_parent.kind === 221 && ts.isExternalModule(_parent)) { error(name, ts.Diagnostics.Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_an_external_module, ts.declarationNameToString(name), ts.declarationNameToString(name)); } } @@ -14391,8 +14471,8 @@ var ts; (container.kind === 201 && container.kind === 200) || container.kind === 221); if (!namesShareScope) { - var name = symbolToString(localDeclarationSymbol); - error(node, ts.Diagnostics.Cannot_initialize_outer_scoped_variable_0_in_the_same_scope_as_block_scoped_declaration_1, name, name); + var _name = symbolToString(localDeclarationSymbol); + error(node, ts.Diagnostics.Cannot_initialize_outer_scoped_variable_0_in_the_same_scope_as_block_scoped_declaration_1, _name, _name); } } } @@ -14406,10 +14486,11 @@ var ts; return node.kind === 128; } function checkParameterInitializer(node) { - if (getRootDeclaration(node).kind === 128) { - var func = ts.getContainingFunction(node); - visit(node.initializer); + if (getRootDeclaration(node).kind !== 128) { + return; } + var func = ts.getContainingFunction(node); + visit(node.initializer); function visit(n) { if (n.kind === 64) { var referencedSymbol = getNodeLinks(n).resolvedSymbol; @@ -14839,8 +14920,8 @@ var ts; }); if (type.flags & 1024 && type.symbol.valueDeclaration.kind === 196) { var classDeclaration = type.symbol.valueDeclaration; - for (var i = 0; i < classDeclaration.members.length; i++) { - var member = classDeclaration.members[i]; + for (var _i = 0, _a = classDeclaration.members, _n = _a.length; _i < _n; _i++) { + var member = _a[_i]; if (!(member.flags & 128) && ts.hasDynamicName(member)) { var propType = getTypeOfSymbol(member.symbol); checkIndexConstraintForProperty(member.symbol, propType, type, declaredStringIndexer, stringIndexType, 0); @@ -14867,22 +14948,22 @@ var ts; if (indexKind === 1 && !isNumericName(prop.valueDeclaration.name)) { return; } - var errorNode; + var _errorNode; if (prop.valueDeclaration.name.kind === 126 || prop.parent === containingType.symbol) { - errorNode = prop.valueDeclaration; + _errorNode = prop.valueDeclaration; } else if (indexDeclaration) { - errorNode = indexDeclaration; + _errorNode = indexDeclaration; } else if (containingType.flags & 2048) { var someBaseClassHasBothPropertyAndIndexer = ts.forEach(containingType.baseTypes, function (base) { return getPropertyOfObjectType(base, prop.name) && getIndexTypeOfType(base, indexKind); }); - errorNode = someBaseClassHasBothPropertyAndIndexer ? undefined : containingType.symbol.declarations[0]; + _errorNode = someBaseClassHasBothPropertyAndIndexer ? undefined : containingType.symbol.declarations[0]; } - if (errorNode && !isTypeAssignableTo(propertyType, indexType)) { + if (_errorNode && !isTypeAssignableTo(propertyType, indexType)) { var errorMessage = indexKind === 0 ? ts.Diagnostics.Property_0_of_type_1_is_not_assignable_to_string_index_type_2 : ts.Diagnostics.Property_0_of_type_1_is_not_assignable_to_numeric_index_type_2; - error(errorNode, errorMessage, symbolToString(prop), typeToString(propertyType), typeToString(indexType)); + error(_errorNode, errorMessage, symbolToString(prop), typeToString(propertyType), typeToString(indexType)); } } } @@ -14899,7 +14980,7 @@ var ts; } function checkTypeParameters(typeParameterDeclarations) { if (typeParameterDeclarations) { - for (var i = 0; i < typeParameterDeclarations.length; i++) { + for (var i = 0, n = typeParameterDeclarations.length; i < n; i++) { var node = typeParameterDeclarations[i]; checkTypeParameter(node); if (produceDiagnostics) { @@ -14971,8 +15052,9 @@ var ts; } function checkKindsOfPropertyMemberOverrides(type, baseType) { var baseProperties = getPropertiesOfObjectType(baseType); - for (var i = 0, len = baseProperties.length; i < len; ++i) { - var base = getTargetSymbol(baseProperties[i]); + for (var _i = 0, _n = baseProperties.length; _i < _n; _i++) { + var baseProperty = baseProperties[_i]; + var base = getTargetSymbol(baseProperty); if (base.flags & 134217728) { continue; } @@ -14989,7 +15071,7 @@ var ts; if ((base.flags & derived.flags & 8192) || ((base.flags & 98308) && (derived.flags & 98308))) { continue; } - var errorMessage; + var errorMessage = void 0; if (base.flags & 8192) { if (derived.flags & 98304) { errorMessage = ts.Diagnostics.Class_0_defines_instance_member_function_1_but_extended_class_2_defines_it_as_instance_member_accessor; @@ -15047,11 +15129,11 @@ var ts; var seen = {}; ts.forEach(type.declaredProperties, function (p) { seen[p.name] = { prop: p, containingType: type }; }); var ok = true; - for (var i = 0, len = type.baseTypes.length; i < len; ++i) { - var base = type.baseTypes[i]; + for (var _i = 0, _a = type.baseTypes, _n = _a.length; _i < _n; _i++) { + var base = _a[_i]; var properties = getPropertiesOfObjectType(base); - for (var j = 0, proplen = properties.length; j < proplen; ++j) { - var prop = properties[j]; + for (var _b = 0, _c = properties.length; _b < _c; _b++) { + var prop = properties[_b]; if (!ts.hasProperty(seen, prop.name)) { seen[prop.name] = { prop: prop, containingType: base }; } @@ -15106,8 +15188,8 @@ var ts; checkSourceElement(node.type); } function computeEnumMemberValues(node) { - var nodeLinks = getNodeLinks(node); - if (!(nodeLinks.flags & 128)) { + var _nodeLinks = getNodeLinks(node); + if (!(_nodeLinks.flags & 128)) { var enumSymbol = getSymbolOfNode(node); var enumType = getDeclaredTypeOfSymbol(enumSymbol); var autoValue = 0; @@ -15144,7 +15226,7 @@ var ts; getNodeLinks(member).enumMemberValue = autoValue++; } }); - nodeLinks.flags |= 128; + _nodeLinks.flags |= 128; } function getConstantValueForEnumMemberInitializer(initializer, enumIsConst) { return evalConstant(initializer); @@ -15199,10 +15281,10 @@ var ts; } var member = initializer.parent; var currentType = getTypeOfSymbol(getSymbolOfNode(member.parent)); - var enumType; + var _enumType; var propertyName; if (e.kind === 64) { - enumType = currentType; + _enumType = currentType; propertyName = e.text; } else { @@ -15211,21 +15293,21 @@ var ts; e.argumentExpression.kind !== 8) { return undefined; } - var enumType = getTypeOfNode(e.expression); + _enumType = getTypeOfNode(e.expression); propertyName = e.argumentExpression.text; } else { - var enumType = getTypeOfNode(e.expression); + _enumType = getTypeOfNode(e.expression); propertyName = e.name.text; } - if (enumType !== currentType) { + if (_enumType !== currentType) { return undefined; } } if (propertyName === undefined) { return undefined; } - var property = getPropertyOfObjectType(enumType, propertyName); + var property = getPropertyOfObjectType(_enumType, propertyName); if (!property || !(property.flags & 8)) { return undefined; } @@ -15285,8 +15367,8 @@ var ts; } function getFirstNonAmbientClassOrFunctionDeclaration(symbol) { var declarations = symbol.declarations; - for (var i = 0; i < declarations.length; i++) { - var declaration = declarations[i]; + for (var _i = 0, _n = declarations.length; _i < _n; _i++) { + var declaration = declarations[_i]; if ((declaration.kind === 196 || (declaration.kind === 195 && ts.nodeIsPresent(declaration.body))) && !ts.isInAmbientContext(declaration)) { return declaration; } @@ -15462,18 +15544,19 @@ var ts; } function hasExportedMembers(moduleSymbol) { var declarations = moduleSymbol.declarations; - for (var i = 0; i < declarations.length; i++) { - var statements = getModuleStatements(declarations[i]); - for (var j = 0; j < statements.length; j++) { - var node = statements[j]; + for (var _i = 0, _n = declarations.length; _i < _n; _i++) { + var current = declarations[_i]; + var statements = getModuleStatements(current); + for (var _a = 0, _b = statements.length; _a < _b; _a++) { + var node = statements[_a]; if (node.kind === 210) { var exportClause = node.exportClause; if (!exportClause) { return true; } var specifiers = exportClause.elements; - for (var k = 0; k < specifiers.length; k++) { - var specifier = specifiers[k]; + for (var _c = 0, _d = specifiers.length; _c < _d; _c++) { + var specifier = specifiers[_c]; if (!(specifier.propertyName && specifier.name && specifier.name.text === "default")) { return true; } @@ -15838,21 +15921,21 @@ var ts; } case 125: ts.Debug.assert(node.kind === 64 || node.kind === 125, "'node' was expected to be a qualified name or identifier in 'isTypeNode'."); - var parent = node.parent; - if (parent.kind === 142) { + var _parent = node.parent; + if (_parent.kind === 142) { return false; } - if (139 <= parent.kind && parent.kind <= 147) { + if (139 <= _parent.kind && _parent.kind <= 147) { return true; } - switch (parent.kind) { + switch (_parent.kind) { case 127: - return node === parent.constraint; + return node === _parent.constraint; case 130: case 129: case 128: case 193: - return node === parent.type; + return node === _parent.type; case 195: case 160: case 161: @@ -15861,16 +15944,16 @@ var ts; case 131: case 134: case 135: - return node === parent.type; + return node === _parent.type; case 136: case 137: case 138: - return node === parent.type; + return node === _parent.type; case 158: - return node === parent.type; + return node === _parent.type; case 155: case 156: - return parent.typeArguments && ts.indexOf(parent.typeArguments, node) >= 0; + return _parent.typeArguments && ts.indexOf(_parent.typeArguments, node) >= 0; case 157: return false; } @@ -15927,17 +16010,17 @@ var ts; return getNodeLinks(entityName).resolvedSymbol; } else if (entityName.kind === 125) { - var symbol = getNodeLinks(entityName).resolvedSymbol; - if (!symbol) { + var _symbol = getNodeLinks(entityName).resolvedSymbol; + if (!_symbol) { checkQualifiedName(entityName); } return getNodeLinks(entityName).resolvedSymbol; } } else if (isTypeReferenceIdentifier(entityName)) { - var meaning = entityName.parent.kind === 139 ? 793056 : 1536; - meaning |= 8388608; - return resolveEntityName(entityName, meaning); + var _meaning = entityName.parent.kind === 139 ? 793056 : 1536; + _meaning |= 8388608; + return resolveEntityName(entityName, _meaning); } return undefined; } @@ -16011,21 +16094,21 @@ var ts; return getDeclaredTypeOfSymbol(symbol); } if (isTypeDeclarationName(node)) { - var symbol = getSymbolInfo(node); - return symbol && getDeclaredTypeOfSymbol(symbol); + var _symbol = getSymbolInfo(node); + return _symbol && getDeclaredTypeOfSymbol(_symbol); } if (ts.isDeclaration(node)) { - var symbol = getSymbolOfNode(node); - return getTypeOfSymbol(symbol); + var _symbol_1 = getSymbolOfNode(node); + return getTypeOfSymbol(_symbol_1); } if (ts.isDeclarationName(node)) { - var symbol = getSymbolInfo(node); - return symbol && getTypeOfSymbol(symbol); + var _symbol_2 = getSymbolInfo(node); + return _symbol_2 && getTypeOfSymbol(_symbol_2); } if (isInRightSideOfImportOrExportAssignment(node)) { - var symbol = getSymbolInfo(node); - var declaredType = symbol && getDeclaredTypeOfSymbol(symbol); - return declaredType !== unknownType ? declaredType : getTypeOfSymbol(symbol); + var _symbol_3 = getSymbolInfo(node); + var declaredType = _symbol_3 && getDeclaredTypeOfSymbol(_symbol_3); + return declaredType !== unknownType ? declaredType : getTypeOfSymbol(_symbol_3); } return unknownType; } @@ -16036,7 +16119,7 @@ var ts; return checkExpression(expr); } function getAugmentedPropertiesOfType(type) { - var type = getApparentType(type); + type = getApparentType(type); var propsByName = createSymbolTable(getPropertiesOfType(type)); if (getSignaturesOfType(type, 0).length || getSignaturesOfType(type, 1).length) { ts.forEach(getPropertiesOfType(globalFunctionType), function (p) { @@ -16050,9 +16133,9 @@ var ts; function getRootSymbols(symbol) { if (symbol.flags & 268435456) { var symbols = []; - var name = symbol.name; + var _name = symbol.name; ts.forEach(getSymbolLinks(symbol).unionType.types, function (t) { - symbols.push(getPropertyOfType(t, name)); + symbols.push(getPropertyOfType(t, _name)); }); return symbols; } @@ -16125,8 +16208,8 @@ var ts; return ts.hasProperty(globals, name) || ts.hasProperty(sourceFile.identifiers, name) || ts.hasProperty(generatedNames, name); } function makeUniqueName(baseName) { - var name = ts.generateUniqueName(baseName, isExistingName); - return generatedNames[name] = name; + var _name = ts.generateUniqueName(baseName, isExistingName); + return generatedNames[_name] = _name; } function assignGeneratedName(node, name) { getNodeLinks(node).generatedName = ts.unescapeIdentifier(name); @@ -16138,8 +16221,8 @@ var ts; } function generateNameForModuleOrEnum(node) { if (node.name.kind === 64) { - var name = node.name.text; - assignGeneratedName(node, isUniqueLocalName(name, node) ? name : makeUniqueName(name)); + var _name = node.name.text; + assignGeneratedName(node, isUniqueLocalName(_name, node) ? _name : makeUniqueName(_name)); } } function generateNameForImportOrExportDeclaration(node) { @@ -16301,7 +16384,7 @@ var ts; : undefined; var symbol = declarationSymbol || getNodeLinks(n).resolvedSymbol || - resolveName(n, n.text, 2 | 8388608, undefined, undefined); + resolveName(n, n.text, 107455 | 8388608, undefined, undefined); var isLetOrConst = symbol && (symbol.flags & 2) && symbol.valueDeclaration.parent.kind !== 217; @@ -16395,13 +16478,13 @@ var ts; } var lastStatic, lastPrivate, lastProtected, lastDeclare; var flags = 0; - for (var i = 0, n = node.modifiers.length; i < n; i++) { - var modifier = node.modifiers[i]; + for (var _i = 0, _a = node.modifiers, _n = _a.length; _i < _n; _i++) { + var modifier = _a[_i]; switch (modifier.kind) { case 108: case 107: case 106: - var text; + var text = void 0; if (modifier.kind === 108) { text = "public"; } @@ -16600,8 +16683,8 @@ var ts; function checkGrammarForOmittedArgument(node, arguments) { if (arguments) { var sourceFile = ts.getSourceFileOfNode(node); - for (var i = 0, n = arguments.length; i < n; i++) { - var arg = arguments[i]; + for (var _i = 0, _n = arguments.length; _i < _n; _i++) { + var arg = arguments[_i]; if (arg.kind === 172) { return grammarErrorAtPos(sourceFile, arg.pos, 0, ts.Diagnostics.Argument_expression_expected); } @@ -16627,9 +16710,8 @@ var ts; var seenExtendsClause = false; var seenImplementsClause = false; if (!checkGrammarModifiers(node) && node.heritageClauses) { - for (var i = 0, n = node.heritageClauses.length; i < n; i++) { - ts.Debug.assert(i <= 2); - var heritageClause = node.heritageClauses[i]; + for (var _i = 0, _a = node.heritageClauses, _n = _a.length; _i < _n; _i++) { + var heritageClause = _a[_i]; if (heritageClause.token === 78) { if (seenExtendsClause) { return grammarErrorOnFirstToken(heritageClause, ts.Diagnostics.extends_clause_already_seen); @@ -16656,9 +16738,8 @@ var ts; function checkGrammarInterfaceDeclaration(node) { var seenExtendsClause = false; if (node.heritageClauses) { - for (var i = 0, n = node.heritageClauses.length; i < n; i++) { - ts.Debug.assert(i <= 1); - var heritageClause = node.heritageClauses[i]; + for (var _i = 0, _a = node.heritageClauses, _n = _a.length; _i < _n; _i++) { + var heritageClause = _a[_i]; if (heritageClause.token === 78) { if (seenExtendsClause) { return grammarErrorOnFirstToken(heritageClause, ts.Diagnostics.extends_clause_already_seen); @@ -16703,19 +16784,19 @@ var ts; var SetAccesor = 4; var GetOrSetAccessor = GetAccessor | SetAccesor; var inStrictMode = (node.parserContextFlags & 1) !== 0; - for (var i = 0, n = node.properties.length; i < n; i++) { - var prop = node.properties[i]; - var name = prop.name; + for (var _i = 0, _a = node.properties, _n = _a.length; _i < _n; _i++) { + var prop = _a[_i]; + var _name = prop.name; if (prop.kind === 172 || - name.kind === 126) { - checkGrammarComputedPropertyName(name); + _name.kind === 126) { + checkGrammarComputedPropertyName(_name); continue; } - var currentKind; + var currentKind = void 0; if (prop.kind === 218 || prop.kind === 219) { checkGrammarForInvalidQuestionMark(prop, prop.questionToken, ts.Diagnostics.An_object_member_cannot_be_declared_optional); - if (name.kind === 7) { - checkGrammarNumbericLiteral(name); + if (_name.kind === 7) { + checkGrammarNumbericLiteral(_name); } currentKind = Property; } @@ -16731,26 +16812,26 @@ var ts; else { ts.Debug.fail("Unexpected syntax kind:" + prop.kind); } - if (!ts.hasProperty(seen, name.text)) { - seen[name.text] = currentKind; + if (!ts.hasProperty(seen, _name.text)) { + seen[_name.text] = currentKind; } else { - var existingKind = seen[name.text]; + var existingKind = seen[_name.text]; if (currentKind === Property && existingKind === Property) { if (inStrictMode) { - grammarErrorOnNode(name, ts.Diagnostics.An_object_literal_cannot_have_multiple_properties_with_the_same_name_in_strict_mode); + grammarErrorOnNode(_name, ts.Diagnostics.An_object_literal_cannot_have_multiple_properties_with_the_same_name_in_strict_mode); } } else if ((currentKind & GetOrSetAccessor) && (existingKind & GetOrSetAccessor)) { if (existingKind !== GetOrSetAccessor && currentKind !== existingKind) { - seen[name.text] = currentKind | existingKind; + seen[_name.text] = currentKind | existingKind; } else { - return grammarErrorOnNode(name, ts.Diagnostics.An_object_literal_cannot_have_multiple_get_Slashset_accessors_with_the_same_name); + return grammarErrorOnNode(_name, ts.Diagnostics.An_object_literal_cannot_have_multiple_get_Slashset_accessors_with_the_same_name); } } else { - return grammarErrorOnNode(name, ts.Diagnostics.An_object_literal_cannot_have_property_and_accessor_with_the_same_name); + return grammarErrorOnNode(_name, ts.Diagnostics.An_object_literal_cannot_have_property_and_accessor_with_the_same_name); } } } @@ -16770,16 +16851,16 @@ var ts; } var firstDeclaration = variableList.declarations[0]; if (firstDeclaration.initializer) { - var diagnostic = forInOrOfStatement.kind === 182 + var _diagnostic = forInOrOfStatement.kind === 182 ? ts.Diagnostics.The_variable_declaration_of_a_for_in_statement_cannot_have_an_initializer : ts.Diagnostics.The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer; - return grammarErrorOnNode(firstDeclaration.name, diagnostic); + return grammarErrorOnNode(firstDeclaration.name, _diagnostic); } if (firstDeclaration.type) { - var diagnostic = forInOrOfStatement.kind === 182 + var _diagnostic_1 = forInOrOfStatement.kind === 182 ? ts.Diagnostics.The_left_hand_side_of_a_for_in_statement_cannot_use_a_type_annotation : ts.Diagnostics.The_left_hand_side_of_a_for_of_statement_cannot_use_a_type_annotation; - return grammarErrorOnNode(firstDeclaration, diagnostic); + return grammarErrorOnNode(firstDeclaration, _diagnostic_1); } } } @@ -16913,10 +16994,10 @@ var ts; return grammarErrorOnNode(node, message); } else { - var message = node.kind === 185 + var _message = node.kind === 185 ? ts.Diagnostics.A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement : ts.Diagnostics.A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement; - return grammarErrorOnNode(node, message); + return grammarErrorOnNode(node, _message); } } function checkGrammarBindingElement(node) { @@ -16963,8 +17044,9 @@ var ts; } else { var elements = name.elements; - for (var i = 0; i < elements.length; ++i) { - checkGrammarNameInLetOrConstDeclarations(elements[i].name); + for (var _i = 0, _n = elements.length; _i < _n; _i++) { + var element = elements[_i]; + checkGrammarNameInLetOrConstDeclarations(element.name); } } } @@ -17020,8 +17102,8 @@ var ts; if (!enumIsConst) { var inConstantEnumMemberSection = true; var inAmbientContext = ts.isInAmbientContext(enumDecl); - for (var i = 0, n = enumDecl.members.length; i < n; i++) { - var node = enumDecl.members[i]; + for (var _i = 0, _a = enumDecl.members, _n = _a.length; _i < _n; _i++) { + var node = _a[_i]; if (node.name.kind === 126) { hasError = grammarErrorOnNode(node.name, ts.Diagnostics.Computed_property_names_are_not_allowed_in_enums); } @@ -17116,8 +17198,8 @@ var ts; return grammarErrorOnFirstToken(node, ts.Diagnostics.A_declare_modifier_is_required_for_a_top_level_declaration_in_a_d_ts_file); } function checkGrammarTopLevelElementsForRequiredDeclareModifier(file) { - for (var i = 0, n = file.statements.length; i < n; i++) { - var decl = file.statements[i]; + for (var _i = 0, _a = file.statements, _n = _a.length; _i < _n; _i++) { + var decl = _a[_i]; if (ts.isDeclaration(decl) || decl.kind === 175) { if (checkGrammarTopLevelElementForRequiredDeclareModifier(decl)) { return true; @@ -17138,9 +17220,9 @@ var ts; return getNodeLinks(node).hasReportedStatementInAmbientContext = grammarErrorOnFirstToken(node, ts.Diagnostics.An_implementation_cannot_be_declared_in_ambient_contexts); } if (node.parent.kind === 174 || node.parent.kind === 201 || node.parent.kind === 221) { - var links = getNodeLinks(node.parent); - if (!links.hasReportedStatementInAmbientContext) { - return links.hasReportedStatementInAmbientContext = grammarErrorOnFirstToken(node, ts.Diagnostics.Statements_are_not_allowed_in_ambient_contexts); + var _links = getNodeLinks(node.parent); + if (!_links.hasReportedStatementInAmbientContext) { + return _links.hasReportedStatementInAmbientContext = grammarErrorOnFirstToken(node, ts.Diagnostics.Statements_are_not_allowed_in_ambient_contexts); } } else { @@ -17401,11 +17483,12 @@ var ts; } function getOwnEmitOutputFilePath(sourceFile, host, extension) { var compilerOptions = host.getCompilerOptions(); + var emitOutputFilePathWithoutExtension; if (compilerOptions.outDir) { - var emitOutputFilePathWithoutExtension = ts.removeFileExtension(getSourceFilePathInNewDir(sourceFile, host, compilerOptions.outDir)); + emitOutputFilePathWithoutExtension = ts.removeFileExtension(getSourceFilePathInNewDir(sourceFile, host, compilerOptions.outDir)); } else { - var emitOutputFilePathWithoutExtension = ts.removeFileExtension(sourceFile.fileName); + emitOutputFilePathWithoutExtension = ts.removeFileExtension(sourceFile.fileName); } return emitOutputFilePathWithoutExtension + extension; } @@ -17487,17 +17570,17 @@ var ts; } } function createAndSetNewTextWriterWithSymbolWriter() { - var writer = createTextWriter(newLine); - writer.trackSymbol = trackSymbol; - writer.writeKeyword = writer.write; - writer.writeOperator = writer.write; - writer.writePunctuation = writer.write; - writer.writeSpace = writer.write; - writer.writeStringLiteral = writer.writeLiteral; - writer.writeParameter = writer.write; - writer.writeSymbol = writer.write; - setWriter(writer); - return writer; + var _writer = createTextWriter(newLine); + _writer.trackSymbol = trackSymbol; + _writer.writeKeyword = _writer.write; + _writer.writeOperator = _writer.write; + _writer.writePunctuation = _writer.write; + _writer.writeSpace = _writer.write; + _writer.writeStringLiteral = _writer.writeLiteral; + _writer.writeParameter = _writer.write; + _writer.writeSymbol = _writer.write; + setWriter(_writer); + return _writer; } function setWriter(newWriter) { writer = newWriter; @@ -17565,18 +17648,20 @@ var ts; } } function emitLines(nodes) { - for (var i = 0, n = nodes.length; i < n; i++) { - emit(nodes[i]); + for (var _i = 0, _n = nodes.length; _i < _n; _i++) { + var node = nodes[_i]; + emit(node); } } function emitSeparatedList(nodes, separator, eachNodeEmitFn) { var currentWriterPos = writer.getTextPos(); - for (var i = 0, n = nodes.length; i < n; i++) { + for (var _i = 0, _n = nodes.length; _i < _n; _i++) { + var node = nodes[_i]; if (currentWriterPos !== writer.getTextPos()) { write(separator); } currentWriterPos = writer.getTextPos(); - eachNodeEmitFn(nodes[i]); + eachNodeEmitFn(node); } } function emitCommaList(nodes, eachNodeEmitFn) { @@ -18065,13 +18150,14 @@ var ts; return; } var accessors = getAllAccessorDeclarations(node.parent.members, node); + var accessorWithTypeAnnotation; if (node === accessors.firstAccessor) { emitJsDocComments(accessors.getAccessor); emitJsDocComments(accessors.setAccessor); emitClassMemberDeclarationFlags(node); writeTextOfNode(currentSourceFile, node.name); if (!(node.flags & 32)) { - var accessorWithTypeAnnotation = node; + accessorWithTypeAnnotation = node; var type = getTypeAnnotationFromAccessor(node); if (!type) { var anotherAccessor = node.kind === 134 ? accessors.setAccessor : accessors.getAccessor; @@ -18505,14 +18591,14 @@ var ts; } } function generateUniqueNameForLocation(location, baseName) { - var name; + var _name; if (!isExistingName(location, baseName)) { - name = baseName; + _name = baseName; } else { - name = ts.generateUniqueName(baseName, function (n) { return isExistingName(location, n); }); + _name = ts.generateUniqueName(baseName, function (n) { return isExistingName(location, n); }); } - return recordNameInCurrentScope(name); + return recordNameInCurrentScope(_name); } function recordNameInCurrentScope(name) { if (!currentScopeNames) { @@ -18660,8 +18746,8 @@ var ts; if (scopeName) { var parentIndex = getSourceMapNameIndex(); if (parentIndex !== -1) { - var name = node.name; - if (!name || name.kind !== 126) { + var _name = node.name; + if (!_name || _name.kind !== 126) { scopeName = "." + scopeName; } scopeName = sourceMapData.sourceMapNames[parentIndex] + scopeName; @@ -18688,9 +18774,9 @@ var ts; node.kind === 196 || node.kind === 199) { if (node.name) { - var name = node.name; - scopeName = name.kind === 126 - ? ts.getTextOfNode(name) + var _name = node.name; + scopeName = _name.kind === 126 + ? ts.getTextOfNode(_name) : node.name.text; } recordScopeNameStart(scopeName); @@ -18805,14 +18891,18 @@ var ts; function writeJavaScriptFile(emitOutput, writeByteOrderMark) { writeFile(host, diagnostics, jsFilePath, emitOutput, writeByteOrderMark); } - function createTempVariable(location, forLoopVariable) { - var name = forLoopVariable ? "_i" : undefined; - while (true) { - if (name && !isExistingName(location, name)) { - break; + function createTempVariable(location, preferredName) { + for (var name = preferredName; !name || isExistingName(location, name); tempCount++) { + var char = 97 + tempCount; + if (char === 105 || char === 110) { + continue; + } + if (tempCount < 26) { + name = "_" + String.fromCharCode(char); + } + else { + name = "_" + (tempCount - 26); } - name = "_" + (tempCount < 25 ? String.fromCharCode(tempCount + (tempCount < 8 ? 0 : 1) + 97) : tempCount - 25); - tempCount++; } recordNameInCurrentScope(name); var result = ts.createSynthesizedNode(64); @@ -18825,8 +18915,8 @@ var ts; } tempVariables.push(name); } - function createAndRecordTempVariable(location) { - var temp = createTempVariable(location, false); + function createAndRecordTempVariable(location, preferredName) { + var temp = createTempVariable(location, preferredName); recordTempDeclaration(temp); return temp; } @@ -19056,7 +19146,7 @@ var ts; emitLiteral(node.head); headEmitted = true; } - for (var i = 0; i < node.templateSpans.length; i++) { + for (var i = 0, n = node.templateSpans.length; i < n; i++) { var templateSpan = node.templateSpans[i]; var needsParens = templateSpan.expression.kind !== 159 && comparePrecedenceToBinaryPlus(templateSpan.expression) !== 1; @@ -19133,8 +19223,8 @@ var ts; } } function isNotExpressionIdentifier(node) { - var parent = node.parent; - switch (parent.kind) { + var _parent = node.parent; + switch (_parent.kind) { case 128: case 193: case 150: @@ -19154,7 +19244,7 @@ var ts; case 199: case 200: case 203: - return parent.name === node; + return _parent.name === node; case 185: case 184: case 209: @@ -19261,8 +19351,8 @@ var ts; function emitListWithSpread(elements, multiLine, trailingComma) { var pos = 0; var group = 0; - var length = elements.length; - while (pos < length) { + var _length = elements.length; + while (pos < _length) { if (group === 1) { write(".concat("); } @@ -19277,14 +19367,14 @@ var ts; } else { var i = pos; - while (i < length && elements[i].kind !== 171) { + while (i < _length && elements[i].kind !== 171) { i++; } write("["); if (multiLine) { increaseIndent(); } - emitList(elements, pos, i - pos, multiLine, trailingComma && i === length); + emitList(elements, pos, i - pos, multiLine, trailingComma && i === _length); if (multiLine) { decreaseIndent(); } @@ -19360,8 +19450,8 @@ var ts; var propertyDescriptor = ts.createSynthesizedNode(152); var descriptorProperties = []; if (getAccessor) { - var getProperty = createPropertyAssignment(createIdentifier("get"), createFunctionExpression(getAccessor.parameters, getAccessor.body)); - descriptorProperties.push(getProperty); + var _getProperty = createPropertyAssignment(createIdentifier("get"), createFunctionExpression(getAccessor.parameters, getAccessor.body)); + descriptorProperties.push(_getProperty); } if (setAccessor) { var setProperty = createPropertyAssignment(createIdentifier("set"), createFunctionExpression(setAccessor.parameters, setAccessor.body)); @@ -19474,7 +19564,6 @@ var ts; } } write("{"); - var properties = node.properties; if (properties.length) { emitLinePreservingList(node, properties, languageVersion >= 1, true); } @@ -19919,8 +20008,9 @@ var ts; write(" "); endPos = emitToken(16, endPos); var rhsIsIdentifier = node.expression.kind === 64; - var counter = createTempVariable(node, true); - var rhsReference = rhsIsIdentifier ? node.expression : createTempVariable(node, false); + var counter = createTempVariable(node, "_i"); + var rhsReference = rhsIsIdentifier ? node.expression : createTempVariable(node); + var cachedLength = compilerOptions.cacheDownlevelForOfLength ? createTempVariable(node, "_n") : undefined; emitStart(node.expression); write("var "); emitNodeWithoutSourceMap(counter); @@ -19934,12 +20024,24 @@ var ts; emitNodeWithoutSourceMap(node.expression); emitEnd(node.expression); } + if (cachedLength) { + write(", "); + emitNodeWithoutSourceMap(cachedLength); + write(" = "); + emitNodeWithoutSourceMap(rhsReference); + write(".length"); + } write("; "); emitStart(node.initializer); emitNodeWithoutSourceMap(counter); write(" < "); - emitNodeWithoutSourceMap(rhsReference); - write(".length"); + if (cachedLength) { + emitNodeWithoutSourceMap(cachedLength); + } + else { + emitNodeWithoutSourceMap(rhsReference); + write(".length"); + } emitEnd(node.initializer); write("; "); emitStart(node.initializer); @@ -19967,7 +20069,7 @@ var ts; } } else { - emitNodeWithoutSourceMap(createTempVariable(node, false)); + emitNodeWithoutSourceMap(createTempVariable(node)); write(" = "); emitNodeWithoutSourceMap(rhsIterationValue); } @@ -20135,7 +20237,7 @@ var ts; } function emitDestructuring(root, isAssignmentExpressionStatement, value, lowestNonSynthesizedAncestor) { var emitCount = 0; - var isDeclaration = (root.kind === 193 && !(ts.getCombinedNodeFlags(root) & 1)) || root.kind === 128; + var _isDeclaration = (root.kind === 193 && !(ts.getCombinedNodeFlags(root) & 1)) || root.kind === 128; if (root.kind === 167) { emitAssignmentExpression(root); } @@ -20160,7 +20262,7 @@ var ts; function ensureIdentifier(expr) { if (expr.kind !== 64) { var identifier = createTempVariable(lowestNonSynthesizedAncestor || root); - if (!isDeclaration) { + if (!_isDeclaration) { recordTempDeclaration(identifier); } emitAssignment(identifier, expr); @@ -20215,8 +20317,8 @@ var ts; if (properties.length !== 1) { value = ensureIdentifier(value); } - for (var i = 0; i < properties.length; i++) { - var p = properties[i]; + for (var _i = 0, _n = properties.length; _i < _n; _i++) { + var p = properties[_i]; if (p.kind === 218 || p.kind === 219) { var propName = (p.name); emitDestructuringAssignment(p.initializer || propName, createPropertyAccess(value, propName)); @@ -20261,18 +20363,18 @@ var ts; } function emitAssignmentExpression(root) { var target = root.left; - var value = root.right; + var _value = root.right; if (isAssignmentExpressionStatement) { - emitDestructuringAssignment(target, value); + emitDestructuringAssignment(target, _value); } else { if (root.parent.kind !== 159) { write("("); } - value = ensureIdentifier(value); - emitDestructuringAssignment(target, value); + _value = ensureIdentifier(_value); + emitDestructuringAssignment(target, _value); write(", "); - emit(value); + emit(_value); if (root.parent.kind !== 159) { write(")"); } @@ -20343,12 +20445,12 @@ var ts; } } function emitExportVariableAssignments(node) { - var name = node.name; - if (name.kind === 64) { - emitExportMemberAssignments(name); + var _name = node.name; + if (_name.kind === 64) { + emitExportMemberAssignments(_name); } - else if (ts.isBindingPattern(name)) { - ts.forEach(name.elements, emitExportVariableAssignments); + else if (ts.isBindingPattern(_name)) { + ts.forEach(_name.elements, emitExportVariableAssignments); } } function getCombinedFlagsForIdentifier(node) { @@ -20373,10 +20475,10 @@ var ts; return; } var blockScopeContainer = ts.getEnclosingBlockScopeContainer(node); - var parent = blockScopeContainer.kind === 221 + var _parent = blockScopeContainer.kind === 221 ? blockScopeContainer : blockScopeContainer.parent; - var generatedName = generateUniqueNameForLocation(parent, node.text); + var generatedName = generateUniqueNameForLocation(_parent, node.text); var variableId = resolver.getBlockScopedVariableId(node); if (!generatedBlockScopeNames) { generatedBlockScopeNames = []; @@ -20396,12 +20498,12 @@ var ts; function emitParameter(node) { if (languageVersion < 2) { if (ts.isBindingPattern(node.name)) { - var name = createTempVariable(node); + var _name = createTempVariable(node); if (!tempParameters) { tempParameters = []; } - tempParameters.push(name); - emit(name); + tempParameters.push(_name); + emit(_name); } else { emit(node.name); @@ -20448,7 +20550,7 @@ var ts; if (languageVersion < 2 && ts.hasRestParameters(node)) { var restIndex = node.parameters.length - 1; var restParam = node.parameters[restIndex]; - var tempName = createTempVariable(node, true).text; + var tempName = createTempVariable(node, "_i").text; writeLine(); emitLeadingComments(restParam); emitStart(restParam); @@ -20647,9 +20749,10 @@ var ts; decreaseIndent(); var preambleEmitted = writer.getTextPos() !== initialTextPos; if (preserveNewLines && !preambleEmitted && nodeEndIsOnSameLineAsNodeStart(body, body)) { - for (var i = 0, n = body.statements.length; i < n; i++) { + for (var _i = 0, _a = body.statements, _n = _a.length; _i < _n; _i++) { + var statement = _a[_i]; write(" "); - emit(body.statements[i]); + emit(statement); } emitTempDeclarations(false); write(" "); @@ -20887,11 +20990,12 @@ var ts; emitDetachedComments(ctor.body.statements); } emitCaptureThisForNodeIfNecessary(node); + var superCall; if (ctor) { emitDefaultValueAssignments(ctor); emitRestParameter(ctor); if (baseTypeNode) { - var superCall = findInitialSuperCall(ctor); + superCall = findInitialSuperCall(ctor); if (superCall) { writeLine(); emit(superCall); @@ -21239,8 +21343,8 @@ var ts; if (specifier.name.text === "default") { exportDefault = exportDefault || specifier; } - var name = (specifier.propertyName || specifier.name).text; - (exportSpecifiers[name] || (exportSpecifiers[name] = [])).push(specifier); + var _name = (specifier.propertyName || specifier.name).text; + (exportSpecifiers[_name] || (exportSpecifiers[_name] = [])).push(specifier); }); } else if (node.kind === 209) { @@ -21263,8 +21367,8 @@ var ts; } function getExternalImportInfo(node) { if (externalImports) { - for (var i = 0; i < externalImports.length; i++) { - var info = externalImports[i]; + for (var _i = 0, _n = externalImports.length; _i < _n; _i++) { + var info = externalImports[_i]; if (info.rootNode === node) { return info; } @@ -21425,12 +21529,12 @@ var ts; if (node.flags & 2) { return emitPinnedOrTripleSlashComments(node); } - var emitComments = shouldEmitLeadingAndTrailingComments(node); - if (emitComments) { + var _emitComments = shouldEmitLeadingAndTrailingComments(node); + if (_emitComments) { emitLeadingComments(node); } emitJavaScriptWorker(node); - if (emitComments) { + if (_emitComments) { emitTrailingComments(node); } } @@ -21750,9 +21854,10 @@ var ts; } var unsupportedFileEncodingErrorCode = -2147024809; function getSourceFile(fileName, languageVersion, onError) { + var text; try { var start = new Date().getTime(); - var text = ts.sys.readFile(fileName, options.charset); + text = ts.sys.readFile(fileName, options.charset); ts.ioReadTime += new Date().getTime() - start; } catch (e) { @@ -21943,9 +22048,11 @@ var ts; processSourceFile(ts.normalizePath(fileName), isDefaultLib); } function processSourceFile(fileName, isDefaultLib, refFile, refPos, refEnd) { + var start; + var _length; if (refEnd !== undefined && refPos !== undefined) { - var start = refPos; - var length = refEnd - refPos; + start = refPos; + _length = refEnd - refPos; } var diagnostic; if (hasExtension(fileName)) { @@ -21970,7 +22077,7 @@ var ts; } if (diagnostic) { if (refFile) { - diagnostics.add(ts.createFileDiagnostic(refFile, start, length, diagnostic, fileName)); + diagnostics.add(ts.createFileDiagnostic(refFile, start, _length, diagnostic, fileName)); } else { diagnostics.add(ts.createCompilerDiagnostic(diagnostic, fileName)); @@ -22011,17 +22118,17 @@ var ts; files.push(file); } } + return file; } - return file; function getSourceFileFromCache(fileName, canonicalName, useAbsolutePath) { - var file = filesByName[canonicalName]; - if (file && host.useCaseSensitiveFileNames()) { - var sourceFileName = useAbsolutePath ? ts.getNormalizedAbsolutePath(file.fileName, host.getCurrentDirectory()) : file.fileName; + var _file = filesByName[canonicalName]; + if (_file && host.useCaseSensitiveFileNames()) { + var sourceFileName = useAbsolutePath ? ts.getNormalizedAbsolutePath(_file.fileName, host.getCurrentDirectory()) : _file.fileName; if (canonicalName !== sourceFileName) { diagnostics.add(ts.createFileDiagnostic(refFile, refStart, refLength, ts.Diagnostics.File_name_0_differs_from_already_included_file_name_1_only_in_casing, fileName, sourceFileName)); } } - return file; + return _file; } } function processReferencedFiles(file, basePath) { @@ -22059,10 +22166,10 @@ var ts; var nameLiteral = ts.getExternalModuleImportEqualsDeclarationExpression(node); var moduleName = nameLiteral.text; if (moduleName) { - var searchName = ts.normalizePath(ts.combinePaths(basePath, moduleName)); - var tsFile = findModuleSourceFile(searchName + ".ts", nameLiteral); + var _searchName = ts.normalizePath(ts.combinePaths(basePath, moduleName)); + var tsFile = findModuleSourceFile(_searchName + ".ts", nameLiteral); if (!tsFile) { - findModuleSourceFile(searchName + ".d.ts", nameLiteral); + findModuleSourceFile(_searchName + ".d.ts", nameLiteral); } } } @@ -22279,6 +22386,12 @@ var ts; description: ts.Diagnostics.Preserve_new_lines_when_emitting_code, experimental: true }, + { + name: "cacheDownlevelForOfLength", + type: "boolean", + description: "Cache length access when downlevel emitting for-of statements", + experimental: true + }, { name: "target", shortName: "t", diff --git a/bin/tsserver.js b/bin/tsserver.js index 65a06ca9928..44075b1f778 100644 --- a/bin/tsserver.js +++ b/bin/tsserver.js @@ -44,8 +44,9 @@ var ts; ts.forEach = forEach; function contains(array, value) { if (array) { - for (var i = 0, len = array.length; i < len; i++) { - if (array[i] === value) { + for (var _i = 0, _n = array.length; _i < _n; _i++) { + var v = array[_i]; + if (v === value) { return true; } } @@ -67,8 +68,9 @@ var ts; function countWhere(array, predicate) { var count = 0; if (array) { - for (var i = 0, len = array.length; i < len; i++) { - if (predicate(array[i])) { + for (var _i = 0, _n = array.length; _i < _n; _i++) { + var v = array[_i]; + if (predicate(v)) { count++; } } @@ -77,12 +79,13 @@ var ts; } ts.countWhere = countWhere; function filter(array, f) { + var result; if (array) { - var result = []; - for (var i = 0, len = array.length; i < len; i++) { - var item = array[i]; - if (f(item)) { - result.push(item); + result = []; + for (var _i = 0, _n = array.length; _i < _n; _i++) { + var _item = array[_i]; + if (f(_item)) { + result.push(_item); } } } @@ -90,10 +93,12 @@ var ts; } ts.filter = filter; function map(array, f) { + var result; if (array) { - var result = []; - for (var i = 0, len = array.length; i < len; i++) { - result.push(f(array[i])); + result = []; + for (var _i = 0, _n = array.length; _i < _n; _i++) { + var v = array[_i]; + result.push(f(v)); } } return result; @@ -108,12 +113,14 @@ var ts; } ts.concatenate = concatenate; function deduplicate(array) { + var result; if (array) { - var result = []; - for (var i = 0, len = array.length; i < len; i++) { - var item = array[i]; - if (!contains(result, item)) - result.push(item); + result = []; + for (var _i = 0, _n = array.length; _i < _n; _i++) { + var _item = array[_i]; + if (!contains(result, _item)) { + result.push(_item); + } } } return result; @@ -121,15 +128,17 @@ var ts; ts.deduplicate = deduplicate; function sum(array, prop) { var result = 0; - for (var i = 0; i < array.length; i++) { - result += array[i][prop]; + for (var _i = 0, _n = array.length; _i < _n; _i++) { + var v = array[_i]; + result += v[prop]; } return result; } ts.sum = sum; function addRange(to, from) { - for (var i = 0, n = from.length; i < n; i++) { - to.push(from[i]); + for (var _i = 0, _n = from.length; _i < _n; _i++) { + var v = from[_i]; + to.push(v); } } ts.addRange = addRange; @@ -190,9 +199,9 @@ var ts; for (var id in first) { result[id] = first[id]; } - for (var id in second) { - if (!hasProperty(result, id)) { - result[id] = second[id]; + for (var _id in second) { + if (!hasProperty(result, _id)) { + result[_id] = second[_id]; } } return result; @@ -244,13 +253,13 @@ var ts; ts.arrayToMap = arrayToMap; function formatStringFromArgs(text, args, baseIndex) { baseIndex = baseIndex || 0; - return text.replace(/{(\d+)}/g, function (match, index) { - return args[+index + baseIndex]; - }); + return text.replace(/{(\d+)}/g, function (match, index) { return args[+index + baseIndex]; }); } ts.localizedDiagnosticMessages = undefined; function getLocaleSpecificMessage(message) { - return ts.localizedDiagnosticMessages && ts.localizedDiagnosticMessages[message] ? ts.localizedDiagnosticMessages[message] : message; + return ts.localizedDiagnosticMessages && ts.localizedDiagnosticMessages[message] + ? ts.localizedDiagnosticMessages[message] + : message; } ts.getLocaleSpecificMessage = getLocaleSpecificMessage; function createFileDiagnostic(file, start, length, message) { @@ -321,7 +330,12 @@ var ts; return diagnostic.file ? diagnostic.file.fileName : undefined; } function compareDiagnostics(d1, d2) { - return compareValues(getDiagnosticFileName(d1), getDiagnosticFileName(d2)) || compareValues(d1.start, d2.start) || compareValues(d1.length, d2.length) || compareValues(d1.code, d2.code) || compareMessageText(d1.messageText, d2.messageText) || 0; + return compareValues(getDiagnosticFileName(d1), getDiagnosticFileName(d2)) || + compareValues(d1.start, d2.start) || + compareValues(d1.length, d2.length) || + compareValues(d1.code, d2.code) || + compareMessageText(d1.messageText, d2.messageText) || + 0; } ts.compareDiagnostics = compareDiagnostics; function compareMessageText(text1, text2) { @@ -348,9 +362,7 @@ var ts; if (diagnostics.length < 2) { return diagnostics; } - var newDiagnostics = [ - diagnostics[0] - ]; + var newDiagnostics = [diagnostics[0]]; var previousDiagnostic = diagnostics[0]; for (var i = 1; i < diagnostics.length; i++) { var currentDiagnostic = diagnostics[i]; @@ -391,8 +403,8 @@ var ts; function getNormalizedParts(normalizedSlashedPath, rootLength) { var parts = normalizedSlashedPath.substr(rootLength).split(ts.directorySeparator); var normalized = []; - for (var i = 0; i < parts.length; i++) { - var part = parts[i]; + for (var _i = 0, _n = parts.length; _i < _n; _i++) { + var part = parts[_i]; if (part !== ".") { if (part === ".." && normalized.length > 0 && normalized[normalized.length - 1] !== "..") { normalized.pop(); @@ -407,7 +419,7 @@ var ts; return normalized; } function normalizePath(path) { - var path = normalizeSlashes(path); + path = normalizeSlashes(path); var rootLength = getRootLength(path); var normalized = getNormalizedParts(path, rootLength); return path.substr(0, rootLength) + normalized.join(ts.directorySeparator); @@ -427,12 +439,10 @@ var ts; ts.isRootedDiskPath = isRootedDiskPath; function normalizedPathComponents(path, rootLength) { var normalizedParts = getNormalizedParts(path, rootLength); - return [ - path.substr(0, rootLength) - ].concat(normalizedParts); + return [path.substr(0, rootLength)].concat(normalizedParts); } function getNormalizedPathComponents(path, currentDirectory) { - var path = normalizeSlashes(path); + path = normalizeSlashes(path); var rootLength = getRootLength(path); if (rootLength == 0) { path = combinePaths(normalizeSlashes(currentDirectory), path); @@ -463,9 +473,7 @@ var ts; } } if (rootLength === urlLength) { - return [ - url - ]; + return [url]; } var indexOfNextSlash = url.indexOf(ts.directorySeparator, rootLength); if (indexOfNextSlash !== -1) { @@ -473,9 +481,7 @@ var ts; return normalizedPathComponents(url, rootLength); } else { - return [ - url + ts.directorySeparator - ]; + return [url + ts.directorySeparator]; } } function getNormalizedPathOrUrlComponents(pathOrUrl, currentDirectory) { @@ -537,14 +543,10 @@ var ts; return pathLen > extLen && path.substr(pathLen - extLen, extLen) === extension; } ts.fileExtensionIs = fileExtensionIs; - var supportedExtensions = [ - ".d.ts", - ".ts", - ".js" - ]; + var supportedExtensions = [".d.ts", ".ts", ".js"]; function removeFileExtension(path) { - for (var i = 0; i < supportedExtensions.length; i++) { - var ext = supportedExtensions[i]; + for (var _i = 0, _n = supportedExtensions.length; _i < _n; _i++) { + var ext = supportedExtensions[_i]; if (fileExtensionIs(path, ext)) { return path.substr(0, path.length - ext.length); } @@ -595,15 +597,9 @@ var ts; }; return Node; }, - getSymbolConstructor: function () { - return Symbol; - }, - getTypeConstructor: function () { - return Type; - }, - getSignatureConstructor: function () { - return Signature; - } + getSymbolConstructor: function () { return Symbol; }, + getTypeConstructor: function () { return Type; }, + getSignatureConstructor: function () { return Signature; } }; var Debug; (function (Debug) { @@ -701,15 +697,16 @@ var ts; function visitDirectory(path) { var folder = fso.GetFolder(path || "."); var files = getNames(folder.files); - for (var i = 0; i < files.length; i++) { - var name = files[i]; - if (!extension || ts.fileExtensionIs(name, extension)) { - result.push(ts.combinePaths(path, name)); + for (var _i = 0, _n = files.length; _i < _n; _i++) { + var _name = files[_i]; + if (!extension || ts.fileExtensionIs(_name, extension)) { + result.push(ts.combinePaths(path, _name)); } } var subfolders = getNames(folder.subfolders); - for (var i = 0; i < subfolders.length; i++) { - visitDirectory(ts.combinePaths(path, subfolders[i])); + for (var _a = 0, _b = subfolders.length; _a < _b; _a++) { + var current = subfolders[_a]; + visitDirectory(ts.combinePaths(path, current)); } } } @@ -794,8 +791,9 @@ var ts; function visitDirectory(path) { var files = _fs.readdirSync(path || ".").sort(); var directories = []; - for (var i = 0; i < files.length; i++) { - var name = ts.combinePaths(path, files[i]); + for (var _i = 0, _n = files.length; _i < _n; _i++) { + var current = files[_i]; + var name = ts.combinePaths(path, current); var stat = _fs.lstatSync(name); if (stat.isFile()) { if (!extension || ts.fileExtensionIs(name, extension)) { @@ -806,8 +804,9 @@ var ts; directories.push(name); } } - for (var i = 0; i < directories.length; i++) { - visitDirectory(directories[i]); + for (var _a = 0, _b = directories.length; _a < _b; _a++) { + var _current = directories[_a]; + visitDirectory(_current); } } } @@ -821,14 +820,9 @@ var ts; readFile: readFile, writeFile: writeFile, watchFile: function (fileName, callback) { - _fs.watchFile(fileName, { - persistent: true, - interval: 250 - }, fileChanged); + _fs.watchFile(fileName, { persistent: true, interval: 250 }, fileChanged); return { - close: function () { - _fs.unwatchFile(fileName, fileChanged); - } + close: function () { _fs.unwatchFile(fileName, fileChanged); } }; function fileChanged(curr, prev) { if (+curr.mtime <= +prev.mtime) { @@ -884,2431 +878,491 @@ var ts; var ts; (function (ts) { ts.Diagnostics = { - Unterminated_string_literal: { - code: 1002, - category: 1, - key: "Unterminated string literal." - }, - Identifier_expected: { - code: 1003, - category: 1, - key: "Identifier expected." - }, - _0_expected: { - code: 1005, - category: 1, - key: "'{0}' expected." - }, - A_file_cannot_have_a_reference_to_itself: { - code: 1006, - category: 1, - key: "A file cannot have a reference to itself." - }, - Trailing_comma_not_allowed: { - code: 1009, - category: 1, - key: "Trailing comma not allowed." - }, - Asterisk_Slash_expected: { - code: 1010, - category: 1, - key: "'*/' expected." - }, - Unexpected_token: { - code: 1012, - category: 1, - key: "Unexpected token." - }, - A_rest_parameter_must_be_last_in_a_parameter_list: { - code: 1014, - category: 1, - key: "A rest parameter must be last in a parameter list." - }, - Parameter_cannot_have_question_mark_and_initializer: { - code: 1015, - category: 1, - key: "Parameter cannot have question mark and initializer." - }, - A_required_parameter_cannot_follow_an_optional_parameter: { - code: 1016, - category: 1, - key: "A required parameter cannot follow an optional parameter." - }, - An_index_signature_cannot_have_a_rest_parameter: { - code: 1017, - category: 1, - key: "An index signature cannot have a rest parameter." - }, - An_index_signature_parameter_cannot_have_an_accessibility_modifier: { - code: 1018, - category: 1, - key: "An index signature parameter cannot have an accessibility modifier." - }, - An_index_signature_parameter_cannot_have_a_question_mark: { - code: 1019, - category: 1, - key: "An index signature parameter cannot have a question mark." - }, - An_index_signature_parameter_cannot_have_an_initializer: { - code: 1020, - category: 1, - key: "An index signature parameter cannot have an initializer." - }, - An_index_signature_must_have_a_type_annotation: { - code: 1021, - category: 1, - key: "An index signature must have a type annotation." - }, - An_index_signature_parameter_must_have_a_type_annotation: { - code: 1022, - category: 1, - key: "An index signature parameter must have a type annotation." - }, - An_index_signature_parameter_type_must_be_string_or_number: { - code: 1023, - category: 1, - key: "An index signature parameter type must be 'string' or 'number'." - }, - A_class_or_interface_declaration_can_only_have_one_extends_clause: { - code: 1024, - category: 1, - key: "A class or interface declaration can only have one 'extends' clause." - }, - An_extends_clause_must_precede_an_implements_clause: { - code: 1025, - category: 1, - key: "An 'extends' clause must precede an 'implements' clause." - }, - A_class_can_only_extend_a_single_class: { - code: 1026, - category: 1, - key: "A class can only extend a single class." - }, - A_class_declaration_can_only_have_one_implements_clause: { - code: 1027, - category: 1, - key: "A class declaration can only have one 'implements' clause." - }, - Accessibility_modifier_already_seen: { - code: 1028, - category: 1, - key: "Accessibility modifier already seen." - }, - _0_modifier_must_precede_1_modifier: { - code: 1029, - category: 1, - key: "'{0}' modifier must precede '{1}' modifier." - }, - _0_modifier_already_seen: { - code: 1030, - category: 1, - key: "'{0}' modifier already seen." - }, - _0_modifier_cannot_appear_on_a_class_element: { - code: 1031, - category: 1, - key: "'{0}' modifier cannot appear on a class element." - }, - An_interface_declaration_cannot_have_an_implements_clause: { - code: 1032, - category: 1, - key: "An interface declaration cannot have an 'implements' clause." - }, - super_must_be_followed_by_an_argument_list_or_member_access: { - code: 1034, - category: 1, - key: "'super' must be followed by an argument list or member access." - }, - Only_ambient_modules_can_use_quoted_names: { - code: 1035, - category: 1, - key: "Only ambient modules can use quoted names." - }, - Statements_are_not_allowed_in_ambient_contexts: { - code: 1036, - category: 1, - key: "Statements are not allowed in ambient contexts." - }, - A_declare_modifier_cannot_be_used_in_an_already_ambient_context: { - code: 1038, - category: 1, - key: "A 'declare' modifier cannot be used in an already ambient context." - }, - Initializers_are_not_allowed_in_ambient_contexts: { - code: 1039, - category: 1, - key: "Initializers are not allowed in ambient contexts." - }, - _0_modifier_cannot_appear_on_a_module_element: { - code: 1044, - category: 1, - key: "'{0}' modifier cannot appear on a module element." - }, - A_declare_modifier_cannot_be_used_with_an_interface_declaration: { - code: 1045, - category: 1, - key: "A 'declare' modifier cannot be used with an interface declaration." - }, - A_declare_modifier_is_required_for_a_top_level_declaration_in_a_d_ts_file: { - code: 1046, - category: 1, - key: "A 'declare' modifier is required for a top level declaration in a .d.ts file." - }, - A_rest_parameter_cannot_be_optional: { - code: 1047, - category: 1, - key: "A rest parameter cannot be optional." - }, - A_rest_parameter_cannot_have_an_initializer: { - code: 1048, - category: 1, - key: "A rest parameter cannot have an initializer." - }, - A_set_accessor_must_have_exactly_one_parameter: { - code: 1049, - category: 1, - key: "A 'set' accessor must have exactly one parameter." - }, - A_set_accessor_cannot_have_an_optional_parameter: { - code: 1051, - category: 1, - key: "A 'set' accessor cannot have an optional parameter." - }, - A_set_accessor_parameter_cannot_have_an_initializer: { - code: 1052, - category: 1, - key: "A 'set' accessor parameter cannot have an initializer." - }, - A_set_accessor_cannot_have_rest_parameter: { - code: 1053, - category: 1, - key: "A 'set' accessor cannot have rest parameter." - }, - A_get_accessor_cannot_have_parameters: { - code: 1054, - category: 1, - key: "A 'get' accessor cannot have parameters." - }, - Accessors_are_only_available_when_targeting_ECMAScript_5_and_higher: { - code: 1056, - category: 1, - key: "Accessors are only available when targeting ECMAScript 5 and higher." - }, - Enum_member_must_have_initializer: { - code: 1061, - category: 1, - key: "Enum member must have initializer." - }, - An_export_assignment_cannot_be_used_in_an_internal_module: { - code: 1063, - category: 1, - key: "An export assignment cannot be used in an internal module." - }, - Ambient_enum_elements_can_only_have_integer_literal_initializers: { - code: 1066, - category: 1, - key: "Ambient enum elements can only have integer literal initializers." - }, - Unexpected_token_A_constructor_method_accessor_or_property_was_expected: { - code: 1068, - category: 1, - key: "Unexpected token. A constructor, method, accessor, or property was expected." - }, - A_declare_modifier_cannot_be_used_with_an_import_declaration: { - code: 1079, - category: 1, - key: "A 'declare' modifier cannot be used with an import declaration." - }, - Invalid_reference_directive_syntax: { - code: 1084, - category: 1, - key: "Invalid 'reference' directive syntax." - }, - Octal_literals_are_not_available_when_targeting_ECMAScript_5_and_higher: { - code: 1085, - category: 1, - key: "Octal literals are not available when targeting ECMAScript 5 and higher." - }, - An_accessor_cannot_be_declared_in_an_ambient_context: { - code: 1086, - category: 1, - key: "An accessor cannot be declared in an ambient context." - }, - _0_modifier_cannot_appear_on_a_constructor_declaration: { - code: 1089, - category: 1, - key: "'{0}' modifier cannot appear on a constructor declaration." - }, - _0_modifier_cannot_appear_on_a_parameter: { - code: 1090, - category: 1, - key: "'{0}' modifier cannot appear on a parameter." - }, - Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement: { - code: 1091, - category: 1, - key: "Only a single variable declaration is allowed in a 'for...in' statement." - }, - Type_parameters_cannot_appear_on_a_constructor_declaration: { - code: 1092, - category: 1, - key: "Type parameters cannot appear on a constructor declaration." - }, - Type_annotation_cannot_appear_on_a_constructor_declaration: { - code: 1093, - category: 1, - key: "Type annotation cannot appear on a constructor declaration." - }, - An_accessor_cannot_have_type_parameters: { - code: 1094, - category: 1, - key: "An accessor cannot have type parameters." - }, - A_set_accessor_cannot_have_a_return_type_annotation: { - code: 1095, - category: 1, - key: "A 'set' accessor cannot have a return type annotation." - }, - An_index_signature_must_have_exactly_one_parameter: { - code: 1096, - category: 1, - key: "An index signature must have exactly one parameter." - }, - _0_list_cannot_be_empty: { - code: 1097, - category: 1, - key: "'{0}' list cannot be empty." - }, - Type_parameter_list_cannot_be_empty: { - code: 1098, - category: 1, - key: "Type parameter list cannot be empty." - }, - Type_argument_list_cannot_be_empty: { - code: 1099, - category: 1, - key: "Type argument list cannot be empty." - }, - Invalid_use_of_0_in_strict_mode: { - code: 1100, - category: 1, - key: "Invalid use of '{0}' in strict mode." - }, - with_statements_are_not_allowed_in_strict_mode: { - code: 1101, - category: 1, - key: "'with' statements are not allowed in strict mode." - }, - delete_cannot_be_called_on_an_identifier_in_strict_mode: { - code: 1102, - category: 1, - key: "'delete' cannot be called on an identifier in strict mode." - }, - A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement: { - code: 1104, - category: 1, - key: "A 'continue' statement can only be used within an enclosing iteration statement." - }, - A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement: { - code: 1105, - category: 1, - key: "A 'break' statement can only be used within an enclosing iteration or switch statement." - }, - Jump_target_cannot_cross_function_boundary: { - code: 1107, - category: 1, - key: "Jump target cannot cross function boundary." - }, - A_return_statement_can_only_be_used_within_a_function_body: { - code: 1108, - category: 1, - key: "A 'return' statement can only be used within a function body." - }, - Expression_expected: { - code: 1109, - category: 1, - key: "Expression expected." - }, - Type_expected: { - code: 1110, - category: 1, - key: "Type expected." - }, - A_class_member_cannot_be_declared_optional: { - code: 1112, - category: 1, - key: "A class member cannot be declared optional." - }, - A_default_clause_cannot_appear_more_than_once_in_a_switch_statement: { - code: 1113, - category: 1, - key: "A 'default' clause cannot appear more than once in a 'switch' statement." - }, - Duplicate_label_0: { - code: 1114, - category: 1, - key: "Duplicate label '{0}'" - }, - A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement: { - code: 1115, - category: 1, - key: "A 'continue' statement can only jump to a label of an enclosing iteration statement." - }, - A_break_statement_can_only_jump_to_a_label_of_an_enclosing_statement: { - code: 1116, - category: 1, - key: "A 'break' statement can only jump to a label of an enclosing statement." - }, - An_object_literal_cannot_have_multiple_properties_with_the_same_name_in_strict_mode: { - code: 1117, - category: 1, - key: "An object literal cannot have multiple properties with the same name in strict mode." - }, - An_object_literal_cannot_have_multiple_get_Slashset_accessors_with_the_same_name: { - code: 1118, - category: 1, - key: "An object literal cannot have multiple get/set accessors with the same name." - }, - An_object_literal_cannot_have_property_and_accessor_with_the_same_name: { - code: 1119, - category: 1, - key: "An object literal cannot have property and accessor with the same name." - }, - An_export_assignment_cannot_have_modifiers: { - code: 1120, - category: 1, - key: "An export assignment cannot have modifiers." - }, - Octal_literals_are_not_allowed_in_strict_mode: { - code: 1121, - category: 1, - key: "Octal literals are not allowed in strict mode." - }, - A_tuple_type_element_list_cannot_be_empty: { - code: 1122, - category: 1, - key: "A tuple type element list cannot be empty." - }, - Variable_declaration_list_cannot_be_empty: { - code: 1123, - category: 1, - key: "Variable declaration list cannot be empty." - }, - Digit_expected: { - code: 1124, - category: 1, - key: "Digit expected." - }, - Hexadecimal_digit_expected: { - code: 1125, - category: 1, - key: "Hexadecimal digit expected." - }, - Unexpected_end_of_text: { - code: 1126, - category: 1, - key: "Unexpected end of text." - }, - Invalid_character: { - code: 1127, - category: 1, - key: "Invalid character." - }, - Declaration_or_statement_expected: { - code: 1128, - category: 1, - key: "Declaration or statement expected." - }, - Statement_expected: { - code: 1129, - category: 1, - key: "Statement expected." - }, - case_or_default_expected: { - code: 1130, - category: 1, - key: "'case' or 'default' expected." - }, - Property_or_signature_expected: { - code: 1131, - category: 1, - key: "Property or signature expected." - }, - Enum_member_expected: { - code: 1132, - category: 1, - key: "Enum member expected." - }, - Type_reference_expected: { - code: 1133, - category: 1, - key: "Type reference expected." - }, - Variable_declaration_expected: { - code: 1134, - category: 1, - key: "Variable declaration expected." - }, - Argument_expression_expected: { - code: 1135, - category: 1, - key: "Argument expression expected." - }, - Property_assignment_expected: { - code: 1136, - category: 1, - key: "Property assignment expected." - }, - Expression_or_comma_expected: { - code: 1137, - category: 1, - key: "Expression or comma expected." - }, - Parameter_declaration_expected: { - code: 1138, - category: 1, - key: "Parameter declaration expected." - }, - Type_parameter_declaration_expected: { - code: 1139, - category: 1, - key: "Type parameter declaration expected." - }, - Type_argument_expected: { - code: 1140, - category: 1, - key: "Type argument expected." - }, - String_literal_expected: { - code: 1141, - category: 1, - key: "String literal expected." - }, - Line_break_not_permitted_here: { - code: 1142, - category: 1, - key: "Line break not permitted here." - }, - or_expected: { - code: 1144, - category: 1, - key: "'{' or ';' expected." - }, - Modifiers_not_permitted_on_index_signature_members: { - code: 1145, - category: 1, - key: "Modifiers not permitted on index signature members." - }, - Declaration_expected: { - code: 1146, - category: 1, - key: "Declaration expected." - }, - Import_declarations_in_an_internal_module_cannot_reference_an_external_module: { - code: 1147, - category: 1, - key: "Import declarations in an internal module cannot reference an external module." - }, - Cannot_compile_external_modules_unless_the_module_flag_is_provided: { - code: 1148, - category: 1, - key: "Cannot compile external modules unless the '--module' flag is provided." - }, - File_name_0_differs_from_already_included_file_name_1_only_in_casing: { - code: 1149, - category: 1, - key: "File name '{0}' differs from already included file name '{1}' only in casing" - }, - new_T_cannot_be_used_to_create_an_array_Use_new_Array_T_instead: { - code: 1150, - category: 1, - key: "'new T[]' cannot be used to create an array. Use 'new Array()' instead." - }, - var_let_or_const_expected: { - code: 1152, - category: 1, - key: "'var', 'let' or 'const' expected." - }, - let_declarations_are_only_available_when_targeting_ECMAScript_6_and_higher: { - code: 1153, - category: 1, - key: "'let' declarations are only available when targeting ECMAScript 6 and higher." - }, - const_declarations_are_only_available_when_targeting_ECMAScript_6_and_higher: { - code: 1154, - category: 1, - key: "'const' declarations are only available when targeting ECMAScript 6 and higher." - }, - const_declarations_must_be_initialized: { - code: 1155, - category: 1, - key: "'const' declarations must be initialized" - }, - const_declarations_can_only_be_declared_inside_a_block: { - code: 1156, - category: 1, - key: "'const' declarations can only be declared inside a block." - }, - let_declarations_can_only_be_declared_inside_a_block: { - code: 1157, - category: 1, - key: "'let' declarations can only be declared inside a block." - }, - Unterminated_template_literal: { - code: 1160, - category: 1, - key: "Unterminated template literal." - }, - Unterminated_regular_expression_literal: { - code: 1161, - category: 1, - key: "Unterminated regular expression literal." - }, - An_object_member_cannot_be_declared_optional: { - code: 1162, - category: 1, - key: "An object member cannot be declared optional." - }, - yield_expression_must_be_contained_within_a_generator_declaration: { - code: 1163, - category: 1, - key: "'yield' expression must be contained_within a generator declaration." - }, - Computed_property_names_are_not_allowed_in_enums: { - code: 1164, - category: 1, - key: "Computed property names are not allowed in enums." - }, - A_computed_property_name_in_an_ambient_context_must_directly_refer_to_a_built_in_symbol: { - code: 1165, - category: 1, - key: "A computed property name in an ambient context must directly refer to a built-in symbol." - }, - A_computed_property_name_in_a_class_property_declaration_must_directly_refer_to_a_built_in_symbol: { - code: 1166, - category: 1, - key: "A computed property name in a class property declaration must directly refer to a built-in symbol." - }, - Computed_property_names_are_only_available_when_targeting_ECMAScript_6_and_higher: { - code: 1167, - category: 1, - key: "Computed property names are only available when targeting ECMAScript 6 and higher." - }, - A_computed_property_name_in_a_method_overload_must_directly_refer_to_a_built_in_symbol: { - code: 1168, - category: 1, - key: "A computed property name in a method overload must directly refer to a built-in symbol." - }, - A_computed_property_name_in_an_interface_must_directly_refer_to_a_built_in_symbol: { - code: 1169, - category: 1, - key: "A computed property name in an interface must directly refer to a built-in symbol." - }, - A_computed_property_name_in_a_type_literal_must_directly_refer_to_a_built_in_symbol: { - code: 1170, - category: 1, - key: "A computed property name in a type literal must directly refer to a built-in symbol." - }, - A_comma_expression_is_not_allowed_in_a_computed_property_name: { - code: 1171, - category: 1, - key: "A comma expression is not allowed in a computed property name." - }, - extends_clause_already_seen: { - code: 1172, - category: 1, - key: "'extends' clause already seen." - }, - extends_clause_must_precede_implements_clause: { - code: 1173, - category: 1, - key: "'extends' clause must precede 'implements' clause." - }, - Classes_can_only_extend_a_single_class: { - code: 1174, - category: 1, - key: "Classes can only extend a single class." - }, - implements_clause_already_seen: { - code: 1175, - category: 1, - key: "'implements' clause already seen." - }, - Interface_declaration_cannot_have_implements_clause: { - code: 1176, - category: 1, - key: "Interface declaration cannot have 'implements' clause." - }, - Binary_digit_expected: { - code: 1177, - category: 1, - key: "Binary digit expected." - }, - Octal_digit_expected: { - code: 1178, - category: 1, - key: "Octal digit expected." - }, - Unexpected_token_expected: { - code: 1179, - category: 1, - key: "Unexpected token. '{' expected." - }, - Property_destructuring_pattern_expected: { - code: 1180, - category: 1, - key: "Property destructuring pattern expected." - }, - Array_element_destructuring_pattern_expected: { - code: 1181, - category: 1, - key: "Array element destructuring pattern expected." - }, - A_destructuring_declaration_must_have_an_initializer: { - code: 1182, - category: 1, - key: "A destructuring declaration must have an initializer." - }, - Destructuring_declarations_are_not_allowed_in_ambient_contexts: { - code: 1183, - category: 1, - key: "Destructuring declarations are not allowed in ambient contexts." - }, - An_implementation_cannot_be_declared_in_ambient_contexts: { - code: 1184, - category: 1, - key: "An implementation cannot be declared in ambient contexts." - }, - Modifiers_cannot_appear_here: { - code: 1184, - category: 1, - key: "Modifiers cannot appear here." - }, - Merge_conflict_marker_encountered: { - code: 1185, - category: 1, - key: "Merge conflict marker encountered." - }, - A_rest_element_cannot_have_an_initializer: { - code: 1186, - category: 1, - key: "A rest element cannot have an initializer." - }, - A_parameter_property_may_not_be_a_binding_pattern: { - code: 1187, - category: 1, - key: "A parameter property may not be a binding pattern." - }, - Only_a_single_variable_declaration_is_allowed_in_a_for_of_statement: { - code: 1188, - category: 1, - key: "Only a single variable declaration is allowed in a 'for...of' statement." - }, - The_variable_declaration_of_a_for_in_statement_cannot_have_an_initializer: { - code: 1189, - category: 1, - key: "The variable declaration of a 'for...in' statement cannot have an initializer." - }, - The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer: { - code: 1190, - category: 1, - key: "The variable declaration of a 'for...of' statement cannot have an initializer." - }, - An_import_declaration_cannot_have_modifiers: { - code: 1191, - category: 1, - key: "An import declaration cannot have modifiers." - }, - External_module_0_has_no_default_export_or_export_assignment: { - code: 1192, - category: 1, - key: "External module '{0}' has no default export or export assignment." - }, - An_export_declaration_cannot_have_modifiers: { - code: 1193, - category: 1, - key: "An export declaration cannot have modifiers." - }, - Export_declarations_are_not_permitted_in_an_internal_module: { - code: 1194, - category: 1, - key: "Export declarations are not permitted in an internal module." - }, - Catch_clause_variable_name_must_be_an_identifier: { - code: 1195, - category: 1, - key: "Catch clause variable name must be an identifier." - }, - Catch_clause_variable_cannot_have_a_type_annotation: { - code: 1196, - category: 1, - key: "Catch clause variable cannot have a type annotation." - }, - Catch_clause_variable_cannot_have_an_initializer: { - code: 1197, - category: 1, - key: "Catch clause variable cannot have an initializer." - }, - An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive: { - code: 1198, - category: 1, - key: "An extended Unicode escape value must be between 0x0 and 0x10FFFF inclusive." - }, - Unterminated_Unicode_escape_sequence: { - code: 1199, - category: 1, - key: "Unterminated Unicode escape sequence." - }, - Duplicate_identifier_0: { - code: 2300, - category: 1, - key: "Duplicate identifier '{0}'." - }, - Initializer_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor: { - code: 2301, - category: 1, - key: "Initializer of instance member variable '{0}' cannot reference identifier '{1}' declared in the constructor." - }, - Static_members_cannot_reference_class_type_parameters: { - code: 2302, - category: 1, - key: "Static members cannot reference class type parameters." - }, - Circular_definition_of_import_alias_0: { - code: 2303, - category: 1, - key: "Circular definition of import alias '{0}'." - }, - Cannot_find_name_0: { - code: 2304, - category: 1, - key: "Cannot find name '{0}'." - }, - Module_0_has_no_exported_member_1: { - code: 2305, - category: 1, - key: "Module '{0}' has no exported member '{1}'." - }, - File_0_is_not_an_external_module: { - code: 2306, - category: 1, - key: "File '{0}' is not an external module." - }, - Cannot_find_external_module_0: { - code: 2307, - category: 1, - key: "Cannot find external module '{0}'." - }, - A_module_cannot_have_more_than_one_export_assignment: { - code: 2308, - category: 1, - key: "A module cannot have more than one export assignment." - }, - An_export_assignment_cannot_be_used_in_a_module_with_other_exported_elements: { - code: 2309, - category: 1, - key: "An export assignment cannot be used in a module with other exported elements." - }, - Type_0_recursively_references_itself_as_a_base_type: { - code: 2310, - category: 1, - key: "Type '{0}' recursively references itself as a base type." - }, - A_class_may_only_extend_another_class: { - code: 2311, - category: 1, - key: "A class may only extend another class." - }, - An_interface_may_only_extend_a_class_or_another_interface: { - code: 2312, - category: 1, - key: "An interface may only extend a class or another interface." - }, - Constraint_of_a_type_parameter_cannot_reference_any_type_parameter_from_the_same_type_parameter_list: { - code: 2313, - category: 1, - key: "Constraint of a type parameter cannot reference any type parameter from the same type parameter list." - }, - Generic_type_0_requires_1_type_argument_s: { - code: 2314, - category: 1, - key: "Generic type '{0}' requires {1} type argument(s)." - }, - Type_0_is_not_generic: { - code: 2315, - category: 1, - key: "Type '{0}' is not generic." - }, - Global_type_0_must_be_a_class_or_interface_type: { - code: 2316, - category: 1, - key: "Global type '{0}' must be a class or interface type." - }, - Global_type_0_must_have_1_type_parameter_s: { - code: 2317, - category: 1, - key: "Global type '{0}' must have {1} type parameter(s)." - }, - Cannot_find_global_type_0: { - code: 2318, - category: 1, - key: "Cannot find global type '{0}'." - }, - Named_property_0_of_types_1_and_2_are_not_identical: { - code: 2319, - category: 1, - key: "Named property '{0}' of types '{1}' and '{2}' are not identical." - }, - Interface_0_cannot_simultaneously_extend_types_1_and_2: { - code: 2320, - category: 1, - key: "Interface '{0}' cannot simultaneously extend types '{1}' and '{2}'." - }, - Excessive_stack_depth_comparing_types_0_and_1: { - code: 2321, - category: 1, - key: "Excessive stack depth comparing types '{0}' and '{1}'." - }, - Type_0_is_not_assignable_to_type_1: { - code: 2322, - category: 1, - key: "Type '{0}' is not assignable to type '{1}'." - }, - Property_0_is_missing_in_type_1: { - code: 2324, - category: 1, - key: "Property '{0}' is missing in type '{1}'." - }, - Property_0_is_private_in_type_1_but_not_in_type_2: { - code: 2325, - category: 1, - key: "Property '{0}' is private in type '{1}' but not in type '{2}'." - }, - Types_of_property_0_are_incompatible: { - code: 2326, - category: 1, - key: "Types of property '{0}' are incompatible." - }, - Property_0_is_optional_in_type_1_but_required_in_type_2: { - code: 2327, - category: 1, - key: "Property '{0}' is optional in type '{1}' but required in type '{2}'." - }, - Types_of_parameters_0_and_1_are_incompatible: { - code: 2328, - category: 1, - key: "Types of parameters '{0}' and '{1}' are incompatible." - }, - Index_signature_is_missing_in_type_0: { - code: 2329, - category: 1, - key: "Index signature is missing in type '{0}'." - }, - Index_signatures_are_incompatible: { - code: 2330, - category: 1, - key: "Index signatures are incompatible." - }, - this_cannot_be_referenced_in_a_module_body: { - code: 2331, - category: 1, - key: "'this' cannot be referenced in a module body." - }, - this_cannot_be_referenced_in_current_location: { - code: 2332, - category: 1, - key: "'this' cannot be referenced in current location." - }, - this_cannot_be_referenced_in_constructor_arguments: { - code: 2333, - category: 1, - key: "'this' cannot be referenced in constructor arguments." - }, - this_cannot_be_referenced_in_a_static_property_initializer: { - code: 2334, - category: 1, - key: "'this' cannot be referenced in a static property initializer." - }, - super_can_only_be_referenced_in_a_derived_class: { - code: 2335, - category: 1, - key: "'super' can only be referenced in a derived class." - }, - super_cannot_be_referenced_in_constructor_arguments: { - code: 2336, - category: 1, - key: "'super' cannot be referenced in constructor arguments." - }, - Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors: { - code: 2337, - category: 1, - key: "Super calls are not permitted outside constructors or in nested functions inside constructors" - }, - super_property_access_is_permitted_only_in_a_constructor_member_function_or_member_accessor_of_a_derived_class: { - code: 2338, - category: 1, - key: "'super' property access is permitted only in a constructor, member function, or member accessor of a derived class" - }, - Property_0_does_not_exist_on_type_1: { - code: 2339, - category: 1, - key: "Property '{0}' does not exist on type '{1}'." - }, - Only_public_and_protected_methods_of_the_base_class_are_accessible_via_the_super_keyword: { - code: 2340, - category: 1, - key: "Only public and protected methods of the base class are accessible via the 'super' keyword" - }, - Property_0_is_private_and_only_accessible_within_class_1: { - code: 2341, - category: 1, - key: "Property '{0}' is private and only accessible within class '{1}'." - }, - An_index_expression_argument_must_be_of_type_string_number_symbol_or_any: { - code: 2342, - category: 1, - key: "An index expression argument must be of type 'string', 'number', 'symbol, or 'any'." - }, - Type_0_does_not_satisfy_the_constraint_1: { - code: 2344, - category: 1, - key: "Type '{0}' does not satisfy the constraint '{1}'." - }, - Argument_of_type_0_is_not_assignable_to_parameter_of_type_1: { - code: 2345, - category: 1, - key: "Argument of type '{0}' is not assignable to parameter of type '{1}'." - }, - Supplied_parameters_do_not_match_any_signature_of_call_target: { - code: 2346, - category: 1, - key: "Supplied parameters do not match any signature of call target." - }, - Untyped_function_calls_may_not_accept_type_arguments: { - code: 2347, - category: 1, - key: "Untyped function calls may not accept type arguments." - }, - Value_of_type_0_is_not_callable_Did_you_mean_to_include_new: { - code: 2348, - category: 1, - key: "Value of type '{0}' is not callable. Did you mean to include 'new'?" - }, - Cannot_invoke_an_expression_whose_type_lacks_a_call_signature: { - code: 2349, - category: 1, - key: "Cannot invoke an expression whose type lacks a call signature." - }, - Only_a_void_function_can_be_called_with_the_new_keyword: { - code: 2350, - category: 1, - key: "Only a void function can be called with the 'new' keyword." - }, - Cannot_use_new_with_an_expression_whose_type_lacks_a_call_or_construct_signature: { - code: 2351, - category: 1, - key: "Cannot use 'new' with an expression whose type lacks a call or construct signature." - }, - Neither_type_0_nor_type_1_is_assignable_to_the_other: { - code: 2352, - category: 1, - key: "Neither type '{0}' nor type '{1}' is assignable to the other." - }, - No_best_common_type_exists_among_return_expressions: { - code: 2354, - category: 1, - key: "No best common type exists among return expressions." - }, - A_function_whose_declared_type_is_neither_void_nor_any_must_return_a_value_or_consist_of_a_single_throw_statement: { - code: 2355, - category: 1, - key: "A function whose declared type is neither 'void' nor 'any' must return a value or consist of a single 'throw' statement." - }, - An_arithmetic_operand_must_be_of_type_any_number_or_an_enum_type: { - code: 2356, - category: 1, - key: "An arithmetic operand must be of type 'any', 'number' or an enum type." - }, - The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_property_or_indexer: { - code: 2357, - category: 1, - key: "The operand of an increment or decrement operator must be a variable, property or indexer." - }, - The_left_hand_side_of_an_instanceof_expression_must_be_of_type_any_an_object_type_or_a_type_parameter: { - code: 2358, - category: 1, - key: "The left-hand side of an 'instanceof' expression must be of type 'any', an object type or a type parameter." - }, - The_right_hand_side_of_an_instanceof_expression_must_be_of_type_any_or_of_a_type_assignable_to_the_Function_interface_type: { - code: 2359, - category: 1, - key: "The right-hand side of an 'instanceof' expression must be of type 'any' or of a type assignable to the 'Function' interface type." - }, - The_left_hand_side_of_an_in_expression_must_be_of_type_any_string_number_or_symbol: { - code: 2360, - category: 1, - key: "The left-hand side of an 'in' expression must be of type 'any', 'string', 'number', or 'symbol'." - }, - The_right_hand_side_of_an_in_expression_must_be_of_type_any_an_object_type_or_a_type_parameter: { - code: 2361, - category: 1, - key: "The right-hand side of an 'in' expression must be of type 'any', an object type or a type parameter" - }, - The_left_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_or_an_enum_type: { - code: 2362, - category: 1, - key: "The left-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type." - }, - The_right_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_or_an_enum_type: { - code: 2363, - category: 1, - key: "The right-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type." - }, - Invalid_left_hand_side_of_assignment_expression: { - code: 2364, - category: 1, - key: "Invalid left-hand side of assignment expression." - }, - Operator_0_cannot_be_applied_to_types_1_and_2: { - code: 2365, - category: 1, - key: "Operator '{0}' cannot be applied to types '{1}' and '{2}'." - }, - Type_parameter_name_cannot_be_0: { - code: 2368, - category: 1, - key: "Type parameter name cannot be '{0}'" - }, - A_parameter_property_is_only_allowed_in_a_constructor_implementation: { - code: 2369, - category: 1, - key: "A parameter property is only allowed in a constructor implementation." - }, - A_rest_parameter_must_be_of_an_array_type: { - code: 2370, - category: 1, - key: "A rest parameter must be of an array type." - }, - A_parameter_initializer_is_only_allowed_in_a_function_or_constructor_implementation: { - code: 2371, - category: 1, - key: "A parameter initializer is only allowed in a function or constructor implementation." - }, - Parameter_0_cannot_be_referenced_in_its_initializer: { - code: 2372, - category: 1, - key: "Parameter '{0}' cannot be referenced in its initializer." - }, - Initializer_of_parameter_0_cannot_reference_identifier_1_declared_after_it: { - code: 2373, - category: 1, - key: "Initializer of parameter '{0}' cannot reference identifier '{1}' declared after it." - }, - Duplicate_string_index_signature: { - code: 2374, - category: 1, - key: "Duplicate string index signature." - }, - Duplicate_number_index_signature: { - code: 2375, - category: 1, - key: "Duplicate number index signature." - }, - A_super_call_must_be_the_first_statement_in_the_constructor_when_a_class_contains_initialized_properties_or_has_parameter_properties: { - code: 2376, - category: 1, - key: "A 'super' call must be the first statement in the constructor when a class contains initialized properties or has parameter properties." - }, - Constructors_for_derived_classes_must_contain_a_super_call: { - code: 2377, - category: 1, - key: "Constructors for derived classes must contain a 'super' call." - }, - A_get_accessor_must_return_a_value_or_consist_of_a_single_throw_statement: { - code: 2378, - category: 1, - key: "A 'get' accessor must return a value or consist of a single 'throw' statement." - }, - Getter_and_setter_accessors_do_not_agree_in_visibility: { - code: 2379, - category: 1, - key: "Getter and setter accessors do not agree in visibility." - }, - get_and_set_accessor_must_have_the_same_type: { - code: 2380, - category: 1, - key: "'get' and 'set' accessor must have the same type." - }, - A_signature_with_an_implementation_cannot_use_a_string_literal_type: { - code: 2381, - category: 1, - key: "A signature with an implementation cannot use a string literal type." - }, - Specialized_overload_signature_is_not_assignable_to_any_non_specialized_signature: { - code: 2382, - category: 1, - key: "Specialized overload signature is not assignable to any non-specialized signature." - }, - Overload_signatures_must_all_be_exported_or_not_exported: { - code: 2383, - category: 1, - key: "Overload signatures must all be exported or not exported." - }, - Overload_signatures_must_all_be_ambient_or_non_ambient: { - code: 2384, - category: 1, - key: "Overload signatures must all be ambient or non-ambient." - }, - Overload_signatures_must_all_be_public_private_or_protected: { - code: 2385, - category: 1, - key: "Overload signatures must all be public, private or protected." - }, - Overload_signatures_must_all_be_optional_or_required: { - code: 2386, - category: 1, - key: "Overload signatures must all be optional or required." - }, - Function_overload_must_be_static: { - code: 2387, - category: 1, - key: "Function overload must be static." - }, - Function_overload_must_not_be_static: { - code: 2388, - category: 1, - key: "Function overload must not be static." - }, - Function_implementation_name_must_be_0: { - code: 2389, - category: 1, - key: "Function implementation name must be '{0}'." - }, - Constructor_implementation_is_missing: { - code: 2390, - category: 1, - key: "Constructor implementation is missing." - }, - Function_implementation_is_missing_or_not_immediately_following_the_declaration: { - code: 2391, - category: 1, - key: "Function implementation is missing or not immediately following the declaration." - }, - Multiple_constructor_implementations_are_not_allowed: { - code: 2392, - category: 1, - key: "Multiple constructor implementations are not allowed." - }, - Duplicate_function_implementation: { - code: 2393, - category: 1, - key: "Duplicate function implementation." - }, - Overload_signature_is_not_compatible_with_function_implementation: { - code: 2394, - category: 1, - key: "Overload signature is not compatible with function implementation." - }, - Individual_declarations_in_merged_declaration_0_must_be_all_exported_or_all_local: { - code: 2395, - category: 1, - key: "Individual declarations in merged declaration {0} must be all exported or all local." - }, - Duplicate_identifier_arguments_Compiler_uses_arguments_to_initialize_rest_parameters: { - code: 2396, - category: 1, - key: "Duplicate identifier 'arguments'. Compiler uses 'arguments' to initialize rest parameters." - }, - Duplicate_identifier_this_Compiler_uses_variable_declaration_this_to_capture_this_reference: { - code: 2399, - category: 1, - key: "Duplicate identifier '_this'. Compiler uses variable declaration '_this' to capture 'this' reference." - }, - Expression_resolves_to_variable_declaration_this_that_compiler_uses_to_capture_this_reference: { - code: 2400, - category: 1, - key: "Expression resolves to variable declaration '_this' that compiler uses to capture 'this' reference." - }, - Duplicate_identifier_super_Compiler_uses_super_to_capture_base_class_reference: { - code: 2401, - category: 1, - key: "Duplicate identifier '_super'. Compiler uses '_super' to capture base class reference." - }, - Expression_resolves_to_super_that_compiler_uses_to_capture_base_class_reference: { - code: 2402, - category: 1, - key: "Expression resolves to '_super' that compiler uses to capture base class reference." - }, - Subsequent_variable_declarations_must_have_the_same_type_Variable_0_must_be_of_type_1_but_here_has_type_2: { - code: 2403, - category: 1, - key: "Subsequent variable declarations must have the same type. Variable '{0}' must be of type '{1}', but here has type '{2}'." - }, - The_left_hand_side_of_a_for_in_statement_cannot_use_a_type_annotation: { - code: 2404, - category: 1, - key: "The left-hand side of a 'for...in' statement cannot use a type annotation." - }, - The_left_hand_side_of_a_for_in_statement_must_be_of_type_string_or_any: { - code: 2405, - category: 1, - key: "The left-hand side of a 'for...in' statement must be of type 'string' or 'any'." - }, - Invalid_left_hand_side_in_for_in_statement: { - code: 2406, - category: 1, - key: "Invalid left-hand side in 'for...in' statement." - }, - The_right_hand_side_of_a_for_in_statement_must_be_of_type_any_an_object_type_or_a_type_parameter: { - code: 2407, - category: 1, - key: "The right-hand side of a 'for...in' statement must be of type 'any', an object type or a type parameter." - }, - Setters_cannot_return_a_value: { - code: 2408, - category: 1, - key: "Setters cannot return a value." - }, - Return_type_of_constructor_signature_must_be_assignable_to_the_instance_type_of_the_class: { - code: 2409, - category: 1, - key: "Return type of constructor signature must be assignable to the instance type of the class" - }, - All_symbols_within_a_with_block_will_be_resolved_to_any: { - code: 2410, - category: 1, - key: "All symbols within a 'with' block will be resolved to 'any'." - }, - Property_0_of_type_1_is_not_assignable_to_string_index_type_2: { - code: 2411, - category: 1, - key: "Property '{0}' of type '{1}' is not assignable to string index type '{2}'." - }, - Property_0_of_type_1_is_not_assignable_to_numeric_index_type_2: { - code: 2412, - category: 1, - key: "Property '{0}' of type '{1}' is not assignable to numeric index type '{2}'." - }, - Numeric_index_type_0_is_not_assignable_to_string_index_type_1: { - code: 2413, - category: 1, - key: "Numeric index type '{0}' is not assignable to string index type '{1}'." - }, - Class_name_cannot_be_0: { - code: 2414, - category: 1, - key: "Class name cannot be '{0}'" - }, - Class_0_incorrectly_extends_base_class_1: { - code: 2415, - category: 1, - key: "Class '{0}' incorrectly extends base class '{1}'." - }, - Class_static_side_0_incorrectly_extends_base_class_static_side_1: { - code: 2417, - category: 1, - key: "Class static side '{0}' incorrectly extends base class static side '{1}'." - }, - Type_name_0_in_extends_clause_does_not_reference_constructor_function_for_0: { - code: 2419, - category: 1, - key: "Type name '{0}' in extends clause does not reference constructor function for '{0}'." - }, - Class_0_incorrectly_implements_interface_1: { - code: 2420, - category: 1, - key: "Class '{0}' incorrectly implements interface '{1}'." - }, - A_class_may_only_implement_another_class_or_interface: { - code: 2422, - category: 1, - key: "A class may only implement another class or interface." - }, - Class_0_defines_instance_member_function_1_but_extended_class_2_defines_it_as_instance_member_accessor: { - code: 2423, - category: 1, - key: "Class '{0}' defines instance member function '{1}', but extended class '{2}' defines it as instance member accessor." - }, - Class_0_defines_instance_member_function_1_but_extended_class_2_defines_it_as_instance_member_property: { - code: 2424, - category: 1, - key: "Class '{0}' defines instance member function '{1}', but extended class '{2}' defines it as instance member property." - }, - Class_0_defines_instance_member_property_1_but_extended_class_2_defines_it_as_instance_member_function: { - code: 2425, - category: 1, - key: "Class '{0}' defines instance member property '{1}', but extended class '{2}' defines it as instance member function." - }, - Class_0_defines_instance_member_accessor_1_but_extended_class_2_defines_it_as_instance_member_function: { - code: 2426, - category: 1, - key: "Class '{0}' defines instance member accessor '{1}', but extended class '{2}' defines it as instance member function." - }, - Interface_name_cannot_be_0: { - code: 2427, - category: 1, - key: "Interface name cannot be '{0}'" - }, - All_declarations_of_an_interface_must_have_identical_type_parameters: { - code: 2428, - category: 1, - key: "All declarations of an interface must have identical type parameters." - }, - Interface_0_incorrectly_extends_interface_1: { - code: 2430, - category: 1, - key: "Interface '{0}' incorrectly extends interface '{1}'." - }, - Enum_name_cannot_be_0: { - code: 2431, - category: 1, - key: "Enum name cannot be '{0}'" - }, - In_an_enum_with_multiple_declarations_only_one_declaration_can_omit_an_initializer_for_its_first_enum_element: { - code: 2432, - category: 1, - key: "In an enum with multiple declarations, only one declaration can omit an initializer for its first enum element." - }, - A_module_declaration_cannot_be_in_a_different_file_from_a_class_or_function_with_which_it_is_merged: { - code: 2433, - category: 1, - key: "A module declaration cannot be in a different file from a class or function with which it is merged" - }, - A_module_declaration_cannot_be_located_prior_to_a_class_or_function_with_which_it_is_merged: { - code: 2434, - category: 1, - key: "A module declaration cannot be located prior to a class or function with which it is merged" - }, - Ambient_external_modules_cannot_be_nested_in_other_modules: { - code: 2435, - category: 1, - key: "Ambient external modules cannot be nested in other modules." - }, - Ambient_external_module_declaration_cannot_specify_relative_module_name: { - code: 2436, - category: 1, - key: "Ambient external module declaration cannot specify relative module name." - }, - Module_0_is_hidden_by_a_local_declaration_with_the_same_name: { - code: 2437, - category: 1, - key: "Module '{0}' is hidden by a local declaration with the same name" - }, - Import_name_cannot_be_0: { - code: 2438, - category: 1, - key: "Import name cannot be '{0}'" - }, - Import_or_export_declaration_in_an_ambient_external_module_declaration_cannot_reference_external_module_through_relative_external_module_name: { - code: 2439, - category: 1, - key: "Import or export declaration in an ambient external module declaration cannot reference external module through relative external module name." - }, - Import_declaration_conflicts_with_local_declaration_of_0: { - code: 2440, - category: 1, - key: "Import declaration conflicts with local declaration of '{0}'" - }, - Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_an_external_module: { - code: 2441, - category: 1, - key: "Duplicate identifier '{0}'. Compiler reserves name '{1}' in top level scope of an external module." - }, - Types_have_separate_declarations_of_a_private_property_0: { - code: 2442, - category: 1, - key: "Types have separate declarations of a private property '{0}'." - }, - Property_0_is_protected_but_type_1_is_not_a_class_derived_from_2: { - code: 2443, - category: 1, - key: "Property '{0}' is protected but type '{1}' is not a class derived from '{2}'." - }, - Property_0_is_protected_in_type_1_but_public_in_type_2: { - code: 2444, - category: 1, - key: "Property '{0}' is protected in type '{1}' but public in type '{2}'." - }, - Property_0_is_protected_and_only_accessible_within_class_1_and_its_subclasses: { - code: 2445, - category: 1, - key: "Property '{0}' is protected and only accessible within class '{1}' and its subclasses." - }, - Property_0_is_protected_and_only_accessible_through_an_instance_of_class_1: { - code: 2446, - category: 1, - key: "Property '{0}' is protected and only accessible through an instance of class '{1}'." - }, - The_0_operator_is_not_allowed_for_boolean_types_Consider_using_1_instead: { - code: 2447, - category: 1, - key: "The '{0}' operator is not allowed for boolean types. Consider using '{1}' instead." - }, - Block_scoped_variable_0_used_before_its_declaration: { - code: 2448, - category: 1, - key: "Block-scoped variable '{0}' used before its declaration." - }, - The_operand_of_an_increment_or_decrement_operator_cannot_be_a_constant: { - code: 2449, - category: 1, - key: "The operand of an increment or decrement operator cannot be a constant." - }, - Left_hand_side_of_assignment_expression_cannot_be_a_constant: { - code: 2450, - category: 1, - key: "Left-hand side of assignment expression cannot be a constant." - }, - Cannot_redeclare_block_scoped_variable_0: { - code: 2451, - category: 1, - key: "Cannot redeclare block-scoped variable '{0}'." - }, - An_enum_member_cannot_have_a_numeric_name: { - code: 2452, - category: 1, - key: "An enum member cannot have a numeric name." - }, - The_type_argument_for_type_parameter_0_cannot_be_inferred_from_the_usage_Consider_specifying_the_type_arguments_explicitly: { - code: 2453, - category: 1, - key: "The type argument for type parameter '{0}' cannot be inferred from the usage. Consider specifying the type arguments explicitly." - }, - Type_argument_candidate_1_is_not_a_valid_type_argument_because_it_is_not_a_supertype_of_candidate_0: { - code: 2455, - category: 1, - key: "Type argument candidate '{1}' is not a valid type argument because it is not a supertype of candidate '{0}'." - }, - Type_alias_0_circularly_references_itself: { - code: 2456, - category: 1, - key: "Type alias '{0}' circularly references itself." - }, - Type_alias_name_cannot_be_0: { - code: 2457, - category: 1, - key: "Type alias name cannot be '{0}'" - }, - An_AMD_module_cannot_have_multiple_name_assignments: { - code: 2458, - category: 1, - key: "An AMD module cannot have multiple name assignments." - }, - Type_0_has_no_property_1_and_no_string_index_signature: { - code: 2459, - category: 1, - key: "Type '{0}' has no property '{1}' and no string index signature." - }, - Type_0_has_no_property_1: { - code: 2460, - category: 1, - key: "Type '{0}' has no property '{1}'." - }, - Type_0_is_not_an_array_type: { - code: 2461, - category: 1, - key: "Type '{0}' is not an array type." - }, - A_rest_element_must_be_last_in_an_array_destructuring_pattern: { - code: 2462, - category: 1, - key: "A rest element must be last in an array destructuring pattern" - }, - A_binding_pattern_parameter_cannot_be_optional_in_an_implementation_signature: { - code: 2463, - category: 1, - key: "A binding pattern parameter cannot be optional in an implementation signature." - }, - A_computed_property_name_must_be_of_type_string_number_symbol_or_any: { - code: 2464, - category: 1, - key: "A computed property name must be of type 'string', 'number', 'symbol', or 'any'." - }, - this_cannot_be_referenced_in_a_computed_property_name: { - code: 2465, - category: 1, - key: "'this' cannot be referenced in a computed property name." - }, - super_cannot_be_referenced_in_a_computed_property_name: { - code: 2466, - category: 1, - key: "'super' cannot be referenced in a computed property name." - }, - A_computed_property_name_cannot_reference_a_type_parameter_from_its_containing_type: { - code: 2467, - category: 1, - key: "A computed property name cannot reference a type parameter from its containing type." - }, - Cannot_find_global_value_0: { - code: 2468, - category: 1, - key: "Cannot find global value '{0}'." - }, - The_0_operator_cannot_be_applied_to_type_symbol: { - code: 2469, - category: 1, - key: "The '{0}' operator cannot be applied to type 'symbol'." - }, - Symbol_reference_does_not_refer_to_the_global_Symbol_constructor_object: { - code: 2470, - category: 1, - key: "'Symbol' reference does not refer to the global Symbol constructor object." - }, - A_computed_property_name_of_the_form_0_must_be_of_type_symbol: { - code: 2471, - category: 1, - key: "A computed property name of the form '{0}' must be of type 'symbol'." - }, - Spread_operator_in_new_expressions_is_only_available_when_targeting_ECMAScript_6_and_higher: { - code: 2472, - category: 1, - key: "Spread operator in 'new' expressions is only available when targeting ECMAScript 6 and higher." - }, - Enum_declarations_must_all_be_const_or_non_const: { - code: 2473, - category: 1, - key: "Enum declarations must all be const or non-const." - }, - In_const_enum_declarations_member_initializer_must_be_constant_expression: { - code: 2474, - category: 1, - key: "In 'const' enum declarations member initializer must be constant expression." - }, - const_enums_can_only_be_used_in_property_or_index_access_expressions_or_the_right_hand_side_of_an_import_declaration_or_export_assignment: { - code: 2475, - category: 1, - key: "'const' enums can only be used in property or index access expressions or the right hand side of an import declaration or export assignment." - }, - A_const_enum_member_can_only_be_accessed_using_a_string_literal: { - code: 2476, - category: 1, - key: "A const enum member can only be accessed using a string literal." - }, - const_enum_member_initializer_was_evaluated_to_a_non_finite_value: { - code: 2477, - category: 1, - key: "'const' enum member initializer was evaluated to a non-finite value." - }, - const_enum_member_initializer_was_evaluated_to_disallowed_value_NaN: { - code: 2478, - category: 1, - key: "'const' enum member initializer was evaluated to disallowed value 'NaN'." - }, - Property_0_does_not_exist_on_const_enum_1: { - code: 2479, - category: 1, - key: "Property '{0}' does not exist on 'const' enum '{1}'." - }, - let_is_not_allowed_to_be_used_as_a_name_in_let_or_const_declarations: { - code: 2480, - category: 1, - key: "'let' is not allowed to be used as a name in 'let' or 'const' declarations." - }, - Cannot_initialize_outer_scoped_variable_0_in_the_same_scope_as_block_scoped_declaration_1: { - code: 2481, - category: 1, - key: "Cannot initialize outer scoped variable '{0}' in the same scope as block scoped declaration '{1}'." - }, - The_left_hand_side_of_a_for_of_statement_cannot_use_a_type_annotation: { - code: 2483, - category: 1, - key: "The left-hand side of a 'for...of' statement cannot use a type annotation." - }, - Export_declaration_conflicts_with_exported_declaration_of_0: { - code: 2484, - category: 1, - key: "Export declaration conflicts with exported declaration of '{0}'" - }, - The_left_hand_side_of_a_for_of_statement_cannot_be_a_previously_defined_constant: { - code: 2485, - category: 1, - key: "The left-hand side of a 'for...of' statement cannot be a previously defined constant." - }, - The_left_hand_side_of_a_for_in_statement_cannot_be_a_previously_defined_constant: { - code: 2486, - category: 1, - key: "The left-hand side of a 'for...in' statement cannot be a previously defined constant." - }, - Invalid_left_hand_side_in_for_of_statement: { - code: 2487, - category: 1, - key: "Invalid left-hand side in 'for...of' statement." - }, - The_right_hand_side_of_a_for_of_statement_must_have_a_Symbol_iterator_method_that_returns_an_iterator: { - code: 2488, - category: 1, - key: "The right-hand side of a 'for...of' statement must have a '[Symbol.iterator]()' method that returns an iterator." - }, - The_iterator_returned_by_the_right_hand_side_of_a_for_of_statement_must_have_a_next_method: { - code: 2489, - category: 1, - key: "The iterator returned by the right-hand side of a 'for...of' statement must have a 'next()' method." - }, - The_type_returned_by_the_next_method_of_an_iterator_must_have_a_value_property: { - code: 2490, - category: 1, - key: "The type returned by the 'next()' method of an iterator must have a 'value' property." - }, - The_left_hand_side_of_a_for_in_statement_cannot_be_a_destructuring_pattern: { - code: 2491, - category: 1, - key: "The left-hand side of a 'for...in' statement cannot be a destructuring pattern." - }, - Cannot_redeclare_identifier_0_in_catch_clause: { - code: 2492, - category: 1, - key: "Cannot redeclare identifier '{0}' in catch clause" - }, - Tuple_type_0_with_length_1_cannot_be_assigned_to_tuple_with_length_2: { - code: 2493, - category: 1, - key: "Tuple type '{0}' with length '{1}' cannot be assigned to tuple with length '{2}'." - }, - Using_a_string_in_a_for_of_statement_is_only_supported_in_ECMAScript_5_and_higher: { - code: 2494, - category: 1, - key: "Using a string in a 'for...of' statement is only supported in ECMAScript 5 and higher." - }, - Type_0_is_not_an_array_type_or_a_string_type: { - code: 2461, - category: 1, - key: "Type '{0}' is not an array type or a string type." - }, - Import_declaration_0_is_using_private_name_1: { - code: 4000, - category: 1, - key: "Import declaration '{0}' is using private name '{1}'." - }, - Type_parameter_0_of_exported_class_has_or_is_using_private_name_1: { - code: 4002, - category: 1, - key: "Type parameter '{0}' of exported class has or is using private name '{1}'." - }, - Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1: { - code: 4004, - category: 1, - key: "Type parameter '{0}' of exported interface has or is using private name '{1}'." - }, - Type_parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1: { - code: 4006, - category: 1, - key: "Type parameter '{0}' of constructor signature from exported interface has or is using private name '{1}'." - }, - Type_parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1: { - code: 4008, - category: 1, - key: "Type parameter '{0}' of call signature from exported interface has or is using private name '{1}'." - }, - Type_parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1: { - code: 4010, - category: 1, - key: "Type parameter '{0}' of public static method from exported class has or is using private name '{1}'." - }, - Type_parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1: { - code: 4012, - category: 1, - key: "Type parameter '{0}' of public method from exported class has or is using private name '{1}'." - }, - Type_parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1: { - code: 4014, - category: 1, - key: "Type parameter '{0}' of method from exported interface has or is using private name '{1}'." - }, - Type_parameter_0_of_exported_function_has_or_is_using_private_name_1: { - code: 4016, - category: 1, - key: "Type parameter '{0}' of exported function has or is using private name '{1}'." - }, - Implements_clause_of_exported_class_0_has_or_is_using_private_name_1: { - code: 4019, - category: 1, - key: "Implements clause of exported class '{0}' has or is using private name '{1}'." - }, - Extends_clause_of_exported_class_0_has_or_is_using_private_name_1: { - code: 4020, - category: 1, - key: "Extends clause of exported class '{0}' has or is using private name '{1}'." - }, - Extends_clause_of_exported_interface_0_has_or_is_using_private_name_1: { - code: 4022, - category: 1, - key: "Extends clause of exported interface '{0}' has or is using private name '{1}'." - }, - Exported_variable_0_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: { - code: 4023, - category: 1, - key: "Exported variable '{0}' has or is using name '{1}' from external module {2} but cannot be named." - }, - Exported_variable_0_has_or_is_using_name_1_from_private_module_2: { - code: 4024, - category: 1, - key: "Exported variable '{0}' has or is using name '{1}' from private module '{2}'." - }, - Exported_variable_0_has_or_is_using_private_name_1: { - code: 4025, - category: 1, - key: "Exported variable '{0}' has or is using private name '{1}'." - }, - Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: { - code: 4026, - category: 1, - key: "Public static property '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named." - }, - Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2: { - code: 4027, - category: 1, - key: "Public static property '{0}' of exported class has or is using name '{1}' from private module '{2}'." - }, - Public_static_property_0_of_exported_class_has_or_is_using_private_name_1: { - code: 4028, - category: 1, - key: "Public static property '{0}' of exported class has or is using private name '{1}'." - }, - Public_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: { - code: 4029, - category: 1, - key: "Public property '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named." - }, - Public_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2: { - code: 4030, - category: 1, - key: "Public property '{0}' of exported class has or is using name '{1}' from private module '{2}'." - }, - Public_property_0_of_exported_class_has_or_is_using_private_name_1: { - code: 4031, - category: 1, - key: "Public property '{0}' of exported class has or is using private name '{1}'." - }, - Property_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2: { - code: 4032, - category: 1, - key: "Property '{0}' of exported interface has or is using name '{1}' from private module '{2}'." - }, - Property_0_of_exported_interface_has_or_is_using_private_name_1: { - code: 4033, - category: 1, - key: "Property '{0}' of exported interface has or is using private name '{1}'." - }, - Parameter_0_of_public_static_property_setter_from_exported_class_has_or_is_using_name_1_from_private_module_2: { - code: 4034, - category: 1, - key: "Parameter '{0}' of public static property setter from exported class has or is using name '{1}' from private module '{2}'." - }, - Parameter_0_of_public_static_property_setter_from_exported_class_has_or_is_using_private_name_1: { - code: 4035, - category: 1, - key: "Parameter '{0}' of public static property setter from exported class has or is using private name '{1}'." - }, - Parameter_0_of_public_property_setter_from_exported_class_has_or_is_using_name_1_from_private_module_2: { - code: 4036, - category: 1, - key: "Parameter '{0}' of public property setter from exported class has or is using name '{1}' from private module '{2}'." - }, - Parameter_0_of_public_property_setter_from_exported_class_has_or_is_using_private_name_1: { - code: 4037, - category: 1, - key: "Parameter '{0}' of public property setter from exported class has or is using private name '{1}'." - }, - Return_type_of_public_static_property_getter_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named: { - code: 4038, - category: 1, - key: "Return type of public static property getter from exported class has or is using name '{0}' from external module {1} but cannot be named." - }, - Return_type_of_public_static_property_getter_from_exported_class_has_or_is_using_name_0_from_private_module_1: { - code: 4039, - category: 1, - key: "Return type of public static property getter from exported class has or is using name '{0}' from private module '{1}'." - }, - Return_type_of_public_static_property_getter_from_exported_class_has_or_is_using_private_name_0: { - code: 4040, - category: 1, - key: "Return type of public static property getter from exported class has or is using private name '{0}'." - }, - Return_type_of_public_property_getter_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named: { - code: 4041, - category: 1, - key: "Return type of public property getter from exported class has or is using name '{0}' from external module {1} but cannot be named." - }, - Return_type_of_public_property_getter_from_exported_class_has_or_is_using_name_0_from_private_module_1: { - code: 4042, - category: 1, - key: "Return type of public property getter from exported class has or is using name '{0}' from private module '{1}'." - }, - Return_type_of_public_property_getter_from_exported_class_has_or_is_using_private_name_0: { - code: 4043, - category: 1, - key: "Return type of public property getter from exported class has or is using private name '{0}'." - }, - Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1: { - code: 4044, - category: 1, - key: "Return type of constructor signature from exported interface has or is using name '{0}' from private module '{1}'." - }, - Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_0: { - code: 4045, - category: 1, - key: "Return type of constructor signature from exported interface has or is using private name '{0}'." - }, - Return_type_of_call_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1: { - code: 4046, - category: 1, - key: "Return type of call signature from exported interface has or is using name '{0}' from private module '{1}'." - }, - Return_type_of_call_signature_from_exported_interface_has_or_is_using_private_name_0: { - code: 4047, - category: 1, - key: "Return type of call signature from exported interface has or is using private name '{0}'." - }, - Return_type_of_index_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1: { - code: 4048, - category: 1, - key: "Return type of index signature from exported interface has or is using name '{0}' from private module '{1}'." - }, - Return_type_of_index_signature_from_exported_interface_has_or_is_using_private_name_0: { - code: 4049, - category: 1, - key: "Return type of index signature from exported interface has or is using private name '{0}'." - }, - Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named: { - code: 4050, - category: 1, - key: "Return type of public static method from exported class has or is using name '{0}' from external module {1} but cannot be named." - }, - Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_private_module_1: { - code: 4051, - category: 1, - key: "Return type of public static method from exported class has or is using name '{0}' from private module '{1}'." - }, - Return_type_of_public_static_method_from_exported_class_has_or_is_using_private_name_0: { - code: 4052, - category: 1, - key: "Return type of public static method from exported class has or is using private name '{0}'." - }, - Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named: { - code: 4053, - category: 1, - key: "Return type of public method from exported class has or is using name '{0}' from external module {1} but cannot be named." - }, - Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_private_module_1: { - code: 4054, - category: 1, - key: "Return type of public method from exported class has or is using name '{0}' from private module '{1}'." - }, - Return_type_of_public_method_from_exported_class_has_or_is_using_private_name_0: { - code: 4055, - category: 1, - key: "Return type of public method from exported class has or is using private name '{0}'." - }, - Return_type_of_method_from_exported_interface_has_or_is_using_name_0_from_private_module_1: { - code: 4056, - category: 1, - key: "Return type of method from exported interface has or is using name '{0}' from private module '{1}'." - }, - Return_type_of_method_from_exported_interface_has_or_is_using_private_name_0: { - code: 4057, - category: 1, - key: "Return type of method from exported interface has or is using private name '{0}'." - }, - Return_type_of_exported_function_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named: { - code: 4058, - category: 1, - key: "Return type of exported function has or is using name '{0}' from external module {1} but cannot be named." - }, - Return_type_of_exported_function_has_or_is_using_name_0_from_private_module_1: { - code: 4059, - category: 1, - key: "Return type of exported function has or is using name '{0}' from private module '{1}'." - }, - Return_type_of_exported_function_has_or_is_using_private_name_0: { - code: 4060, - category: 1, - key: "Return type of exported function has or is using private name '{0}'." - }, - Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: { - code: 4061, - category: 1, - key: "Parameter '{0}' of constructor from exported class has or is using name '{1}' from external module {2} but cannot be named." - }, - Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_private_module_2: { - code: 4062, - category: 1, - key: "Parameter '{0}' of constructor from exported class has or is using name '{1}' from private module '{2}'." - }, - Parameter_0_of_constructor_from_exported_class_has_or_is_using_private_name_1: { - code: 4063, - category: 1, - key: "Parameter '{0}' of constructor from exported class has or is using private name '{1}'." - }, - Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2: { - code: 4064, - category: 1, - key: "Parameter '{0}' of constructor signature from exported interface has or is using name '{1}' from private module '{2}'." - }, - Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1: { - code: 4065, - category: 1, - key: "Parameter '{0}' of constructor signature from exported interface has or is using private name '{1}'." - }, - Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2: { - code: 4066, - category: 1, - key: "Parameter '{0}' of call signature from exported interface has or is using name '{1}' from private module '{2}'." - }, - Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1: { - code: 4067, - category: 1, - key: "Parameter '{0}' of call signature from exported interface has or is using private name '{1}'." - }, - Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: { - code: 4068, - category: 1, - key: "Parameter '{0}' of public static method from exported class has or is using name '{1}' from external module {2} but cannot be named." - }, - Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_private_module_2: { - code: 4069, - category: 1, - key: "Parameter '{0}' of public static method from exported class has or is using name '{1}' from private module '{2}'." - }, - Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1: { - code: 4070, - category: 1, - key: "Parameter '{0}' of public static method from exported class has or is using private name '{1}'." - }, - Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: { - code: 4071, - category: 1, - key: "Parameter '{0}' of public method from exported class has or is using name '{1}' from external module {2} but cannot be named." - }, - Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_private_module_2: { - code: 4072, - category: 1, - key: "Parameter '{0}' of public method from exported class has or is using name '{1}' from private module '{2}'." - }, - Parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1: { - code: 4073, - category: 1, - key: "Parameter '{0}' of public method from exported class has or is using private name '{1}'." - }, - Parameter_0_of_method_from_exported_interface_has_or_is_using_name_1_from_private_module_2: { - code: 4074, - category: 1, - key: "Parameter '{0}' of method from exported interface has or is using name '{1}' from private module '{2}'." - }, - Parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1: { - code: 4075, - category: 1, - key: "Parameter '{0}' of method from exported interface has or is using private name '{1}'." - }, - Parameter_0_of_exported_function_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: { - code: 4076, - category: 1, - key: "Parameter '{0}' of exported function has or is using name '{1}' from external module {2} but cannot be named." - }, - Parameter_0_of_exported_function_has_or_is_using_name_1_from_private_module_2: { - code: 4077, - category: 1, - key: "Parameter '{0}' of exported function has or is using name '{1}' from private module '{2}'." - }, - Parameter_0_of_exported_function_has_or_is_using_private_name_1: { - code: 4078, - category: 1, - key: "Parameter '{0}' of exported function has or is using private name '{1}'." - }, - Exported_type_alias_0_has_or_is_using_private_name_1: { - code: 4081, - category: 1, - key: "Exported type alias '{0}' has or is using private name '{1}'." - }, - Loop_contains_block_scoped_variable_0_referenced_by_a_function_in_the_loop_This_is_only_supported_in_ECMAScript_6_or_higher: { - code: 4091, - category: 1, - key: "Loop contains block-scoped variable '{0}' referenced by a function in the loop. This is only supported in ECMAScript 6 or higher." - }, - The_current_host_does_not_support_the_0_option: { - code: 5001, - category: 1, - key: "The current host does not support the '{0}' option." - }, - Cannot_find_the_common_subdirectory_path_for_the_input_files: { - code: 5009, - category: 1, - key: "Cannot find the common subdirectory path for the input files." - }, - Cannot_read_file_0_Colon_1: { - code: 5012, - category: 1, - key: "Cannot read file '{0}': {1}" - }, - Unsupported_file_encoding: { - code: 5013, - category: 1, - key: "Unsupported file encoding." - }, - Unknown_compiler_option_0: { - code: 5023, - category: 1, - key: "Unknown compiler option '{0}'." - }, - Compiler_option_0_requires_a_value_of_type_1: { - code: 5024, - category: 1, - key: "Compiler option '{0}' requires a value of type {1}." - }, - Could_not_write_file_0_Colon_1: { - code: 5033, - category: 1, - key: "Could not write file '{0}': {1}" - }, - Option_mapRoot_cannot_be_specified_without_specifying_sourcemap_option: { - code: 5038, - category: 1, - key: "Option 'mapRoot' cannot be specified without specifying 'sourcemap' option." - }, - Option_sourceRoot_cannot_be_specified_without_specifying_sourcemap_option: { - code: 5039, - category: 1, - key: "Option 'sourceRoot' cannot be specified without specifying 'sourcemap' option." - }, - Option_noEmit_cannot_be_specified_with_option_out_or_outDir: { - code: 5040, - category: 1, - key: "Option 'noEmit' cannot be specified with option 'out' or 'outDir'." - }, - Option_noEmit_cannot_be_specified_with_option_declaration: { - code: 5041, - category: 1, - key: "Option 'noEmit' cannot be specified with option 'declaration'." - }, - Option_project_cannot_be_mixed_with_source_files_on_a_command_line: { - code: 5042, - category: 1, - key: "Option 'project' cannot be mixed with source files on a command line." - }, - Concatenate_and_emit_output_to_single_file: { - code: 6001, - category: 2, - key: "Concatenate and emit output to single file." - }, - Generates_corresponding_d_ts_file: { - code: 6002, - category: 2, - key: "Generates corresponding '.d.ts' file." - }, - Specifies_the_location_where_debugger_should_locate_map_files_instead_of_generated_locations: { - code: 6003, - category: 2, - key: "Specifies the location where debugger should locate map files instead of generated locations." - }, - Specifies_the_location_where_debugger_should_locate_TypeScript_files_instead_of_source_locations: { - code: 6004, - category: 2, - key: "Specifies the location where debugger should locate TypeScript files instead of source locations." - }, - Watch_input_files: { - code: 6005, - category: 2, - key: "Watch input files." - }, - Redirect_output_structure_to_the_directory: { - code: 6006, - category: 2, - key: "Redirect output structure to the directory." - }, - Do_not_erase_const_enum_declarations_in_generated_code: { - code: 6007, - category: 2, - key: "Do not erase const enum declarations in generated code." - }, - Do_not_emit_outputs_if_any_type_checking_errors_were_reported: { - code: 6008, - category: 2, - key: "Do not emit outputs if any type checking errors were reported." - }, - Do_not_emit_comments_to_output: { - code: 6009, - category: 2, - key: "Do not emit comments to output." - }, - Do_not_emit_outputs: { - code: 6010, - category: 2, - key: "Do not emit outputs." - }, - Specify_ECMAScript_target_version_Colon_ES3_default_ES5_or_ES6_experimental: { - code: 6015, - category: 2, - key: "Specify ECMAScript target version: 'ES3' (default), 'ES5', or 'ES6' (experimental)" - }, - Specify_module_code_generation_Colon_commonjs_or_amd: { - code: 6016, - category: 2, - key: "Specify module code generation: 'commonjs' or 'amd'" - }, - Print_this_message: { - code: 6017, - category: 2, - key: "Print this message." - }, - Print_the_compiler_s_version: { - code: 6019, - category: 2, - key: "Print the compiler's version." - }, - Compile_the_project_in_the_given_directory: { - code: 6020, - category: 2, - key: "Compile the project in the given directory." - }, - Syntax_Colon_0: { - code: 6023, - category: 2, - key: "Syntax: {0}" - }, - options: { - code: 6024, - category: 2, - key: "options" - }, - file: { - code: 6025, - category: 2, - key: "file" - }, - Examples_Colon_0: { - code: 6026, - category: 2, - key: "Examples: {0}" - }, - Options_Colon: { - code: 6027, - category: 2, - key: "Options:" - }, - Version_0: { - code: 6029, - category: 2, - key: "Version {0}" - }, - Insert_command_line_options_and_files_from_a_file: { - code: 6030, - category: 2, - key: "Insert command line options and files from a file." - }, - File_change_detected_Starting_incremental_compilation: { - code: 6032, - category: 2, - key: "File change detected. Starting incremental compilation..." - }, - KIND: { - code: 6034, - category: 2, - key: "KIND" - }, - FILE: { - code: 6035, - category: 2, - key: "FILE" - }, - VERSION: { - code: 6036, - category: 2, - key: "VERSION" - }, - LOCATION: { - code: 6037, - category: 2, - key: "LOCATION" - }, - DIRECTORY: { - code: 6038, - category: 2, - key: "DIRECTORY" - }, - Compilation_complete_Watching_for_file_changes: { - code: 6042, - category: 2, - key: "Compilation complete. Watching for file changes." - }, - Generates_corresponding_map_file: { - code: 6043, - category: 2, - key: "Generates corresponding '.map' file." - }, - Compiler_option_0_expects_an_argument: { - code: 6044, - category: 1, - key: "Compiler option '{0}' expects an argument." - }, - Unterminated_quoted_string_in_response_file_0: { - code: 6045, - category: 1, - key: "Unterminated quoted string in response file '{0}'." - }, - Argument_for_module_option_must_be_commonjs_or_amd: { - code: 6046, - category: 1, - key: "Argument for '--module' option must be 'commonjs' or 'amd'." - }, - Argument_for_target_option_must_be_es3_es5_or_es6: { - code: 6047, - category: 1, - key: "Argument for '--target' option must be 'es3', 'es5', or 'es6'." - }, - Locale_must_be_of_the_form_language_or_language_territory_For_example_0_or_1: { - code: 6048, - category: 1, - key: "Locale must be of the form or -. For example '{0}' or '{1}'." - }, - Unsupported_locale_0: { - code: 6049, - category: 1, - key: "Unsupported locale '{0}'." - }, - Unable_to_open_file_0: { - code: 6050, - category: 1, - key: "Unable to open file '{0}'." - }, - Corrupted_locale_file_0: { - code: 6051, - category: 1, - key: "Corrupted locale file {0}." - }, - Raise_error_on_expressions_and_declarations_with_an_implied_any_type: { - code: 6052, - category: 2, - key: "Raise error on expressions and declarations with an implied 'any' type." - }, - File_0_not_found: { - code: 6053, - category: 1, - key: "File '{0}' not found." - }, - File_0_must_have_extension_ts_or_d_ts: { - code: 6054, - category: 1, - key: "File '{0}' must have extension '.ts' or '.d.ts'." - }, - Suppress_noImplicitAny_errors_for_indexing_objects_lacking_index_signatures: { - code: 6055, - category: 2, - key: "Suppress noImplicitAny errors for indexing objects lacking index signatures." - }, - Do_not_emit_declarations_for_code_that_has_an_internal_annotation: { - code: 6056, - category: 2, - key: "Do not emit declarations for code that has an '@internal' annotation." - }, - Preserve_new_lines_when_emitting_code: { - code: 6057, - category: 2, - key: "Preserve new-lines when emitting code." - }, - Variable_0_implicitly_has_an_1_type: { - code: 7005, - category: 1, - key: "Variable '{0}' implicitly has an '{1}' type." - }, - Parameter_0_implicitly_has_an_1_type: { - code: 7006, - category: 1, - key: "Parameter '{0}' implicitly has an '{1}' type." - }, - Member_0_implicitly_has_an_1_type: { - code: 7008, - category: 1, - key: "Member '{0}' implicitly has an '{1}' type." - }, - new_expression_whose_target_lacks_a_construct_signature_implicitly_has_an_any_type: { - code: 7009, - category: 1, - key: "'new' expression, whose target lacks a construct signature, implicitly has an 'any' type." - }, - _0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type: { - code: 7010, - category: 1, - key: "'{0}', which lacks return-type annotation, implicitly has an '{1}' return type." - }, - Function_expression_which_lacks_return_type_annotation_implicitly_has_an_0_return_type: { - code: 7011, - category: 1, - key: "Function expression, which lacks return-type annotation, implicitly has an '{0}' return type." - }, - Construct_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type: { - code: 7013, - category: 1, - key: "Construct signature, which lacks return-type annotation, implicitly has an 'any' return type." - }, - Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_type_annotation: { - code: 7016, - category: 1, - key: "Property '{0}' implicitly has type 'any', because its 'set' accessor lacks a type annotation." - }, - Index_signature_of_object_type_implicitly_has_an_any_type: { - code: 7017, - category: 1, - key: "Index signature of object type implicitly has an 'any' type." - }, - Object_literal_s_property_0_implicitly_has_an_1_type: { - code: 7018, - category: 1, - key: "Object literal's property '{0}' implicitly has an '{1}' type." - }, - Rest_parameter_0_implicitly_has_an_any_type: { - code: 7019, - category: 1, - key: "Rest parameter '{0}' implicitly has an 'any[]' type." - }, - Call_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type: { - code: 7020, - category: 1, - key: "Call signature, which lacks return-type annotation, implicitly has an 'any' return type." - }, - _0_implicitly_has_type_any_because_it_is_referenced_directly_or_indirectly_in_its_own_type_annotation: { - code: 7021, - category: 1, - key: "'{0}' implicitly has type 'any' because it is referenced directly or indirectly in its own type annotation." - }, - _0_implicitly_has_type_any_because_it_is_does_not_have_a_type_annotation_and_is_referenced_directly_or_indirectly_in_its_own_initializer: { - code: 7022, - category: 1, - key: "'{0}' implicitly has type 'any' because it is does not have a type annotation and is referenced directly or indirectly in its own initializer." - }, - _0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions: { - code: 7023, - category: 1, - key: "'{0}' implicitly has return type 'any' because it does not have a return type annotation and is referenced directly or indirectly in one of its return expressions." - }, - Function_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions: { - code: 7024, - category: 1, - key: "Function implicitly has return type 'any' because it does not have a return type annotation and is referenced directly or indirectly in one of its return expressions." - }, - You_cannot_rename_this_element: { - code: 8000, - category: 1, - key: "You cannot rename this element." - }, - You_cannot_rename_elements_that_are_defined_in_the_standard_TypeScript_library: { - code: 8001, - category: 1, - key: "You cannot rename elements that are defined in the standard TypeScript library." - }, - yield_expressions_are_not_currently_supported: { - code: 9000, - category: 1, - key: "'yield' expressions are not currently supported." - }, - Generators_are_not_currently_supported: { - code: 9001, - category: 1, - key: "Generators are not currently supported." - }, - The_arguments_object_cannot_be_referenced_in_an_arrow_function_Consider_using_a_standard_function_expression: { - code: 9002, - category: 1, - key: "The 'arguments' object cannot be referenced in an arrow function. Consider using a standard function expression." - } + Unterminated_string_literal: { code: 1002, category: 1, key: "Unterminated string literal." }, + Identifier_expected: { code: 1003, category: 1, key: "Identifier expected." }, + _0_expected: { code: 1005, category: 1, key: "'{0}' expected." }, + A_file_cannot_have_a_reference_to_itself: { code: 1006, category: 1, key: "A file cannot have a reference to itself." }, + Trailing_comma_not_allowed: { code: 1009, category: 1, key: "Trailing comma not allowed." }, + Asterisk_Slash_expected: { code: 1010, category: 1, key: "'*/' expected." }, + Unexpected_token: { code: 1012, category: 1, key: "Unexpected token." }, + A_rest_parameter_must_be_last_in_a_parameter_list: { code: 1014, category: 1, key: "A rest parameter must be last in a parameter list." }, + Parameter_cannot_have_question_mark_and_initializer: { code: 1015, category: 1, key: "Parameter cannot have question mark and initializer." }, + A_required_parameter_cannot_follow_an_optional_parameter: { code: 1016, category: 1, key: "A required parameter cannot follow an optional parameter." }, + An_index_signature_cannot_have_a_rest_parameter: { code: 1017, category: 1, key: "An index signature cannot have a rest parameter." }, + An_index_signature_parameter_cannot_have_an_accessibility_modifier: { code: 1018, category: 1, key: "An index signature parameter cannot have an accessibility modifier." }, + An_index_signature_parameter_cannot_have_a_question_mark: { code: 1019, category: 1, key: "An index signature parameter cannot have a question mark." }, + An_index_signature_parameter_cannot_have_an_initializer: { code: 1020, category: 1, key: "An index signature parameter cannot have an initializer." }, + An_index_signature_must_have_a_type_annotation: { code: 1021, category: 1, key: "An index signature must have a type annotation." }, + An_index_signature_parameter_must_have_a_type_annotation: { code: 1022, category: 1, key: "An index signature parameter must have a type annotation." }, + An_index_signature_parameter_type_must_be_string_or_number: { code: 1023, category: 1, key: "An index signature parameter type must be 'string' or 'number'." }, + A_class_or_interface_declaration_can_only_have_one_extends_clause: { code: 1024, category: 1, key: "A class or interface declaration can only have one 'extends' clause." }, + An_extends_clause_must_precede_an_implements_clause: { code: 1025, category: 1, key: "An 'extends' clause must precede an 'implements' clause." }, + A_class_can_only_extend_a_single_class: { code: 1026, category: 1, key: "A class can only extend a single class." }, + A_class_declaration_can_only_have_one_implements_clause: { code: 1027, category: 1, key: "A class declaration can only have one 'implements' clause." }, + Accessibility_modifier_already_seen: { code: 1028, category: 1, key: "Accessibility modifier already seen." }, + _0_modifier_must_precede_1_modifier: { code: 1029, category: 1, key: "'{0}' modifier must precede '{1}' modifier." }, + _0_modifier_already_seen: { code: 1030, category: 1, key: "'{0}' modifier already seen." }, + _0_modifier_cannot_appear_on_a_class_element: { code: 1031, category: 1, key: "'{0}' modifier cannot appear on a class element." }, + An_interface_declaration_cannot_have_an_implements_clause: { code: 1032, category: 1, key: "An interface declaration cannot have an 'implements' clause." }, + super_must_be_followed_by_an_argument_list_or_member_access: { code: 1034, category: 1, key: "'super' must be followed by an argument list or member access." }, + Only_ambient_modules_can_use_quoted_names: { code: 1035, category: 1, key: "Only ambient modules can use quoted names." }, + Statements_are_not_allowed_in_ambient_contexts: { code: 1036, category: 1, key: "Statements are not allowed in ambient contexts." }, + A_declare_modifier_cannot_be_used_in_an_already_ambient_context: { code: 1038, category: 1, key: "A 'declare' modifier cannot be used in an already ambient context." }, + Initializers_are_not_allowed_in_ambient_contexts: { code: 1039, category: 1, key: "Initializers are not allowed in ambient contexts." }, + _0_modifier_cannot_appear_on_a_module_element: { code: 1044, category: 1, key: "'{0}' modifier cannot appear on a module element." }, + A_declare_modifier_cannot_be_used_with_an_interface_declaration: { code: 1045, category: 1, key: "A 'declare' modifier cannot be used with an interface declaration." }, + A_declare_modifier_is_required_for_a_top_level_declaration_in_a_d_ts_file: { code: 1046, category: 1, key: "A 'declare' modifier is required for a top level declaration in a .d.ts file." }, + A_rest_parameter_cannot_be_optional: { code: 1047, category: 1, key: "A rest parameter cannot be optional." }, + A_rest_parameter_cannot_have_an_initializer: { code: 1048, category: 1, key: "A rest parameter cannot have an initializer." }, + A_set_accessor_must_have_exactly_one_parameter: { code: 1049, category: 1, key: "A 'set' accessor must have exactly one parameter." }, + A_set_accessor_cannot_have_an_optional_parameter: { code: 1051, category: 1, key: "A 'set' accessor cannot have an optional parameter." }, + A_set_accessor_parameter_cannot_have_an_initializer: { code: 1052, category: 1, key: "A 'set' accessor parameter cannot have an initializer." }, + A_set_accessor_cannot_have_rest_parameter: { code: 1053, category: 1, key: "A 'set' accessor cannot have rest parameter." }, + A_get_accessor_cannot_have_parameters: { code: 1054, category: 1, key: "A 'get' accessor cannot have parameters." }, + Accessors_are_only_available_when_targeting_ECMAScript_5_and_higher: { code: 1056, category: 1, key: "Accessors are only available when targeting ECMAScript 5 and higher." }, + Enum_member_must_have_initializer: { code: 1061, category: 1, key: "Enum member must have initializer." }, + An_export_assignment_cannot_be_used_in_an_internal_module: { code: 1063, category: 1, key: "An export assignment cannot be used in an internal module." }, + Ambient_enum_elements_can_only_have_integer_literal_initializers: { code: 1066, category: 1, key: "Ambient enum elements can only have integer literal initializers." }, + Unexpected_token_A_constructor_method_accessor_or_property_was_expected: { code: 1068, category: 1, key: "Unexpected token. A constructor, method, accessor, or property was expected." }, + A_declare_modifier_cannot_be_used_with_an_import_declaration: { code: 1079, category: 1, key: "A 'declare' modifier cannot be used with an import declaration." }, + Invalid_reference_directive_syntax: { code: 1084, category: 1, key: "Invalid 'reference' directive syntax." }, + Octal_literals_are_not_available_when_targeting_ECMAScript_5_and_higher: { code: 1085, category: 1, key: "Octal literals are not available when targeting ECMAScript 5 and higher." }, + An_accessor_cannot_be_declared_in_an_ambient_context: { code: 1086, category: 1, key: "An accessor cannot be declared in an ambient context." }, + _0_modifier_cannot_appear_on_a_constructor_declaration: { code: 1089, category: 1, key: "'{0}' modifier cannot appear on a constructor declaration." }, + _0_modifier_cannot_appear_on_a_parameter: { code: 1090, category: 1, key: "'{0}' modifier cannot appear on a parameter." }, + Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement: { code: 1091, category: 1, key: "Only a single variable declaration is allowed in a 'for...in' statement." }, + Type_parameters_cannot_appear_on_a_constructor_declaration: { code: 1092, category: 1, key: "Type parameters cannot appear on a constructor declaration." }, + Type_annotation_cannot_appear_on_a_constructor_declaration: { code: 1093, category: 1, key: "Type annotation cannot appear on a constructor declaration." }, + An_accessor_cannot_have_type_parameters: { code: 1094, category: 1, key: "An accessor cannot have type parameters." }, + A_set_accessor_cannot_have_a_return_type_annotation: { code: 1095, category: 1, key: "A 'set' accessor cannot have a return type annotation." }, + An_index_signature_must_have_exactly_one_parameter: { code: 1096, category: 1, key: "An index signature must have exactly one parameter." }, + _0_list_cannot_be_empty: { code: 1097, category: 1, key: "'{0}' list cannot be empty." }, + Type_parameter_list_cannot_be_empty: { code: 1098, category: 1, key: "Type parameter list cannot be empty." }, + Type_argument_list_cannot_be_empty: { code: 1099, category: 1, key: "Type argument list cannot be empty." }, + Invalid_use_of_0_in_strict_mode: { code: 1100, category: 1, key: "Invalid use of '{0}' in strict mode." }, + with_statements_are_not_allowed_in_strict_mode: { code: 1101, category: 1, key: "'with' statements are not allowed in strict mode." }, + delete_cannot_be_called_on_an_identifier_in_strict_mode: { code: 1102, category: 1, key: "'delete' cannot be called on an identifier in strict mode." }, + A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement: { code: 1104, category: 1, key: "A 'continue' statement can only be used within an enclosing iteration statement." }, + A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement: { code: 1105, category: 1, key: "A 'break' statement can only be used within an enclosing iteration or switch statement." }, + Jump_target_cannot_cross_function_boundary: { code: 1107, category: 1, key: "Jump target cannot cross function boundary." }, + A_return_statement_can_only_be_used_within_a_function_body: { code: 1108, category: 1, key: "A 'return' statement can only be used within a function body." }, + Expression_expected: { code: 1109, category: 1, key: "Expression expected." }, + Type_expected: { code: 1110, category: 1, key: "Type expected." }, + A_class_member_cannot_be_declared_optional: { code: 1112, category: 1, key: "A class member cannot be declared optional." }, + A_default_clause_cannot_appear_more_than_once_in_a_switch_statement: { code: 1113, category: 1, key: "A 'default' clause cannot appear more than once in a 'switch' statement." }, + Duplicate_label_0: { code: 1114, category: 1, key: "Duplicate label '{0}'" }, + A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement: { code: 1115, category: 1, key: "A 'continue' statement can only jump to a label of an enclosing iteration statement." }, + A_break_statement_can_only_jump_to_a_label_of_an_enclosing_statement: { code: 1116, category: 1, key: "A 'break' statement can only jump to a label of an enclosing statement." }, + An_object_literal_cannot_have_multiple_properties_with_the_same_name_in_strict_mode: { code: 1117, category: 1, key: "An object literal cannot have multiple properties with the same name in strict mode." }, + An_object_literal_cannot_have_multiple_get_Slashset_accessors_with_the_same_name: { code: 1118, category: 1, key: "An object literal cannot have multiple get/set accessors with the same name." }, + An_object_literal_cannot_have_property_and_accessor_with_the_same_name: { code: 1119, category: 1, key: "An object literal cannot have property and accessor with the same name." }, + An_export_assignment_cannot_have_modifiers: { code: 1120, category: 1, key: "An export assignment cannot have modifiers." }, + Octal_literals_are_not_allowed_in_strict_mode: { code: 1121, category: 1, key: "Octal literals are not allowed in strict mode." }, + A_tuple_type_element_list_cannot_be_empty: { code: 1122, category: 1, key: "A tuple type element list cannot be empty." }, + Variable_declaration_list_cannot_be_empty: { code: 1123, category: 1, key: "Variable declaration list cannot be empty." }, + Digit_expected: { code: 1124, category: 1, key: "Digit expected." }, + Hexadecimal_digit_expected: { code: 1125, category: 1, key: "Hexadecimal digit expected." }, + Unexpected_end_of_text: { code: 1126, category: 1, key: "Unexpected end of text." }, + Invalid_character: { code: 1127, category: 1, key: "Invalid character." }, + Declaration_or_statement_expected: { code: 1128, category: 1, key: "Declaration or statement expected." }, + Statement_expected: { code: 1129, category: 1, key: "Statement expected." }, + case_or_default_expected: { code: 1130, category: 1, key: "'case' or 'default' expected." }, + Property_or_signature_expected: { code: 1131, category: 1, key: "Property or signature expected." }, + Enum_member_expected: { code: 1132, category: 1, key: "Enum member expected." }, + Type_reference_expected: { code: 1133, category: 1, key: "Type reference expected." }, + Variable_declaration_expected: { code: 1134, category: 1, key: "Variable declaration expected." }, + Argument_expression_expected: { code: 1135, category: 1, key: "Argument expression expected." }, + Property_assignment_expected: { code: 1136, category: 1, key: "Property assignment expected." }, + Expression_or_comma_expected: { code: 1137, category: 1, key: "Expression or comma expected." }, + Parameter_declaration_expected: { code: 1138, category: 1, key: "Parameter declaration expected." }, + Type_parameter_declaration_expected: { code: 1139, category: 1, key: "Type parameter declaration expected." }, + Type_argument_expected: { code: 1140, category: 1, key: "Type argument expected." }, + String_literal_expected: { code: 1141, category: 1, key: "String literal expected." }, + Line_break_not_permitted_here: { code: 1142, category: 1, key: "Line break not permitted here." }, + or_expected: { code: 1144, category: 1, key: "'{' or ';' expected." }, + Modifiers_not_permitted_on_index_signature_members: { code: 1145, category: 1, key: "Modifiers not permitted on index signature members." }, + Declaration_expected: { code: 1146, category: 1, key: "Declaration expected." }, + Import_declarations_in_an_internal_module_cannot_reference_an_external_module: { code: 1147, category: 1, key: "Import declarations in an internal module cannot reference an external module." }, + Cannot_compile_external_modules_unless_the_module_flag_is_provided: { code: 1148, category: 1, key: "Cannot compile external modules unless the '--module' flag is provided." }, + File_name_0_differs_from_already_included_file_name_1_only_in_casing: { code: 1149, category: 1, key: "File name '{0}' differs from already included file name '{1}' only in casing" }, + new_T_cannot_be_used_to_create_an_array_Use_new_Array_T_instead: { code: 1150, category: 1, key: "'new T[]' cannot be used to create an array. Use 'new Array()' instead." }, + var_let_or_const_expected: { code: 1152, category: 1, key: "'var', 'let' or 'const' expected." }, + let_declarations_are_only_available_when_targeting_ECMAScript_6_and_higher: { code: 1153, category: 1, key: "'let' declarations are only available when targeting ECMAScript 6 and higher." }, + const_declarations_are_only_available_when_targeting_ECMAScript_6_and_higher: { code: 1154, category: 1, key: "'const' declarations are only available when targeting ECMAScript 6 and higher." }, + const_declarations_must_be_initialized: { code: 1155, category: 1, key: "'const' declarations must be initialized" }, + const_declarations_can_only_be_declared_inside_a_block: { code: 1156, category: 1, key: "'const' declarations can only be declared inside a block." }, + let_declarations_can_only_be_declared_inside_a_block: { code: 1157, category: 1, key: "'let' declarations can only be declared inside a block." }, + Unterminated_template_literal: { code: 1160, category: 1, key: "Unterminated template literal." }, + Unterminated_regular_expression_literal: { code: 1161, category: 1, key: "Unterminated regular expression literal." }, + An_object_member_cannot_be_declared_optional: { code: 1162, category: 1, key: "An object member cannot be declared optional." }, + yield_expression_must_be_contained_within_a_generator_declaration: { code: 1163, category: 1, key: "'yield' expression must be contained_within a generator declaration." }, + Computed_property_names_are_not_allowed_in_enums: { code: 1164, category: 1, key: "Computed property names are not allowed in enums." }, + A_computed_property_name_in_an_ambient_context_must_directly_refer_to_a_built_in_symbol: { code: 1165, category: 1, key: "A computed property name in an ambient context must directly refer to a built-in symbol." }, + A_computed_property_name_in_a_class_property_declaration_must_directly_refer_to_a_built_in_symbol: { code: 1166, category: 1, key: "A computed property name in a class property declaration must directly refer to a built-in symbol." }, + Computed_property_names_are_only_available_when_targeting_ECMAScript_6_and_higher: { code: 1167, category: 1, key: "Computed property names are only available when targeting ECMAScript 6 and higher." }, + A_computed_property_name_in_a_method_overload_must_directly_refer_to_a_built_in_symbol: { code: 1168, category: 1, key: "A computed property name in a method overload must directly refer to a built-in symbol." }, + A_computed_property_name_in_an_interface_must_directly_refer_to_a_built_in_symbol: { code: 1169, category: 1, key: "A computed property name in an interface must directly refer to a built-in symbol." }, + A_computed_property_name_in_a_type_literal_must_directly_refer_to_a_built_in_symbol: { code: 1170, category: 1, key: "A computed property name in a type literal must directly refer to a built-in symbol." }, + A_comma_expression_is_not_allowed_in_a_computed_property_name: { code: 1171, category: 1, key: "A comma expression is not allowed in a computed property name." }, + extends_clause_already_seen: { code: 1172, category: 1, key: "'extends' clause already seen." }, + extends_clause_must_precede_implements_clause: { code: 1173, category: 1, key: "'extends' clause must precede 'implements' clause." }, + Classes_can_only_extend_a_single_class: { code: 1174, category: 1, key: "Classes can only extend a single class." }, + implements_clause_already_seen: { code: 1175, category: 1, key: "'implements' clause already seen." }, + Interface_declaration_cannot_have_implements_clause: { code: 1176, category: 1, key: "Interface declaration cannot have 'implements' clause." }, + Binary_digit_expected: { code: 1177, category: 1, key: "Binary digit expected." }, + Octal_digit_expected: { code: 1178, category: 1, key: "Octal digit expected." }, + Unexpected_token_expected: { code: 1179, category: 1, key: "Unexpected token. '{' expected." }, + Property_destructuring_pattern_expected: { code: 1180, category: 1, key: "Property destructuring pattern expected." }, + Array_element_destructuring_pattern_expected: { code: 1181, category: 1, key: "Array element destructuring pattern expected." }, + A_destructuring_declaration_must_have_an_initializer: { code: 1182, category: 1, key: "A destructuring declaration must have an initializer." }, + Destructuring_declarations_are_not_allowed_in_ambient_contexts: { code: 1183, category: 1, key: "Destructuring declarations are not allowed in ambient contexts." }, + An_implementation_cannot_be_declared_in_ambient_contexts: { code: 1184, category: 1, key: "An implementation cannot be declared in ambient contexts." }, + Modifiers_cannot_appear_here: { code: 1184, category: 1, key: "Modifiers cannot appear here." }, + Merge_conflict_marker_encountered: { code: 1185, category: 1, key: "Merge conflict marker encountered." }, + A_rest_element_cannot_have_an_initializer: { code: 1186, category: 1, key: "A rest element cannot have an initializer." }, + A_parameter_property_may_not_be_a_binding_pattern: { code: 1187, category: 1, key: "A parameter property may not be a binding pattern." }, + Only_a_single_variable_declaration_is_allowed_in_a_for_of_statement: { code: 1188, category: 1, key: "Only a single variable declaration is allowed in a 'for...of' statement." }, + The_variable_declaration_of_a_for_in_statement_cannot_have_an_initializer: { code: 1189, category: 1, key: "The variable declaration of a 'for...in' statement cannot have an initializer." }, + The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer: { code: 1190, category: 1, key: "The variable declaration of a 'for...of' statement cannot have an initializer." }, + An_import_declaration_cannot_have_modifiers: { code: 1191, category: 1, key: "An import declaration cannot have modifiers." }, + External_module_0_has_no_default_export_or_export_assignment: { code: 1192, category: 1, key: "External module '{0}' has no default export or export assignment." }, + An_export_declaration_cannot_have_modifiers: { code: 1193, category: 1, key: "An export declaration cannot have modifiers." }, + Export_declarations_are_not_permitted_in_an_internal_module: { code: 1194, category: 1, key: "Export declarations are not permitted in an internal module." }, + Catch_clause_variable_name_must_be_an_identifier: { code: 1195, category: 1, key: "Catch clause variable name must be an identifier." }, + Catch_clause_variable_cannot_have_a_type_annotation: { code: 1196, category: 1, key: "Catch clause variable cannot have a type annotation." }, + Catch_clause_variable_cannot_have_an_initializer: { code: 1197, category: 1, key: "Catch clause variable cannot have an initializer." }, + An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive: { code: 1198, category: 1, key: "An extended Unicode escape value must be between 0x0 and 0x10FFFF inclusive." }, + Unterminated_Unicode_escape_sequence: { code: 1199, category: 1, key: "Unterminated Unicode escape sequence." }, + Duplicate_identifier_0: { code: 2300, category: 1, key: "Duplicate identifier '{0}'." }, + Initializer_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor: { code: 2301, category: 1, key: "Initializer of instance member variable '{0}' cannot reference identifier '{1}' declared in the constructor." }, + Static_members_cannot_reference_class_type_parameters: { code: 2302, category: 1, key: "Static members cannot reference class type parameters." }, + Circular_definition_of_import_alias_0: { code: 2303, category: 1, key: "Circular definition of import alias '{0}'." }, + Cannot_find_name_0: { code: 2304, category: 1, key: "Cannot find name '{0}'." }, + Module_0_has_no_exported_member_1: { code: 2305, category: 1, key: "Module '{0}' has no exported member '{1}'." }, + File_0_is_not_an_external_module: { code: 2306, category: 1, key: "File '{0}' is not an external module." }, + Cannot_find_external_module_0: { code: 2307, category: 1, key: "Cannot find external module '{0}'." }, + A_module_cannot_have_more_than_one_export_assignment: { code: 2308, category: 1, key: "A module cannot have more than one export assignment." }, + An_export_assignment_cannot_be_used_in_a_module_with_other_exported_elements: { code: 2309, category: 1, key: "An export assignment cannot be used in a module with other exported elements." }, + Type_0_recursively_references_itself_as_a_base_type: { code: 2310, category: 1, key: "Type '{0}' recursively references itself as a base type." }, + A_class_may_only_extend_another_class: { code: 2311, category: 1, key: "A class may only extend another class." }, + An_interface_may_only_extend_a_class_or_another_interface: { code: 2312, category: 1, key: "An interface may only extend a class or another interface." }, + Constraint_of_a_type_parameter_cannot_reference_any_type_parameter_from_the_same_type_parameter_list: { code: 2313, category: 1, key: "Constraint of a type parameter cannot reference any type parameter from the same type parameter list." }, + Generic_type_0_requires_1_type_argument_s: { code: 2314, category: 1, key: "Generic type '{0}' requires {1} type argument(s)." }, + Type_0_is_not_generic: { code: 2315, category: 1, key: "Type '{0}' is not generic." }, + Global_type_0_must_be_a_class_or_interface_type: { code: 2316, category: 1, key: "Global type '{0}' must be a class or interface type." }, + Global_type_0_must_have_1_type_parameter_s: { code: 2317, category: 1, key: "Global type '{0}' must have {1} type parameter(s)." }, + Cannot_find_global_type_0: { code: 2318, category: 1, key: "Cannot find global type '{0}'." }, + Named_property_0_of_types_1_and_2_are_not_identical: { code: 2319, category: 1, key: "Named property '{0}' of types '{1}' and '{2}' are not identical." }, + Interface_0_cannot_simultaneously_extend_types_1_and_2: { code: 2320, category: 1, key: "Interface '{0}' cannot simultaneously extend types '{1}' and '{2}'." }, + Excessive_stack_depth_comparing_types_0_and_1: { code: 2321, category: 1, key: "Excessive stack depth comparing types '{0}' and '{1}'." }, + Type_0_is_not_assignable_to_type_1: { code: 2322, category: 1, key: "Type '{0}' is not assignable to type '{1}'." }, + Property_0_is_missing_in_type_1: { code: 2324, category: 1, key: "Property '{0}' is missing in type '{1}'." }, + Property_0_is_private_in_type_1_but_not_in_type_2: { code: 2325, category: 1, key: "Property '{0}' is private in type '{1}' but not in type '{2}'." }, + Types_of_property_0_are_incompatible: { code: 2326, category: 1, key: "Types of property '{0}' are incompatible." }, + Property_0_is_optional_in_type_1_but_required_in_type_2: { code: 2327, category: 1, key: "Property '{0}' is optional in type '{1}' but required in type '{2}'." }, + Types_of_parameters_0_and_1_are_incompatible: { code: 2328, category: 1, key: "Types of parameters '{0}' and '{1}' are incompatible." }, + Index_signature_is_missing_in_type_0: { code: 2329, category: 1, key: "Index signature is missing in type '{0}'." }, + Index_signatures_are_incompatible: { code: 2330, category: 1, key: "Index signatures are incompatible." }, + this_cannot_be_referenced_in_a_module_body: { code: 2331, category: 1, key: "'this' cannot be referenced in a module body." }, + this_cannot_be_referenced_in_current_location: { code: 2332, category: 1, key: "'this' cannot be referenced in current location." }, + this_cannot_be_referenced_in_constructor_arguments: { code: 2333, category: 1, key: "'this' cannot be referenced in constructor arguments." }, + this_cannot_be_referenced_in_a_static_property_initializer: { code: 2334, category: 1, key: "'this' cannot be referenced in a static property initializer." }, + super_can_only_be_referenced_in_a_derived_class: { code: 2335, category: 1, key: "'super' can only be referenced in a derived class." }, + super_cannot_be_referenced_in_constructor_arguments: { code: 2336, category: 1, key: "'super' cannot be referenced in constructor arguments." }, + Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors: { code: 2337, category: 1, key: "Super calls are not permitted outside constructors or in nested functions inside constructors" }, + super_property_access_is_permitted_only_in_a_constructor_member_function_or_member_accessor_of_a_derived_class: { code: 2338, category: 1, key: "'super' property access is permitted only in a constructor, member function, or member accessor of a derived class" }, + Property_0_does_not_exist_on_type_1: { code: 2339, category: 1, key: "Property '{0}' does not exist on type '{1}'." }, + Only_public_and_protected_methods_of_the_base_class_are_accessible_via_the_super_keyword: { code: 2340, category: 1, key: "Only public and protected methods of the base class are accessible via the 'super' keyword" }, + Property_0_is_private_and_only_accessible_within_class_1: { code: 2341, category: 1, key: "Property '{0}' is private and only accessible within class '{1}'." }, + An_index_expression_argument_must_be_of_type_string_number_symbol_or_any: { code: 2342, category: 1, key: "An index expression argument must be of type 'string', 'number', 'symbol, or 'any'." }, + Type_0_does_not_satisfy_the_constraint_1: { code: 2344, category: 1, key: "Type '{0}' does not satisfy the constraint '{1}'." }, + Argument_of_type_0_is_not_assignable_to_parameter_of_type_1: { code: 2345, category: 1, key: "Argument of type '{0}' is not assignable to parameter of type '{1}'." }, + Supplied_parameters_do_not_match_any_signature_of_call_target: { code: 2346, category: 1, key: "Supplied parameters do not match any signature of call target." }, + Untyped_function_calls_may_not_accept_type_arguments: { code: 2347, category: 1, key: "Untyped function calls may not accept type arguments." }, + Value_of_type_0_is_not_callable_Did_you_mean_to_include_new: { code: 2348, category: 1, key: "Value of type '{0}' is not callable. Did you mean to include 'new'?" }, + Cannot_invoke_an_expression_whose_type_lacks_a_call_signature: { code: 2349, category: 1, key: "Cannot invoke an expression whose type lacks a call signature." }, + Only_a_void_function_can_be_called_with_the_new_keyword: { code: 2350, category: 1, key: "Only a void function can be called with the 'new' keyword." }, + Cannot_use_new_with_an_expression_whose_type_lacks_a_call_or_construct_signature: { code: 2351, category: 1, key: "Cannot use 'new' with an expression whose type lacks a call or construct signature." }, + Neither_type_0_nor_type_1_is_assignable_to_the_other: { code: 2352, category: 1, key: "Neither type '{0}' nor type '{1}' is assignable to the other." }, + No_best_common_type_exists_among_return_expressions: { code: 2354, category: 1, key: "No best common type exists among return expressions." }, + A_function_whose_declared_type_is_neither_void_nor_any_must_return_a_value_or_consist_of_a_single_throw_statement: { code: 2355, category: 1, key: "A function whose declared type is neither 'void' nor 'any' must return a value or consist of a single 'throw' statement." }, + An_arithmetic_operand_must_be_of_type_any_number_or_an_enum_type: { code: 2356, category: 1, key: "An arithmetic operand must be of type 'any', 'number' or an enum type." }, + The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_property_or_indexer: { code: 2357, category: 1, key: "The operand of an increment or decrement operator must be a variable, property or indexer." }, + The_left_hand_side_of_an_instanceof_expression_must_be_of_type_any_an_object_type_or_a_type_parameter: { code: 2358, category: 1, key: "The left-hand side of an 'instanceof' expression must be of type 'any', an object type or a type parameter." }, + The_right_hand_side_of_an_instanceof_expression_must_be_of_type_any_or_of_a_type_assignable_to_the_Function_interface_type: { code: 2359, category: 1, key: "The right-hand side of an 'instanceof' expression must be of type 'any' or of a type assignable to the 'Function' interface type." }, + The_left_hand_side_of_an_in_expression_must_be_of_type_any_string_number_or_symbol: { code: 2360, category: 1, key: "The left-hand side of an 'in' expression must be of type 'any', 'string', 'number', or 'symbol'." }, + The_right_hand_side_of_an_in_expression_must_be_of_type_any_an_object_type_or_a_type_parameter: { code: 2361, category: 1, key: "The right-hand side of an 'in' expression must be of type 'any', an object type or a type parameter" }, + The_left_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_or_an_enum_type: { code: 2362, category: 1, key: "The left-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type." }, + The_right_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_or_an_enum_type: { code: 2363, category: 1, key: "The right-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type." }, + Invalid_left_hand_side_of_assignment_expression: { code: 2364, category: 1, key: "Invalid left-hand side of assignment expression." }, + Operator_0_cannot_be_applied_to_types_1_and_2: { code: 2365, category: 1, key: "Operator '{0}' cannot be applied to types '{1}' and '{2}'." }, + Type_parameter_name_cannot_be_0: { code: 2368, category: 1, key: "Type parameter name cannot be '{0}'" }, + A_parameter_property_is_only_allowed_in_a_constructor_implementation: { code: 2369, category: 1, key: "A parameter property is only allowed in a constructor implementation." }, + A_rest_parameter_must_be_of_an_array_type: { code: 2370, category: 1, key: "A rest parameter must be of an array type." }, + A_parameter_initializer_is_only_allowed_in_a_function_or_constructor_implementation: { code: 2371, category: 1, key: "A parameter initializer is only allowed in a function or constructor implementation." }, + Parameter_0_cannot_be_referenced_in_its_initializer: { code: 2372, category: 1, key: "Parameter '{0}' cannot be referenced in its initializer." }, + Initializer_of_parameter_0_cannot_reference_identifier_1_declared_after_it: { code: 2373, category: 1, key: "Initializer of parameter '{0}' cannot reference identifier '{1}' declared after it." }, + Duplicate_string_index_signature: { code: 2374, category: 1, key: "Duplicate string index signature." }, + Duplicate_number_index_signature: { code: 2375, category: 1, key: "Duplicate number index signature." }, + A_super_call_must_be_the_first_statement_in_the_constructor_when_a_class_contains_initialized_properties_or_has_parameter_properties: { code: 2376, category: 1, key: "A 'super' call must be the first statement in the constructor when a class contains initialized properties or has parameter properties." }, + Constructors_for_derived_classes_must_contain_a_super_call: { code: 2377, category: 1, key: "Constructors for derived classes must contain a 'super' call." }, + A_get_accessor_must_return_a_value_or_consist_of_a_single_throw_statement: { code: 2378, category: 1, key: "A 'get' accessor must return a value or consist of a single 'throw' statement." }, + Getter_and_setter_accessors_do_not_agree_in_visibility: { code: 2379, category: 1, key: "Getter and setter accessors do not agree in visibility." }, + get_and_set_accessor_must_have_the_same_type: { code: 2380, category: 1, key: "'get' and 'set' accessor must have the same type." }, + A_signature_with_an_implementation_cannot_use_a_string_literal_type: { code: 2381, category: 1, key: "A signature with an implementation cannot use a string literal type." }, + Specialized_overload_signature_is_not_assignable_to_any_non_specialized_signature: { code: 2382, category: 1, key: "Specialized overload signature is not assignable to any non-specialized signature." }, + Overload_signatures_must_all_be_exported_or_not_exported: { code: 2383, category: 1, key: "Overload signatures must all be exported or not exported." }, + Overload_signatures_must_all_be_ambient_or_non_ambient: { code: 2384, category: 1, key: "Overload signatures must all be ambient or non-ambient." }, + Overload_signatures_must_all_be_public_private_or_protected: { code: 2385, category: 1, key: "Overload signatures must all be public, private or protected." }, + Overload_signatures_must_all_be_optional_or_required: { code: 2386, category: 1, key: "Overload signatures must all be optional or required." }, + Function_overload_must_be_static: { code: 2387, category: 1, key: "Function overload must be static." }, + Function_overload_must_not_be_static: { code: 2388, category: 1, key: "Function overload must not be static." }, + Function_implementation_name_must_be_0: { code: 2389, category: 1, key: "Function implementation name must be '{0}'." }, + Constructor_implementation_is_missing: { code: 2390, category: 1, key: "Constructor implementation is missing." }, + Function_implementation_is_missing_or_not_immediately_following_the_declaration: { code: 2391, category: 1, key: "Function implementation is missing or not immediately following the declaration." }, + Multiple_constructor_implementations_are_not_allowed: { code: 2392, category: 1, key: "Multiple constructor implementations are not allowed." }, + Duplicate_function_implementation: { code: 2393, category: 1, key: "Duplicate function implementation." }, + Overload_signature_is_not_compatible_with_function_implementation: { code: 2394, category: 1, key: "Overload signature is not compatible with function implementation." }, + Individual_declarations_in_merged_declaration_0_must_be_all_exported_or_all_local: { code: 2395, category: 1, key: "Individual declarations in merged declaration {0} must be all exported or all local." }, + Duplicate_identifier_arguments_Compiler_uses_arguments_to_initialize_rest_parameters: { code: 2396, category: 1, key: "Duplicate identifier 'arguments'. Compiler uses 'arguments' to initialize rest parameters." }, + Duplicate_identifier_this_Compiler_uses_variable_declaration_this_to_capture_this_reference: { code: 2399, category: 1, key: "Duplicate identifier '_this'. Compiler uses variable declaration '_this' to capture 'this' reference." }, + Expression_resolves_to_variable_declaration_this_that_compiler_uses_to_capture_this_reference: { code: 2400, category: 1, key: "Expression resolves to variable declaration '_this' that compiler uses to capture 'this' reference." }, + Duplicate_identifier_super_Compiler_uses_super_to_capture_base_class_reference: { code: 2401, category: 1, key: "Duplicate identifier '_super'. Compiler uses '_super' to capture base class reference." }, + Expression_resolves_to_super_that_compiler_uses_to_capture_base_class_reference: { code: 2402, category: 1, key: "Expression resolves to '_super' that compiler uses to capture base class reference." }, + Subsequent_variable_declarations_must_have_the_same_type_Variable_0_must_be_of_type_1_but_here_has_type_2: { code: 2403, category: 1, key: "Subsequent variable declarations must have the same type. Variable '{0}' must be of type '{1}', but here has type '{2}'." }, + The_left_hand_side_of_a_for_in_statement_cannot_use_a_type_annotation: { code: 2404, category: 1, key: "The left-hand side of a 'for...in' statement cannot use a type annotation." }, + The_left_hand_side_of_a_for_in_statement_must_be_of_type_string_or_any: { code: 2405, category: 1, key: "The left-hand side of a 'for...in' statement must be of type 'string' or 'any'." }, + Invalid_left_hand_side_in_for_in_statement: { code: 2406, category: 1, key: "Invalid left-hand side in 'for...in' statement." }, + The_right_hand_side_of_a_for_in_statement_must_be_of_type_any_an_object_type_or_a_type_parameter: { code: 2407, category: 1, key: "The right-hand side of a 'for...in' statement must be of type 'any', an object type or a type parameter." }, + Setters_cannot_return_a_value: { code: 2408, category: 1, key: "Setters cannot return a value." }, + Return_type_of_constructor_signature_must_be_assignable_to_the_instance_type_of_the_class: { code: 2409, category: 1, key: "Return type of constructor signature must be assignable to the instance type of the class" }, + All_symbols_within_a_with_block_will_be_resolved_to_any: { code: 2410, category: 1, key: "All symbols within a 'with' block will be resolved to 'any'." }, + Property_0_of_type_1_is_not_assignable_to_string_index_type_2: { code: 2411, category: 1, key: "Property '{0}' of type '{1}' is not assignable to string index type '{2}'." }, + Property_0_of_type_1_is_not_assignable_to_numeric_index_type_2: { code: 2412, category: 1, key: "Property '{0}' of type '{1}' is not assignable to numeric index type '{2}'." }, + Numeric_index_type_0_is_not_assignable_to_string_index_type_1: { code: 2413, category: 1, key: "Numeric index type '{0}' is not assignable to string index type '{1}'." }, + Class_name_cannot_be_0: { code: 2414, category: 1, key: "Class name cannot be '{0}'" }, + Class_0_incorrectly_extends_base_class_1: { code: 2415, category: 1, key: "Class '{0}' incorrectly extends base class '{1}'." }, + Class_static_side_0_incorrectly_extends_base_class_static_side_1: { code: 2417, category: 1, key: "Class static side '{0}' incorrectly extends base class static side '{1}'." }, + Type_name_0_in_extends_clause_does_not_reference_constructor_function_for_0: { code: 2419, category: 1, key: "Type name '{0}' in extends clause does not reference constructor function for '{0}'." }, + Class_0_incorrectly_implements_interface_1: { code: 2420, category: 1, key: "Class '{0}' incorrectly implements interface '{1}'." }, + A_class_may_only_implement_another_class_or_interface: { code: 2422, category: 1, key: "A class may only implement another class or interface." }, + Class_0_defines_instance_member_function_1_but_extended_class_2_defines_it_as_instance_member_accessor: { code: 2423, category: 1, key: "Class '{0}' defines instance member function '{1}', but extended class '{2}' defines it as instance member accessor." }, + Class_0_defines_instance_member_function_1_but_extended_class_2_defines_it_as_instance_member_property: { code: 2424, category: 1, key: "Class '{0}' defines instance member function '{1}', but extended class '{2}' defines it as instance member property." }, + Class_0_defines_instance_member_property_1_but_extended_class_2_defines_it_as_instance_member_function: { code: 2425, category: 1, key: "Class '{0}' defines instance member property '{1}', but extended class '{2}' defines it as instance member function." }, + Class_0_defines_instance_member_accessor_1_but_extended_class_2_defines_it_as_instance_member_function: { code: 2426, category: 1, key: "Class '{0}' defines instance member accessor '{1}', but extended class '{2}' defines it as instance member function." }, + Interface_name_cannot_be_0: { code: 2427, category: 1, key: "Interface name cannot be '{0}'" }, + All_declarations_of_an_interface_must_have_identical_type_parameters: { code: 2428, category: 1, key: "All declarations of an interface must have identical type parameters." }, + Interface_0_incorrectly_extends_interface_1: { code: 2430, category: 1, key: "Interface '{0}' incorrectly extends interface '{1}'." }, + Enum_name_cannot_be_0: { code: 2431, category: 1, key: "Enum name cannot be '{0}'" }, + In_an_enum_with_multiple_declarations_only_one_declaration_can_omit_an_initializer_for_its_first_enum_element: { code: 2432, category: 1, key: "In an enum with multiple declarations, only one declaration can omit an initializer for its first enum element." }, + A_module_declaration_cannot_be_in_a_different_file_from_a_class_or_function_with_which_it_is_merged: { code: 2433, category: 1, key: "A module declaration cannot be in a different file from a class or function with which it is merged" }, + A_module_declaration_cannot_be_located_prior_to_a_class_or_function_with_which_it_is_merged: { code: 2434, category: 1, key: "A module declaration cannot be located prior to a class or function with which it is merged" }, + Ambient_external_modules_cannot_be_nested_in_other_modules: { code: 2435, category: 1, key: "Ambient external modules cannot be nested in other modules." }, + Ambient_external_module_declaration_cannot_specify_relative_module_name: { code: 2436, category: 1, key: "Ambient external module declaration cannot specify relative module name." }, + Module_0_is_hidden_by_a_local_declaration_with_the_same_name: { code: 2437, category: 1, key: "Module '{0}' is hidden by a local declaration with the same name" }, + Import_name_cannot_be_0: { code: 2438, category: 1, key: "Import name cannot be '{0}'" }, + Import_or_export_declaration_in_an_ambient_external_module_declaration_cannot_reference_external_module_through_relative_external_module_name: { code: 2439, category: 1, key: "Import or export declaration in an ambient external module declaration cannot reference external module through relative external module name." }, + Import_declaration_conflicts_with_local_declaration_of_0: { code: 2440, category: 1, key: "Import declaration conflicts with local declaration of '{0}'" }, + Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_an_external_module: { code: 2441, category: 1, key: "Duplicate identifier '{0}'. Compiler reserves name '{1}' in top level scope of an external module." }, + Types_have_separate_declarations_of_a_private_property_0: { code: 2442, category: 1, key: "Types have separate declarations of a private property '{0}'." }, + Property_0_is_protected_but_type_1_is_not_a_class_derived_from_2: { code: 2443, category: 1, key: "Property '{0}' is protected but type '{1}' is not a class derived from '{2}'." }, + Property_0_is_protected_in_type_1_but_public_in_type_2: { code: 2444, category: 1, key: "Property '{0}' is protected in type '{1}' but public in type '{2}'." }, + Property_0_is_protected_and_only_accessible_within_class_1_and_its_subclasses: { code: 2445, category: 1, key: "Property '{0}' is protected and only accessible within class '{1}' and its subclasses." }, + Property_0_is_protected_and_only_accessible_through_an_instance_of_class_1: { code: 2446, category: 1, key: "Property '{0}' is protected and only accessible through an instance of class '{1}'." }, + The_0_operator_is_not_allowed_for_boolean_types_Consider_using_1_instead: { code: 2447, category: 1, key: "The '{0}' operator is not allowed for boolean types. Consider using '{1}' instead." }, + Block_scoped_variable_0_used_before_its_declaration: { code: 2448, category: 1, key: "Block-scoped variable '{0}' used before its declaration." }, + The_operand_of_an_increment_or_decrement_operator_cannot_be_a_constant: { code: 2449, category: 1, key: "The operand of an increment or decrement operator cannot be a constant." }, + Left_hand_side_of_assignment_expression_cannot_be_a_constant: { code: 2450, category: 1, key: "Left-hand side of assignment expression cannot be a constant." }, + Cannot_redeclare_block_scoped_variable_0: { code: 2451, category: 1, key: "Cannot redeclare block-scoped variable '{0}'." }, + An_enum_member_cannot_have_a_numeric_name: { code: 2452, category: 1, key: "An enum member cannot have a numeric name." }, + The_type_argument_for_type_parameter_0_cannot_be_inferred_from_the_usage_Consider_specifying_the_type_arguments_explicitly: { code: 2453, category: 1, key: "The type argument for type parameter '{0}' cannot be inferred from the usage. Consider specifying the type arguments explicitly." }, + Type_argument_candidate_1_is_not_a_valid_type_argument_because_it_is_not_a_supertype_of_candidate_0: { code: 2455, category: 1, key: "Type argument candidate '{1}' is not a valid type argument because it is not a supertype of candidate '{0}'." }, + Type_alias_0_circularly_references_itself: { code: 2456, category: 1, key: "Type alias '{0}' circularly references itself." }, + Type_alias_name_cannot_be_0: { code: 2457, category: 1, key: "Type alias name cannot be '{0}'" }, + An_AMD_module_cannot_have_multiple_name_assignments: { code: 2458, category: 1, key: "An AMD module cannot have multiple name assignments." }, + Type_0_has_no_property_1_and_no_string_index_signature: { code: 2459, category: 1, key: "Type '{0}' has no property '{1}' and no string index signature." }, + Type_0_has_no_property_1: { code: 2460, category: 1, key: "Type '{0}' has no property '{1}'." }, + Type_0_is_not_an_array_type: { code: 2461, category: 1, key: "Type '{0}' is not an array type." }, + A_rest_element_must_be_last_in_an_array_destructuring_pattern: { code: 2462, category: 1, key: "A rest element must be last in an array destructuring pattern" }, + A_binding_pattern_parameter_cannot_be_optional_in_an_implementation_signature: { code: 2463, category: 1, key: "A binding pattern parameter cannot be optional in an implementation signature." }, + A_computed_property_name_must_be_of_type_string_number_symbol_or_any: { code: 2464, category: 1, key: "A computed property name must be of type 'string', 'number', 'symbol', or 'any'." }, + this_cannot_be_referenced_in_a_computed_property_name: { code: 2465, category: 1, key: "'this' cannot be referenced in a computed property name." }, + super_cannot_be_referenced_in_a_computed_property_name: { code: 2466, category: 1, key: "'super' cannot be referenced in a computed property name." }, + A_computed_property_name_cannot_reference_a_type_parameter_from_its_containing_type: { code: 2467, category: 1, key: "A computed property name cannot reference a type parameter from its containing type." }, + Cannot_find_global_value_0: { code: 2468, category: 1, key: "Cannot find global value '{0}'." }, + The_0_operator_cannot_be_applied_to_type_symbol: { code: 2469, category: 1, key: "The '{0}' operator cannot be applied to type 'symbol'." }, + Symbol_reference_does_not_refer_to_the_global_Symbol_constructor_object: { code: 2470, category: 1, key: "'Symbol' reference does not refer to the global Symbol constructor object." }, + A_computed_property_name_of_the_form_0_must_be_of_type_symbol: { code: 2471, category: 1, key: "A computed property name of the form '{0}' must be of type 'symbol'." }, + Spread_operator_in_new_expressions_is_only_available_when_targeting_ECMAScript_6_and_higher: { code: 2472, category: 1, key: "Spread operator in 'new' expressions is only available when targeting ECMAScript 6 and higher." }, + Enum_declarations_must_all_be_const_or_non_const: { code: 2473, category: 1, key: "Enum declarations must all be const or non-const." }, + In_const_enum_declarations_member_initializer_must_be_constant_expression: { code: 2474, category: 1, key: "In 'const' enum declarations member initializer must be constant expression." }, + const_enums_can_only_be_used_in_property_or_index_access_expressions_or_the_right_hand_side_of_an_import_declaration_or_export_assignment: { code: 2475, category: 1, key: "'const' enums can only be used in property or index access expressions or the right hand side of an import declaration or export assignment." }, + A_const_enum_member_can_only_be_accessed_using_a_string_literal: { code: 2476, category: 1, key: "A const enum member can only be accessed using a string literal." }, + const_enum_member_initializer_was_evaluated_to_a_non_finite_value: { code: 2477, category: 1, key: "'const' enum member initializer was evaluated to a non-finite value." }, + const_enum_member_initializer_was_evaluated_to_disallowed_value_NaN: { code: 2478, category: 1, key: "'const' enum member initializer was evaluated to disallowed value 'NaN'." }, + Property_0_does_not_exist_on_const_enum_1: { code: 2479, category: 1, key: "Property '{0}' does not exist on 'const' enum '{1}'." }, + let_is_not_allowed_to_be_used_as_a_name_in_let_or_const_declarations: { code: 2480, category: 1, key: "'let' is not allowed to be used as a name in 'let' or 'const' declarations." }, + Cannot_initialize_outer_scoped_variable_0_in_the_same_scope_as_block_scoped_declaration_1: { code: 2481, category: 1, key: "Cannot initialize outer scoped variable '{0}' in the same scope as block scoped declaration '{1}'." }, + The_left_hand_side_of_a_for_of_statement_cannot_use_a_type_annotation: { code: 2483, category: 1, key: "The left-hand side of a 'for...of' statement cannot use a type annotation." }, + Export_declaration_conflicts_with_exported_declaration_of_0: { code: 2484, category: 1, key: "Export declaration conflicts with exported declaration of '{0}'" }, + The_left_hand_side_of_a_for_of_statement_cannot_be_a_previously_defined_constant: { code: 2485, category: 1, key: "The left-hand side of a 'for...of' statement cannot be a previously defined constant." }, + The_left_hand_side_of_a_for_in_statement_cannot_be_a_previously_defined_constant: { code: 2486, category: 1, key: "The left-hand side of a 'for...in' statement cannot be a previously defined constant." }, + Invalid_left_hand_side_in_for_of_statement: { code: 2487, category: 1, key: "Invalid left-hand side in 'for...of' statement." }, + The_right_hand_side_of_a_for_of_statement_must_have_a_Symbol_iterator_method_that_returns_an_iterator: { code: 2488, category: 1, key: "The right-hand side of a 'for...of' statement must have a '[Symbol.iterator]()' method that returns an iterator." }, + The_iterator_returned_by_the_right_hand_side_of_a_for_of_statement_must_have_a_next_method: { code: 2489, category: 1, key: "The iterator returned by the right-hand side of a 'for...of' statement must have a 'next()' method." }, + The_type_returned_by_the_next_method_of_an_iterator_must_have_a_value_property: { code: 2490, category: 1, key: "The type returned by the 'next()' method of an iterator must have a 'value' property." }, + The_left_hand_side_of_a_for_in_statement_cannot_be_a_destructuring_pattern: { code: 2491, category: 1, key: "The left-hand side of a 'for...in' statement cannot be a destructuring pattern." }, + Cannot_redeclare_identifier_0_in_catch_clause: { code: 2492, category: 1, key: "Cannot redeclare identifier '{0}' in catch clause" }, + Tuple_type_0_with_length_1_cannot_be_assigned_to_tuple_with_length_2: { code: 2493, category: 1, key: "Tuple type '{0}' with length '{1}' cannot be assigned to tuple with length '{2}'." }, + Using_a_string_in_a_for_of_statement_is_only_supported_in_ECMAScript_5_and_higher: { code: 2494, category: 1, key: "Using a string in a 'for...of' statement is only supported in ECMAScript 5 and higher." }, + Type_0_is_not_an_array_type_or_a_string_type: { code: 2461, category: 1, key: "Type '{0}' is not an array type or a string type." }, + Import_declaration_0_is_using_private_name_1: { code: 4000, category: 1, key: "Import declaration '{0}' is using private name '{1}'." }, + Type_parameter_0_of_exported_class_has_or_is_using_private_name_1: { code: 4002, category: 1, key: "Type parameter '{0}' of exported class has or is using private name '{1}'." }, + Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1: { code: 4004, category: 1, key: "Type parameter '{0}' of exported interface has or is using private name '{1}'." }, + Type_parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1: { code: 4006, category: 1, key: "Type parameter '{0}' of constructor signature from exported interface has or is using private name '{1}'." }, + Type_parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1: { code: 4008, category: 1, key: "Type parameter '{0}' of call signature from exported interface has or is using private name '{1}'." }, + Type_parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1: { code: 4010, category: 1, key: "Type parameter '{0}' of public static method from exported class has or is using private name '{1}'." }, + Type_parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1: { code: 4012, category: 1, key: "Type parameter '{0}' of public method from exported class has or is using private name '{1}'." }, + Type_parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1: { code: 4014, category: 1, key: "Type parameter '{0}' of method from exported interface has or is using private name '{1}'." }, + Type_parameter_0_of_exported_function_has_or_is_using_private_name_1: { code: 4016, category: 1, key: "Type parameter '{0}' of exported function has or is using private name '{1}'." }, + Implements_clause_of_exported_class_0_has_or_is_using_private_name_1: { code: 4019, category: 1, key: "Implements clause of exported class '{0}' has or is using private name '{1}'." }, + Extends_clause_of_exported_class_0_has_or_is_using_private_name_1: { code: 4020, category: 1, key: "Extends clause of exported class '{0}' has or is using private name '{1}'." }, + Extends_clause_of_exported_interface_0_has_or_is_using_private_name_1: { code: 4022, category: 1, key: "Extends clause of exported interface '{0}' has or is using private name '{1}'." }, + Exported_variable_0_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: { code: 4023, category: 1, key: "Exported variable '{0}' has or is using name '{1}' from external module {2} but cannot be named." }, + Exported_variable_0_has_or_is_using_name_1_from_private_module_2: { code: 4024, category: 1, key: "Exported variable '{0}' has or is using name '{1}' from private module '{2}'." }, + Exported_variable_0_has_or_is_using_private_name_1: { code: 4025, category: 1, key: "Exported variable '{0}' has or is using private name '{1}'." }, + Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: { code: 4026, category: 1, key: "Public static property '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named." }, + Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2: { code: 4027, category: 1, key: "Public static property '{0}' of exported class has or is using name '{1}' from private module '{2}'." }, + Public_static_property_0_of_exported_class_has_or_is_using_private_name_1: { code: 4028, category: 1, key: "Public static property '{0}' of exported class has or is using private name '{1}'." }, + Public_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: { code: 4029, category: 1, key: "Public property '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named." }, + Public_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2: { code: 4030, category: 1, key: "Public property '{0}' of exported class has or is using name '{1}' from private module '{2}'." }, + Public_property_0_of_exported_class_has_or_is_using_private_name_1: { code: 4031, category: 1, key: "Public property '{0}' of exported class has or is using private name '{1}'." }, + Property_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2: { code: 4032, category: 1, key: "Property '{0}' of exported interface has or is using name '{1}' from private module '{2}'." }, + Property_0_of_exported_interface_has_or_is_using_private_name_1: { code: 4033, category: 1, key: "Property '{0}' of exported interface has or is using private name '{1}'." }, + Parameter_0_of_public_static_property_setter_from_exported_class_has_or_is_using_name_1_from_private_module_2: { code: 4034, category: 1, key: "Parameter '{0}' of public static property setter from exported class has or is using name '{1}' from private module '{2}'." }, + Parameter_0_of_public_static_property_setter_from_exported_class_has_or_is_using_private_name_1: { code: 4035, category: 1, key: "Parameter '{0}' of public static property setter from exported class has or is using private name '{1}'." }, + Parameter_0_of_public_property_setter_from_exported_class_has_or_is_using_name_1_from_private_module_2: { code: 4036, category: 1, key: "Parameter '{0}' of public property setter from exported class has or is using name '{1}' from private module '{2}'." }, + Parameter_0_of_public_property_setter_from_exported_class_has_or_is_using_private_name_1: { code: 4037, category: 1, key: "Parameter '{0}' of public property setter from exported class has or is using private name '{1}'." }, + Return_type_of_public_static_property_getter_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named: { code: 4038, category: 1, key: "Return type of public static property getter from exported class has or is using name '{0}' from external module {1} but cannot be named." }, + Return_type_of_public_static_property_getter_from_exported_class_has_or_is_using_name_0_from_private_module_1: { code: 4039, category: 1, key: "Return type of public static property getter from exported class has or is using name '{0}' from private module '{1}'." }, + Return_type_of_public_static_property_getter_from_exported_class_has_or_is_using_private_name_0: { code: 4040, category: 1, key: "Return type of public static property getter from exported class has or is using private name '{0}'." }, + Return_type_of_public_property_getter_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named: { code: 4041, category: 1, key: "Return type of public property getter from exported class has or is using name '{0}' from external module {1} but cannot be named." }, + Return_type_of_public_property_getter_from_exported_class_has_or_is_using_name_0_from_private_module_1: { code: 4042, category: 1, key: "Return type of public property getter from exported class has or is using name '{0}' from private module '{1}'." }, + Return_type_of_public_property_getter_from_exported_class_has_or_is_using_private_name_0: { code: 4043, category: 1, key: "Return type of public property getter from exported class has or is using private name '{0}'." }, + Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1: { code: 4044, category: 1, key: "Return type of constructor signature from exported interface has or is using name '{0}' from private module '{1}'." }, + Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_0: { code: 4045, category: 1, key: "Return type of constructor signature from exported interface has or is using private name '{0}'." }, + Return_type_of_call_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1: { code: 4046, category: 1, key: "Return type of call signature from exported interface has or is using name '{0}' from private module '{1}'." }, + Return_type_of_call_signature_from_exported_interface_has_or_is_using_private_name_0: { code: 4047, category: 1, key: "Return type of call signature from exported interface has or is using private name '{0}'." }, + Return_type_of_index_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1: { code: 4048, category: 1, key: "Return type of index signature from exported interface has or is using name '{0}' from private module '{1}'." }, + Return_type_of_index_signature_from_exported_interface_has_or_is_using_private_name_0: { code: 4049, category: 1, key: "Return type of index signature from exported interface has or is using private name '{0}'." }, + Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named: { code: 4050, category: 1, key: "Return type of public static method from exported class has or is using name '{0}' from external module {1} but cannot be named." }, + Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_private_module_1: { code: 4051, category: 1, key: "Return type of public static method from exported class has or is using name '{0}' from private module '{1}'." }, + Return_type_of_public_static_method_from_exported_class_has_or_is_using_private_name_0: { code: 4052, category: 1, key: "Return type of public static method from exported class has or is using private name '{0}'." }, + Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named: { code: 4053, category: 1, key: "Return type of public method from exported class has or is using name '{0}' from external module {1} but cannot be named." }, + Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_private_module_1: { code: 4054, category: 1, key: "Return type of public method from exported class has or is using name '{0}' from private module '{1}'." }, + Return_type_of_public_method_from_exported_class_has_or_is_using_private_name_0: { code: 4055, category: 1, key: "Return type of public method from exported class has or is using private name '{0}'." }, + Return_type_of_method_from_exported_interface_has_or_is_using_name_0_from_private_module_1: { code: 4056, category: 1, key: "Return type of method from exported interface has or is using name '{0}' from private module '{1}'." }, + Return_type_of_method_from_exported_interface_has_or_is_using_private_name_0: { code: 4057, category: 1, key: "Return type of method from exported interface has or is using private name '{0}'." }, + Return_type_of_exported_function_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named: { code: 4058, category: 1, key: "Return type of exported function has or is using name '{0}' from external module {1} but cannot be named." }, + Return_type_of_exported_function_has_or_is_using_name_0_from_private_module_1: { code: 4059, category: 1, key: "Return type of exported function has or is using name '{0}' from private module '{1}'." }, + Return_type_of_exported_function_has_or_is_using_private_name_0: { code: 4060, category: 1, key: "Return type of exported function has or is using private name '{0}'." }, + Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: { code: 4061, category: 1, key: "Parameter '{0}' of constructor from exported class has or is using name '{1}' from external module {2} but cannot be named." }, + Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_private_module_2: { code: 4062, category: 1, key: "Parameter '{0}' of constructor from exported class has or is using name '{1}' from private module '{2}'." }, + Parameter_0_of_constructor_from_exported_class_has_or_is_using_private_name_1: { code: 4063, category: 1, key: "Parameter '{0}' of constructor from exported class has or is using private name '{1}'." }, + Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2: { code: 4064, category: 1, key: "Parameter '{0}' of constructor signature from exported interface has or is using name '{1}' from private module '{2}'." }, + Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1: { code: 4065, category: 1, key: "Parameter '{0}' of constructor signature from exported interface has or is using private name '{1}'." }, + Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2: { code: 4066, category: 1, key: "Parameter '{0}' of call signature from exported interface has or is using name '{1}' from private module '{2}'." }, + Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1: { code: 4067, category: 1, key: "Parameter '{0}' of call signature from exported interface has or is using private name '{1}'." }, + Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: { code: 4068, category: 1, key: "Parameter '{0}' of public static method from exported class has or is using name '{1}' from external module {2} but cannot be named." }, + Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_private_module_2: { code: 4069, category: 1, key: "Parameter '{0}' of public static method from exported class has or is using name '{1}' from private module '{2}'." }, + Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1: { code: 4070, category: 1, key: "Parameter '{0}' of public static method from exported class has or is using private name '{1}'." }, + Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: { code: 4071, category: 1, key: "Parameter '{0}' of public method from exported class has or is using name '{1}' from external module {2} but cannot be named." }, + Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_private_module_2: { code: 4072, category: 1, key: "Parameter '{0}' of public method from exported class has or is using name '{1}' from private module '{2}'." }, + Parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1: { code: 4073, category: 1, key: "Parameter '{0}' of public method from exported class has or is using private name '{1}'." }, + Parameter_0_of_method_from_exported_interface_has_or_is_using_name_1_from_private_module_2: { code: 4074, category: 1, key: "Parameter '{0}' of method from exported interface has or is using name '{1}' from private module '{2}'." }, + Parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1: { code: 4075, category: 1, key: "Parameter '{0}' of method from exported interface has or is using private name '{1}'." }, + Parameter_0_of_exported_function_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: { code: 4076, category: 1, key: "Parameter '{0}' of exported function has or is using name '{1}' from external module {2} but cannot be named." }, + Parameter_0_of_exported_function_has_or_is_using_name_1_from_private_module_2: { code: 4077, category: 1, key: "Parameter '{0}' of exported function has or is using name '{1}' from private module '{2}'." }, + Parameter_0_of_exported_function_has_or_is_using_private_name_1: { code: 4078, category: 1, key: "Parameter '{0}' of exported function has or is using private name '{1}'." }, + Exported_type_alias_0_has_or_is_using_private_name_1: { code: 4081, category: 1, key: "Exported type alias '{0}' has or is using private name '{1}'." }, + Loop_contains_block_scoped_variable_0_referenced_by_a_function_in_the_loop_This_is_only_supported_in_ECMAScript_6_or_higher: { code: 4091, category: 1, key: "Loop contains block-scoped variable '{0}' referenced by a function in the loop. This is only supported in ECMAScript 6 or higher." }, + The_current_host_does_not_support_the_0_option: { code: 5001, category: 1, key: "The current host does not support the '{0}' option." }, + Cannot_find_the_common_subdirectory_path_for_the_input_files: { code: 5009, category: 1, key: "Cannot find the common subdirectory path for the input files." }, + Cannot_read_file_0_Colon_1: { code: 5012, category: 1, key: "Cannot read file '{0}': {1}" }, + Unsupported_file_encoding: { code: 5013, category: 1, key: "Unsupported file encoding." }, + Unknown_compiler_option_0: { code: 5023, category: 1, key: "Unknown compiler option '{0}'." }, + Compiler_option_0_requires_a_value_of_type_1: { code: 5024, category: 1, key: "Compiler option '{0}' requires a value of type {1}." }, + Could_not_write_file_0_Colon_1: { code: 5033, category: 1, key: "Could not write file '{0}': {1}" }, + Option_mapRoot_cannot_be_specified_without_specifying_sourcemap_option: { code: 5038, category: 1, key: "Option 'mapRoot' cannot be specified without specifying 'sourcemap' option." }, + Option_sourceRoot_cannot_be_specified_without_specifying_sourcemap_option: { code: 5039, category: 1, key: "Option 'sourceRoot' cannot be specified without specifying 'sourcemap' option." }, + Option_noEmit_cannot_be_specified_with_option_out_or_outDir: { code: 5040, category: 1, key: "Option 'noEmit' cannot be specified with option 'out' or 'outDir'." }, + Option_noEmit_cannot_be_specified_with_option_declaration: { code: 5041, category: 1, key: "Option 'noEmit' cannot be specified with option 'declaration'." }, + Option_project_cannot_be_mixed_with_source_files_on_a_command_line: { code: 5042, category: 1, key: "Option 'project' cannot be mixed with source files on a command line." }, + Concatenate_and_emit_output_to_single_file: { code: 6001, category: 2, key: "Concatenate and emit output to single file." }, + Generates_corresponding_d_ts_file: { code: 6002, category: 2, key: "Generates corresponding '.d.ts' file." }, + Specifies_the_location_where_debugger_should_locate_map_files_instead_of_generated_locations: { code: 6003, category: 2, key: "Specifies the location where debugger should locate map files instead of generated locations." }, + Specifies_the_location_where_debugger_should_locate_TypeScript_files_instead_of_source_locations: { code: 6004, category: 2, key: "Specifies the location where debugger should locate TypeScript files instead of source locations." }, + Watch_input_files: { code: 6005, category: 2, key: "Watch input files." }, + Redirect_output_structure_to_the_directory: { code: 6006, category: 2, key: "Redirect output structure to the directory." }, + Do_not_erase_const_enum_declarations_in_generated_code: { code: 6007, category: 2, key: "Do not erase const enum declarations in generated code." }, + Do_not_emit_outputs_if_any_type_checking_errors_were_reported: { code: 6008, category: 2, key: "Do not emit outputs if any type checking errors were reported." }, + Do_not_emit_comments_to_output: { code: 6009, category: 2, key: "Do not emit comments to output." }, + Do_not_emit_outputs: { code: 6010, category: 2, key: "Do not emit outputs." }, + Specify_ECMAScript_target_version_Colon_ES3_default_ES5_or_ES6_experimental: { code: 6015, category: 2, key: "Specify ECMAScript target version: 'ES3' (default), 'ES5', or 'ES6' (experimental)" }, + Specify_module_code_generation_Colon_commonjs_or_amd: { code: 6016, category: 2, key: "Specify module code generation: 'commonjs' or 'amd'" }, + Print_this_message: { code: 6017, category: 2, key: "Print this message." }, + Print_the_compiler_s_version: { code: 6019, category: 2, key: "Print the compiler's version." }, + Compile_the_project_in_the_given_directory: { code: 6020, category: 2, key: "Compile the project in the given directory." }, + Syntax_Colon_0: { code: 6023, category: 2, key: "Syntax: {0}" }, + options: { code: 6024, category: 2, key: "options" }, + file: { code: 6025, category: 2, key: "file" }, + Examples_Colon_0: { code: 6026, category: 2, key: "Examples: {0}" }, + Options_Colon: { code: 6027, category: 2, key: "Options:" }, + Version_0: { code: 6029, category: 2, key: "Version {0}" }, + Insert_command_line_options_and_files_from_a_file: { code: 6030, category: 2, key: "Insert command line options and files from a file." }, + File_change_detected_Starting_incremental_compilation: { code: 6032, category: 2, key: "File change detected. Starting incremental compilation..." }, + KIND: { code: 6034, category: 2, key: "KIND" }, + FILE: { code: 6035, category: 2, key: "FILE" }, + VERSION: { code: 6036, category: 2, key: "VERSION" }, + LOCATION: { code: 6037, category: 2, key: "LOCATION" }, + DIRECTORY: { code: 6038, category: 2, key: "DIRECTORY" }, + Compilation_complete_Watching_for_file_changes: { code: 6042, category: 2, key: "Compilation complete. Watching for file changes." }, + Generates_corresponding_map_file: { code: 6043, category: 2, key: "Generates corresponding '.map' file." }, + Compiler_option_0_expects_an_argument: { code: 6044, category: 1, key: "Compiler option '{0}' expects an argument." }, + Unterminated_quoted_string_in_response_file_0: { code: 6045, category: 1, key: "Unterminated quoted string in response file '{0}'." }, + Argument_for_module_option_must_be_commonjs_or_amd: { code: 6046, category: 1, key: "Argument for '--module' option must be 'commonjs' or 'amd'." }, + Argument_for_target_option_must_be_es3_es5_or_es6: { code: 6047, category: 1, key: "Argument for '--target' option must be 'es3', 'es5', or 'es6'." }, + Locale_must_be_of_the_form_language_or_language_territory_For_example_0_or_1: { code: 6048, category: 1, key: "Locale must be of the form or -. For example '{0}' or '{1}'." }, + Unsupported_locale_0: { code: 6049, category: 1, key: "Unsupported locale '{0}'." }, + Unable_to_open_file_0: { code: 6050, category: 1, key: "Unable to open file '{0}'." }, + Corrupted_locale_file_0: { code: 6051, category: 1, key: "Corrupted locale file {0}." }, + Raise_error_on_expressions_and_declarations_with_an_implied_any_type: { code: 6052, category: 2, key: "Raise error on expressions and declarations with an implied 'any' type." }, + File_0_not_found: { code: 6053, category: 1, key: "File '{0}' not found." }, + File_0_must_have_extension_ts_or_d_ts: { code: 6054, category: 1, key: "File '{0}' must have extension '.ts' or '.d.ts'." }, + Suppress_noImplicitAny_errors_for_indexing_objects_lacking_index_signatures: { code: 6055, category: 2, key: "Suppress noImplicitAny errors for indexing objects lacking index signatures." }, + Do_not_emit_declarations_for_code_that_has_an_internal_annotation: { code: 6056, category: 2, key: "Do not emit declarations for code that has an '@internal' annotation." }, + Preserve_new_lines_when_emitting_code: { code: 6057, category: 2, key: "Preserve new-lines when emitting code." }, + Variable_0_implicitly_has_an_1_type: { code: 7005, category: 1, key: "Variable '{0}' implicitly has an '{1}' type." }, + Parameter_0_implicitly_has_an_1_type: { code: 7006, category: 1, key: "Parameter '{0}' implicitly has an '{1}' type." }, + Member_0_implicitly_has_an_1_type: { code: 7008, category: 1, key: "Member '{0}' implicitly has an '{1}' type." }, + new_expression_whose_target_lacks_a_construct_signature_implicitly_has_an_any_type: { code: 7009, category: 1, key: "'new' expression, whose target lacks a construct signature, implicitly has an 'any' type." }, + _0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type: { code: 7010, category: 1, key: "'{0}', which lacks return-type annotation, implicitly has an '{1}' return type." }, + Function_expression_which_lacks_return_type_annotation_implicitly_has_an_0_return_type: { code: 7011, category: 1, key: "Function expression, which lacks return-type annotation, implicitly has an '{0}' return type." }, + Construct_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type: { code: 7013, category: 1, key: "Construct signature, which lacks return-type annotation, implicitly has an 'any' return type." }, + Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_type_annotation: { code: 7016, category: 1, key: "Property '{0}' implicitly has type 'any', because its 'set' accessor lacks a type annotation." }, + Index_signature_of_object_type_implicitly_has_an_any_type: { code: 7017, category: 1, key: "Index signature of object type implicitly has an 'any' type." }, + Object_literal_s_property_0_implicitly_has_an_1_type: { code: 7018, category: 1, key: "Object literal's property '{0}' implicitly has an '{1}' type." }, + Rest_parameter_0_implicitly_has_an_any_type: { code: 7019, category: 1, key: "Rest parameter '{0}' implicitly has an 'any[]' type." }, + Call_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type: { code: 7020, category: 1, key: "Call signature, which lacks return-type annotation, implicitly has an 'any' return type." }, + _0_implicitly_has_type_any_because_it_is_referenced_directly_or_indirectly_in_its_own_type_annotation: { code: 7021, category: 1, key: "'{0}' implicitly has type 'any' because it is referenced directly or indirectly in its own type annotation." }, + _0_implicitly_has_type_any_because_it_is_does_not_have_a_type_annotation_and_is_referenced_directly_or_indirectly_in_its_own_initializer: { code: 7022, category: 1, key: "'{0}' implicitly has type 'any' because it is does not have a type annotation and is referenced directly or indirectly in its own initializer." }, + _0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions: { code: 7023, category: 1, key: "'{0}' implicitly has return type 'any' because it does not have a return type annotation and is referenced directly or indirectly in one of its return expressions." }, + Function_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions: { code: 7024, category: 1, key: "Function implicitly has return type 'any' because it does not have a return type annotation and is referenced directly or indirectly in one of its return expressions." }, + You_cannot_rename_this_element: { code: 8000, category: 1, key: "You cannot rename this element." }, + You_cannot_rename_elements_that_are_defined_in_the_standard_TypeScript_library: { code: 8001, category: 1, key: "You cannot rename elements that are defined in the standard TypeScript library." }, + yield_expressions_are_not_currently_supported: { code: 9000, category: 1, key: "'yield' expressions are not currently supported." }, + Generators_are_not_currently_supported: { code: 9001, category: 1, key: "Generators are not currently supported." }, + The_arguments_object_cannot_be_referenced_in_an_arrow_function_Consider_using_a_standard_function_expression: { code: 9002, category: 1, key: "The 'arguments' object cannot be referenced in an arrow function. Consider using a standard function expression." } }; })(ts || (ts = {})); var ts; @@ -3425,2806 +1479,10 @@ var ts; "|=": 62, "^=": 63 }; - var unicodeES3IdentifierStart = [ - 170, - 170, - 181, - 181, - 186, - 186, - 192, - 214, - 216, - 246, - 248, - 543, - 546, - 563, - 592, - 685, - 688, - 696, - 699, - 705, - 720, - 721, - 736, - 740, - 750, - 750, - 890, - 890, - 902, - 902, - 904, - 906, - 908, - 908, - 910, - 929, - 931, - 974, - 976, - 983, - 986, - 1011, - 1024, - 1153, - 1164, - 1220, - 1223, - 1224, - 1227, - 1228, - 1232, - 1269, - 1272, - 1273, - 1329, - 1366, - 1369, - 1369, - 1377, - 1415, - 1488, - 1514, - 1520, - 1522, - 1569, - 1594, - 1600, - 1610, - 1649, - 1747, - 1749, - 1749, - 1765, - 1766, - 1786, - 1788, - 1808, - 1808, - 1810, - 1836, - 1920, - 1957, - 2309, - 2361, - 2365, - 2365, - 2384, - 2384, - 2392, - 2401, - 2437, - 2444, - 2447, - 2448, - 2451, - 2472, - 2474, - 2480, - 2482, - 2482, - 2486, - 2489, - 2524, - 2525, - 2527, - 2529, - 2544, - 2545, - 2565, - 2570, - 2575, - 2576, - 2579, - 2600, - 2602, - 2608, - 2610, - 2611, - 2613, - 2614, - 2616, - 2617, - 2649, - 2652, - 2654, - 2654, - 2674, - 2676, - 2693, - 2699, - 2701, - 2701, - 2703, - 2705, - 2707, - 2728, - 2730, - 2736, - 2738, - 2739, - 2741, - 2745, - 2749, - 2749, - 2768, - 2768, - 2784, - 2784, - 2821, - 2828, - 2831, - 2832, - 2835, - 2856, - 2858, - 2864, - 2866, - 2867, - 2870, - 2873, - 2877, - 2877, - 2908, - 2909, - 2911, - 2913, - 2949, - 2954, - 2958, - 2960, - 2962, - 2965, - 2969, - 2970, - 2972, - 2972, - 2974, - 2975, - 2979, - 2980, - 2984, - 2986, - 2990, - 2997, - 2999, - 3001, - 3077, - 3084, - 3086, - 3088, - 3090, - 3112, - 3114, - 3123, - 3125, - 3129, - 3168, - 3169, - 3205, - 3212, - 3214, - 3216, - 3218, - 3240, - 3242, - 3251, - 3253, - 3257, - 3294, - 3294, - 3296, - 3297, - 3333, - 3340, - 3342, - 3344, - 3346, - 3368, - 3370, - 3385, - 3424, - 3425, - 3461, - 3478, - 3482, - 3505, - 3507, - 3515, - 3517, - 3517, - 3520, - 3526, - 3585, - 3632, - 3634, - 3635, - 3648, - 3654, - 3713, - 3714, - 3716, - 3716, - 3719, - 3720, - 3722, - 3722, - 3725, - 3725, - 3732, - 3735, - 3737, - 3743, - 3745, - 3747, - 3749, - 3749, - 3751, - 3751, - 3754, - 3755, - 3757, - 3760, - 3762, - 3763, - 3773, - 3773, - 3776, - 3780, - 3782, - 3782, - 3804, - 3805, - 3840, - 3840, - 3904, - 3911, - 3913, - 3946, - 3976, - 3979, - 4096, - 4129, - 4131, - 4135, - 4137, - 4138, - 4176, - 4181, - 4256, - 4293, - 4304, - 4342, - 4352, - 4441, - 4447, - 4514, - 4520, - 4601, - 4608, - 4614, - 4616, - 4678, - 4680, - 4680, - 4682, - 4685, - 4688, - 4694, - 4696, - 4696, - 4698, - 4701, - 4704, - 4742, - 4744, - 4744, - 4746, - 4749, - 4752, - 4782, - 4784, - 4784, - 4786, - 4789, - 4792, - 4798, - 4800, - 4800, - 4802, - 4805, - 4808, - 4814, - 4816, - 4822, - 4824, - 4846, - 4848, - 4878, - 4880, - 4880, - 4882, - 4885, - 4888, - 4894, - 4896, - 4934, - 4936, - 4954, - 5024, - 5108, - 5121, - 5740, - 5743, - 5750, - 5761, - 5786, - 5792, - 5866, - 6016, - 6067, - 6176, - 6263, - 6272, - 6312, - 7680, - 7835, - 7840, - 7929, - 7936, - 7957, - 7960, - 7965, - 7968, - 8005, - 8008, - 8013, - 8016, - 8023, - 8025, - 8025, - 8027, - 8027, - 8029, - 8029, - 8031, - 8061, - 8064, - 8116, - 8118, - 8124, - 8126, - 8126, - 8130, - 8132, - 8134, - 8140, - 8144, - 8147, - 8150, - 8155, - 8160, - 8172, - 8178, - 8180, - 8182, - 8188, - 8319, - 8319, - 8450, - 8450, - 8455, - 8455, - 8458, - 8467, - 8469, - 8469, - 8473, - 8477, - 8484, - 8484, - 8486, - 8486, - 8488, - 8488, - 8490, - 8493, - 8495, - 8497, - 8499, - 8505, - 8544, - 8579, - 12293, - 12295, - 12321, - 12329, - 12337, - 12341, - 12344, - 12346, - 12353, - 12436, - 12445, - 12446, - 12449, - 12538, - 12540, - 12542, - 12549, - 12588, - 12593, - 12686, - 12704, - 12727, - 13312, - 19893, - 19968, - 40869, - 40960, - 42124, - 44032, - 55203, - 63744, - 64045, - 64256, - 64262, - 64275, - 64279, - 64285, - 64285, - 64287, - 64296, - 64298, - 64310, - 64312, - 64316, - 64318, - 64318, - 64320, - 64321, - 64323, - 64324, - 64326, - 64433, - 64467, - 64829, - 64848, - 64911, - 64914, - 64967, - 65008, - 65019, - 65136, - 65138, - 65140, - 65140, - 65142, - 65276, - 65313, - 65338, - 65345, - 65370, - 65382, - 65470, - 65474, - 65479, - 65482, - 65487, - 65490, - 65495, - 65498, - 65500, - ]; - var unicodeES3IdentifierPart = [ - 170, - 170, - 181, - 181, - 186, - 186, - 192, - 214, - 216, - 246, - 248, - 543, - 546, - 563, - 592, - 685, - 688, - 696, - 699, - 705, - 720, - 721, - 736, - 740, - 750, - 750, - 768, - 846, - 864, - 866, - 890, - 890, - 902, - 902, - 904, - 906, - 908, - 908, - 910, - 929, - 931, - 974, - 976, - 983, - 986, - 1011, - 1024, - 1153, - 1155, - 1158, - 1164, - 1220, - 1223, - 1224, - 1227, - 1228, - 1232, - 1269, - 1272, - 1273, - 1329, - 1366, - 1369, - 1369, - 1377, - 1415, - 1425, - 1441, - 1443, - 1465, - 1467, - 1469, - 1471, - 1471, - 1473, - 1474, - 1476, - 1476, - 1488, - 1514, - 1520, - 1522, - 1569, - 1594, - 1600, - 1621, - 1632, - 1641, - 1648, - 1747, - 1749, - 1756, - 1759, - 1768, - 1770, - 1773, - 1776, - 1788, - 1808, - 1836, - 1840, - 1866, - 1920, - 1968, - 2305, - 2307, - 2309, - 2361, - 2364, - 2381, - 2384, - 2388, - 2392, - 2403, - 2406, - 2415, - 2433, - 2435, - 2437, - 2444, - 2447, - 2448, - 2451, - 2472, - 2474, - 2480, - 2482, - 2482, - 2486, - 2489, - 2492, - 2492, - 2494, - 2500, - 2503, - 2504, - 2507, - 2509, - 2519, - 2519, - 2524, - 2525, - 2527, - 2531, - 2534, - 2545, - 2562, - 2562, - 2565, - 2570, - 2575, - 2576, - 2579, - 2600, - 2602, - 2608, - 2610, - 2611, - 2613, - 2614, - 2616, - 2617, - 2620, - 2620, - 2622, - 2626, - 2631, - 2632, - 2635, - 2637, - 2649, - 2652, - 2654, - 2654, - 2662, - 2676, - 2689, - 2691, - 2693, - 2699, - 2701, - 2701, - 2703, - 2705, - 2707, - 2728, - 2730, - 2736, - 2738, - 2739, - 2741, - 2745, - 2748, - 2757, - 2759, - 2761, - 2763, - 2765, - 2768, - 2768, - 2784, - 2784, - 2790, - 2799, - 2817, - 2819, - 2821, - 2828, - 2831, - 2832, - 2835, - 2856, - 2858, - 2864, - 2866, - 2867, - 2870, - 2873, - 2876, - 2883, - 2887, - 2888, - 2891, - 2893, - 2902, - 2903, - 2908, - 2909, - 2911, - 2913, - 2918, - 2927, - 2946, - 2947, - 2949, - 2954, - 2958, - 2960, - 2962, - 2965, - 2969, - 2970, - 2972, - 2972, - 2974, - 2975, - 2979, - 2980, - 2984, - 2986, - 2990, - 2997, - 2999, - 3001, - 3006, - 3010, - 3014, - 3016, - 3018, - 3021, - 3031, - 3031, - 3047, - 3055, - 3073, - 3075, - 3077, - 3084, - 3086, - 3088, - 3090, - 3112, - 3114, - 3123, - 3125, - 3129, - 3134, - 3140, - 3142, - 3144, - 3146, - 3149, - 3157, - 3158, - 3168, - 3169, - 3174, - 3183, - 3202, - 3203, - 3205, - 3212, - 3214, - 3216, - 3218, - 3240, - 3242, - 3251, - 3253, - 3257, - 3262, - 3268, - 3270, - 3272, - 3274, - 3277, - 3285, - 3286, - 3294, - 3294, - 3296, - 3297, - 3302, - 3311, - 3330, - 3331, - 3333, - 3340, - 3342, - 3344, - 3346, - 3368, - 3370, - 3385, - 3390, - 3395, - 3398, - 3400, - 3402, - 3405, - 3415, - 3415, - 3424, - 3425, - 3430, - 3439, - 3458, - 3459, - 3461, - 3478, - 3482, - 3505, - 3507, - 3515, - 3517, - 3517, - 3520, - 3526, - 3530, - 3530, - 3535, - 3540, - 3542, - 3542, - 3544, - 3551, - 3570, - 3571, - 3585, - 3642, - 3648, - 3662, - 3664, - 3673, - 3713, - 3714, - 3716, - 3716, - 3719, - 3720, - 3722, - 3722, - 3725, - 3725, - 3732, - 3735, - 3737, - 3743, - 3745, - 3747, - 3749, - 3749, - 3751, - 3751, - 3754, - 3755, - 3757, - 3769, - 3771, - 3773, - 3776, - 3780, - 3782, - 3782, - 3784, - 3789, - 3792, - 3801, - 3804, - 3805, - 3840, - 3840, - 3864, - 3865, - 3872, - 3881, - 3893, - 3893, - 3895, - 3895, - 3897, - 3897, - 3902, - 3911, - 3913, - 3946, - 3953, - 3972, - 3974, - 3979, - 3984, - 3991, - 3993, - 4028, - 4038, - 4038, - 4096, - 4129, - 4131, - 4135, - 4137, - 4138, - 4140, - 4146, - 4150, - 4153, - 4160, - 4169, - 4176, - 4185, - 4256, - 4293, - 4304, - 4342, - 4352, - 4441, - 4447, - 4514, - 4520, - 4601, - 4608, - 4614, - 4616, - 4678, - 4680, - 4680, - 4682, - 4685, - 4688, - 4694, - 4696, - 4696, - 4698, - 4701, - 4704, - 4742, - 4744, - 4744, - 4746, - 4749, - 4752, - 4782, - 4784, - 4784, - 4786, - 4789, - 4792, - 4798, - 4800, - 4800, - 4802, - 4805, - 4808, - 4814, - 4816, - 4822, - 4824, - 4846, - 4848, - 4878, - 4880, - 4880, - 4882, - 4885, - 4888, - 4894, - 4896, - 4934, - 4936, - 4954, - 4969, - 4977, - 5024, - 5108, - 5121, - 5740, - 5743, - 5750, - 5761, - 5786, - 5792, - 5866, - 6016, - 6099, - 6112, - 6121, - 6160, - 6169, - 6176, - 6263, - 6272, - 6313, - 7680, - 7835, - 7840, - 7929, - 7936, - 7957, - 7960, - 7965, - 7968, - 8005, - 8008, - 8013, - 8016, - 8023, - 8025, - 8025, - 8027, - 8027, - 8029, - 8029, - 8031, - 8061, - 8064, - 8116, - 8118, - 8124, - 8126, - 8126, - 8130, - 8132, - 8134, - 8140, - 8144, - 8147, - 8150, - 8155, - 8160, - 8172, - 8178, - 8180, - 8182, - 8188, - 8255, - 8256, - 8319, - 8319, - 8400, - 8412, - 8417, - 8417, - 8450, - 8450, - 8455, - 8455, - 8458, - 8467, - 8469, - 8469, - 8473, - 8477, - 8484, - 8484, - 8486, - 8486, - 8488, - 8488, - 8490, - 8493, - 8495, - 8497, - 8499, - 8505, - 8544, - 8579, - 12293, - 12295, - 12321, - 12335, - 12337, - 12341, - 12344, - 12346, - 12353, - 12436, - 12441, - 12442, - 12445, - 12446, - 12449, - 12542, - 12549, - 12588, - 12593, - 12686, - 12704, - 12727, - 13312, - 19893, - 19968, - 40869, - 40960, - 42124, - 44032, - 55203, - 63744, - 64045, - 64256, - 64262, - 64275, - 64279, - 64285, - 64296, - 64298, - 64310, - 64312, - 64316, - 64318, - 64318, - 64320, - 64321, - 64323, - 64324, - 64326, - 64433, - 64467, - 64829, - 64848, - 64911, - 64914, - 64967, - 65008, - 65019, - 65056, - 65059, - 65075, - 65076, - 65101, - 65103, - 65136, - 65138, - 65140, - 65140, - 65142, - 65276, - 65296, - 65305, - 65313, - 65338, - 65343, - 65343, - 65345, - 65370, - 65381, - 65470, - 65474, - 65479, - 65482, - 65487, - 65490, - 65495, - 65498, - 65500, - ]; - var unicodeES5IdentifierStart = [ - 170, - 170, - 181, - 181, - 186, - 186, - 192, - 214, - 216, - 246, - 248, - 705, - 710, - 721, - 736, - 740, - 748, - 748, - 750, - 750, - 880, - 884, - 886, - 887, - 890, - 893, - 902, - 902, - 904, - 906, - 908, - 908, - 910, - 929, - 931, - 1013, - 1015, - 1153, - 1162, - 1319, - 1329, - 1366, - 1369, - 1369, - 1377, - 1415, - 1488, - 1514, - 1520, - 1522, - 1568, - 1610, - 1646, - 1647, - 1649, - 1747, - 1749, - 1749, - 1765, - 1766, - 1774, - 1775, - 1786, - 1788, - 1791, - 1791, - 1808, - 1808, - 1810, - 1839, - 1869, - 1957, - 1969, - 1969, - 1994, - 2026, - 2036, - 2037, - 2042, - 2042, - 2048, - 2069, - 2074, - 2074, - 2084, - 2084, - 2088, - 2088, - 2112, - 2136, - 2208, - 2208, - 2210, - 2220, - 2308, - 2361, - 2365, - 2365, - 2384, - 2384, - 2392, - 2401, - 2417, - 2423, - 2425, - 2431, - 2437, - 2444, - 2447, - 2448, - 2451, - 2472, - 2474, - 2480, - 2482, - 2482, - 2486, - 2489, - 2493, - 2493, - 2510, - 2510, - 2524, - 2525, - 2527, - 2529, - 2544, - 2545, - 2565, - 2570, - 2575, - 2576, - 2579, - 2600, - 2602, - 2608, - 2610, - 2611, - 2613, - 2614, - 2616, - 2617, - 2649, - 2652, - 2654, - 2654, - 2674, - 2676, - 2693, - 2701, - 2703, - 2705, - 2707, - 2728, - 2730, - 2736, - 2738, - 2739, - 2741, - 2745, - 2749, - 2749, - 2768, - 2768, - 2784, - 2785, - 2821, - 2828, - 2831, - 2832, - 2835, - 2856, - 2858, - 2864, - 2866, - 2867, - 2869, - 2873, - 2877, - 2877, - 2908, - 2909, - 2911, - 2913, - 2929, - 2929, - 2947, - 2947, - 2949, - 2954, - 2958, - 2960, - 2962, - 2965, - 2969, - 2970, - 2972, - 2972, - 2974, - 2975, - 2979, - 2980, - 2984, - 2986, - 2990, - 3001, - 3024, - 3024, - 3077, - 3084, - 3086, - 3088, - 3090, - 3112, - 3114, - 3123, - 3125, - 3129, - 3133, - 3133, - 3160, - 3161, - 3168, - 3169, - 3205, - 3212, - 3214, - 3216, - 3218, - 3240, - 3242, - 3251, - 3253, - 3257, - 3261, - 3261, - 3294, - 3294, - 3296, - 3297, - 3313, - 3314, - 3333, - 3340, - 3342, - 3344, - 3346, - 3386, - 3389, - 3389, - 3406, - 3406, - 3424, - 3425, - 3450, - 3455, - 3461, - 3478, - 3482, - 3505, - 3507, - 3515, - 3517, - 3517, - 3520, - 3526, - 3585, - 3632, - 3634, - 3635, - 3648, - 3654, - 3713, - 3714, - 3716, - 3716, - 3719, - 3720, - 3722, - 3722, - 3725, - 3725, - 3732, - 3735, - 3737, - 3743, - 3745, - 3747, - 3749, - 3749, - 3751, - 3751, - 3754, - 3755, - 3757, - 3760, - 3762, - 3763, - 3773, - 3773, - 3776, - 3780, - 3782, - 3782, - 3804, - 3807, - 3840, - 3840, - 3904, - 3911, - 3913, - 3948, - 3976, - 3980, - 4096, - 4138, - 4159, - 4159, - 4176, - 4181, - 4186, - 4189, - 4193, - 4193, - 4197, - 4198, - 4206, - 4208, - 4213, - 4225, - 4238, - 4238, - 4256, - 4293, - 4295, - 4295, - 4301, - 4301, - 4304, - 4346, - 4348, - 4680, - 4682, - 4685, - 4688, - 4694, - 4696, - 4696, - 4698, - 4701, - 4704, - 4744, - 4746, - 4749, - 4752, - 4784, - 4786, - 4789, - 4792, - 4798, - 4800, - 4800, - 4802, - 4805, - 4808, - 4822, - 4824, - 4880, - 4882, - 4885, - 4888, - 4954, - 4992, - 5007, - 5024, - 5108, - 5121, - 5740, - 5743, - 5759, - 5761, - 5786, - 5792, - 5866, - 5870, - 5872, - 5888, - 5900, - 5902, - 5905, - 5920, - 5937, - 5952, - 5969, - 5984, - 5996, - 5998, - 6000, - 6016, - 6067, - 6103, - 6103, - 6108, - 6108, - 6176, - 6263, - 6272, - 6312, - 6314, - 6314, - 6320, - 6389, - 6400, - 6428, - 6480, - 6509, - 6512, - 6516, - 6528, - 6571, - 6593, - 6599, - 6656, - 6678, - 6688, - 6740, - 6823, - 6823, - 6917, - 6963, - 6981, - 6987, - 7043, - 7072, - 7086, - 7087, - 7098, - 7141, - 7168, - 7203, - 7245, - 7247, - 7258, - 7293, - 7401, - 7404, - 7406, - 7409, - 7413, - 7414, - 7424, - 7615, - 7680, - 7957, - 7960, - 7965, - 7968, - 8005, - 8008, - 8013, - 8016, - 8023, - 8025, - 8025, - 8027, - 8027, - 8029, - 8029, - 8031, - 8061, - 8064, - 8116, - 8118, - 8124, - 8126, - 8126, - 8130, - 8132, - 8134, - 8140, - 8144, - 8147, - 8150, - 8155, - 8160, - 8172, - 8178, - 8180, - 8182, - 8188, - 8305, - 8305, - 8319, - 8319, - 8336, - 8348, - 8450, - 8450, - 8455, - 8455, - 8458, - 8467, - 8469, - 8469, - 8473, - 8477, - 8484, - 8484, - 8486, - 8486, - 8488, - 8488, - 8490, - 8493, - 8495, - 8505, - 8508, - 8511, - 8517, - 8521, - 8526, - 8526, - 8544, - 8584, - 11264, - 11310, - 11312, - 11358, - 11360, - 11492, - 11499, - 11502, - 11506, - 11507, - 11520, - 11557, - 11559, - 11559, - 11565, - 11565, - 11568, - 11623, - 11631, - 11631, - 11648, - 11670, - 11680, - 11686, - 11688, - 11694, - 11696, - 11702, - 11704, - 11710, - 11712, - 11718, - 11720, - 11726, - 11728, - 11734, - 11736, - 11742, - 11823, - 11823, - 12293, - 12295, - 12321, - 12329, - 12337, - 12341, - 12344, - 12348, - 12353, - 12438, - 12445, - 12447, - 12449, - 12538, - 12540, - 12543, - 12549, - 12589, - 12593, - 12686, - 12704, - 12730, - 12784, - 12799, - 13312, - 19893, - 19968, - 40908, - 40960, - 42124, - 42192, - 42237, - 42240, - 42508, - 42512, - 42527, - 42538, - 42539, - 42560, - 42606, - 42623, - 42647, - 42656, - 42735, - 42775, - 42783, - 42786, - 42888, - 42891, - 42894, - 42896, - 42899, - 42912, - 42922, - 43000, - 43009, - 43011, - 43013, - 43015, - 43018, - 43020, - 43042, - 43072, - 43123, - 43138, - 43187, - 43250, - 43255, - 43259, - 43259, - 43274, - 43301, - 43312, - 43334, - 43360, - 43388, - 43396, - 43442, - 43471, - 43471, - 43520, - 43560, - 43584, - 43586, - 43588, - 43595, - 43616, - 43638, - 43642, - 43642, - 43648, - 43695, - 43697, - 43697, - 43701, - 43702, - 43705, - 43709, - 43712, - 43712, - 43714, - 43714, - 43739, - 43741, - 43744, - 43754, - 43762, - 43764, - 43777, - 43782, - 43785, - 43790, - 43793, - 43798, - 43808, - 43814, - 43816, - 43822, - 43968, - 44002, - 44032, - 55203, - 55216, - 55238, - 55243, - 55291, - 63744, - 64109, - 64112, - 64217, - 64256, - 64262, - 64275, - 64279, - 64285, - 64285, - 64287, - 64296, - 64298, - 64310, - 64312, - 64316, - 64318, - 64318, - 64320, - 64321, - 64323, - 64324, - 64326, - 64433, - 64467, - 64829, - 64848, - 64911, - 64914, - 64967, - 65008, - 65019, - 65136, - 65140, - 65142, - 65276, - 65313, - 65338, - 65345, - 65370, - 65382, - 65470, - 65474, - 65479, - 65482, - 65487, - 65490, - 65495, - 65498, - 65500, - ]; - var unicodeES5IdentifierPart = [ - 170, - 170, - 181, - 181, - 186, - 186, - 192, - 214, - 216, - 246, - 248, - 705, - 710, - 721, - 736, - 740, - 748, - 748, - 750, - 750, - 768, - 884, - 886, - 887, - 890, - 893, - 902, - 902, - 904, - 906, - 908, - 908, - 910, - 929, - 931, - 1013, - 1015, - 1153, - 1155, - 1159, - 1162, - 1319, - 1329, - 1366, - 1369, - 1369, - 1377, - 1415, - 1425, - 1469, - 1471, - 1471, - 1473, - 1474, - 1476, - 1477, - 1479, - 1479, - 1488, - 1514, - 1520, - 1522, - 1552, - 1562, - 1568, - 1641, - 1646, - 1747, - 1749, - 1756, - 1759, - 1768, - 1770, - 1788, - 1791, - 1791, - 1808, - 1866, - 1869, - 1969, - 1984, - 2037, - 2042, - 2042, - 2048, - 2093, - 2112, - 2139, - 2208, - 2208, - 2210, - 2220, - 2276, - 2302, - 2304, - 2403, - 2406, - 2415, - 2417, - 2423, - 2425, - 2431, - 2433, - 2435, - 2437, - 2444, - 2447, - 2448, - 2451, - 2472, - 2474, - 2480, - 2482, - 2482, - 2486, - 2489, - 2492, - 2500, - 2503, - 2504, - 2507, - 2510, - 2519, - 2519, - 2524, - 2525, - 2527, - 2531, - 2534, - 2545, - 2561, - 2563, - 2565, - 2570, - 2575, - 2576, - 2579, - 2600, - 2602, - 2608, - 2610, - 2611, - 2613, - 2614, - 2616, - 2617, - 2620, - 2620, - 2622, - 2626, - 2631, - 2632, - 2635, - 2637, - 2641, - 2641, - 2649, - 2652, - 2654, - 2654, - 2662, - 2677, - 2689, - 2691, - 2693, - 2701, - 2703, - 2705, - 2707, - 2728, - 2730, - 2736, - 2738, - 2739, - 2741, - 2745, - 2748, - 2757, - 2759, - 2761, - 2763, - 2765, - 2768, - 2768, - 2784, - 2787, - 2790, - 2799, - 2817, - 2819, - 2821, - 2828, - 2831, - 2832, - 2835, - 2856, - 2858, - 2864, - 2866, - 2867, - 2869, - 2873, - 2876, - 2884, - 2887, - 2888, - 2891, - 2893, - 2902, - 2903, - 2908, - 2909, - 2911, - 2915, - 2918, - 2927, - 2929, - 2929, - 2946, - 2947, - 2949, - 2954, - 2958, - 2960, - 2962, - 2965, - 2969, - 2970, - 2972, - 2972, - 2974, - 2975, - 2979, - 2980, - 2984, - 2986, - 2990, - 3001, - 3006, - 3010, - 3014, - 3016, - 3018, - 3021, - 3024, - 3024, - 3031, - 3031, - 3046, - 3055, - 3073, - 3075, - 3077, - 3084, - 3086, - 3088, - 3090, - 3112, - 3114, - 3123, - 3125, - 3129, - 3133, - 3140, - 3142, - 3144, - 3146, - 3149, - 3157, - 3158, - 3160, - 3161, - 3168, - 3171, - 3174, - 3183, - 3202, - 3203, - 3205, - 3212, - 3214, - 3216, - 3218, - 3240, - 3242, - 3251, - 3253, - 3257, - 3260, - 3268, - 3270, - 3272, - 3274, - 3277, - 3285, - 3286, - 3294, - 3294, - 3296, - 3299, - 3302, - 3311, - 3313, - 3314, - 3330, - 3331, - 3333, - 3340, - 3342, - 3344, - 3346, - 3386, - 3389, - 3396, - 3398, - 3400, - 3402, - 3406, - 3415, - 3415, - 3424, - 3427, - 3430, - 3439, - 3450, - 3455, - 3458, - 3459, - 3461, - 3478, - 3482, - 3505, - 3507, - 3515, - 3517, - 3517, - 3520, - 3526, - 3530, - 3530, - 3535, - 3540, - 3542, - 3542, - 3544, - 3551, - 3570, - 3571, - 3585, - 3642, - 3648, - 3662, - 3664, - 3673, - 3713, - 3714, - 3716, - 3716, - 3719, - 3720, - 3722, - 3722, - 3725, - 3725, - 3732, - 3735, - 3737, - 3743, - 3745, - 3747, - 3749, - 3749, - 3751, - 3751, - 3754, - 3755, - 3757, - 3769, - 3771, - 3773, - 3776, - 3780, - 3782, - 3782, - 3784, - 3789, - 3792, - 3801, - 3804, - 3807, - 3840, - 3840, - 3864, - 3865, - 3872, - 3881, - 3893, - 3893, - 3895, - 3895, - 3897, - 3897, - 3902, - 3911, - 3913, - 3948, - 3953, - 3972, - 3974, - 3991, - 3993, - 4028, - 4038, - 4038, - 4096, - 4169, - 4176, - 4253, - 4256, - 4293, - 4295, - 4295, - 4301, - 4301, - 4304, - 4346, - 4348, - 4680, - 4682, - 4685, - 4688, - 4694, - 4696, - 4696, - 4698, - 4701, - 4704, - 4744, - 4746, - 4749, - 4752, - 4784, - 4786, - 4789, - 4792, - 4798, - 4800, - 4800, - 4802, - 4805, - 4808, - 4822, - 4824, - 4880, - 4882, - 4885, - 4888, - 4954, - 4957, - 4959, - 4992, - 5007, - 5024, - 5108, - 5121, - 5740, - 5743, - 5759, - 5761, - 5786, - 5792, - 5866, - 5870, - 5872, - 5888, - 5900, - 5902, - 5908, - 5920, - 5940, - 5952, - 5971, - 5984, - 5996, - 5998, - 6000, - 6002, - 6003, - 6016, - 6099, - 6103, - 6103, - 6108, - 6109, - 6112, - 6121, - 6155, - 6157, - 6160, - 6169, - 6176, - 6263, - 6272, - 6314, - 6320, - 6389, - 6400, - 6428, - 6432, - 6443, - 6448, - 6459, - 6470, - 6509, - 6512, - 6516, - 6528, - 6571, - 6576, - 6601, - 6608, - 6617, - 6656, - 6683, - 6688, - 6750, - 6752, - 6780, - 6783, - 6793, - 6800, - 6809, - 6823, - 6823, - 6912, - 6987, - 6992, - 7001, - 7019, - 7027, - 7040, - 7155, - 7168, - 7223, - 7232, - 7241, - 7245, - 7293, - 7376, - 7378, - 7380, - 7414, - 7424, - 7654, - 7676, - 7957, - 7960, - 7965, - 7968, - 8005, - 8008, - 8013, - 8016, - 8023, - 8025, - 8025, - 8027, - 8027, - 8029, - 8029, - 8031, - 8061, - 8064, - 8116, - 8118, - 8124, - 8126, - 8126, - 8130, - 8132, - 8134, - 8140, - 8144, - 8147, - 8150, - 8155, - 8160, - 8172, - 8178, - 8180, - 8182, - 8188, - 8204, - 8205, - 8255, - 8256, - 8276, - 8276, - 8305, - 8305, - 8319, - 8319, - 8336, - 8348, - 8400, - 8412, - 8417, - 8417, - 8421, - 8432, - 8450, - 8450, - 8455, - 8455, - 8458, - 8467, - 8469, - 8469, - 8473, - 8477, - 8484, - 8484, - 8486, - 8486, - 8488, - 8488, - 8490, - 8493, - 8495, - 8505, - 8508, - 8511, - 8517, - 8521, - 8526, - 8526, - 8544, - 8584, - 11264, - 11310, - 11312, - 11358, - 11360, - 11492, - 11499, - 11507, - 11520, - 11557, - 11559, - 11559, - 11565, - 11565, - 11568, - 11623, - 11631, - 11631, - 11647, - 11670, - 11680, - 11686, - 11688, - 11694, - 11696, - 11702, - 11704, - 11710, - 11712, - 11718, - 11720, - 11726, - 11728, - 11734, - 11736, - 11742, - 11744, - 11775, - 11823, - 11823, - 12293, - 12295, - 12321, - 12335, - 12337, - 12341, - 12344, - 12348, - 12353, - 12438, - 12441, - 12442, - 12445, - 12447, - 12449, - 12538, - 12540, - 12543, - 12549, - 12589, - 12593, - 12686, - 12704, - 12730, - 12784, - 12799, - 13312, - 19893, - 19968, - 40908, - 40960, - 42124, - 42192, - 42237, - 42240, - 42508, - 42512, - 42539, - 42560, - 42607, - 42612, - 42621, - 42623, - 42647, - 42655, - 42737, - 42775, - 42783, - 42786, - 42888, - 42891, - 42894, - 42896, - 42899, - 42912, - 42922, - 43000, - 43047, - 43072, - 43123, - 43136, - 43204, - 43216, - 43225, - 43232, - 43255, - 43259, - 43259, - 43264, - 43309, - 43312, - 43347, - 43360, - 43388, - 43392, - 43456, - 43471, - 43481, - 43520, - 43574, - 43584, - 43597, - 43600, - 43609, - 43616, - 43638, - 43642, - 43643, - 43648, - 43714, - 43739, - 43741, - 43744, - 43759, - 43762, - 43766, - 43777, - 43782, - 43785, - 43790, - 43793, - 43798, - 43808, - 43814, - 43816, - 43822, - 43968, - 44010, - 44012, - 44013, - 44016, - 44025, - 44032, - 55203, - 55216, - 55238, - 55243, - 55291, - 63744, - 64109, - 64112, - 64217, - 64256, - 64262, - 64275, - 64279, - 64285, - 64296, - 64298, - 64310, - 64312, - 64316, - 64318, - 64318, - 64320, - 64321, - 64323, - 64324, - 64326, - 64433, - 64467, - 64829, - 64848, - 64911, - 64914, - 64967, - 65008, - 65019, - 65024, - 65039, - 65056, - 65062, - 65075, - 65076, - 65101, - 65103, - 65136, - 65140, - 65142, - 65276, - 65296, - 65305, - 65313, - 65338, - 65343, - 65343, - 65345, - 65370, - 65382, - 65470, - 65474, - 65479, - 65482, - 65487, - 65490, - 65495, - 65498, - 65500, - ]; + var unicodeES3IdentifierStart = [170, 170, 181, 181, 186, 186, 192, 214, 216, 246, 248, 543, 546, 563, 592, 685, 688, 696, 699, 705, 720, 721, 736, 740, 750, 750, 890, 890, 902, 902, 904, 906, 908, 908, 910, 929, 931, 974, 976, 983, 986, 1011, 1024, 1153, 1164, 1220, 1223, 1224, 1227, 1228, 1232, 1269, 1272, 1273, 1329, 1366, 1369, 1369, 1377, 1415, 1488, 1514, 1520, 1522, 1569, 1594, 1600, 1610, 1649, 1747, 1749, 1749, 1765, 1766, 1786, 1788, 1808, 1808, 1810, 1836, 1920, 1957, 2309, 2361, 2365, 2365, 2384, 2384, 2392, 2401, 2437, 2444, 2447, 2448, 2451, 2472, 2474, 2480, 2482, 2482, 2486, 2489, 2524, 2525, 2527, 2529, 2544, 2545, 2565, 2570, 2575, 2576, 2579, 2600, 2602, 2608, 2610, 2611, 2613, 2614, 2616, 2617, 2649, 2652, 2654, 2654, 2674, 2676, 2693, 2699, 2701, 2701, 2703, 2705, 2707, 2728, 2730, 2736, 2738, 2739, 2741, 2745, 2749, 2749, 2768, 2768, 2784, 2784, 2821, 2828, 2831, 2832, 2835, 2856, 2858, 2864, 2866, 2867, 2870, 2873, 2877, 2877, 2908, 2909, 2911, 2913, 2949, 2954, 2958, 2960, 2962, 2965, 2969, 2970, 2972, 2972, 2974, 2975, 2979, 2980, 2984, 2986, 2990, 2997, 2999, 3001, 3077, 3084, 3086, 3088, 3090, 3112, 3114, 3123, 3125, 3129, 3168, 3169, 3205, 3212, 3214, 3216, 3218, 3240, 3242, 3251, 3253, 3257, 3294, 3294, 3296, 3297, 3333, 3340, 3342, 3344, 3346, 3368, 3370, 3385, 3424, 3425, 3461, 3478, 3482, 3505, 3507, 3515, 3517, 3517, 3520, 3526, 3585, 3632, 3634, 3635, 3648, 3654, 3713, 3714, 3716, 3716, 3719, 3720, 3722, 3722, 3725, 3725, 3732, 3735, 3737, 3743, 3745, 3747, 3749, 3749, 3751, 3751, 3754, 3755, 3757, 3760, 3762, 3763, 3773, 3773, 3776, 3780, 3782, 3782, 3804, 3805, 3840, 3840, 3904, 3911, 3913, 3946, 3976, 3979, 4096, 4129, 4131, 4135, 4137, 4138, 4176, 4181, 4256, 4293, 4304, 4342, 4352, 4441, 4447, 4514, 4520, 4601, 4608, 4614, 4616, 4678, 4680, 4680, 4682, 4685, 4688, 4694, 4696, 4696, 4698, 4701, 4704, 4742, 4744, 4744, 4746, 4749, 4752, 4782, 4784, 4784, 4786, 4789, 4792, 4798, 4800, 4800, 4802, 4805, 4808, 4814, 4816, 4822, 4824, 4846, 4848, 4878, 4880, 4880, 4882, 4885, 4888, 4894, 4896, 4934, 4936, 4954, 5024, 5108, 5121, 5740, 5743, 5750, 5761, 5786, 5792, 5866, 6016, 6067, 6176, 6263, 6272, 6312, 7680, 7835, 7840, 7929, 7936, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8023, 8025, 8025, 8027, 8027, 8029, 8029, 8031, 8061, 8064, 8116, 8118, 8124, 8126, 8126, 8130, 8132, 8134, 8140, 8144, 8147, 8150, 8155, 8160, 8172, 8178, 8180, 8182, 8188, 8319, 8319, 8450, 8450, 8455, 8455, 8458, 8467, 8469, 8469, 8473, 8477, 8484, 8484, 8486, 8486, 8488, 8488, 8490, 8493, 8495, 8497, 8499, 8505, 8544, 8579, 12293, 12295, 12321, 12329, 12337, 12341, 12344, 12346, 12353, 12436, 12445, 12446, 12449, 12538, 12540, 12542, 12549, 12588, 12593, 12686, 12704, 12727, 13312, 19893, 19968, 40869, 40960, 42124, 44032, 55203, 63744, 64045, 64256, 64262, 64275, 64279, 64285, 64285, 64287, 64296, 64298, 64310, 64312, 64316, 64318, 64318, 64320, 64321, 64323, 64324, 64326, 64433, 64467, 64829, 64848, 64911, 64914, 64967, 65008, 65019, 65136, 65138, 65140, 65140, 65142, 65276, 65313, 65338, 65345, 65370, 65382, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500,]; + var unicodeES3IdentifierPart = [170, 170, 181, 181, 186, 186, 192, 214, 216, 246, 248, 543, 546, 563, 592, 685, 688, 696, 699, 705, 720, 721, 736, 740, 750, 750, 768, 846, 864, 866, 890, 890, 902, 902, 904, 906, 908, 908, 910, 929, 931, 974, 976, 983, 986, 1011, 1024, 1153, 1155, 1158, 1164, 1220, 1223, 1224, 1227, 1228, 1232, 1269, 1272, 1273, 1329, 1366, 1369, 1369, 1377, 1415, 1425, 1441, 1443, 1465, 1467, 1469, 1471, 1471, 1473, 1474, 1476, 1476, 1488, 1514, 1520, 1522, 1569, 1594, 1600, 1621, 1632, 1641, 1648, 1747, 1749, 1756, 1759, 1768, 1770, 1773, 1776, 1788, 1808, 1836, 1840, 1866, 1920, 1968, 2305, 2307, 2309, 2361, 2364, 2381, 2384, 2388, 2392, 2403, 2406, 2415, 2433, 2435, 2437, 2444, 2447, 2448, 2451, 2472, 2474, 2480, 2482, 2482, 2486, 2489, 2492, 2492, 2494, 2500, 2503, 2504, 2507, 2509, 2519, 2519, 2524, 2525, 2527, 2531, 2534, 2545, 2562, 2562, 2565, 2570, 2575, 2576, 2579, 2600, 2602, 2608, 2610, 2611, 2613, 2614, 2616, 2617, 2620, 2620, 2622, 2626, 2631, 2632, 2635, 2637, 2649, 2652, 2654, 2654, 2662, 2676, 2689, 2691, 2693, 2699, 2701, 2701, 2703, 2705, 2707, 2728, 2730, 2736, 2738, 2739, 2741, 2745, 2748, 2757, 2759, 2761, 2763, 2765, 2768, 2768, 2784, 2784, 2790, 2799, 2817, 2819, 2821, 2828, 2831, 2832, 2835, 2856, 2858, 2864, 2866, 2867, 2870, 2873, 2876, 2883, 2887, 2888, 2891, 2893, 2902, 2903, 2908, 2909, 2911, 2913, 2918, 2927, 2946, 2947, 2949, 2954, 2958, 2960, 2962, 2965, 2969, 2970, 2972, 2972, 2974, 2975, 2979, 2980, 2984, 2986, 2990, 2997, 2999, 3001, 3006, 3010, 3014, 3016, 3018, 3021, 3031, 3031, 3047, 3055, 3073, 3075, 3077, 3084, 3086, 3088, 3090, 3112, 3114, 3123, 3125, 3129, 3134, 3140, 3142, 3144, 3146, 3149, 3157, 3158, 3168, 3169, 3174, 3183, 3202, 3203, 3205, 3212, 3214, 3216, 3218, 3240, 3242, 3251, 3253, 3257, 3262, 3268, 3270, 3272, 3274, 3277, 3285, 3286, 3294, 3294, 3296, 3297, 3302, 3311, 3330, 3331, 3333, 3340, 3342, 3344, 3346, 3368, 3370, 3385, 3390, 3395, 3398, 3400, 3402, 3405, 3415, 3415, 3424, 3425, 3430, 3439, 3458, 3459, 3461, 3478, 3482, 3505, 3507, 3515, 3517, 3517, 3520, 3526, 3530, 3530, 3535, 3540, 3542, 3542, 3544, 3551, 3570, 3571, 3585, 3642, 3648, 3662, 3664, 3673, 3713, 3714, 3716, 3716, 3719, 3720, 3722, 3722, 3725, 3725, 3732, 3735, 3737, 3743, 3745, 3747, 3749, 3749, 3751, 3751, 3754, 3755, 3757, 3769, 3771, 3773, 3776, 3780, 3782, 3782, 3784, 3789, 3792, 3801, 3804, 3805, 3840, 3840, 3864, 3865, 3872, 3881, 3893, 3893, 3895, 3895, 3897, 3897, 3902, 3911, 3913, 3946, 3953, 3972, 3974, 3979, 3984, 3991, 3993, 4028, 4038, 4038, 4096, 4129, 4131, 4135, 4137, 4138, 4140, 4146, 4150, 4153, 4160, 4169, 4176, 4185, 4256, 4293, 4304, 4342, 4352, 4441, 4447, 4514, 4520, 4601, 4608, 4614, 4616, 4678, 4680, 4680, 4682, 4685, 4688, 4694, 4696, 4696, 4698, 4701, 4704, 4742, 4744, 4744, 4746, 4749, 4752, 4782, 4784, 4784, 4786, 4789, 4792, 4798, 4800, 4800, 4802, 4805, 4808, 4814, 4816, 4822, 4824, 4846, 4848, 4878, 4880, 4880, 4882, 4885, 4888, 4894, 4896, 4934, 4936, 4954, 4969, 4977, 5024, 5108, 5121, 5740, 5743, 5750, 5761, 5786, 5792, 5866, 6016, 6099, 6112, 6121, 6160, 6169, 6176, 6263, 6272, 6313, 7680, 7835, 7840, 7929, 7936, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8023, 8025, 8025, 8027, 8027, 8029, 8029, 8031, 8061, 8064, 8116, 8118, 8124, 8126, 8126, 8130, 8132, 8134, 8140, 8144, 8147, 8150, 8155, 8160, 8172, 8178, 8180, 8182, 8188, 8255, 8256, 8319, 8319, 8400, 8412, 8417, 8417, 8450, 8450, 8455, 8455, 8458, 8467, 8469, 8469, 8473, 8477, 8484, 8484, 8486, 8486, 8488, 8488, 8490, 8493, 8495, 8497, 8499, 8505, 8544, 8579, 12293, 12295, 12321, 12335, 12337, 12341, 12344, 12346, 12353, 12436, 12441, 12442, 12445, 12446, 12449, 12542, 12549, 12588, 12593, 12686, 12704, 12727, 13312, 19893, 19968, 40869, 40960, 42124, 44032, 55203, 63744, 64045, 64256, 64262, 64275, 64279, 64285, 64296, 64298, 64310, 64312, 64316, 64318, 64318, 64320, 64321, 64323, 64324, 64326, 64433, 64467, 64829, 64848, 64911, 64914, 64967, 65008, 65019, 65056, 65059, 65075, 65076, 65101, 65103, 65136, 65138, 65140, 65140, 65142, 65276, 65296, 65305, 65313, 65338, 65343, 65343, 65345, 65370, 65381, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500,]; + var unicodeES5IdentifierStart = [170, 170, 181, 181, 186, 186, 192, 214, 216, 246, 248, 705, 710, 721, 736, 740, 748, 748, 750, 750, 880, 884, 886, 887, 890, 893, 902, 902, 904, 906, 908, 908, 910, 929, 931, 1013, 1015, 1153, 1162, 1319, 1329, 1366, 1369, 1369, 1377, 1415, 1488, 1514, 1520, 1522, 1568, 1610, 1646, 1647, 1649, 1747, 1749, 1749, 1765, 1766, 1774, 1775, 1786, 1788, 1791, 1791, 1808, 1808, 1810, 1839, 1869, 1957, 1969, 1969, 1994, 2026, 2036, 2037, 2042, 2042, 2048, 2069, 2074, 2074, 2084, 2084, 2088, 2088, 2112, 2136, 2208, 2208, 2210, 2220, 2308, 2361, 2365, 2365, 2384, 2384, 2392, 2401, 2417, 2423, 2425, 2431, 2437, 2444, 2447, 2448, 2451, 2472, 2474, 2480, 2482, 2482, 2486, 2489, 2493, 2493, 2510, 2510, 2524, 2525, 2527, 2529, 2544, 2545, 2565, 2570, 2575, 2576, 2579, 2600, 2602, 2608, 2610, 2611, 2613, 2614, 2616, 2617, 2649, 2652, 2654, 2654, 2674, 2676, 2693, 2701, 2703, 2705, 2707, 2728, 2730, 2736, 2738, 2739, 2741, 2745, 2749, 2749, 2768, 2768, 2784, 2785, 2821, 2828, 2831, 2832, 2835, 2856, 2858, 2864, 2866, 2867, 2869, 2873, 2877, 2877, 2908, 2909, 2911, 2913, 2929, 2929, 2947, 2947, 2949, 2954, 2958, 2960, 2962, 2965, 2969, 2970, 2972, 2972, 2974, 2975, 2979, 2980, 2984, 2986, 2990, 3001, 3024, 3024, 3077, 3084, 3086, 3088, 3090, 3112, 3114, 3123, 3125, 3129, 3133, 3133, 3160, 3161, 3168, 3169, 3205, 3212, 3214, 3216, 3218, 3240, 3242, 3251, 3253, 3257, 3261, 3261, 3294, 3294, 3296, 3297, 3313, 3314, 3333, 3340, 3342, 3344, 3346, 3386, 3389, 3389, 3406, 3406, 3424, 3425, 3450, 3455, 3461, 3478, 3482, 3505, 3507, 3515, 3517, 3517, 3520, 3526, 3585, 3632, 3634, 3635, 3648, 3654, 3713, 3714, 3716, 3716, 3719, 3720, 3722, 3722, 3725, 3725, 3732, 3735, 3737, 3743, 3745, 3747, 3749, 3749, 3751, 3751, 3754, 3755, 3757, 3760, 3762, 3763, 3773, 3773, 3776, 3780, 3782, 3782, 3804, 3807, 3840, 3840, 3904, 3911, 3913, 3948, 3976, 3980, 4096, 4138, 4159, 4159, 4176, 4181, 4186, 4189, 4193, 4193, 4197, 4198, 4206, 4208, 4213, 4225, 4238, 4238, 4256, 4293, 4295, 4295, 4301, 4301, 4304, 4346, 4348, 4680, 4682, 4685, 4688, 4694, 4696, 4696, 4698, 4701, 4704, 4744, 4746, 4749, 4752, 4784, 4786, 4789, 4792, 4798, 4800, 4800, 4802, 4805, 4808, 4822, 4824, 4880, 4882, 4885, 4888, 4954, 4992, 5007, 5024, 5108, 5121, 5740, 5743, 5759, 5761, 5786, 5792, 5866, 5870, 5872, 5888, 5900, 5902, 5905, 5920, 5937, 5952, 5969, 5984, 5996, 5998, 6000, 6016, 6067, 6103, 6103, 6108, 6108, 6176, 6263, 6272, 6312, 6314, 6314, 6320, 6389, 6400, 6428, 6480, 6509, 6512, 6516, 6528, 6571, 6593, 6599, 6656, 6678, 6688, 6740, 6823, 6823, 6917, 6963, 6981, 6987, 7043, 7072, 7086, 7087, 7098, 7141, 7168, 7203, 7245, 7247, 7258, 7293, 7401, 7404, 7406, 7409, 7413, 7414, 7424, 7615, 7680, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8023, 8025, 8025, 8027, 8027, 8029, 8029, 8031, 8061, 8064, 8116, 8118, 8124, 8126, 8126, 8130, 8132, 8134, 8140, 8144, 8147, 8150, 8155, 8160, 8172, 8178, 8180, 8182, 8188, 8305, 8305, 8319, 8319, 8336, 8348, 8450, 8450, 8455, 8455, 8458, 8467, 8469, 8469, 8473, 8477, 8484, 8484, 8486, 8486, 8488, 8488, 8490, 8493, 8495, 8505, 8508, 8511, 8517, 8521, 8526, 8526, 8544, 8584, 11264, 11310, 11312, 11358, 11360, 11492, 11499, 11502, 11506, 11507, 11520, 11557, 11559, 11559, 11565, 11565, 11568, 11623, 11631, 11631, 11648, 11670, 11680, 11686, 11688, 11694, 11696, 11702, 11704, 11710, 11712, 11718, 11720, 11726, 11728, 11734, 11736, 11742, 11823, 11823, 12293, 12295, 12321, 12329, 12337, 12341, 12344, 12348, 12353, 12438, 12445, 12447, 12449, 12538, 12540, 12543, 12549, 12589, 12593, 12686, 12704, 12730, 12784, 12799, 13312, 19893, 19968, 40908, 40960, 42124, 42192, 42237, 42240, 42508, 42512, 42527, 42538, 42539, 42560, 42606, 42623, 42647, 42656, 42735, 42775, 42783, 42786, 42888, 42891, 42894, 42896, 42899, 42912, 42922, 43000, 43009, 43011, 43013, 43015, 43018, 43020, 43042, 43072, 43123, 43138, 43187, 43250, 43255, 43259, 43259, 43274, 43301, 43312, 43334, 43360, 43388, 43396, 43442, 43471, 43471, 43520, 43560, 43584, 43586, 43588, 43595, 43616, 43638, 43642, 43642, 43648, 43695, 43697, 43697, 43701, 43702, 43705, 43709, 43712, 43712, 43714, 43714, 43739, 43741, 43744, 43754, 43762, 43764, 43777, 43782, 43785, 43790, 43793, 43798, 43808, 43814, 43816, 43822, 43968, 44002, 44032, 55203, 55216, 55238, 55243, 55291, 63744, 64109, 64112, 64217, 64256, 64262, 64275, 64279, 64285, 64285, 64287, 64296, 64298, 64310, 64312, 64316, 64318, 64318, 64320, 64321, 64323, 64324, 64326, 64433, 64467, 64829, 64848, 64911, 64914, 64967, 65008, 65019, 65136, 65140, 65142, 65276, 65313, 65338, 65345, 65370, 65382, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500,]; + var unicodeES5IdentifierPart = [170, 170, 181, 181, 186, 186, 192, 214, 216, 246, 248, 705, 710, 721, 736, 740, 748, 748, 750, 750, 768, 884, 886, 887, 890, 893, 902, 902, 904, 906, 908, 908, 910, 929, 931, 1013, 1015, 1153, 1155, 1159, 1162, 1319, 1329, 1366, 1369, 1369, 1377, 1415, 1425, 1469, 1471, 1471, 1473, 1474, 1476, 1477, 1479, 1479, 1488, 1514, 1520, 1522, 1552, 1562, 1568, 1641, 1646, 1747, 1749, 1756, 1759, 1768, 1770, 1788, 1791, 1791, 1808, 1866, 1869, 1969, 1984, 2037, 2042, 2042, 2048, 2093, 2112, 2139, 2208, 2208, 2210, 2220, 2276, 2302, 2304, 2403, 2406, 2415, 2417, 2423, 2425, 2431, 2433, 2435, 2437, 2444, 2447, 2448, 2451, 2472, 2474, 2480, 2482, 2482, 2486, 2489, 2492, 2500, 2503, 2504, 2507, 2510, 2519, 2519, 2524, 2525, 2527, 2531, 2534, 2545, 2561, 2563, 2565, 2570, 2575, 2576, 2579, 2600, 2602, 2608, 2610, 2611, 2613, 2614, 2616, 2617, 2620, 2620, 2622, 2626, 2631, 2632, 2635, 2637, 2641, 2641, 2649, 2652, 2654, 2654, 2662, 2677, 2689, 2691, 2693, 2701, 2703, 2705, 2707, 2728, 2730, 2736, 2738, 2739, 2741, 2745, 2748, 2757, 2759, 2761, 2763, 2765, 2768, 2768, 2784, 2787, 2790, 2799, 2817, 2819, 2821, 2828, 2831, 2832, 2835, 2856, 2858, 2864, 2866, 2867, 2869, 2873, 2876, 2884, 2887, 2888, 2891, 2893, 2902, 2903, 2908, 2909, 2911, 2915, 2918, 2927, 2929, 2929, 2946, 2947, 2949, 2954, 2958, 2960, 2962, 2965, 2969, 2970, 2972, 2972, 2974, 2975, 2979, 2980, 2984, 2986, 2990, 3001, 3006, 3010, 3014, 3016, 3018, 3021, 3024, 3024, 3031, 3031, 3046, 3055, 3073, 3075, 3077, 3084, 3086, 3088, 3090, 3112, 3114, 3123, 3125, 3129, 3133, 3140, 3142, 3144, 3146, 3149, 3157, 3158, 3160, 3161, 3168, 3171, 3174, 3183, 3202, 3203, 3205, 3212, 3214, 3216, 3218, 3240, 3242, 3251, 3253, 3257, 3260, 3268, 3270, 3272, 3274, 3277, 3285, 3286, 3294, 3294, 3296, 3299, 3302, 3311, 3313, 3314, 3330, 3331, 3333, 3340, 3342, 3344, 3346, 3386, 3389, 3396, 3398, 3400, 3402, 3406, 3415, 3415, 3424, 3427, 3430, 3439, 3450, 3455, 3458, 3459, 3461, 3478, 3482, 3505, 3507, 3515, 3517, 3517, 3520, 3526, 3530, 3530, 3535, 3540, 3542, 3542, 3544, 3551, 3570, 3571, 3585, 3642, 3648, 3662, 3664, 3673, 3713, 3714, 3716, 3716, 3719, 3720, 3722, 3722, 3725, 3725, 3732, 3735, 3737, 3743, 3745, 3747, 3749, 3749, 3751, 3751, 3754, 3755, 3757, 3769, 3771, 3773, 3776, 3780, 3782, 3782, 3784, 3789, 3792, 3801, 3804, 3807, 3840, 3840, 3864, 3865, 3872, 3881, 3893, 3893, 3895, 3895, 3897, 3897, 3902, 3911, 3913, 3948, 3953, 3972, 3974, 3991, 3993, 4028, 4038, 4038, 4096, 4169, 4176, 4253, 4256, 4293, 4295, 4295, 4301, 4301, 4304, 4346, 4348, 4680, 4682, 4685, 4688, 4694, 4696, 4696, 4698, 4701, 4704, 4744, 4746, 4749, 4752, 4784, 4786, 4789, 4792, 4798, 4800, 4800, 4802, 4805, 4808, 4822, 4824, 4880, 4882, 4885, 4888, 4954, 4957, 4959, 4992, 5007, 5024, 5108, 5121, 5740, 5743, 5759, 5761, 5786, 5792, 5866, 5870, 5872, 5888, 5900, 5902, 5908, 5920, 5940, 5952, 5971, 5984, 5996, 5998, 6000, 6002, 6003, 6016, 6099, 6103, 6103, 6108, 6109, 6112, 6121, 6155, 6157, 6160, 6169, 6176, 6263, 6272, 6314, 6320, 6389, 6400, 6428, 6432, 6443, 6448, 6459, 6470, 6509, 6512, 6516, 6528, 6571, 6576, 6601, 6608, 6617, 6656, 6683, 6688, 6750, 6752, 6780, 6783, 6793, 6800, 6809, 6823, 6823, 6912, 6987, 6992, 7001, 7019, 7027, 7040, 7155, 7168, 7223, 7232, 7241, 7245, 7293, 7376, 7378, 7380, 7414, 7424, 7654, 7676, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8023, 8025, 8025, 8027, 8027, 8029, 8029, 8031, 8061, 8064, 8116, 8118, 8124, 8126, 8126, 8130, 8132, 8134, 8140, 8144, 8147, 8150, 8155, 8160, 8172, 8178, 8180, 8182, 8188, 8204, 8205, 8255, 8256, 8276, 8276, 8305, 8305, 8319, 8319, 8336, 8348, 8400, 8412, 8417, 8417, 8421, 8432, 8450, 8450, 8455, 8455, 8458, 8467, 8469, 8469, 8473, 8477, 8484, 8484, 8486, 8486, 8488, 8488, 8490, 8493, 8495, 8505, 8508, 8511, 8517, 8521, 8526, 8526, 8544, 8584, 11264, 11310, 11312, 11358, 11360, 11492, 11499, 11507, 11520, 11557, 11559, 11559, 11565, 11565, 11568, 11623, 11631, 11631, 11647, 11670, 11680, 11686, 11688, 11694, 11696, 11702, 11704, 11710, 11712, 11718, 11720, 11726, 11728, 11734, 11736, 11742, 11744, 11775, 11823, 11823, 12293, 12295, 12321, 12335, 12337, 12341, 12344, 12348, 12353, 12438, 12441, 12442, 12445, 12447, 12449, 12538, 12540, 12543, 12549, 12589, 12593, 12686, 12704, 12730, 12784, 12799, 13312, 19893, 19968, 40908, 40960, 42124, 42192, 42237, 42240, 42508, 42512, 42539, 42560, 42607, 42612, 42621, 42623, 42647, 42655, 42737, 42775, 42783, 42786, 42888, 42891, 42894, 42896, 42899, 42912, 42922, 43000, 43047, 43072, 43123, 43136, 43204, 43216, 43225, 43232, 43255, 43259, 43259, 43264, 43309, 43312, 43347, 43360, 43388, 43392, 43456, 43471, 43481, 43520, 43574, 43584, 43597, 43600, 43609, 43616, 43638, 43642, 43643, 43648, 43714, 43739, 43741, 43744, 43759, 43762, 43766, 43777, 43782, 43785, 43790, 43793, 43798, 43808, 43814, 43816, 43822, 43968, 44010, 44012, 44013, 44016, 44025, 44032, 55203, 55216, 55238, 55243, 55291, 63744, 64109, 64112, 64217, 64256, 64262, 64275, 64279, 64285, 64296, 64298, 64310, 64312, 64316, 64318, 64318, 64320, 64321, 64323, 64324, 64326, 64433, 64467, 64829, 64848, 64911, 64914, 64967, 65008, 65019, 65024, 65039, 65056, 65062, 65075, 65076, 65101, 65103, 65136, 65140, 65142, 65276, 65296, 65305, 65313, 65338, 65343, 65343, 65345, 65370, 65382, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500,]; function lookupInUnicodeMap(code, map) { if (code < map[0]) { return false; @@ -6248,17 +1506,21 @@ var ts; return false; } function isUnicodeIdentifierStart(code, languageVersion) { - return languageVersion >= 1 ? lookupInUnicodeMap(code, unicodeES5IdentifierStart) : lookupInUnicodeMap(code, unicodeES3IdentifierStart); + return languageVersion >= 1 ? + lookupInUnicodeMap(code, unicodeES5IdentifierStart) : + lookupInUnicodeMap(code, unicodeES3IdentifierStart); } ts.isUnicodeIdentifierStart = isUnicodeIdentifierStart; function isUnicodeIdentifierPart(code, languageVersion) { - return languageVersion >= 1 ? lookupInUnicodeMap(code, unicodeES5IdentifierPart) : lookupInUnicodeMap(code, unicodeES3IdentifierPart); + return languageVersion >= 1 ? + lookupInUnicodeMap(code, unicodeES5IdentifierPart) : + lookupInUnicodeMap(code, unicodeES3IdentifierPart); } function makeReverseMap(source) { var result = []; - for (var name in source) { - if (source.hasOwnProperty(name)) { - result[source[name]] = name; + for (var _name in source) { + if (source.hasOwnProperty(_name)) { + result[source[_name]] = _name; } } return result; @@ -6325,7 +1587,9 @@ var ts; ts.getLineAndCharacterOfPosition = getLineAndCharacterOfPosition; var hasOwnProperty = Object.prototype.hasOwnProperty; function isWhiteSpace(ch) { - return ch === 32 || ch === 9 || ch === 11 || ch === 12 || ch === 160 || ch === 5760 || ch >= 8192 && ch <= 8203 || ch === 8239 || ch === 8287 || ch === 12288 || ch === 65279; + return ch === 32 || ch === 9 || ch === 11 || ch === 12 || + ch === 160 || ch === 5760 || ch >= 8192 && ch <= 8203 || + ch === 8239 || ch === 8287 || ch === 12288 || ch === 65279; } ts.isWhiteSpace = isWhiteSpace; function isLineBreak(ch) { @@ -6412,7 +1676,8 @@ var ts; return false; } } - return ch === 61 || text.charCodeAt(pos + mergeConflictMarkerLength) === 32; + return ch === 61 || + text.charCodeAt(pos + mergeConflictMarkerLength) === 32; } } return false; @@ -6431,8 +1696,8 @@ var ts; else { ts.Debug.assert(ch === 61); while (pos < len) { - var ch = text.charCodeAt(pos); - if (ch === 62 && isConflictMarkerTrivia(text, pos)) { + var _ch = text.charCodeAt(pos); + if (_ch === 62 && isConflictMarkerTrivia(text, pos)) { break; } pos++; @@ -6492,11 +1757,7 @@ var ts; if (collecting) { if (!result) result = []; - result.push({ - pos: startPos, - end: pos, - hasTrailingNewLine: hasTrailingNewLine - }); + result.push({ pos: startPos, end: pos, hasTrailingNewLine: hasTrailingNewLine }); } continue; } @@ -6523,11 +1784,15 @@ var ts; } ts.getTrailingCommentRanges = getTrailingCommentRanges; function isIdentifierStart(ch, languageVersion) { - return ch >= 65 && ch <= 90 || ch >= 97 && ch <= 122 || ch === 36 || ch === 95 || ch > 127 && isUnicodeIdentifierStart(ch, languageVersion); + return ch >= 65 && ch <= 90 || ch >= 97 && ch <= 122 || + ch === 36 || ch === 95 || + ch > 127 && isUnicodeIdentifierStart(ch, languageVersion); } ts.isIdentifierStart = isIdentifierStart; function isIdentifierPart(ch, languageVersion) { - return ch >= 65 && ch <= 90 || ch >= 97 && ch <= 122 || ch >= 48 && ch <= 57 || ch === 36 || ch === 95 || ch > 127 && isUnicodeIdentifierPart(ch, languageVersion); + return ch >= 65 && ch <= 90 || ch >= 97 && ch <= 122 || + ch >= 48 && ch <= 57 || ch === 36 || ch === 95 || + ch > 127 && isUnicodeIdentifierPart(ch, languageVersion); } ts.isIdentifierPart = isIdentifierPart; function createScanner(languageVersion, skipTrivia, text, onError) { @@ -6546,10 +1811,14 @@ var ts; } } function isIdentifierStart(ch) { - return ch >= 65 && ch <= 90 || ch >= 97 && ch <= 122 || ch === 36 || ch === 95 || ch > 127 && isUnicodeIdentifierStart(ch, languageVersion); + return ch >= 65 && ch <= 90 || ch >= 97 && ch <= 122 || + ch === 36 || ch === 95 || + ch > 127 && isUnicodeIdentifierStart(ch, languageVersion); } function isIdentifierPart(ch) { - return ch >= 65 && ch <= 90 || ch >= 97 && ch <= 122 || ch >= 48 && ch <= 57 || ch === 36 || ch === 95 || ch > 127 && isUnicodeIdentifierPart(ch, languageVersion); + return ch >= 65 && ch <= 90 || ch >= 97 && ch <= 122 || + ch >= 48 && ch <= 57 || ch === 36 || ch === 95 || + ch > 127 && isUnicodeIdentifierPart(ch, languageVersion); } function scanNumber() { var start = pos; @@ -6826,8 +2095,8 @@ var ts; return result; } function getIdentifierToken() { - var len = tokenValue.length; - if (len >= 2 && len <= 11) { + var _len = tokenValue.length; + if (_len >= 2 && _len <= 11) { var ch = tokenValue.charCodeAt(0); if (ch >= 97 && ch <= 122 && hasOwnProperty.call(textToToken, tokenValue)) { return token = textToToken[tokenValue]; @@ -6979,13 +2248,13 @@ var ts; pos += 2; var commentClosed = false; while (pos < len) { - var ch = text.charCodeAt(pos); - if (ch === 42 && text.charCodeAt(pos + 1) === 47) { + var _ch = text.charCodeAt(pos); + if (_ch === 42 && text.charCodeAt(pos + 1) === 47) { pos += 2; commentClosed = true; break; } - if (isLineBreak(ch)) { + if (isLineBreak(_ch)) { precedingLineBreak = true; } pos++; @@ -7018,22 +2287,22 @@ var ts; } else if (pos + 2 < len && (text.charCodeAt(pos + 1) === 66 || text.charCodeAt(pos + 1) === 98)) { pos += 2; - var value = scanBinaryOrOctalDigits(2); - if (value < 0) { + var _value = scanBinaryOrOctalDigits(2); + if (_value < 0) { error(ts.Diagnostics.Binary_digit_expected); - value = 0; + _value = 0; } - tokenValue = "" + value; + tokenValue = "" + _value; return token = 7; } else if (pos + 2 < len && (text.charCodeAt(pos + 1) === 79 || text.charCodeAt(pos + 1) === 111)) { pos += 2; - var value = scanBinaryOrOctalDigits(8); - if (value < 0) { + var _value_1 = scanBinaryOrOctalDigits(8); + if (_value_1 < 0) { error(ts.Diagnostics.Octal_digit_expected); - value = 0; + _value_1 = 0; } - tokenValue = "" + value; + tokenValue = "" + _value_1; return token = 7; } if (pos + 1 < len && isOctalDigit(text.charCodeAt(pos + 1))) { @@ -7132,10 +2401,10 @@ var ts; case 126: return pos++, token = 47; case 92: - var ch = peekUnicodeEscape(); - if (ch >= 0 && isIdentifierStart(ch)) { + var cookedChar = peekUnicodeEscape(); + if (cookedChar >= 0 && isIdentifierStart(cookedChar)) { pos += 6; - tokenValue = String.fromCharCode(ch) + scanIdentifierParts(); + tokenValue = String.fromCharCode(cookedChar) + scanIdentifierParts(); return token = getIdentifierToken(); } error(ts.Diagnostics.Invalid_character); @@ -7272,39 +2541,17 @@ var ts; } setText(text); return { - getStartPos: function () { - return startPos; - }, - getTextPos: function () { - return pos; - }, - getToken: function () { - return token; - }, - getTokenPos: function () { - return tokenPos; - }, - getTokenText: function () { - return text.substring(tokenPos, pos); - }, - getTokenValue: function () { - return tokenValue; - }, - hasExtendedUnicodeEscape: function () { - return hasExtendedUnicodeEscape; - }, - hasPrecedingLineBreak: function () { - return precedingLineBreak; - }, - isIdentifier: function () { - return token === 64 || token > 100; - }, - isReservedWord: function () { - return token >= 65 && token <= 100; - }, - isUnterminated: function () { - return tokenIsUnterminated; - }, + getStartPos: function () { return startPos; }, + getTextPos: function () { return pos; }, + getToken: function () { return token; }, + getTokenPos: function () { return tokenPos; }, + getTokenText: function () { return text.substring(tokenPos, pos); }, + getTokenValue: function () { return tokenValue; }, + hasExtendedUnicodeEscape: function () { return hasExtendedUnicodeEscape; }, + hasPrecedingLineBreak: function () { return precedingLineBreak; }, + isIdentifier: function () { return token === 64 || token > 100; }, + isReservedWord: function () { return token >= 65 && token <= 100; }, + isUnterminated: function () { return tokenIsUnterminated; }, reScanGreaterToken: reScanGreaterToken, reScanSlashToken: reScanSlashToken, reScanTemplateToken: reScanTemplateToken, @@ -7461,14 +2708,16 @@ var ts; description: ts.Diagnostics.Preserve_new_lines_when_emitting_code, experimental: true }, + { + name: "cacheDownlevelForOfLength", + type: "boolean", + description: "Cache length access when downlevel emitting for-of statements", + experimental: true + }, { name: "target", shortName: "t", - type: { - "es3": 0, - "es5": 1, - "es6": 2 - }, + type: { "es3": 0, "es5": 1, "es6": 2 }, description: ts.Diagnostics.Specify_ECMAScript_target_version_Colon_ES3_default_ES5_or_ES6_experimental, paramType: ts.Diagnostics.VERSION, error: ts.Diagnostics.Argument_for_target_option_must_be_es3_es5_or_es6 @@ -7648,9 +2897,7 @@ var ts; var files = []; if (ts.hasProperty(json, "files")) { if (json["files"] instanceof Array) { - var files = ts.map(json["files"], function (s) { - return ts.combinePaths(basePath, s); - }); + var files = ts.map(json["files"], function (s) { return ts.combinePaths(basePath, s); }); } } else { @@ -7671,8 +2918,8 @@ var ts; (function (ts) { function getDeclarationOfKind(symbol, kind) { var declarations = symbol.declarations; - for (var i = 0; i < declarations.length; i++) { - var declaration = declarations[i]; + for (var _i = 0, _n = declarations.length; _i < _n; _i++) { + var declaration = declarations[_i]; if (declaration.kind === kind) { return declaration; } @@ -7684,13 +2931,9 @@ var ts; function getSingleLineStringWriter() { if (stringWriters.length == 0) { var str = ""; - var writeText = function (text) { - return str += text; - }; + var writeText = function (text) { return str += text; }; return { - string: function () { - return str; - }, + string: function () { return str; }, writeKeyword: writeText, writeOperator: writeText, writePunctuation: writeText, @@ -7698,18 +2941,11 @@ var ts; writeStringLiteral: writeText, writeParameter: writeText, writeSymbol: writeText, - writeLine: function () { - return str += " "; - }, - increaseIndent: function () { - }, - decreaseIndent: function () { - }, - clear: function () { - return str = ""; - }, - trackSymbol: function () { - } + writeLine: function () { return str += " "; }, + increaseIndent: function () { }, + decreaseIndent: function () { }, + clear: function () { return str = ""; }, + trackSymbol: function () { } }; } return stringWriters.pop(); @@ -7731,7 +2967,8 @@ var ts; ts.containsParseError = containsParseError; function aggregateChildData(node) { if (!(node.parserContextFlags & 64)) { - var thisNodeOrAnySubNodesHasError = ((node.parserContextFlags & 16) !== 0) || ts.forEachChild(node, containsParseError); + var thisNodeOrAnySubNodesHasError = ((node.parserContextFlags & 16) !== 0) || + ts.forEachChild(node, containsParseError); if (thisNodeOrAnySubNodesHasError) { node.parserContextFlags |= 32; } @@ -7810,7 +3047,8 @@ var ts; } ts.makeIdentifierFromModuleName = makeIdentifierFromModuleName; function isBlockOrCatchScoped(declaration) { - return (getCombinedNodeFlags(declaration) & 12288) !== 0 || isCatchClauseVariableDeclaration(declaration); + return (getCombinedNodeFlags(declaration) & 12288) !== 0 || + isCatchClauseVariableDeclaration(declaration); } ts.isBlockOrCatchScoped = isBlockOrCatchScoped; function getEnclosingBlockScopeContainer(node) { @@ -7838,7 +3076,10 @@ var ts; } ts.getEnclosingBlockScopeContainer = getEnclosingBlockScopeContainer; function isCatchClauseVariableDeclaration(declaration) { - return declaration && declaration.kind === 193 && declaration.parent && declaration.parent.kind === 217; + return declaration && + declaration.kind === 193 && + declaration.parent && + declaration.parent.kind === 217; } ts.isCatchClauseVariableDeclaration = isCatchClauseVariableDeclaration; function declarationNameToString(name) { @@ -7890,7 +3131,9 @@ var ts; if (errorNode === undefined) { return getSpanOfTokenAtPosition(sourceFile, node.pos); } - var pos = nodeIsMissing(errorNode) ? errorNode.pos : ts.skipTrivia(sourceFile.text, errorNode.pos); + var pos = nodeIsMissing(errorNode) + ? errorNode.pos + : ts.skipTrivia(sourceFile.text, errorNode.pos); return createTextSpanFromBounds(pos, errorNode.end); } ts.getErrorSpanForNode = getErrorSpanForNode; @@ -7953,7 +3196,9 @@ var ts; function getJsDocComments(node, sourceFileOfNode) { return ts.filter(getLeadingCommentRangesOfNode(node, sourceFileOfNode), isJsDocComment); function isJsDocComment(comment) { - return sourceFileOfNode.text.charCodeAt(comment.pos + 1) === 42 && sourceFileOfNode.text.charCodeAt(comment.pos + 2) === 42 && sourceFileOfNode.text.charCodeAt(comment.pos + 3) !== 47; + return sourceFileOfNode.text.charCodeAt(comment.pos + 1) === 42 && + sourceFileOfNode.text.charCodeAt(comment.pos + 2) === 42 && + sourceFileOfNode.text.charCodeAt(comment.pos + 3) !== 47; } } ts.getJsDocComments = getJsDocComments; @@ -8156,8 +3401,8 @@ var ts; } case 7: case 8: - var parent = node.parent; - switch (parent.kind) { + var _parent = node.parent; + switch (_parent.kind) { case 193: case 128: case 130: @@ -8165,7 +3410,7 @@ var ts; case 220: case 218: case 150: - return parent.initializer === node; + return _parent.initializer === node; case 177: case 178: case 179: @@ -8176,22 +3421,25 @@ var ts; case 214: case 190: case 188: - return parent.expression === node; + return _parent.expression === node; case 181: - var forStatement = parent; - return (forStatement.initializer === node && forStatement.initializer.kind !== 194) || forStatement.condition === node || forStatement.iterator === node; + var forStatement = _parent; + return (forStatement.initializer === node && forStatement.initializer.kind !== 194) || + forStatement.condition === node || + forStatement.iterator === node; case 182: case 183: - var forInStatement = parent; - return (forInStatement.initializer === node && forInStatement.initializer.kind !== 194) || forInStatement.expression === node; + var forInStatement = _parent; + return (forInStatement.initializer === node && forInStatement.initializer.kind !== 194) || + forInStatement.expression === node; case 158: - return node === parent.expression; + return node === _parent.expression; case 173: - return node === parent.expression; + return node === _parent.expression; case 126: - return node === parent.expression; + return node === _parent.expression; default: - if (isExpression(parent)) { + if (isExpression(_parent)) { return true; } } @@ -8201,7 +3449,8 @@ var ts; ts.isExpression = isExpression; function isInstantiatedModule(node, preserveConstEnums) { var moduleState = ts.getModuleInstanceState(node); - return moduleState === 1 || (preserveConstEnums && moduleState === 2); + return moduleState === 1 || + (preserveConstEnums && moduleState === 2); } ts.isInstantiatedModule = isInstantiatedModule; function isExternalModuleImportEqualsDeclaration(node) { @@ -8349,14 +3598,14 @@ var ts; if (name.kind !== 64 && name.kind !== 8 && name.kind !== 7) { return false; } - var parent = name.parent; - if (parent.kind === 208 || parent.kind === 212) { - if (parent.propertyName) { + var _parent = name.parent; + if (_parent.kind === 208 || _parent.kind === 212) { + if (_parent.propertyName) { return true; } } - if (isDeclaration(parent)) { - return parent.name === name; + if (isDeclaration(_parent)) { + return _parent.name === name; } return false; } @@ -8378,9 +3627,10 @@ var ts; ts.getInterfaceBaseTypeNodes = getInterfaceBaseTypeNodes; function getHeritageClause(clauses, kind) { if (clauses) { - for (var i = 0, n = clauses.length; i < n; i++) { - if (clauses[i].token === kind) { - return clauses[i]; + for (var _i = 0, _n = clauses.length; _i < _n; _i++) { + var clause = clauses[_i]; + if (clause.token === kind) { + return clause; } } } @@ -8448,7 +3698,9 @@ var ts; } ts.isTrivia = isTrivia; function hasDynamicName(declaration) { - return declaration.name && declaration.name.kind === 126 && !isWellKnownSymbolSyntactically(declaration.name.expression); + return declaration.name && + declaration.name.kind === 126 && + !isWellKnownSymbolSyntactically(declaration.name.expression); } ts.hasDynamicName = hasDynamicName; function isWellKnownSymbolSyntactically(node) { @@ -8552,10 +3804,7 @@ var ts; if (length < 0) { throw new Error("length < 0"); } - return { - start: start, - length: length - }; + return { start: start, length: length }; } ts.createTextSpan = createTextSpan; function createTextSpanFromBounds(start, end) { @@ -8574,10 +3823,7 @@ var ts; if (newLength < 0) { throw new Error("newLength < 0"); } - return { - span: span, - newLength: newLength - }; + return { span: span, newLength: newLength }; } ts.createTextChangeRange = createTextChangeRange; ts.unchangedTextChangeRange = createTextChangeRange(createTextSpan(0, 0), 0); @@ -8625,7 +3871,7 @@ var ts; ts.createSynthesizedNode = createSynthesizedNode; function generateUniqueName(baseName, isExistingName) { if (baseName.charCodeAt(0) !== 95) { - var baseName = "_" + baseName; + baseName = "_" + baseName; if (!isExistingName(baseName)) { return baseName; } @@ -8635,9 +3881,9 @@ var ts; } var i = 1; while (true) { - var name = baseName + i; - if (!isExistingName(name)) { - return name; + var _name = baseName + i; + if (!isExistingName(_name)) { + return _name; } i++; } @@ -8738,9 +3984,9 @@ var ts; } var nonAsciiCharacters = /[^\u0000-\u007F]/g; function escapeNonAsciiCharacters(s) { - return nonAsciiCharacters.test(s) ? s.replace(nonAsciiCharacters, function (c) { - return get16BitUnicodeEscapeSequence(c.charCodeAt(0)); - }) : s; + return nonAsciiCharacters.test(s) ? + s.replace(nonAsciiCharacters, function (c) { return get16BitUnicodeEscapeSequence(c.charCodeAt(0)); }) : + s; } ts.escapeNonAsciiCharacters = escapeNonAsciiCharacters; })(ts || (ts = {})); @@ -8768,8 +4014,9 @@ var ts; } function visitEachNode(cbNode, nodes) { if (nodes) { - for (var i = 0, len = nodes.length; i < len; i++) { - var result = cbNode(nodes[i]); + for (var _i = 0, _n = nodes.length; _i < _n; _i++) { + var node = nodes[_i]; + var result = cbNode(node); if (result) { return result; } @@ -8784,9 +4031,12 @@ var ts; var cbNodes = cbNodeArray || cbNode; switch (node.kind) { case 125: - return visitNode(cbNode, node.left) || visitNode(cbNode, node.right); + return visitNode(cbNode, node.left) || + visitNode(cbNode, node.right); case 127: - return visitNode(cbNode, node.name) || visitNode(cbNode, node.constraint) || visitNode(cbNode, node.expression); + return visitNode(cbNode, node.name) || + visitNode(cbNode, node.constraint) || + visitNode(cbNode, node.expression); case 128: case 130: case 129: @@ -8794,13 +4044,22 @@ var ts; case 219: case 193: case 150: - return visitNodes(cbNodes, node.modifiers) || visitNode(cbNode, node.propertyName) || visitNode(cbNode, node.dotDotDotToken) || visitNode(cbNode, node.name) || visitNode(cbNode, node.questionToken) || visitNode(cbNode, node.type) || visitNode(cbNode, node.initializer); + return visitNodes(cbNodes, node.modifiers) || + visitNode(cbNode, node.propertyName) || + visitNode(cbNode, node.dotDotDotToken) || + visitNode(cbNode, node.name) || + visitNode(cbNode, node.questionToken) || + visitNode(cbNode, node.type) || + visitNode(cbNode, node.initializer); case 140: case 141: case 136: case 137: case 138: - return visitNodes(cbNodes, node.modifiers) || visitNodes(cbNodes, node.typeParameters) || visitNodes(cbNodes, node.parameters) || visitNode(cbNode, node.type); + return visitNodes(cbNodes, node.modifiers) || + visitNodes(cbNodes, node.typeParameters) || + visitNodes(cbNodes, node.parameters) || + visitNode(cbNode, node.type); case 132: case 131: case 133: @@ -8809,9 +4068,17 @@ var ts; case 160: case 195: case 161: - return visitNodes(cbNodes, node.modifiers) || visitNode(cbNode, node.asteriskToken) || visitNode(cbNode, node.name) || visitNode(cbNode, node.questionToken) || visitNodes(cbNodes, node.typeParameters) || visitNodes(cbNodes, node.parameters) || visitNode(cbNode, node.type) || visitNode(cbNode, node.body); + return visitNodes(cbNodes, node.modifiers) || + visitNode(cbNode, node.asteriskToken) || + visitNode(cbNode, node.name) || + visitNode(cbNode, node.questionToken) || + visitNodes(cbNodes, node.typeParameters) || + visitNodes(cbNodes, node.parameters) || + visitNode(cbNode, node.type) || + visitNode(cbNode, node.body); case 139: - return visitNode(cbNode, node.typeName) || visitNodes(cbNodes, node.typeArguments); + return visitNode(cbNode, node.typeName) || + visitNodes(cbNodes, node.typeArguments); case 142: return visitNode(cbNode, node.exprName); case 143: @@ -8832,16 +4099,23 @@ var ts; case 152: return visitNodes(cbNodes, node.properties); case 153: - return visitNode(cbNode, node.expression) || visitNode(cbNode, node.dotToken) || visitNode(cbNode, node.name); + return visitNode(cbNode, node.expression) || + visitNode(cbNode, node.dotToken) || + visitNode(cbNode, node.name); case 154: - return visitNode(cbNode, node.expression) || visitNode(cbNode, node.argumentExpression); + return visitNode(cbNode, node.expression) || + visitNode(cbNode, node.argumentExpression); case 155: case 156: - return visitNode(cbNode, node.expression) || visitNodes(cbNodes, node.typeArguments) || visitNodes(cbNodes, node.arguments); + return visitNode(cbNode, node.expression) || + visitNodes(cbNodes, node.typeArguments) || + visitNodes(cbNodes, node.arguments); case 157: - return visitNode(cbNode, node.tag) || visitNode(cbNode, node.template); + return visitNode(cbNode, node.tag) || + visitNode(cbNode, node.template); case 158: - return visitNode(cbNode, node.type) || visitNode(cbNode, node.expression); + return visitNode(cbNode, node.type) || + visitNode(cbNode, node.expression); case 159: return visitNode(cbNode, node.expression); case 162: @@ -8853,91 +4127,142 @@ var ts; case 165: return visitNode(cbNode, node.operand); case 170: - return visitNode(cbNode, node.asteriskToken) || visitNode(cbNode, node.expression); + return visitNode(cbNode, node.asteriskToken) || + visitNode(cbNode, node.expression); case 166: return visitNode(cbNode, node.operand); case 167: - return visitNode(cbNode, node.left) || visitNode(cbNode, node.operatorToken) || visitNode(cbNode, node.right); + return visitNode(cbNode, node.left) || + visitNode(cbNode, node.operatorToken) || + visitNode(cbNode, node.right); case 168: - return visitNode(cbNode, node.condition) || visitNode(cbNode, node.questionToken) || visitNode(cbNode, node.whenTrue) || visitNode(cbNode, node.colonToken) || visitNode(cbNode, node.whenFalse); + return visitNode(cbNode, node.condition) || + visitNode(cbNode, node.questionToken) || + visitNode(cbNode, node.whenTrue) || + visitNode(cbNode, node.colonToken) || + visitNode(cbNode, node.whenFalse); case 171: return visitNode(cbNode, node.expression); case 174: case 201: return visitNodes(cbNodes, node.statements); case 221: - return visitNodes(cbNodes, node.statements) || visitNode(cbNode, node.endOfFileToken); + return visitNodes(cbNodes, node.statements) || + visitNode(cbNode, node.endOfFileToken); case 175: - return visitNodes(cbNodes, node.modifiers) || visitNode(cbNode, node.declarationList); + return visitNodes(cbNodes, node.modifiers) || + visitNode(cbNode, node.declarationList); case 194: return visitNodes(cbNodes, node.declarations); case 177: return visitNode(cbNode, node.expression); case 178: - return visitNode(cbNode, node.expression) || visitNode(cbNode, node.thenStatement) || visitNode(cbNode, node.elseStatement); + return visitNode(cbNode, node.expression) || + visitNode(cbNode, node.thenStatement) || + visitNode(cbNode, node.elseStatement); case 179: - return visitNode(cbNode, node.statement) || visitNode(cbNode, node.expression); + return visitNode(cbNode, node.statement) || + visitNode(cbNode, node.expression); case 180: - return visitNode(cbNode, node.expression) || visitNode(cbNode, node.statement); + return visitNode(cbNode, node.expression) || + visitNode(cbNode, node.statement); case 181: - return visitNode(cbNode, node.initializer) || visitNode(cbNode, node.condition) || visitNode(cbNode, node.iterator) || visitNode(cbNode, node.statement); + return visitNode(cbNode, node.initializer) || + visitNode(cbNode, node.condition) || + visitNode(cbNode, node.iterator) || + visitNode(cbNode, node.statement); case 182: - return visitNode(cbNode, node.initializer) || visitNode(cbNode, node.expression) || visitNode(cbNode, node.statement); + return visitNode(cbNode, node.initializer) || + visitNode(cbNode, node.expression) || + visitNode(cbNode, node.statement); case 183: - return visitNode(cbNode, node.initializer) || visitNode(cbNode, node.expression) || visitNode(cbNode, node.statement); + return visitNode(cbNode, node.initializer) || + visitNode(cbNode, node.expression) || + visitNode(cbNode, node.statement); case 184: case 185: return visitNode(cbNode, node.label); case 186: return visitNode(cbNode, node.expression); case 187: - return visitNode(cbNode, node.expression) || visitNode(cbNode, node.statement); + return visitNode(cbNode, node.expression) || + visitNode(cbNode, node.statement); case 188: - return visitNode(cbNode, node.expression) || visitNode(cbNode, node.caseBlock); + return visitNode(cbNode, node.expression) || + visitNode(cbNode, node.caseBlock); case 202: return visitNodes(cbNodes, node.clauses); case 214: - return visitNode(cbNode, node.expression) || visitNodes(cbNodes, node.statements); + return visitNode(cbNode, node.expression) || + visitNodes(cbNodes, node.statements); case 215: return visitNodes(cbNodes, node.statements); case 189: - return visitNode(cbNode, node.label) || visitNode(cbNode, node.statement); + return visitNode(cbNode, node.label) || + visitNode(cbNode, node.statement); case 190: return visitNode(cbNode, node.expression); case 191: - return visitNode(cbNode, node.tryBlock) || visitNode(cbNode, node.catchClause) || visitNode(cbNode, node.finallyBlock); + return visitNode(cbNode, node.tryBlock) || + visitNode(cbNode, node.catchClause) || + visitNode(cbNode, node.finallyBlock); case 217: - return visitNode(cbNode, node.variableDeclaration) || visitNode(cbNode, node.block); + return visitNode(cbNode, node.variableDeclaration) || + visitNode(cbNode, node.block); case 196: - return visitNodes(cbNodes, node.modifiers) || visitNode(cbNode, node.name) || visitNodes(cbNodes, node.typeParameters) || visitNodes(cbNodes, node.heritageClauses) || visitNodes(cbNodes, node.members); + return visitNodes(cbNodes, node.modifiers) || + visitNode(cbNode, node.name) || + visitNodes(cbNodes, node.typeParameters) || + visitNodes(cbNodes, node.heritageClauses) || + visitNodes(cbNodes, node.members); case 197: - return visitNodes(cbNodes, node.modifiers) || visitNode(cbNode, node.name) || visitNodes(cbNodes, node.typeParameters) || visitNodes(cbNodes, node.heritageClauses) || visitNodes(cbNodes, node.members); + return visitNodes(cbNodes, node.modifiers) || + visitNode(cbNode, node.name) || + visitNodes(cbNodes, node.typeParameters) || + visitNodes(cbNodes, node.heritageClauses) || + visitNodes(cbNodes, node.members); case 198: - return visitNodes(cbNodes, node.modifiers) || visitNode(cbNode, node.name) || visitNode(cbNode, node.type); + return visitNodes(cbNodes, node.modifiers) || + visitNode(cbNode, node.name) || + visitNode(cbNode, node.type); case 199: - return visitNodes(cbNodes, node.modifiers) || visitNode(cbNode, node.name) || visitNodes(cbNodes, node.members); + return visitNodes(cbNodes, node.modifiers) || + visitNode(cbNode, node.name) || + visitNodes(cbNodes, node.members); case 220: - return visitNode(cbNode, node.name) || visitNode(cbNode, node.initializer); + return visitNode(cbNode, node.name) || + visitNode(cbNode, node.initializer); case 200: - return visitNodes(cbNodes, node.modifiers) || visitNode(cbNode, node.name) || visitNode(cbNode, node.body); + return visitNodes(cbNodes, node.modifiers) || + visitNode(cbNode, node.name) || + visitNode(cbNode, node.body); case 203: - return visitNodes(cbNodes, node.modifiers) || visitNode(cbNode, node.name) || visitNode(cbNode, node.moduleReference); + return visitNodes(cbNodes, node.modifiers) || + visitNode(cbNode, node.name) || + visitNode(cbNode, node.moduleReference); case 204: - return visitNodes(cbNodes, node.modifiers) || visitNode(cbNode, node.importClause) || visitNode(cbNode, node.moduleSpecifier); + return visitNodes(cbNodes, node.modifiers) || + visitNode(cbNode, node.importClause) || + visitNode(cbNode, node.moduleSpecifier); case 205: - return visitNode(cbNode, node.name) || visitNode(cbNode, node.namedBindings); + return visitNode(cbNode, node.name) || + visitNode(cbNode, node.namedBindings); case 206: return visitNode(cbNode, node.name); case 207: case 211: return visitNodes(cbNodes, node.elements); case 210: - return visitNodes(cbNodes, node.modifiers) || visitNode(cbNode, node.exportClause) || visitNode(cbNode, node.moduleSpecifier); + return visitNodes(cbNodes, node.modifiers) || + visitNode(cbNode, node.exportClause) || + visitNode(cbNode, node.moduleSpecifier); case 208: case 212: - return visitNode(cbNode, node.propertyName) || visitNode(cbNode, node.name); + return visitNode(cbNode, node.propertyName) || + visitNode(cbNode, node.name); case 209: - return visitNodes(cbNodes, node.modifiers) || visitNode(cbNode, node.expression); + return visitNodes(cbNodes, node.modifiers) || + visitNode(cbNode, node.expression); case 169: return visitNode(cbNode, node.head) || visitNodes(cbNodes, node.templateSpans); case 173: @@ -8953,84 +4278,55 @@ var ts; ts.forEachChild = forEachChild; function parsingContextErrors(context) { switch (context) { - case 0: - return ts.Diagnostics.Declaration_or_statement_expected; - case 1: - return ts.Diagnostics.Declaration_or_statement_expected; - case 2: - return ts.Diagnostics.Statement_expected; - case 3: - return ts.Diagnostics.case_or_default_expected; - case 4: - return ts.Diagnostics.Statement_expected; - case 5: - return ts.Diagnostics.Property_or_signature_expected; - case 6: - return ts.Diagnostics.Unexpected_token_A_constructor_method_accessor_or_property_was_expected; - case 7: - return ts.Diagnostics.Enum_member_expected; - case 8: - return ts.Diagnostics.Type_reference_expected; - case 9: - return ts.Diagnostics.Variable_declaration_expected; - case 10: - return ts.Diagnostics.Property_destructuring_pattern_expected; - case 11: - return ts.Diagnostics.Array_element_destructuring_pattern_expected; - case 12: - return ts.Diagnostics.Argument_expression_expected; - case 13: - return ts.Diagnostics.Property_assignment_expected; - case 14: - return ts.Diagnostics.Expression_or_comma_expected; - case 15: - return ts.Diagnostics.Parameter_declaration_expected; - case 16: - return ts.Diagnostics.Type_parameter_declaration_expected; - case 17: - return ts.Diagnostics.Type_argument_expected; - case 18: - return ts.Diagnostics.Type_expected; - case 19: - return ts.Diagnostics.Unexpected_token_expected; - case 20: - return ts.Diagnostics.Identifier_expected; + case 0: return ts.Diagnostics.Declaration_or_statement_expected; + case 1: return ts.Diagnostics.Declaration_or_statement_expected; + case 2: return ts.Diagnostics.Statement_expected; + case 3: return ts.Diagnostics.case_or_default_expected; + case 4: return ts.Diagnostics.Statement_expected; + case 5: return ts.Diagnostics.Property_or_signature_expected; + case 6: return ts.Diagnostics.Unexpected_token_A_constructor_method_accessor_or_property_was_expected; + case 7: return ts.Diagnostics.Enum_member_expected; + case 8: return ts.Diagnostics.Type_reference_expected; + case 9: return ts.Diagnostics.Variable_declaration_expected; + case 10: return ts.Diagnostics.Property_destructuring_pattern_expected; + case 11: return ts.Diagnostics.Array_element_destructuring_pattern_expected; + case 12: return ts.Diagnostics.Argument_expression_expected; + case 13: return ts.Diagnostics.Property_assignment_expected; + case 14: return ts.Diagnostics.Expression_or_comma_expected; + case 15: return ts.Diagnostics.Parameter_declaration_expected; + case 16: return ts.Diagnostics.Type_parameter_declaration_expected; + case 17: return ts.Diagnostics.Type_argument_expected; + case 18: return ts.Diagnostics.Type_expected; + case 19: return ts.Diagnostics.Unexpected_token_expected; + case 20: return ts.Diagnostics.Identifier_expected; } } ; function modifierToFlag(token) { switch (token) { - case 109: - return 128; - case 108: - return 16; - case 107: - return 64; - case 106: - return 32; - case 77: - return 1; - case 114: - return 2; - case 69: - return 8192; - case 72: - return 256; + case 109: return 128; + case 108: return 16; + case 107: return 64; + case 106: return 32; + case 77: return 1; + case 114: return 2; + case 69: return 8192; + case 72: return 256; } return 0; } ts.modifierToFlag = modifierToFlag; function fixupParentReferences(sourceFile) { - var parent = sourceFile; + var _parent = sourceFile; forEachChild(sourceFile, visitNode); return; function visitNode(n) { - if (n.parent !== parent) { - n.parent = parent; - var saveParent = parent; - parent = n; + if (n.parent !== _parent) { + n.parent = _parent; + var saveParent = _parent; + _parent = n; forEachChild(n, visitNode); - parent = saveParent; + _parent = saveParent; } } } @@ -9068,8 +4364,9 @@ var ts; array._children = undefined; array.pos += delta; array.end += delta; - for (var i = 0, n = array.length; i < n; i++) { - visitNode(array[i]); + for (var _i = 0, _n = array.length; _i < _n; _i++) { + var node = array[_i]; + visitNode(node); } } } @@ -9131,8 +4428,9 @@ var ts; array.intersectsChange = true; array._children = undefined; adjustIntersectingElement(array, changeStart, changeRangeOldEnd, changeRangeNewEnd, delta); - for (var i = 0, n = array.length; i < n; i++) { - visitNode(array[i]); + for (var _i = 0, _n = array.length; _i < _n; _i++) { + var node = array[_i]; + visitNode(node); } return; } @@ -9246,7 +4544,8 @@ var ts; } ts.updateSourceFile = updateSourceFile; function isEvalOrArgumentsIdentifier(node) { - return node.kind === 64 && (node.text === "eval" || node.text === "arguments"); + return node.kind === 64 && + (node.text === "eval" || node.text === "arguments"); } ts.isEvalOrArgumentsIdentifier = isEvalOrArgumentsIdentifier; function isUseStrictPrologueDirective(sourceFile, node) { @@ -9424,8 +4723,8 @@ var ts; } function parseErrorAtCurrentToken(message, arg0) { var start = scanner.getTokenPos(); - var length = scanner.getTextPos() - start; - parseErrorAtPosition(start, length, message, arg0); + var _length = scanner.getTextPos() - start; + parseErrorAtPosition(start, _length, message, arg0); } function parseErrorAtPosition(start, length, message, arg0) { var lastError = ts.lastOrUndefined(sourceFile.parseDiagnostics); @@ -9464,7 +4763,9 @@ var ts; var saveParseDiagnosticsLength = sourceFile.parseDiagnostics.length; var saveParseErrorBeforeNextFinishedNode = parseErrorBeforeNextFinishedNode; var saveContextFlags = contextFlags; - var result = isLookAhead ? scanner.lookAhead(callback) : scanner.tryScan(callback); + var result = isLookAhead + ? scanner.lookAhead(callback) + : scanner.tryScan(callback); ts.Debug.assert(saveContextFlags === contextFlags); if (!result || isLookAhead) { token = saveToken; @@ -9515,7 +4816,8 @@ var ts; return undefined; } function parseExpectedToken(t, reportAtCurrentPosition, diagnosticMessage, arg0) { - return parseOptionalToken(t) || createMissingNode(t, reportAtCurrentPosition, diagnosticMessage, arg0); + return parseOptionalToken(t) || + createMissingNode(t, reportAtCurrentPosition, diagnosticMessage, arg0); } function parseTokenNode() { var node = createNode(token); @@ -9592,7 +4894,9 @@ var ts; return createIdentifier(isIdentifierOrKeyword()); } function isLiteralPropertyName() { - return isIdentifierOrKeyword() || token === 8 || token === 7; + return isIdentifierOrKeyword() || + token === 8 || + token === 7; } function parsePropertyName() { if (token === 8 || token === 7) { @@ -9645,7 +4949,10 @@ var ts; return canFollowModifier(); } function canFollowModifier() { - return token === 18 || token === 14 || token === 35 || isLiteralPropertyName(); + return token === 18 + || token === 14 + || token === 35 + || isLiteralPropertyName(); } function nextTokenIsClassOrFunction() { nextToken(); @@ -9703,7 +5010,8 @@ var ts; return isIdentifier(); } function isNotHeritageClauseTypeName() { - if (token === 102 || token === 78) { + if (token === 102 || + token === 78) { return lookAhead(nextTokenIsIdentifier); } return false; @@ -10084,7 +5392,9 @@ var ts; var tokenPos = scanner.getTokenPos(); nextToken(); finishNode(node); - if (node.kind === 7 && sourceText.charCodeAt(tokenPos) === 48 && ts.isOctalDigit(sourceText.charCodeAt(tokenPos + 1))) { + if (node.kind === 7 + && sourceText.charCodeAt(tokenPos) === 48 + && ts.isOctalDigit(sourceText.charCodeAt(tokenPos + 1))) { node.flags |= 16384; } return node; @@ -10123,7 +5433,9 @@ var ts; } function parseParameterType() { if (parseOptional(51)) { - return token === 8 ? parseLiteralNode(true) : parseType(); + return token === 8 + ? parseLiteralNode(true) + : parseType(); } return undefined; } @@ -10238,11 +5550,11 @@ var ts; } function parsePropertyOrMethodSignature() { var fullStart = scanner.getStartPos(); - var name = parsePropertyName(); + var _name = parsePropertyName(); var questionToken = parseOptionalToken(50); if (token === 16 || token === 24) { var method = createNode(131, fullStart); - method.name = name; + method.name = _name; method.questionToken = questionToken; fillSignature(51, false, false, method); parseTypeMemberSemicolon(); @@ -10250,7 +5562,7 @@ var ts; } else { var property = createNode(129, fullStart); - property.name = name; + property.name = _name; property.questionToken = questionToken; property.type = parseTypeAnnotation(); parseTypeMemberSemicolon(); @@ -10281,7 +5593,11 @@ var ts; } function isTypeMemberWithLiteralPropertyName() { nextToken(); - return token === 16 || token === 24 || token === 50 || token === 51 || canParseSemicolon(); + return token === 16 || + token === 24 || + token === 50 || + token === 51 || + canParseSemicolon(); } function parseTypeMember() { switch (token) { @@ -10289,7 +5605,9 @@ var ts; case 24: return parseSignatureMember(136); case 18: - return isIndexSignature() ? parseIndexSignatureDeclaration(undefined) : parsePropertyOrMethodSignature(); + return isIndexSignature() + ? parseIndexSignatureDeclaration(undefined) + : parsePropertyOrMethodSignature(); case 87: if (lookAhead(isStartOfConstructSignature)) { return parseSignatureMember(137); @@ -10311,7 +5629,9 @@ var ts; } function parseIndexSignatureWithModifiers() { var modifiers = parseModifiers(); - return isIndexSignature() ? parseIndexSignatureDeclaration(modifiers) : undefined; + return isIndexSignature() + ? parseIndexSignatureDeclaration(modifiers) + : undefined; } function isStartOfConstructSignature() { nextToken(); @@ -10417,9 +5737,7 @@ var ts; function parseUnionTypeOrHigher() { var type = parseArrayTypeOrHigher(); if (token === 44) { - var types = [ - type - ]; + var types = [type]; types.pos = type.pos; while (parseOptional(44)) { types.push(parseArrayTypeOrHigher()); @@ -10444,7 +5762,9 @@ var ts; } if (isIdentifier() || ts.isModifier(token)) { nextToken(); - if (token === 51 || token === 23 || token === 50 || token === 52 || isIdentifier() || ts.isModifier(token)) { + if (token === 51 || token === 23 || + token === 50 || token === 52 || + isIdentifier() || ts.isModifier(token)) { return true; } if (token === 17) { @@ -10569,10 +5889,16 @@ var ts; nextToken(); return !scanner.hasPrecedingLineBreak() && isIdentifier(); } + function nextTokenIsIdentifierOrStartOfDestructuringOnTheSameLine() { + nextToken(); + return !scanner.hasPrecedingLineBreak() && + (isIdentifier() || token === 14 || token === 18); + } function parseYieldExpression() { var node = createNode(170); nextToken(); - if (!scanner.hasPrecedingLineBreak() && (token === 35 || isStartOfExpression())) { + if (!scanner.hasPrecedingLineBreak() && + (token === 35 || isStartOfExpression())) { node.asteriskToken = parseOptionalToken(35); node.expression = parseAssignmentExpressionOrHigher(); return finishNode(node); @@ -10587,9 +5913,7 @@ var ts; var parameter = createNode(128, identifier.pos); parameter.name = identifier; finishNode(parameter); - node.parameters = [ - parameter - ]; + node.parameters = [parameter]; node.parameters.pos = parameter.pos; node.parameters.end = parameter.end; parseExpected(32); @@ -10601,7 +5925,9 @@ var ts; if (triState === 0) { return undefined; } - var arrowFunction = triState === 1 ? parseParenthesizedArrowFunctionExpressionHead(true) : tryParse(parsePossibleParenthesizedArrowFunctionExpressionHead); + var arrowFunction = triState === 1 + ? parseParenthesizedArrowFunctionExpressionHead(true) + : tryParse(parsePossibleParenthesizedArrowFunctionExpressionHead); if (!arrowFunction) { return undefined; } @@ -10823,7 +6149,9 @@ var ts; return expression; } function parseLeftHandSideExpressionOrHigher() { - var expression = token === 90 ? parseSuperExpression() : parseMemberExpressionOrHigher(); + var expression = token === 90 + ? parseSuperExpression() + : parseMemberExpressionOrHigher(); return parseCallExpressionRest(expression); } function parseMemberExpressionOrHigher() { @@ -10877,7 +6205,9 @@ var ts; if (token === 10 || token === 11) { var tagExpression = createNode(157, expression.pos); tagExpression.tag = expression; - tagExpression.template = token === 10 ? parseLiteralNode() : parseTemplateExpression(); + tagExpression.template = token === 10 + ? parseLiteralNode() + : parseTemplateExpression(); expression = finishNode(tagExpression); continue; } @@ -10900,10 +6230,10 @@ var ts; continue; } else if (token === 16) { - var callExpr = createNode(155, expression.pos); - callExpr.expression = expression; - callExpr.arguments = parseArgumentList(); - expression = finishNode(callExpr); + var _callExpr = createNode(155, expression.pos); + _callExpr.expression = expression; + _callExpr.arguments = parseArgumentList(); + expression = finishNode(_callExpr); continue; } return expression; @@ -10923,7 +6253,9 @@ var ts; if (!parseExpected(25)) { return undefined; } - return typeArguments && canFollowTypeArgumentsInExpression() ? typeArguments : undefined; + return typeArguments && canFollowTypeArgumentsInExpression() + ? typeArguments + : undefined; } function canFollowTypeArgumentsInExpression() { switch (token) { @@ -10998,7 +6330,9 @@ var ts; return finishNode(node); } function parseArgumentOrArrayLiteralElement() { - return token === 21 ? parseSpreadElement() : token === 23 ? createNode(172) : parseAssignmentExpressionOrHigher(); + return token === 21 ? parseSpreadElement() : + token === 23 ? createNode(172) : + parseAssignmentExpressionOrHigher(); } function parseArgumentExpression() { return allowInAnd(parseArgumentOrArrayLiteralElement); @@ -11553,15 +6887,15 @@ var ts; } function parsePropertyOrMethodDeclaration(fullStart, modifiers) { var asteriskToken = parseOptionalToken(35); - var name = parsePropertyName(); + var _name = parsePropertyName(); var questionToken = parseOptionalToken(50); if (asteriskToken || token === 16 || token === 24) { - return parseMethodDeclaration(fullStart, modifiers, asteriskToken, name, questionToken, ts.Diagnostics.or_expected); + return parseMethodDeclaration(fullStart, modifiers, asteriskToken, _name, questionToken, ts.Diagnostics.or_expected); } else { var property = createNode(130, fullStart); setModifiers(property, modifiers); - property.name = name; + property.name = _name; property.questionToken = questionToken; property.type = parseTypeAnnotation(); property.initializer = allowInAnd(parseNonParameterInitializer); @@ -11648,7 +6982,11 @@ var ts; if (isIndexSignature()) { return parseIndexSignatureDeclaration(modifiers); } - if (isIdentifierOrKeyword() || token === 8 || token === 7 || token === 35 || token === 18) { + if (isIdentifierOrKeyword() || + token === 8 || + token === 7 || + token === 35 || + token === 18) { return parsePropertyOrMethodDeclaration(fullStart, modifiers); } ts.Debug.fail("Should not have attempted to parse class member declaration."); @@ -11661,7 +6999,9 @@ var ts; node.typeParameters = parseTypeParameters(); node.heritageClauses = parseHeritageClauses(true); if (parseExpected(14)) { - node.members = inGeneratorParameterContext() ? doOutsideOfYieldContext(parseClassMembers) : parseClassMembers(); + node.members = inGeneratorParameterContext() + ? doOutsideOfYieldContext(parseClassMembers) + : parseClassMembers(); parseExpected(15); } else { @@ -11671,7 +7011,9 @@ var ts; } function parseHeritageClauses(isClassHeritageClause) { if (isHeritageClause()) { - return isClassHeritageClause && inGeneratorParameterContext() ? doOutsideOfYieldContext(parseHeritageClausesWorker) : parseHeritageClausesWorker(); + return isClassHeritageClause && inGeneratorParameterContext() + ? doOutsideOfYieldContext(parseHeritageClausesWorker) + : parseHeritageClausesWorker(); } return undefined; } @@ -11750,7 +7092,9 @@ var ts; setModifiers(node, modifiers); node.flags |= flags; node.name = parseIdentifier(); - node.body = parseOptional(20) ? parseInternalModuleTail(getNodePos(), undefined, 1) : parseModuleBlock(); + node.body = parseOptional(20) + ? parseInternalModuleTail(getNodePos(), undefined, 1) + : parseModuleBlock(); return finishNode(node); } function parseAmbientExternalModuleDeclaration(fullStart, modifiers) { @@ -11762,17 +7106,21 @@ var ts; } function parseModuleDeclaration(fullStart, modifiers) { parseExpected(116); - return token === 8 ? parseAmbientExternalModuleDeclaration(fullStart, modifiers) : parseInternalModuleTail(fullStart, modifiers, modifiers ? modifiers.flags : 0); + return token === 8 + ? parseAmbientExternalModuleDeclaration(fullStart, modifiers) + : parseInternalModuleTail(fullStart, modifiers, modifiers ? modifiers.flags : 0); } function isExternalModuleReference() { - return token === 117 && lookAhead(nextTokenIsOpenParen); + return token === 117 && + lookAhead(nextTokenIsOpenParen); } function nextTokenIsOpenParen() { return nextToken() === 16; } function nextTokenIsCommaOrFromKeyword() { nextToken(); - return token === 23 || token === 123; + return token === 23 || + token === 123; } function parseImportDeclarationOrImportEqualsDeclaration(fullStart, modifiers) { parseExpected(84); @@ -11792,7 +7140,9 @@ var ts; } var importDeclaration = createNode(204, fullStart); setModifiers(importDeclaration, modifiers); - if (identifier || token === 35 || token === 14) { + if (identifier || + token === 35 || + token === 14) { importDeclaration.importClause = parseImportClause(identifier, afterImportPos); parseExpected(123); } @@ -11805,13 +7155,16 @@ var ts; if (identifier) { importClause.name = identifier; } - if (!importClause.name || parseOptional(23)) { + if (!importClause.name || + parseOptional(23)) { importClause.namedBindings = token === 35 ? parseNamespaceImport() : parseNamedImportsOrExports(207); } return finishNode(importClause); } function parseModuleReference() { - return isExternalModuleReference() ? parseExternalModuleReference() : parseEntityName(false); + return isExternalModuleReference() + ? parseExternalModuleReference() + : parseEntityName(false); } function parseExternalModuleReference() { var node = createNode(213); @@ -11899,7 +7252,7 @@ var ts; return finishNode(node); } function isLetDeclaration() { - return inStrictModeContext() || lookAhead(nextTokenIsIdentifierOnSameLine); + return inStrictModeContext() || lookAhead(nextTokenIsIdentifierOrStartOfDestructuringOnTheSameLine); } function isDeclarationStart() { switch (token) { @@ -11941,11 +7294,13 @@ var ts; } function nextTokenCanFollowImportKeyword() { nextToken(); - return isIdentifierOrKeyword() || token === 8 || token === 35 || token === 14; + return isIdentifierOrKeyword() || token === 8 || + token === 35 || token === 14; } function nextTokenCanFollowExportKeyword() { nextToken(); - return token === 52 || token === 35 || token === 14 || token === 72 || isDeclarationStart(); + return token === 52 || token === 35 || + token === 14 || token === 72 || isDeclarationStart(); } function nextTokenIsDeclarationStart() { nextToken(); @@ -11999,7 +7354,9 @@ var ts; return parseSourceElementOrModuleElement(); } function parseSourceElementOrModuleElement() { - return isDeclarationStart() ? parseDeclaration() : parseStatement(); + return isDeclarationStart() + ? parseDeclaration() + : parseStatement(); } function processReferenceComments(sourceFile) { var triviaScanner = ts.createScanner(sourceFile.languageVersion, false, sourceText); @@ -12014,10 +7371,7 @@ var ts; if (kind !== 2) { break; } - var range = { - pos: triviaScanner.getTokenPos(), - end: triviaScanner.getTextPos() - }; + var range = { pos: triviaScanner.getTokenPos(), end: triviaScanner.getTextPos() }; var comment = sourceText.substring(range.pos, range.end); var referencePathMatchResult = ts.getFileReferenceFromReferencePath(comment, range); if (referencePathMatchResult) { @@ -12048,10 +7402,7 @@ var ts; var pathMatchResult = pathRegex.exec(comment); var nameMatchResult = nameRegex.exec(comment); if (pathMatchResult) { - var amdDependency = { - path: pathMatchResult[2], - name: nameMatchResult ? nameMatchResult[2] : undefined - }; + var amdDependency = { path: pathMatchResult[2], name: nameMatchResult ? nameMatchResult[2] : undefined }; amdDependencies.push(amdDependency); } } @@ -12063,7 +7414,13 @@ var ts; } function setExternalModuleIndicator(sourceFile) { sourceFile.externalModuleIndicator = ts.forEach(sourceFile.statements, function (node) { - return node.flags & 1 || node.kind === 203 && node.moduleReference.kind === 213 || node.kind === 204 || node.kind === 209 || node.kind === 210 ? node : undefined; + return node.flags & 1 + || node.kind === 203 && node.moduleReference.kind === 213 + || node.kind === 204 + || node.kind === 209 + || node.kind === 210 + ? node + : undefined; }); } } @@ -12145,7 +7502,7 @@ var ts; } ts.bindSourceFile = bindSourceFile; function bindSourceFileWorker(file) { - var parent; + var _parent; var container; var blockScopeContainer; var lastContainer; @@ -12218,19 +7575,22 @@ var ts; } function declareSymbol(symbols, parent, node, includes, excludes) { ts.Debug.assert(!ts.hasDynamicName(node)); - var name = node.flags & 256 && parent ? "default" : getDeclarationName(node); - if (name !== undefined) { - var symbol = ts.hasProperty(symbols, name) ? symbols[name] : (symbols[name] = createSymbol(0, name)); + var _name = node.flags & 256 && parent ? "default" : getDeclarationName(node); + var symbol; + if (_name !== undefined) { + symbol = ts.hasProperty(symbols, _name) ? symbols[_name] : (symbols[_name] = createSymbol(0, _name)); if (symbol.flags & excludes) { if (node.name) { node.name.parent = node; } - var message = symbol.flags & 2 ? ts.Diagnostics.Cannot_redeclare_block_scoped_variable_0 : ts.Diagnostics.Duplicate_identifier_0; + var message = symbol.flags & 2 + ? ts.Diagnostics.Cannot_redeclare_block_scoped_variable_0 + : ts.Diagnostics.Duplicate_identifier_0; ts.forEach(symbol.declarations, function (declaration) { file.bindDiagnostics.push(ts.createDiagnosticForNode(declaration.name || declaration, message, getDisplayName(declaration))); }); file.bindDiagnostics.push(ts.createDiagnosticForNode(node.name || node, message, getDisplayName(node))); - symbol = createSymbol(0, name); + symbol = createSymbol(0, _name); } } else { @@ -12271,7 +7631,9 @@ var ts; } else { if (hasExportModifier || isAmbientContext(container)) { - var exportKind = (symbolKind & 107455 ? 1048576 : 0) | (symbolKind & 793056 ? 2097152 : 0) | (symbolKind & 1536 ? 4194304 : 0); + var exportKind = (symbolKind & 107455 ? 1048576 : 0) | + (symbolKind & 793056 ? 2097152 : 0) | + (symbolKind & 1536 ? 4194304 : 0); var local = declareSymbol(container.locals, undefined, node, exportKind, symbolExcludes); local.exportSymbol = declareSymbol(container.symbol.exports, container.symbol, node, symbolKind, symbolExcludes); node.localSymbol = local; @@ -12285,10 +7647,10 @@ var ts; if (symbolKind & 255504) { node.locals = {}; } - var saveParent = parent; + var saveParent = _parent; var saveContainer = container; var savedBlockScopeContainer = blockScopeContainer; - parent = node; + _parent = node; if (symbolKind & 262128) { container = node; if (lastContainer) { @@ -12301,7 +7663,7 @@ var ts; } ts.forEachChild(node, bind); container = saveContainer; - parent = saveParent; + _parent = saveParent; blockScopeContainer = savedBlockScopeContainer; } function bindDeclaration(node, symbolKind, symbolExcludes, isBlockScopeContainer) { @@ -12404,7 +7766,7 @@ var ts; return "__" + ts.indexOf(node.parent.parameters, node); } function bind(node) { - node.parent = parent; + node.parent = _parent; switch (node.kind) { case 127: bindDeclaration(node, 262144, 530912, false); @@ -12538,10 +7900,10 @@ var ts; bindChildren(node, 0, true); break; default: - var saveParent = parent; - parent = node; + var saveParent = _parent; + _parent = node; ts.forEachChild(node, bind); - parent = saveParent; + _parent = saveParent; } } function bindParameter(node) { @@ -12551,7 +7913,9 @@ var ts; else { bindDeclaration(node, 1, 107455, false); } - if (node.flags & 112 && node.parent.kind === 133 && node.parent.parent.kind === 196) { + if (node.flags & 112 && + node.parent.kind === 133 && + node.parent.parent.kind === 196) { var classDeclaration = node.parent.parent; declareSymbol(classDeclaration.symbol.members, classDeclaration.symbol, node, 4, 107455); } @@ -12582,25 +7946,15 @@ var ts; var compilerOptions = host.getCompilerOptions(); var languageVersion = compilerOptions.target || 0; var emitResolver = createResolver(); + var undefinedSymbol = createSymbol(4 | 67108864, "undefined"); + var argumentsSymbol = createSymbol(4 | 67108864, "arguments"); var checker = { - getNodeCount: function () { - return ts.sum(host.getSourceFiles(), "nodeCount"); - }, - getIdentifierCount: function () { - return ts.sum(host.getSourceFiles(), "identifierCount"); - }, - getSymbolCount: function () { - return ts.sum(host.getSourceFiles(), "symbolCount"); - }, - getTypeCount: function () { - return typeCount; - }, - isUndefinedSymbol: function (symbol) { - return symbol === undefinedSymbol; - }, - isArgumentsSymbol: function (symbol) { - return symbol === argumentsSymbol; - }, + getNodeCount: function () { return ts.sum(host.getSourceFiles(), "nodeCount"); }, + getIdentifierCount: function () { return ts.sum(host.getSourceFiles(), "identifierCount"); }, + getSymbolCount: function () { return ts.sum(host.getSourceFiles(), "symbolCount"); }, + getTypeCount: function () { return typeCount; }, + isUndefinedSymbol: function (symbol) { return symbol === undefinedSymbol; }, + isArgumentsSymbol: function (symbol) { return symbol === argumentsSymbol; }, getDiagnostics: getDiagnostics, getGlobalDiagnostics: getGlobalDiagnostics, getTypeOfSymbolAtLocation: getTypeOfSymbolAtLocation, @@ -12630,8 +7984,6 @@ var ts; getEmitResolver: getEmitResolver, getExportsOfExternalModule: getExportsOfExternalModule }; - var undefinedSymbol = createSymbol(4 | 67108864, "undefined"); - var argumentsSymbol = createSymbol(4 | 67108864, "arguments"); var unknownSymbol = createSymbol(4 | 67108864, "unknown"); var resolvingSymbol = createSymbol(67108864, "__resolving__"); var anyType = createIntrinsicType(1, "any"); @@ -12696,7 +8048,9 @@ var ts; return emitResolver; } function error(location, message, arg0, arg1, arg2) { - var diagnostic = location ? ts.createDiagnosticForNode(location, message, arg0, arg1, arg2) : ts.createCompilerDiagnostic(message, arg0, arg1, arg2); + var diagnostic = location + ? ts.createDiagnosticForNode(location, message, arg0, arg1, arg2) + : ts.createCompilerDiagnostic(message, arg0, arg1, arg2); diagnostics.add(diagnostic); } function createSymbol(flags, name) { @@ -12782,7 +8136,8 @@ var ts; recordMergedSymbol(target, source); } else { - var message = target.flags & 2 || source.flags & 2 ? ts.Diagnostics.Cannot_redeclare_block_scoped_variable_0 : ts.Diagnostics.Duplicate_identifier_0; + var message = target.flags & 2 || source.flags & 2 + ? ts.Diagnostics.Cannot_redeclare_block_scoped_variable_0 : ts.Diagnostics.Duplicate_identifier_0; ts.forEach(source.declarations, function (node) { error(node.name ? node.name : node, message, symbolToString(source)); }); @@ -12969,18 +8324,18 @@ var ts; } function checkResolvedBlockScopedVariable(result, errorLocation) { ts.Debug.assert((result.flags & 2) !== 0); - var declaration = ts.forEach(result.declarations, function (d) { - return ts.isBlockOrCatchScoped(d) ? d : undefined; - }); + var declaration = ts.forEach(result.declarations, function (d) { return ts.isBlockOrCatchScoped(d) ? d : undefined; }); ts.Debug.assert(declaration !== undefined, "Block-scoped variable declaration is undefined"); var isUsedBeforeDeclaration = !isDefinedBefore(declaration, errorLocation); if (!isUsedBeforeDeclaration) { var variableDeclaration = ts.getAncestor(declaration, 193); var container = ts.getEnclosingBlockScopeContainer(variableDeclaration); - if (variableDeclaration.parent.parent.kind === 175 || variableDeclaration.parent.parent.kind === 181) { + if (variableDeclaration.parent.parent.kind === 175 || + variableDeclaration.parent.parent.kind === 181) { isUsedBeforeDeclaration = isSameScopeDescendentOf(errorLocation, variableDeclaration, container); } - else if (variableDeclaration.parent.parent.kind === 183 || variableDeclaration.parent.parent.kind === 182) { + else if (variableDeclaration.parent.parent.kind === 183 || + variableDeclaration.parent.parent.kind === 182) { var expression = variableDeclaration.parent.parent.expression; isUsedBeforeDeclaration = isSameScopeDescendentOf(errorLocation, expression, container); } @@ -13001,12 +8356,15 @@ var ts; return false; } function isAliasSymbolDeclaration(node) { - return node.kind === 203 || node.kind === 205 && !!node.name || node.kind === 206 || node.kind === 208 || node.kind === 212 || node.kind === 209; + return node.kind === 203 || + node.kind === 205 && !!node.name || + node.kind === 206 || + node.kind === 208 || + node.kind === 212 || + node.kind === 209; } function getDeclarationOfAliasSymbol(symbol) { - return ts.forEach(symbol.declarations, function (d) { - return isAliasSymbolDeclaration(d) ? d : undefined; - }); + return ts.forEach(symbol.declarations, function (d) { return isAliasSymbolDeclaration(d) ? d : undefined; }); } function getTargetOfImportEqualsDeclaration(node) { if (node.moduleReference.kind === 213) { @@ -13032,11 +8390,11 @@ var ts; function getExternalModuleMember(node, specifier) { var moduleSymbol = resolveExternalModuleName(node, node.moduleSpecifier); if (moduleSymbol) { - var name = specifier.propertyName || specifier.name; - if (name.text) { - var symbol = getSymbol(getExportsOfSymbol(moduleSymbol), name.text, 107455 | 793056 | 1536); + var _name = specifier.propertyName || specifier.name; + if (_name.text) { + var symbol = getSymbol(getExportsOfSymbol(moduleSymbol), _name.text, 107455 | 793056 | 1536); if (!symbol) { - error(name, ts.Diagnostics.Module_0_has_no_exported_member_1, getFullyQualifiedName(moduleSymbol), ts.declarationNameToString(name)); + error(_name, ts.Diagnostics.Module_0_has_no_exported_member_1, getFullyQualifiedName(moduleSymbol), ts.declarationNameToString(_name)); return; } return symbol.flags & (107455 | 793056 | 1536) ? symbol : resolveAlias(symbol); @@ -13047,7 +8405,9 @@ var ts; return getExternalModuleMember(node.parent.parent.parent, node); } function getTargetOfExportSpecifier(node) { - return node.parent.parent.moduleSpecifier ? getExternalModuleMember(node.parent.parent, node) : resolveEntityName(node.propertyName || node.name, 107455 | 793056 | 1536); + return node.parent.parent.moduleSpecifier ? + getExternalModuleMember(node.parent.parent, node) : + resolveEntityName(node.propertyName || node.name, 107455 | 793056 | 1536); } function getTargetOfExportAssignment(node) { return resolveEntityName(node.expression, 107455 | 793056 | 1536); @@ -13133,8 +8493,9 @@ var ts; if (ts.getFullWidth(name) === 0) { return undefined; } + var symbol; if (name.kind === 64) { - var symbol = resolveName(name, name.text, meaning, ts.Diagnostics.Cannot_find_name_0, name); + symbol = resolveName(name, name.text, meaning, ts.Diagnostics.Cannot_find_name_0, name); if (!symbol) { return undefined; } @@ -13145,7 +8506,7 @@ var ts; return undefined; } var right = name.right; - var symbol = getSymbol(getExportsOfSymbol(namespace), right.text, meaning); + symbol = getSymbol(getExportsOfSymbol(namespace), right.text, meaning); if (!symbol) { error(right, ts.Diagnostics.Module_0_has_no_exported_member_1, getFullyQualifiedName(namespace), ts.declarationNameToString(right)); return undefined; @@ -13173,14 +8534,17 @@ var ts; return symbol; } } + var sourceFile; while (true) { var fileName = ts.normalizePath(ts.combinePaths(searchPath, moduleName)); - var sourceFile = host.getSourceFile(fileName + ".ts") || host.getSourceFile(fileName + ".d.ts"); - if (sourceFile || isRelative) + sourceFile = host.getSourceFile(fileName + ".ts") || host.getSourceFile(fileName + ".d.ts"); + if (sourceFile || isRelative) { break; + } var parentPath = ts.getDirectoryPath(searchPath); - if (parentPath === searchPath) + if (parentPath === searchPath) { break; + } searchPath = parentPath; } if (sourceFile) { @@ -13262,7 +8626,9 @@ var ts; return getMergedSymbol(symbol.parent); } function getExportSymbolOfValueSymbolIfExported(symbol) { - return symbol && (symbol.flags & 1048576) !== 0 ? getMergedSymbol(symbol.exportSymbol) : symbol; + return symbol && (symbol.flags & 1048576) !== 0 + ? getMergedSymbol(symbol.exportSymbol) + : symbol; } function symbolIsValue(symbol) { if (symbol.flags & 16777216) { @@ -13278,8 +8644,8 @@ var ts; } function findConstructorDeclaration(node) { var members = node.members; - for (var i = 0; i < members.length; i++) { - var member = members[i]; + for (var _i = 0, _n = members.length; _i < _n; _i++) { + var member = members[_i]; if (member.kind === 133 && ts.nodeIsPresent(member.body)) { return member; } @@ -13301,7 +8667,10 @@ var ts; return type; } function isReservedMemberName(name) { - return name.charCodeAt(0) === 95 && name.charCodeAt(1) === 95 && name.charCodeAt(2) !== 95 && name.charCodeAt(2) !== 64; + return name.charCodeAt(0) === 95 && + name.charCodeAt(1) === 95 && + name.charCodeAt(2) !== 95 && + name.charCodeAt(2) !== 64; } function getNamedMembers(members) { var result; @@ -13335,25 +8704,25 @@ var ts; } function forEachSymbolTableInScope(enclosingDeclaration, callback) { var result; - for (var location = enclosingDeclaration; location; location = location.parent) { - if (location.locals && !isGlobalSourceFile(location)) { - if (result = callback(location.locals)) { + for (var _location = enclosingDeclaration; _location; _location = _location.parent) { + if (_location.locals && !isGlobalSourceFile(_location)) { + if (result = callback(_location.locals)) { return result; } } - switch (location.kind) { + switch (_location.kind) { case 221: - if (!ts.isExternalModule(location)) { + if (!ts.isExternalModule(_location)) { break; } case 200: - if (result = callback(getSymbolOfNode(location).exports)) { + if (result = callback(getSymbolOfNode(_location).exports)) { return result; } break; case 196: case 197: - if (result = callback(getSymbolOfNode(location).members)) { + if (result = callback(getSymbolOfNode(_location).members)) { return result; } break; @@ -13375,28 +8744,24 @@ var ts; } function isAccessible(symbolFromSymbolTable, resolvedAliasSymbol) { if (symbol === (resolvedAliasSymbol || symbolFromSymbolTable)) { - return !ts.forEach(symbolFromSymbolTable.declarations, hasExternalModuleSymbol) && canQualifySymbol(symbolFromSymbolTable, meaning); + return !ts.forEach(symbolFromSymbolTable.declarations, hasExternalModuleSymbol) && + canQualifySymbol(symbolFromSymbolTable, meaning); } } if (isAccessible(ts.lookUp(symbols, symbol.name))) { - return [ - symbol - ]; + return [symbol]; } return ts.forEachValue(symbols, function (symbolFromSymbolTable) { if (symbolFromSymbolTable.flags & 8388608) { - if (!useOnlyExternalAliasing || ts.forEach(symbolFromSymbolTable.declarations, ts.isExternalModuleImportEqualsDeclaration)) { + if (!useOnlyExternalAliasing || + ts.forEach(symbolFromSymbolTable.declarations, ts.isExternalModuleImportEqualsDeclaration)) { var resolvedImportedSymbol = resolveAlias(symbolFromSymbolTable); if (isAccessible(symbolFromSymbolTable, resolveAlias(symbolFromSymbolTable))) { - return [ - symbolFromSymbolTable - ]; + return [symbolFromSymbolTable]; } var accessibleSymbolsFromExports = resolvedImportedSymbol.exports ? getAccessibleSymbolChainFromSymbolTable(resolvedImportedSymbol.exports) : undefined; if (accessibleSymbolsFromExports && canQualifySymbol(symbolFromSymbolTable, getQualifiedLeftMeaning(meaning))) { - return [ - symbolFromSymbolTable - ].concat(accessibleSymbolsFromExports); + return [symbolFromSymbolTable].concat(accessibleSymbolsFromExports); } } } @@ -13461,9 +8826,7 @@ var ts; errorSymbolName: symbolToString(initialSymbol, enclosingDeclaration, meaning) }; } - return { - accessibility: 0 - }; + return { accessibility: 0 }; function getExternalModuleContainer(declaration) { for (; declaration; declaration = declaration.parent) { if (hasExternalModuleSymbol(declaration)) { @@ -13473,22 +8836,20 @@ var ts; } } function hasExternalModuleSymbol(declaration) { - return (declaration.kind === 200 && declaration.name.kind === 8) || (declaration.kind === 221 && ts.isExternalModule(declaration)); + return (declaration.kind === 200 && declaration.name.kind === 8) || + (declaration.kind === 221 && ts.isExternalModule(declaration)); } function hasVisibleDeclarations(symbol) { var aliasesToMakeVisible; - if (ts.forEach(symbol.declarations, function (declaration) { - return !getIsDeclarationVisible(declaration); - })) { + if (ts.forEach(symbol.declarations, function (declaration) { return !getIsDeclarationVisible(declaration); })) { return undefined; } - return { - accessibility: 0, - aliasesToMakeVisible: aliasesToMakeVisible - }; + return { accessibility: 0, aliasesToMakeVisible: aliasesToMakeVisible }; function getIsDeclarationVisible(declaration) { if (!isDeclarationVisible(declaration)) { - if (declaration.kind === 203 && !(declaration.flags & 1) && isDeclarationVisible(declaration.parent)) { + if (declaration.kind === 203 && + !(declaration.flags & 1) && + isDeclarationVisible(declaration.parent)) { getNodeLinks(declaration).isVisible = true; if (aliasesToMakeVisible) { if (!ts.contains(aliasesToMakeVisible, declaration)) { @@ -13496,9 +8857,7 @@ var ts; } } else { - aliasesToMakeVisible = [ - declaration - ]; + aliasesToMakeVisible = [declaration]; } return true; } @@ -13512,7 +8871,8 @@ var ts; if (entityName.parent.kind === 142) { meaning = 107455 | 1048576; } - else if (entityName.kind === 125 || entityName.parent.kind === 203) { + else if (entityName.kind === 125 || + entityName.parent.kind === 203) { meaning = 1536; } else { @@ -13598,12 +8958,14 @@ var ts; function walkSymbol(symbol, meaning) { if (symbol) { var accessibleSymbolChain = getAccessibleSymbolChain(symbol, enclosingDeclaration, meaning, !!(flags & 2)); - if (!accessibleSymbolChain || needsQualification(accessibleSymbolChain[0], enclosingDeclaration, accessibleSymbolChain.length === 1 ? meaning : getQualifiedLeftMeaning(meaning))) { + if (!accessibleSymbolChain || + needsQualification(accessibleSymbolChain[0], enclosingDeclaration, accessibleSymbolChain.length === 1 ? meaning : getQualifiedLeftMeaning(meaning))) { walkSymbol(getParentOfSymbol(accessibleSymbolChain ? accessibleSymbolChain[0] : symbol), getQualifiedLeftMeaning(meaning)); } if (accessibleSymbolChain) { - for (var i = 0, n = accessibleSymbolChain.length; i < n; i++) { - appendParentTypeArgumentsAndSymbolName(accessibleSymbolChain[i]); + for (var _i = 0, _n = accessibleSymbolChain.length; _i < _n; _i++) { + var accessibleSymbol = accessibleSymbolChain[_i]; + appendParentTypeArgumentsAndSymbolName(accessibleSymbol); } } else { @@ -13630,7 +8992,8 @@ var ts; return writeType(type, globalFlags); function writeType(type, flags) { if (type.flags & 1048703) { - writer.writeKeyword(!(globalFlags & 16) && (type.flags & 1) ? "any" : type.intrinsicName); + writer.writeKeyword(!(globalFlags & 16) && + (type.flags & 1) ? "any" : type.intrinsicName); } else if (type.flags & 4096) { writeTypeReference(type, flags); @@ -13723,14 +9086,16 @@ var ts; } function shouldWriteTypeOfFunctionSymbol() { if (type.symbol) { - var isStaticMethodSymbol = !!(type.symbol.flags & 8192 && ts.forEach(type.symbol.declarations, function (declaration) { - return declaration.flags & 128; - })); - var isNonLocalFunctionSymbol = !!(type.symbol.flags & 16) && (type.symbol.parent || ts.forEach(type.symbol.declarations, function (declaration) { - return declaration.parent.kind === 221 || declaration.parent.kind === 201; - })); + var isStaticMethodSymbol = !!(type.symbol.flags & 8192 && + ts.forEach(type.symbol.declarations, function (declaration) { return declaration.flags & 128; })); + var isNonLocalFunctionSymbol = !!(type.symbol.flags & 16) && + (type.symbol.parent || + ts.forEach(type.symbol.declarations, function (declaration) { + return declaration.parent.kind === 221 || declaration.parent.kind === 201; + })); if (isStaticMethodSymbol || isNonLocalFunctionSymbol) { - return !!(flags & 2) || (typeStack && ts.contains(typeStack, type)); + return !!(flags & 2) || + (typeStack && ts.contains(typeStack, type)); } } } @@ -13782,15 +9147,17 @@ var ts; writePunctuation(writer, 14); writer.writeLine(); writer.increaseIndent(); - for (var i = 0; i < resolved.callSignatures.length; i++) { - buildSignatureDisplay(resolved.callSignatures[i], writer, enclosingDeclaration, globalFlagsToPass, typeStack); + for (var _i = 0, _a = resolved.callSignatures, _n = _a.length; _i < _n; _i++) { + var signature = _a[_i]; + buildSignatureDisplay(signature, writer, enclosingDeclaration, globalFlagsToPass, typeStack); writePunctuation(writer, 22); writer.writeLine(); } - for (var i = 0; i < resolved.constructSignatures.length; i++) { + for (var _b = 0, _c = resolved.constructSignatures, _d = _c.length; _b < _d; _b++) { + var _signature = _c[_b]; writeKeyword(writer, 87); writeSpace(writer); - buildSignatureDisplay(resolved.constructSignatures[i], writer, enclosingDeclaration, globalFlagsToPass, typeStack); + buildSignatureDisplay(_signature, writer, enclosingDeclaration, globalFlagsToPass, typeStack); writePunctuation(writer, 22); writer.writeLine(); } @@ -13820,17 +9187,18 @@ var ts; writePunctuation(writer, 22); writer.writeLine(); } - for (var i = 0; i < resolved.properties.length; i++) { - var p = resolved.properties[i]; + for (var _e = 0, _f = resolved.properties, _g = _f.length; _e < _g; _e++) { + var p = _f[_e]; var t = getTypeOfSymbol(p); if (p.flags & (16 | 8192) && !getPropertiesOfObjectType(t).length) { var signatures = getSignaturesOfType(t, 0); - for (var j = 0; j < signatures.length; j++) { + for (var _h = 0, _j = signatures.length; _h < _j; _h++) { + var _signature_1 = signatures[_h]; buildSymbolDisplay(p, writer); if (p.flags & 536870912) { writePunctuation(writer, 50); } - buildSignatureDisplay(signatures[j], writer, enclosingDeclaration, globalFlagsToPass, typeStack); + buildSignatureDisplay(_signature_1, writer, enclosingDeclaration, globalFlagsToPass, typeStack); writePunctuation(writer, 22); writer.writeLine(); } @@ -13968,10 +9336,11 @@ var ts; } function isUsedInExportAssignment(node) { var externalModule = getContainingExternalModule(node); + var exportAssignmentSymbol; + var resolvedExportSymbol; if (externalModule) { var externalModuleSymbol = getSymbolOfNode(externalModule); - var exportAssignmentSymbol = getExportAssignmentSymbol(externalModuleSymbol); - var resolvedExportSymbol; + exportAssignmentSymbol = getExportAssignmentSymbol(externalModuleSymbol); var symbolOfNode = getSymbolOfNode(node); if (isSymbolUsedInExportAssignment(symbolOfNode)) { return true; @@ -14011,11 +9380,12 @@ var ts; case 195: case 199: case 203: - var parent = getDeclarationContainer(node); - if (!(ts.getCombinedNodeFlags(node) & 1) && !(node.kind !== 203 && parent.kind !== 221 && ts.isInAmbientContext(parent))) { - return isGlobalSourceFile(parent) || isUsedInExportAssignment(node); + var _parent = getDeclarationContainer(node); + if (!(ts.getCombinedNodeFlags(node) & 1) && + !(node.kind !== 203 && _parent.kind !== 221 && ts.isInAmbientContext(_parent))) { + return isGlobalSourceFile(_parent) || isUsedInExportAssignment(node); } - return isDeclarationVisible(parent); + return isDeclarationVisible(_parent); case 130: case 129: case 134: @@ -14067,9 +9437,7 @@ var ts; } function getTypeOfPrototypeProperty(prototype) { var classType = getDeclaredTypeOfSymbol(prototype.parent); - return classType.typeParameters ? createTypeReference(classType, ts.map(classType.typeParameters, function (_) { - return anyType; - })) : classType; + return classType.typeParameters ? createTypeReference(classType, ts.map(classType.typeParameters, function (_) { return anyType; })) : classType; } function getTypeOfPropertyOfType(type, name) { var prop = getPropertyOfType(type, name); @@ -14087,11 +9455,14 @@ var ts; } return parentType; } + var type; if (pattern.kind === 148) { - var name = declaration.propertyName || declaration.name; - var type = getTypeOfPropertyOfType(parentType, name.text) || isNumericLiteralName(name.text) && getIndexTypeOfType(parentType, 1) || getIndexTypeOfType(parentType, 0); + var _name = declaration.propertyName || declaration.name; + type = getTypeOfPropertyOfType(parentType, _name.text) || + isNumericLiteralName(_name.text) && getIndexTypeOfType(parentType, 1) || + getIndexTypeOfType(parentType, 0); if (!type) { - error(name, ts.Diagnostics.Type_0_has_no_property_1_and_no_string_index_signature, typeToString(parentType), ts.declarationNameToString(name)); + error(_name, ts.Diagnostics.Type_0_has_no_property_1_and_no_string_index_signature, typeToString(parentType), ts.declarationNameToString(_name)); return unknownType; } } @@ -14102,7 +9473,7 @@ var ts; } if (!declaration.dotDotDotToken) { var propName = "" + ts.indexOf(pattern.elements, declaration); - var type = isTupleLikeType(parentType) ? getTypeOfPropertyOfType(parentType, propName) : getIndexTypeOfType(parentType, 1); + type = isTupleLikeType(parentType) ? getTypeOfPropertyOfType(parentType, propName) : getIndexTypeOfType(parentType, 1); if (!type) { if (isTupleType(parentType)) { error(declaration, ts.Diagnostics.Tuple_type_0_with_length_1_cannot_be_assigned_to_tuple_with_length_2, typeToString(parentType), parentType.elementTypes.length, pattern.elements.length); @@ -14114,7 +9485,7 @@ var ts; } } else { - var type = createArrayType(getIndexTypeOfType(parentType, 1)); + type = createArrayType(getIndexTypeOfType(parentType, 1)); } } return type; @@ -14166,8 +9537,8 @@ var ts; var members = {}; ts.forEach(pattern.elements, function (e) { var flags = 4 | 67108864 | (e.initializer ? 536870912 : 0); - var name = e.propertyName || e.name; - var symbol = createSymbol(flags, name.text); + var _name = e.propertyName || e.name; + var symbol = createSymbol(flags, _name.text); symbol.type = getTypeFromBindingElement(e); members[symbol.name] = symbol; }); @@ -14185,7 +9556,9 @@ var ts; return !elementTypes.length ? anyArrayType : hasSpreadElement ? createArrayType(getUnionType(elementTypes)) : createTupleType(elementTypes); } function getTypeFromBindingPattern(pattern) { - return pattern.kind === 148 ? getTypeFromObjectBindingPattern(pattern) : getTypeFromArrayBindingPattern(pattern); + return pattern.kind === 148 + ? getTypeFromObjectBindingPattern(pattern) + : getTypeFromArrayBindingPattern(pattern); } function getWidenedTypeForVariableLikeDeclaration(declaration, reportErrors) { var type = getTypeForVariableLikeDeclaration(declaration); @@ -14229,7 +9602,9 @@ var ts; else if (links.type === resolvingType) { links.type = anyType; if (compilerOptions.noImplicitAny) { - var diagnostic = symbol.valueDeclaration.type ? ts.Diagnostics._0_implicitly_has_type_any_because_it_is_referenced_directly_or_indirectly_in_its_own_type_annotation : ts.Diagnostics._0_implicitly_has_type_any_because_it_is_does_not_have_a_type_annotation_and_is_referenced_directly_or_indirectly_in_its_own_initializer; + var diagnostic = symbol.valueDeclaration.type ? + ts.Diagnostics._0_implicitly_has_type_any_because_it_is_referenced_directly_or_indirectly_in_its_own_type_annotation : + ts.Diagnostics._0_implicitly_has_type_any_because_it_is_does_not_have_a_type_annotation_and_is_referenced_directly_or_indirectly_in_its_own_initializer; error(symbol.valueDeclaration, diagnostic, symbolToString(symbol)); } } @@ -14290,8 +9665,8 @@ var ts; else if (links.type === resolvingType) { links.type = anyType; if (compilerOptions.noImplicitAny) { - var getter = ts.getDeclarationOfKind(symbol, 134); - error(getter, ts.Diagnostics._0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions, symbolToString(symbol)); + var _getter = ts.getDeclarationOfKind(symbol, 134); + error(_getter, ts.Diagnostics._0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions, symbolToString(symbol)); } } } @@ -14363,9 +9738,7 @@ var ts; ts.forEach(declaration.typeParameters, function (node) { var tp = getDeclaredTypeOfTypeParameter(getSymbolOfNode(node)); if (!result) { - result = [ - tp - ]; + result = [tp]; } else if (!ts.contains(result, tp)) { result.push(tp); @@ -14470,8 +9843,8 @@ var ts; } else if (links.declaredType === resolvingType) { links.declaredType = unknownType; - var declaration = ts.getDeclarationOfKind(symbol, 198); - error(declaration.name, ts.Diagnostics.Type_alias_0_circularly_references_itself, symbolToString(symbol)); + var _declaration = ts.getDeclarationOfKind(symbol, 198); + error(_declaration.name, ts.Diagnostics.Type_alias_0_circularly_references_itself, symbolToString(symbol)); } return links.declaredType; } @@ -14527,23 +9900,23 @@ var ts; } function createSymbolTable(symbols) { var result = {}; - for (var i = 0; i < symbols.length; i++) { - var symbol = symbols[i]; + for (var _i = 0, _n = symbols.length; _i < _n; _i++) { + var symbol = symbols[_i]; result[symbol.name] = symbol; } return result; } function createInstantiatedSymbolTable(symbols, mapper) { var result = {}; - for (var i = 0; i < symbols.length; i++) { - var symbol = symbols[i]; + for (var _i = 0, _n = symbols.length; _i < _n; _i++) { + var symbol = symbols[_i]; result[symbol.name] = instantiateSymbol(symbol, mapper); } return result; } function addInheritedMembers(symbols, baseSymbols) { - for (var i = 0; i < baseSymbols.length; i++) { - var s = baseSymbols[i]; + for (var _i = 0, _n = baseSymbols.length; _i < _n; _i++) { + var s = baseSymbols[_i]; if (!ts.hasProperty(symbols, s.name)) { symbols[s.name] = s; } @@ -14551,8 +9924,9 @@ var ts; } function addInheritedSignatures(signatures, baseSignatures) { if (baseSignatures) { - for (var i = 0; i < baseSignatures.length; i++) { - signatures.push(baseSignatures[i]); + for (var _i = 0, _n = baseSignatures.length; _i < _n; _i++) { + var signature = baseSignatures[_i]; + signatures.push(signature); } } } @@ -14611,15 +9985,14 @@ var ts; var baseType = classType.baseTypes[0]; var baseSignatures = getSignaturesOfType(getTypeOfSymbol(baseType.symbol), 1); return ts.map(baseSignatures, function (baseSignature) { - var signature = baseType.flags & 4096 ? getSignatureInstantiation(baseSignature, baseType.typeArguments) : cloneSignature(baseSignature); + var signature = baseType.flags & 4096 ? + getSignatureInstantiation(baseSignature, baseType.typeArguments) : cloneSignature(baseSignature); signature.typeParameters = classType.typeParameters; signature.resolvedReturnType = classType; return signature; }); } - return [ - createSignature(undefined, classType.typeParameters, emptyArray, classType, 0, false, false) - ]; + return [createSignature(undefined, classType.typeParameters, emptyArray, classType, 0, false, false)]; } function createTupleTypeMemberSymbols(memberTypes) { var members = {}; @@ -14648,17 +10021,16 @@ var ts; return true; } function getUnionSignatures(types, kind) { - var signatureLists = ts.map(types, function (t) { - return getSignaturesOfType(t, kind); - }); + var signatureLists = ts.map(types, function (t) { return getSignaturesOfType(t, kind); }); var signatures = signatureLists[0]; - for (var i = 0; i < signatures.length; i++) { - if (signatures[i].typeParameters) { + for (var _i = 0, _n = signatures.length; _i < _n; _i++) { + var signature = signatures[_i]; + if (signature.typeParameters) { return emptyArray; } } - for (var i = 1; i < signatureLists.length; i++) { - if (!signatureListsIdentical(signatures, signatureLists[i])) { + for (var _i_1 = 1; _i_1 < signatureLists.length; _i_1++) { + if (!signatureListsIdentical(signatures, signatureLists[_i_1])) { return emptyArray; } } @@ -14666,16 +10038,15 @@ var ts; for (var i = 0; i < result.length; i++) { var s = result[i]; s.resolvedReturnType = undefined; - s.unionSignatures = ts.map(signatureLists, function (signatures) { - return signatures[i]; - }); + s.unionSignatures = ts.map(signatureLists, function (signatures) { return signatures[i]; }); } return result; } function getUnionIndexType(types, kind) { var indexTypes = []; - for (var i = 0; i < types.length; i++) { - var indexType = getIndexTypeOfType(types[i], kind); + for (var _i = 0, _n = types.length; _i < _n; _i++) { + var type = types[_i]; + var indexType = getIndexTypeOfType(type, kind); if (!indexType) { return undefined; } @@ -14692,17 +10063,22 @@ var ts; } function resolveAnonymousTypeMembers(type) { var symbol = type.symbol; + var members; + var callSignatures; + var constructSignatures; + var stringIndexType; + var numberIndexType; if (symbol.flags & 2048) { - var members = symbol.members; - var callSignatures = getSignaturesOfSymbol(members["__call"]); - var constructSignatures = getSignaturesOfSymbol(members["__new"]); - var stringIndexType = getIndexTypeOfSymbol(symbol, 0); - var numberIndexType = getIndexTypeOfSymbol(symbol, 1); + members = symbol.members; + callSignatures = getSignaturesOfSymbol(members["__call"]); + constructSignatures = getSignaturesOfSymbol(members["__new"]); + stringIndexType = getIndexTypeOfSymbol(symbol, 0); + numberIndexType = getIndexTypeOfSymbol(symbol, 1); } else { - var members = emptySymbols; - var callSignatures = emptyArray; - var constructSignatures = emptyArray; + members = emptySymbols; + callSignatures = emptyArray; + constructSignatures = emptyArray; if (symbol.flags & 1952) { members = getExportsOfSymbol(symbol); } @@ -14720,8 +10096,8 @@ var ts; addInheritedMembers(members, getPropertiesOfObjectType(getTypeOfSymbol(classType.baseTypes[0].symbol))); } } - var stringIndexType = undefined; - var numberIndexType = (symbol.flags & 384) ? stringType : undefined; + stringIndexType = undefined; + numberIndexType = (symbol.flags & 384) ? stringType : undefined; } setObjectTypeMembers(type, members, callSignatures, constructSignatures, stringIndexType, numberIndexType); } @@ -14804,17 +10180,16 @@ var ts; function createUnionProperty(unionType, name) { var types = unionType.types; var props; - for (var i = 0; i < types.length; i++) { - var type = getApparentType(types[i]); + for (var _i = 0, _n = types.length; _i < _n; _i++) { + var current = types[_i]; + var type = getApparentType(current); if (type !== unknownType) { var prop = getPropertyOfType(type, name); if (!prop) { return undefined; } if (!props) { - props = [ - prop - ]; + props = [prop]; } else { props.push(prop); @@ -14823,12 +10198,12 @@ var ts; } var propTypes = []; var declarations = []; - for (var i = 0; i < props.length; i++) { - var prop = props[i]; - if (prop.declarations) { - declarations.push.apply(declarations, prop.declarations); + for (var _a = 0, _b = props.length; _a < _b; _a++) { + var _prop = props[_a]; + if (_prop.declarations) { + declarations.push.apply(declarations, _prop.declarations); } - propTypes.push(getTypeOfSymbol(prop)); + propTypes.push(getTypeOfSymbol(_prop)); } var result = createSymbol(4 | 67108864 | 268435456, name); result.unionType = unionType; @@ -14865,9 +10240,9 @@ var ts; } } if (resolved === anyFunctionType || resolved.callSignatures.length || resolved.constructSignatures.length) { - var symbol = getPropertyOfObjectType(globalFunctionType, name); - if (symbol) - return symbol; + var _symbol = getPropertyOfObjectType(globalFunctionType, name); + if (_symbol) + return _symbol; } return getPropertyOfObjectType(globalObjectType, name); } @@ -14904,17 +10279,18 @@ var ts; if (!node.moduleSpecifier) { return emptyArray; } - var module = resolveExternalModuleName(node, node.moduleSpecifier); - if (!module || !module.exports) { + var _module = resolveExternalModuleName(node, node.moduleSpecifier); + if (!_module || !_module.exports) { return emptyArray; } - return ts.mapToArray(getExportsOfModule(module)); + return ts.mapToArray(getExportsOfModule(_module)); } function getSignatureFromDeclaration(declaration) { var links = getNodeLinks(declaration); if (!links.resolvedSignature) { var classType = declaration.kind === 133 ? getDeclaredTypeOfClass(declaration.parent.symbol) : undefined; - var typeParameters = classType ? classType.typeParameters : declaration.typeParameters ? getTypeParametersFromDeclaration(declaration.typeParameters) : undefined; + var typeParameters = classType ? classType.typeParameters : + declaration.typeParameters ? getTypeParametersFromDeclaration(declaration.typeParameters) : undefined; var parameters = []; var hasStringLiterals = false; var minArgumentCount = -1; @@ -14987,14 +10363,15 @@ var ts; function getReturnTypeOfSignature(signature) { if (!signature.resolvedReturnType) { signature.resolvedReturnType = resolvingType; + var type; if (signature.target) { - var type = instantiateType(getReturnTypeOfSignature(signature.target), signature.mapper); + type = instantiateType(getReturnTypeOfSignature(signature.target), signature.mapper); } else if (signature.unionSignatures) { - var type = getUnionType(ts.map(signature.unionSignatures, getReturnTypeOfSignature)); + type = getUnionType(ts.map(signature.unionSignatures, getReturnTypeOfSignature)); } else { - var type = getReturnTypeFromBody(signature.declaration); + type = getReturnTypeFromBody(signature.declaration); } if (signature.resolvedReturnType === resolvingType) { signature.resolvedReturnType = type; @@ -15045,12 +10422,8 @@ var ts; var type = createObjectType(32768 | 65536); type.members = emptySymbols; type.properties = emptyArray; - type.callSignatures = !isConstructor ? [ - signature - ] : emptyArray; - type.constructSignatures = isConstructor ? [ - signature - ] : emptyArray; + type.callSignatures = !isConstructor ? [signature] : emptyArray; + type.constructSignatures = isConstructor ? [signature] : emptyArray; signature.isolatedSignatureType = type; } return signature.isolatedSignatureType; @@ -15063,8 +10436,9 @@ var ts; var indexSymbol = getIndexSymbol(symbol); if (indexSymbol) { var len = indexSymbol.declarations.length; - for (var i = 0; i < len; i++) { - var node = indexSymbol.declarations[i]; + for (var _i = 0, _a = indexSymbol.declarations, _n = _a.length; _i < _n; _i++) { + var decl = _a[_i]; + var node = decl; if (node.parameters.length === 1) { var parameter = node.parameters[0]; if (parameter && parameter.type && parameter.type.kind === syntaxKind) { @@ -15077,7 +10451,9 @@ var ts; } function getIndexTypeOfSymbol(symbol, kind) { var declaration = getIndexDeclarationOfSymbol(symbol, kind); - return declaration ? declaration.type ? getTypeFromTypeNode(declaration.type) : anyType : undefined; + return declaration + ? declaration.type ? getTypeFromTypeNode(declaration.type) : anyType + : undefined; } function getConstraintOfTypeParameter(type) { if (!type.constraint) { @@ -15100,8 +10476,9 @@ var ts; default: var result = ""; for (var i = 0; i < types.length; i++) { - if (i > 0) + if (i > 0) { result += ","; + } result += types[i].id; } return result; @@ -15109,8 +10486,9 @@ var ts; } function getWideningFlagsOfTypes(types) { var result = 0; - for (var i = 0; i < types.length; i++) { - result |= types[i].flags; + for (var _i = 0, _n = types.length; _i < _n; _i++) { + var type = types[_i]; + result |= type.flags; } return result & 786432; } @@ -15131,9 +10509,7 @@ var ts; return links.isIllegalTypeReferenceInConstraint; } var currentNode = typeReferenceNode; - while (!ts.forEach(typeParameterSymbol.declarations, function (d) { - return d.parent === currentNode.parent; - })) { + while (!ts.forEach(typeParameterSymbol.declarations, function (d) { return d.parent === currentNode.parent; })) { currentNode = currentNode.parent; } links.isIllegalTypeReferenceInConstraint = currentNode.kind === 127; @@ -15147,9 +10523,7 @@ var ts; if (links.isIllegalTypeReferenceInConstraint === undefined) { var symbol = resolveName(typeParameter, n.typeName.text, 793056, undefined, undefined); if (symbol && (symbol.flags & 262144)) { - links.isIllegalTypeReferenceInConstraint = ts.forEach(symbol.declarations, function (d) { - return d.parent == typeParameter.parent; - }); + links.isIllegalTypeReferenceInConstraint = ts.forEach(symbol.declarations, function (d) { return d.parent == typeParameter.parent; }); } } if (links.isIllegalTypeReferenceInConstraint) { @@ -15167,8 +10541,8 @@ var ts; var links = getNodeLinks(node); if (!links.resolvedType) { var symbol = resolveEntityName(node.typeName, 793056); + var type; if (symbol) { - var type; if ((symbol.flags & 262144) && isTypeParameterReferenceIllegalInConstraint(node, symbol)) { type = unknownType; } @@ -15206,8 +10580,8 @@ var ts; function getTypeOfGlobalSymbol(symbol, arity) { function getTypeDeclaration(symbol) { var declarations = symbol.declarations; - for (var i = 0; i < declarations.length; i++) { - var declaration = declarations[i]; + for (var _i = 0, _n = declarations.length; _i < _n; _i++) { + var declaration = declarations[_i]; switch (declaration.kind) { case 196: case 197: @@ -15248,9 +10622,7 @@ var ts; } function createArrayType(elementType) { var arrayType = globalArrayType || getDeclaredTypeOfSymbol(globalArraySymbol); - return arrayType !== emptyObjectType ? createTypeReference(arrayType, [ - elementType - ]) : emptyObjectType; + return arrayType !== emptyObjectType ? createTypeReference(arrayType, [elementType]) : emptyObjectType; } function getTypeFromArrayTypeNode(node) { var links = getNodeLinks(node); @@ -15291,13 +10663,15 @@ var ts; } } function addTypesToSortedSet(sortedTypes, types) { - for (var i = 0, len = types.length; i < len; i++) { - addTypeToSortedSet(sortedTypes, types[i]); + for (var _i = 0, _n = types.length; _i < _n; _i++) { + var type = types[_i]; + addTypeToSortedSet(sortedTypes, type); } } function isSubtypeOfAny(candidate, types) { - for (var i = 0, len = types.length; i < len; i++) { - if (candidate !== types[i] && isTypeSubtypeOf(candidate, types[i])) { + for (var _i = 0, _n = types.length; _i < _n; _i++) { + var type = types[_i]; + if (candidate !== type && isTypeSubtypeOf(candidate, type)) { return true; } } @@ -15313,8 +10687,9 @@ var ts; } } function containsAnyType(types) { - for (var i = 0; i < types.length; i++) { - if (types[i].flags & 1) { + for (var _i = 0, _n = types.length; _i < _n; _i++) { + var type = types[_i]; + if (type.flags & 1) { return true; } } @@ -15428,59 +10803,51 @@ var ts; function instantiateList(items, mapper, instantiator) { if (items && items.length) { var result = []; - for (var i = 0; i < items.length; i++) { - result.push(instantiator(items[i], mapper)); + for (var _i = 0, _n = items.length; _i < _n; _i++) { + var v = items[_i]; + result.push(instantiator(v, mapper)); } return result; } return items; } function createUnaryTypeMapper(source, target) { - return function (t) { - return t === source ? target : t; - }; + return function (t) { return t === source ? target : t; }; } function createBinaryTypeMapper(source1, target1, source2, target2) { - return function (t) { - return t === source1 ? target1 : t === source2 ? target2 : t; - }; + return function (t) { return t === source1 ? target1 : t === source2 ? target2 : t; }; } function createTypeMapper(sources, targets) { switch (sources.length) { - case 1: - return createUnaryTypeMapper(sources[0], targets[0]); - case 2: - return createBinaryTypeMapper(sources[0], targets[0], sources[1], targets[1]); + case 1: return createUnaryTypeMapper(sources[0], targets[0]); + case 2: return createBinaryTypeMapper(sources[0], targets[0], sources[1], targets[1]); } return function (t) { for (var i = 0; i < sources.length; i++) { - if (t === sources[i]) + if (t === sources[i]) { return targets[i]; + } } return t; }; } function createUnaryTypeEraser(source) { - return function (t) { - return t === source ? anyType : t; - }; + return function (t) { return t === source ? anyType : t; }; } function createBinaryTypeEraser(source1, source2) { - return function (t) { - return t === source1 || t === source2 ? anyType : t; - }; + return function (t) { return t === source1 || t === source2 ? anyType : t; }; } function createTypeEraser(sources) { switch (sources.length) { - case 1: - return createUnaryTypeEraser(sources[0]); - case 2: - return createBinaryTypeEraser(sources[0], sources[1]); + case 1: return createUnaryTypeEraser(sources[0]); + case 2: return createBinaryTypeEraser(sources[0], sources[1]); } return function (t) { - for (var i = 0; i < sources.length; i++) { - if (t === sources[i]) + for (var _i = 0, _n = sources.length; _i < _n; _i++) { + var source = sources[_i]; + if (t === source) { return anyType; + } } return t; }; @@ -15499,9 +10866,7 @@ var ts; return type; } function combineTypeMappers(mapper1, mapper2) { - return function (t) { - return mapper2(mapper1(t)); - }; + return function (t) { return mapper2(mapper1(t)); }; } function instantiateTypeParameter(typeParameter, mapper) { var result = createType(512); @@ -15516,8 +10881,9 @@ var ts; return result; } function instantiateSignature(signature, mapper, eraseTypeParameters) { + var freshTypeParameters; if (signature.typeParameters && !eraseTypeParameters) { - var freshTypeParameters = instantiateList(signature.typeParameters, mapper, instantiateTypeParameter); + freshTypeParameters = instantiateList(signature.typeParameters, mapper, instantiateTypeParameter); mapper = combineTypeMappers(createTypeMapper(signature.typeParameters, freshTypeParameters), mapper); } var result = createSignature(signature.declaration, freshTypeParameters, instantiateList(signature.parameters, mapper, instantiateSymbol), signature.resolvedReturnType ? instantiateType(signature.resolvedReturnType, mapper) : undefined, signature.minArgumentCount, signature.hasRestParameter, signature.hasStringLiterals); @@ -15561,7 +10927,8 @@ var ts; return mapper(type); } if (type.flags & 32768) { - return type.symbol && type.symbol.flags & (16 | 8192 | 2048 | 4096) ? instantiateAnonymousType(type, mapper) : type; + return type.symbol && type.symbol.flags & (16 | 8192 | 2048 | 4096) ? + instantiateAnonymousType(type, mapper) : type; } if (type.flags & 4096) { return createTypeReference(type.target, instantiateList(type.typeArguments, mapper, instantiateType)); @@ -15586,9 +10953,11 @@ var ts; case 151: return ts.forEach(node.elements, isContextSensitive); case 168: - return isContextSensitive(node.whenTrue) || isContextSensitive(node.whenFalse); + return isContextSensitive(node.whenTrue) || + isContextSensitive(node.whenFalse); case 167: - return node.operatorToken.kind === 49 && (isContextSensitive(node.left) || isContextSensitive(node.right)); + return node.operatorToken.kind === 49 && + (isContextSensitive(node.left) || isContextSensitive(node.right)); case 218: return isContextSensitive(node.initializer); case 132: @@ -15600,9 +10969,7 @@ var ts; return false; } function isContextSensitiveFunctionLikeDeclaration(node) { - return !node.typeParameters && node.parameters.length && !ts.forEach(node.parameters, function (p) { - return p.type; - }); + return !node.typeParameters && node.parameters.length && !ts.forEach(node.parameters, function (p) { return p.type; }); } function getTypeWithoutConstructors(type) { if (type.flags & 48128) { @@ -15673,7 +11040,7 @@ var ts; } function isRelatedTo(source, target, reportErrors, headMessage, elaborateErrors) { if (elaborateErrors === void 0) { elaborateErrors = false; } - var result; + var _result; if (source === target) return -1; if (relation !== identityRelation) { @@ -15697,53 +11064,54 @@ var ts; if (source.flags & 16384 || target.flags & 16384) { if (relation === identityRelation) { if (source.flags & 16384 && target.flags & 16384) { - if (result = unionTypeRelatedToUnionType(source, target)) { - if (result &= unionTypeRelatedToUnionType(target, source)) { - return result; + if (_result = unionTypeRelatedToUnionType(source, target)) { + if (_result &= unionTypeRelatedToUnionType(target, source)) { + return _result; } } } else if (source.flags & 16384) { - if (result = unionTypeRelatedToType(source, target, reportErrors)) { - return result; + if (_result = unionTypeRelatedToType(source, target, reportErrors)) { + return _result; } } else { - if (result = unionTypeRelatedToType(target, source, reportErrors)) { - return result; + if (_result = unionTypeRelatedToType(target, source, reportErrors)) { + return _result; } } } else { if (source.flags & 16384) { - if (result = unionTypeRelatedToType(source, target, reportErrors)) { - return result; + if (_result = unionTypeRelatedToType(source, target, reportErrors)) { + return _result; } } else { - if (result = typeRelatedToUnionType(source, target, reportErrors)) { - return result; + if (_result = typeRelatedToUnionType(source, target, reportErrors)) { + return _result; } } } } else if (source.flags & 512 && target.flags & 512) { - if (result = typeParameterRelatedTo(source, target, reportErrors)) { - return result; + if (_result = typeParameterRelatedTo(source, target, reportErrors)) { + return _result; } } else { var saveErrorInfo = errorInfo; if (source.flags & 4096 && target.flags & 4096 && source.target === target.target) { - if (result = typesRelatedTo(source.typeArguments, target.typeArguments, reportErrors)) { - return result; + if (_result = typesRelatedTo(source.typeArguments, target.typeArguments, reportErrors)) { + return _result; } } var reportStructuralErrors = reportErrors && errorInfo === saveErrorInfo; var sourceOrApparentType = relation === identityRelation ? source : getApparentType(source); - if (sourceOrApparentType.flags & 48128 && target.flags & 48128 && (result = objectTypeRelatedTo(sourceOrApparentType, target, reportStructuralErrors, elaborateErrors))) { + if (sourceOrApparentType.flags & 48128 && target.flags & 48128 && + (_result = objectTypeRelatedTo(sourceOrApparentType, target, reportStructuralErrors, elaborateErrors))) { errorInfo = saveErrorInfo; - return result; + return _result; } } if (reportErrors) { @@ -15759,16 +11127,17 @@ var ts; return 0; } function unionTypeRelatedToUnionType(source, target) { - var result = -1; + var _result = -1; var sourceTypes = source.types; - for (var i = 0, len = sourceTypes.length; i < len; i++) { - var related = typeRelatedToUnionType(sourceTypes[i], target, false); + for (var _i = 0, _n = sourceTypes.length; _i < _n; _i++) { + var sourceType = sourceTypes[_i]; + var related = typeRelatedToUnionType(sourceType, target, false); if (!related) { return 0; } - result &= related; + _result &= related; } - return result; + return _result; } function typeRelatedToUnionType(source, target, reportErrors) { var targetTypes = target.types; @@ -15781,27 +11150,28 @@ var ts; return 0; } function unionTypeRelatedToType(source, target, reportErrors) { - var result = -1; + var _result = -1; var sourceTypes = source.types; - for (var i = 0, len = sourceTypes.length; i < len; i++) { - var related = isRelatedTo(sourceTypes[i], target, reportErrors); + for (var _i = 0, _n = sourceTypes.length; _i < _n; _i++) { + var sourceType = sourceTypes[_i]; + var related = isRelatedTo(sourceType, target, reportErrors); if (!related) { return 0; } - result &= related; + _result &= related; } - return result; + return _result; } function typesRelatedTo(sources, targets, reportErrors) { - var result = -1; + var _result = -1; for (var i = 0, len = sources.length; i < len; i++) { var related = isRelatedTo(sources[i], targets[i], reportErrors); if (!related) { return 0; } - result &= related; + _result &= related; } - return result; + return _result; } function typeParameterRelatedTo(source, target, reportErrors) { if (relation === identityRelation) { @@ -15867,19 +11237,20 @@ var ts; expandingFlags |= 1; if (!(expandingFlags & 2) && isDeeplyNestedGeneric(target, targetStack)) expandingFlags |= 2; + var _result; if (expandingFlags === 3) { - var result = 1; + _result = 1; } else { - var result = propertiesRelatedTo(source, target, reportErrors); - if (result) { - result &= signaturesRelatedTo(source, target, 0, reportErrors); - if (result) { - result &= signaturesRelatedTo(source, target, 1, reportErrors); - if (result) { - result &= stringIndexTypesRelatedTo(source, target, reportErrors); - if (result) { - result &= numberIndexTypesRelatedTo(source, target, reportErrors); + _result = propertiesRelatedTo(source, target, reportErrors); + if (_result) { + _result &= signaturesRelatedTo(source, target, 0, reportErrors); + if (_result) { + _result &= signaturesRelatedTo(source, target, 1, reportErrors); + if (_result) { + _result &= stringIndexTypesRelatedTo(source, target, reportErrors); + if (_result) { + _result &= numberIndexTypesRelatedTo(source, target, reportErrors); } } } @@ -15887,23 +11258,23 @@ var ts; } expandingFlags = saveExpandingFlags; depth--; - if (result) { + if (_result) { var maybeCache = maybeStack[depth]; - var destinationCache = (result === -1 || depth === 0) ? relation : maybeStack[depth - 1]; + var destinationCache = (_result === -1 || depth === 0) ? relation : maybeStack[depth - 1]; ts.copyMap(maybeCache, destinationCache); } else { relation[id] = reportErrors ? 3 : 2; } - return result; + return _result; } function isDeeplyNestedGeneric(type, stack) { if (type.flags & 4096 && depth >= 10) { - var target = type.target; + var _target = type.target; var count = 0; for (var i = 0; i < depth; i++) { var t = stack[i]; - if (t.flags & 4096 && t.target === target) { + if (t.flags & 4096 && t.target === _target) { count++; if (count >= 10) return true; @@ -15916,11 +11287,11 @@ var ts; if (relation === identityRelation) { return propertiesIdenticalTo(source, target); } - var result = -1; + var _result = -1; var properties = getPropertiesOfObjectType(target); var requireOptionalProperties = relation === subtypeRelation && !(source.flags & 131072); - for (var i = 0; i < properties.length; i++) { - var targetProp = properties[i]; + for (var _i = 0, _n = properties.length; _i < _n; _i++) { + var targetProp = properties[_i]; var sourceProp = getPropertyOfType(source, targetProp.name); if (sourceProp !== targetProp) { if (!sourceProp) { @@ -15971,7 +11342,7 @@ var ts; } return 0; } - result &= related; + _result &= related; if (sourceProp.flags & 536870912 && !(targetProp.flags & 536870912)) { if (reportErrors) { reportError(ts.Diagnostics.Property_0_is_optional_in_type_1_but_required_in_type_2, symbolToString(targetProp), typeToString(source), typeToString(target)); @@ -15981,7 +11352,7 @@ var ts; } } } - return result; + return _result; } function propertiesIdenticalTo(source, target) { var sourceProperties = getPropertiesOfObjectType(source); @@ -15989,9 +11360,9 @@ var ts; if (sourceProperties.length !== targetProperties.length) { return 0; } - var result = -1; - for (var i = 0, len = sourceProperties.length; i < len; ++i) { - var sourceProp = sourceProperties[i]; + var _result = -1; + for (var _i = 0, _n = sourceProperties.length; _i < _n; _i++) { + var sourceProp = sourceProperties[_i]; var targetProp = getPropertyOfObjectType(target, sourceProp.name); if (!targetProp) { return 0; @@ -16000,9 +11371,9 @@ var ts; if (!related) { return 0; } - result &= related; + _result &= related; } - return result; + return _result; } function signaturesRelatedTo(source, target, kind, reportErrors) { if (relation === identityRelation) { @@ -16013,18 +11384,18 @@ var ts; } var sourceSignatures = getSignaturesOfType(source, kind); var targetSignatures = getSignaturesOfType(target, kind); - var result = -1; + var _result = -1; var saveErrorInfo = errorInfo; - outer: for (var i = 0; i < targetSignatures.length; i++) { - var t = targetSignatures[i]; + outer: for (var _i = 0, _n = targetSignatures.length; _i < _n; _i++) { + var t = targetSignatures[_i]; if (!t.hasStringLiterals || target.flags & 65536) { var localErrors = reportErrors; - for (var j = 0; j < sourceSignatures.length; j++) { - var s = sourceSignatures[j]; + for (var _a = 0, _b = sourceSignatures.length; _a < _b; _a++) { + var s = sourceSignatures[_a]; if (!s.hasStringLiterals || source.flags & 65536) { var related = signatureRelatedTo(s, t, localErrors); if (related) { - result &= related; + _result &= related; errorInfo = saveErrorInfo; continue outer; } @@ -16034,7 +11405,7 @@ var ts; return 0; } } - return result; + return _result; } function signatureRelatedTo(source, target, reportErrors) { if (source === target) { @@ -16064,14 +11435,14 @@ var ts; } source = getErasedSignature(source); target = getErasedSignature(target); - var result = -1; + var _result = -1; for (var i = 0; i < checkCount; i++) { - var s = i < sourceMax ? getTypeOfSymbol(source.parameters[i]) : getRestTypeOfSignature(source); - var t = i < targetMax ? getTypeOfSymbol(target.parameters[i]) : getRestTypeOfSignature(target); + var _s = i < sourceMax ? getTypeOfSymbol(source.parameters[i]) : getRestTypeOfSignature(source); + var _t = i < targetMax ? getTypeOfSymbol(target.parameters[i]) : getRestTypeOfSignature(target); var saveErrorInfo = errorInfo; - var related = isRelatedTo(s, t, reportErrors); + var related = isRelatedTo(_s, _t, reportErrors); if (!related) { - related = isRelatedTo(t, s, false); + related = isRelatedTo(_t, _s, false); if (!related) { if (reportErrors) { reportError(ts.Diagnostics.Types_of_parameters_0_and_1_are_incompatible, source.parameters[i < sourceMax ? i : sourceMax].name, target.parameters[i < targetMax ? i : targetMax].name); @@ -16080,13 +11451,13 @@ var ts; } errorInfo = saveErrorInfo; } - result &= related; + _result &= related; } var t = getReturnTypeOfSignature(target); if (t === voidType) - return result; + return _result; var s = getReturnTypeOfSignature(source); - return result & isRelatedTo(s, t, reportErrors); + return _result & isRelatedTo(s, t, reportErrors); } function signaturesIdenticalTo(source, target, kind) { var sourceSignatures = getSignaturesOfType(source, kind); @@ -16094,15 +11465,15 @@ var ts; if (sourceSignatures.length !== targetSignatures.length) { return 0; } - var result = -1; + var _result = -1; for (var i = 0, len = sourceSignatures.length; i < len; ++i) { var related = compareSignatures(sourceSignatures[i], targetSignatures[i], true, isRelatedTo); if (!related) { return 0; } - result &= related; + _result &= related; } - return result; + return _result; } function stringIndexTypesRelatedTo(source, target, reportErrors) { if (relation === identityRelation) { @@ -16142,11 +11513,12 @@ var ts; } return 0; } + var related; if (sourceStringType && sourceNumberType) { - var related = isRelatedTo(sourceStringType, targetType, false) || isRelatedTo(sourceNumberType, targetType, reportErrors); + related = isRelatedTo(sourceStringType, targetType, false) || isRelatedTo(sourceNumberType, targetType, reportErrors); } else { - var related = isRelatedTo(sourceStringType || sourceNumberType, targetType, reportErrors); + related = isRelatedTo(sourceStringType || sourceNumberType, targetType, reportErrors); } if (!related) { if (reportErrors) { @@ -16198,7 +11570,9 @@ var ts; if (source === target) { return -1; } - if (source.parameters.length !== target.parameters.length || source.minArgumentCount !== target.minArgumentCount || source.hasRestParameter !== target.hasRestParameter) { + if (source.parameters.length !== target.parameters.length || + source.minArgumentCount !== target.minArgumentCount || + source.hasRestParameter !== target.hasRestParameter) { return 0; } var result = -1; @@ -16219,14 +11593,14 @@ var ts; } source = getErasedSignature(source); target = getErasedSignature(target); - for (var i = 0, len = source.parameters.length; i < len; i++) { - var s = source.hasRestParameter && i === len - 1 ? getRestTypeOfSignature(source) : getTypeOfSymbol(source.parameters[i]); - var t = target.hasRestParameter && i === len - 1 ? getRestTypeOfSignature(target) : getTypeOfSymbol(target.parameters[i]); - var related = compareTypes(s, t); - if (!related) { + for (var _i = 0, _len = source.parameters.length; _i < _len; _i++) { + var s = source.hasRestParameter && _i === _len - 1 ? getRestTypeOfSignature(source) : getTypeOfSymbol(source.parameters[_i]); + var t = target.hasRestParameter && _i === _len - 1 ? getRestTypeOfSignature(target) : getTypeOfSymbol(target.parameters[_i]); + var _related = compareTypes(s, t); + if (!_related) { return 0; } - result &= related; + result &= _related; } if (compareReturnTypes) { result &= compareTypes(getReturnTypeOfSignature(source), getReturnTypeOfSignature(target)); @@ -16234,16 +11608,15 @@ var ts; return result; } function isSupertypeOfEach(candidate, types) { - for (var i = 0, len = types.length; i < len; i++) { - if (candidate !== types[i] && !isTypeSubtypeOf(types[i], candidate)) + for (var _i = 0, _n = types.length; _i < _n; _i++) { + var type = types[_i]; + if (candidate !== type && !isTypeSubtypeOf(type, candidate)) return false; } return true; } function getCommonSupertype(types) { - return ts.forEach(types, function (t) { - return isSupertypeOfEach(t, types) ? t : undefined; - }); + return ts.forEach(types, function (t) { return isSupertypeOfEach(t, types) ? t : undefined; }); } function reportNoCommonSupertypeError(types, errorLocation, errorMessageChainHead) { var bestSupertype; @@ -16340,29 +11713,32 @@ var ts; return reportWideningErrorsInType(type.typeArguments[0]); } if (type.flags & 131072) { - var errorReported = false; + var _errorReported = false; ts.forEach(getPropertiesOfObjectType(type), function (p) { var t = getTypeOfSymbol(p); if (t.flags & 262144) { if (!reportWideningErrorsInType(t)) { error(p.valueDeclaration, ts.Diagnostics.Object_literal_s_property_0_implicitly_has_an_1_type, p.name, typeToString(getWidenedType(t))); } - errorReported = true; + _errorReported = true; } }); - return errorReported; + return _errorReported; } return false; } function reportImplicitAnyError(declaration, type) { var typeAsString = typeToString(getWidenedType(type)); + var diagnostic; switch (declaration.kind) { case 130: case 129: - var diagnostic = ts.Diagnostics.Member_0_implicitly_has_an_1_type; + diagnostic = ts.Diagnostics.Member_0_implicitly_has_an_1_type; break; case 128: - var diagnostic = declaration.dotDotDotToken ? ts.Diagnostics.Rest_parameter_0_implicitly_has_an_any_type : ts.Diagnostics.Parameter_0_implicitly_has_an_1_type; + diagnostic = declaration.dotDotDotToken ? + ts.Diagnostics.Rest_parameter_0_implicitly_has_an_any_type : + ts.Diagnostics.Parameter_0_implicitly_has_an_1_type; break; case 195: case 132: @@ -16375,10 +11751,10 @@ var ts; error(declaration, ts.Diagnostics.Function_expression_which_lacks_return_type_annotation_implicitly_has_an_0_return_type, typeAsString); return; } - var diagnostic = ts.Diagnostics._0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type; + diagnostic = ts.Diagnostics._0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type; break; default: - var diagnostic = ts.Diagnostics.Variable_0_implicitly_has_an_1_type; + diagnostic = ts.Diagnostics.Variable_0_implicitly_has_an_1_type; } error(declaration, diagnostic, ts.declarationNameToString(declaration.name), typeAsString); } @@ -16417,11 +11793,9 @@ var ts; } function createInferenceContext(typeParameters, inferUnionTypes) { var inferences = []; - for (var i = 0; i < typeParameters.length; i++) { - inferences.push({ - primary: undefined, - secondary: undefined - }); + for (var _i = 0, _n = typeParameters.length; _i < _n; _i++) { + var unused = typeParameters[_i]; + inferences.push({ primary: undefined, secondary: undefined }); } return { typeParameters: typeParameters, @@ -16439,19 +11813,21 @@ var ts; inferFromTypes(source, target); function isInProcess(source, target) { for (var i = 0; i < depth; i++) { - if (source === sourceStack[i] && target === targetStack[i]) + if (source === sourceStack[i] && target === targetStack[i]) { return true; + } } return false; } function isWithinDepthLimit(type, stack) { if (depth >= 5) { - var target = type.target; + var _target = type.target; var count = 0; for (var i = 0; i < depth; i++) { var t = stack[i]; - if (t.flags & 4096 && t.target === target) + if (t.flags & 4096 && t.target === _target) { count++; + } } return count < 5; } @@ -16466,7 +11842,9 @@ var ts; for (var i = 0; i < typeParameters.length; i++) { if (target === typeParameters[i]) { var inferences = context.inferences[i]; - var candidates = inferiority ? inferences.secondary || (inferences.secondary = []) : inferences.primary || (inferences.primary = []); + var candidates = inferiority ? + inferences.secondary || (inferences.secondary = []) : + inferences.primary || (inferences.primary = []); if (!ts.contains(candidates, source)) candidates.push(source); break; @@ -16476,16 +11854,16 @@ var ts; else if (source.flags & 4096 && target.flags & 4096 && source.target === target.target) { var sourceTypes = source.typeArguments; var targetTypes = target.typeArguments; - for (var i = 0; i < sourceTypes.length; i++) { - inferFromTypes(sourceTypes[i], targetTypes[i]); + for (var _i = 0; _i < sourceTypes.length; _i++) { + inferFromTypes(sourceTypes[_i], targetTypes[_i]); } } else if (target.flags & 16384) { - var targetTypes = target.types; + var _targetTypes = target.types; var typeParameterCount = 0; var typeParameter; - for (var i = 0; i < targetTypes.length; i++) { - var t = targetTypes[i]; + for (var _a = 0, _n = _targetTypes.length; _a < _n; _a++) { + var t = _targetTypes[_a]; if (t.flags & 512 && ts.contains(context.typeParameters, t)) { typeParameter = t; typeParameterCount++; @@ -16501,12 +11879,14 @@ var ts; } } else if (source.flags & 16384) { - var sourceTypes = source.types; - for (var i = 0; i < sourceTypes.length; i++) { - inferFromTypes(sourceTypes[i], target); + var _sourceTypes = source.types; + for (var _b = 0, _c = _sourceTypes.length; _b < _c; _b++) { + var sourceType = _sourceTypes[_b]; + inferFromTypes(sourceType, target); } } - else if (source.flags & 48128 && (target.flags & (4096 | 8192) || (target.flags & 32768) && target.symbol && target.symbol.flags & (8192 | 2048))) { + else if (source.flags & 48128 && (target.flags & (4096 | 8192) || + (target.flags & 32768) && target.symbol && target.symbol.flags & (8192 | 2048))) { if (!isInProcess(source, target) && isWithinDepthLimit(source, sourceStack) && isWithinDepthLimit(target, targetStack)) { if (depth === 0) { sourceStack = []; @@ -16527,8 +11907,8 @@ var ts; } function inferFromProperties(source, target) { var properties = getPropertiesOfObjectType(target); - for (var i = 0; i < properties.length; i++) { - var targetProp = properties[i]; + for (var _i = 0, _n = properties.length; _i < _n; _i++) { + var targetProp = properties[_i]; var sourceProp = getPropertyOfObjectType(source, targetProp.name); if (sourceProp) { inferFromTypes(getTypeOfSymbol(sourceProp), getTypeOfSymbol(targetProp)); @@ -16616,12 +11996,8 @@ var ts; function removeTypesFromUnionType(type, typeKind, isOfTypeKind, allowEmptyUnionResult) { if (type.flags & 16384) { var types = type.types; - if (ts.forEach(types, function (t) { - return !!(t.flags & typeKind) === isOfTypeKind; - })) { - var narrowedType = getUnionType(ts.filter(types, function (t) { - return !(t.flags & typeKind) === isOfTypeKind; - })); + if (ts.forEach(types, function (t) { return !!(t.flags & typeKind) === isOfTypeKind; })) { + var narrowedType = getUnionType(ts.filter(types, function (t) { return !(t.flags & typeKind) === isOfTypeKind; })); if (allowEmptyUnionResult || narrowedType !== emptyObjectType) { return narrowedType; } @@ -16714,14 +12090,13 @@ var ts; } function resolveLocation(node) { var containerNodes = []; - for (var parent = node.parent; parent; parent = parent.parent) { - if ((ts.isExpression(parent) || ts.isObjectLiteralMethod(node)) && isContextSensitive(parent)) { - containerNodes.unshift(parent); + for (var _parent = node.parent; _parent; _parent = _parent.parent) { + if ((ts.isExpression(_parent) || ts.isObjectLiteralMethod(node)) && + isContextSensitive(_parent)) { + containerNodes.unshift(_parent); } } - ts.forEach(containerNodes, function (node) { - getTypeOfNode(node); - }); + ts.forEach(containerNodes, function (node) { getTypeOfNode(node); }); } function getSymbolAtLocation(node) { resolveLocation(node); @@ -16850,9 +12225,7 @@ var ts; return targetType; } if (type.flags & 16384) { - return getUnionType(ts.filter(type.types, function (t) { - return isTypeSubtypeOf(t, targetType); - })); + return getUnionType(ts.filter(type.types, function (t) { return isTypeSubtypeOf(t, targetType); })); } return type; } @@ -16908,7 +12281,9 @@ var ts; return false; } function checkBlockScopedBindingCapturedInLoop(node, symbol) { - if (languageVersion >= 2 || (symbol.flags & 2) === 0 || symbol.valueDeclaration.parent.kind === 217) { + if (languageVersion >= 2 || + (symbol.flags & 2) === 0 || + symbol.valueDeclaration.parent.kind === 217) { return; } var container = symbol.valueDeclaration; @@ -17004,21 +12379,33 @@ var ts; var container = ts.getSuperContainer(node, true); if (container) { var canUseSuperExpression = false; + var needToCaptureLexicalThis; if (isCallExpression) { canUseSuperExpression = container.kind === 133; } else { - var needToCaptureLexicalThis = false; + needToCaptureLexicalThis = false; while (container && container.kind === 161) { container = ts.getSuperContainer(container, true); needToCaptureLexicalThis = true; } if (container && container.parent && container.parent.kind === 196) { if (container.flags & 128) { - canUseSuperExpression = container.kind === 132 || container.kind === 131 || container.kind === 134 || container.kind === 135; + canUseSuperExpression = + container.kind === 132 || + container.kind === 131 || + container.kind === 134 || + container.kind === 135; } else { - canUseSuperExpression = container.kind === 132 || container.kind === 131 || container.kind === 134 || container.kind === 135 || container.kind === 130 || container.kind === 129 || container.kind === 133; + canUseSuperExpression = + container.kind === 132 || + container.kind === 131 || + container.kind === 134 || + container.kind === 135 || + container.kind === 130 || + container.kind === 129 || + container.kind === 133; } } } @@ -17065,7 +12452,8 @@ var ts; if (indexOfParameter < len) { return getTypeAtPosition(contextualSignature, indexOfParameter); } - if (indexOfParameter === (func.parameters.length - 1) && funcHasRestParameters && contextualSignature.hasRestParameter && func.parameters.length >= contextualSignature.parameters.length) { + if (indexOfParameter === (func.parameters.length - 1) && + funcHasRestParameters && contextualSignature.hasRestParameter && func.parameters.length >= contextualSignature.parameters.length) { return getTypeOfSymbol(contextualSignature.parameters[contextualSignature.parameters.length - 1]); } } @@ -17143,17 +12531,15 @@ var ts; var types = type.types; var mappedType; var mappedTypes; - for (var i = 0; i < types.length; i++) { - var t = mapper(types[i]); + for (var _i = 0, _n = types.length; _i < _n; _i++) { + var current = types[_i]; + var t = mapper(current); if (t) { if (!mappedType) { mappedType = t; } else if (!mappedTypes) { - mappedTypes = [ - mappedType, - t - ]; + mappedTypes = [mappedType, t]; } else { mappedTypes.push(t); @@ -17169,17 +12555,13 @@ var ts; }); } function getIndexTypeOfContextualType(type, kind) { - return applyToContextualType(type, function (t) { - return getIndexTypeOfObjectOrUnionType(t, kind); - }); + return applyToContextualType(type, function (t) { return getIndexTypeOfObjectOrUnionType(t, kind); }); } function contextualTypeIsTupleLikeType(type) { return !!(type.flags & 16384 ? ts.forEach(type.types, isTupleLikeType) : isTupleLikeType(type)); } function contextualTypeHasIndexSignature(type, kind) { - return !!(type.flags & 16384 ? ts.forEach(type.types, function (t) { - return getIndexTypeOfObjectOrUnionType(t, kind); - }) : getIndexTypeOfObjectOrUnionType(type, kind)); + return !!(type.flags & 16384 ? ts.forEach(type.types, function (t) { return getIndexTypeOfObjectOrUnionType(t, kind); }) : getIndexTypeOfObjectOrUnionType(type, kind)); } function getContextualTypeForObjectLiteralMethod(node) { ts.Debug.assert(ts.isObjectLiteralMethod(node)); @@ -17199,7 +12581,8 @@ var ts; return propertyType; } } - return isNumericName(element.name) && getIndexTypeOfContextualType(type, 1) || getIndexTypeOfContextualType(type, 0); + return isNumericName(element.name) && getIndexTypeOfContextualType(type, 1) || + getIndexTypeOfContextualType(type, 0); } return undefined; } @@ -17208,7 +12591,9 @@ var ts; var type = getContextualType(arrayLiteral); if (type) { var index = ts.indexOf(arrayLiteral.elements, node); - return getTypeOfPropertyOfContextualType(type, "" + index) || getIndexTypeOfContextualType(type, 1) || (languageVersion >= 2 ? checkIteratedType(type, undefined) : undefined); + return getTypeOfPropertyOfContextualType(type, "" + index) + || getIndexTypeOfContextualType(type, 1) + || (languageVersion >= 2 ? checkIteratedType(type, undefined) : undefined); } return undefined; } @@ -17223,8 +12608,8 @@ var ts; if (node.contextualType) { return node.contextualType; } - var parent = node.parent; - switch (parent.kind) { + var _parent = node.parent; + switch (_parent.kind) { case 193: case 128: case 130: @@ -17236,22 +12621,22 @@ var ts; return getContextualTypeForReturnExpression(node); case 155: case 156: - return getContextualTypeForArgument(parent, node); + return getContextualTypeForArgument(_parent, node); case 158: - return getTypeFromTypeNode(parent.type); + return getTypeFromTypeNode(_parent.type); case 167: return getContextualTypeForBinaryOperand(node); case 218: - return getContextualTypeForObjectLiteralElement(parent); + return getContextualTypeForObjectLiteralElement(_parent); case 151: return getContextualTypeForElementExpression(node); case 168: return getContextualTypeForConditionalOperand(node); case 173: - ts.Debug.assert(parent.parent.kind === 169); - return getContextualTypeForSubstitutionExpression(parent.parent, node); + ts.Debug.assert(_parent.parent.kind === 169); + return getContextualTypeForSubstitutionExpression(_parent.parent, node); case 159: - return getContextualType(parent); + return getContextualType(_parent); } return undefined; } @@ -17272,7 +12657,9 @@ var ts; } function getContextualSignature(node) { ts.Debug.assert(node.kind !== 132 || ts.isObjectLiteralMethod(node)); - var type = ts.isObjectLiteralMethod(node) ? getContextualTypeForObjectLiteralMethod(node) : getContextualType(node); + var type = ts.isObjectLiteralMethod(node) + ? getContextualTypeForObjectLiteralMethod(node) + : getContextualType(node); if (!type) { return undefined; } @@ -17281,16 +12668,16 @@ var ts; } var signatureList; var types = type.types; - for (var i = 0; i < types.length; i++) { - if (signatureList && getSignaturesOfObjectOrUnionType(types[i], 0).length > 1) { + for (var _i = 0, _n = types.length; _i < _n; _i++) { + var current = types[_i]; + if (signatureList && + getSignaturesOfObjectOrUnionType(current, 0).length > 1) { return undefined; } - var signature = getNonGenericSignature(types[i]); + var signature = getNonGenericSignature(current); if (signature) { if (!signatureList) { - signatureList = [ - signature - ]; + signatureList = [signature]; } else if (!compareSignatures(signatureList[0], signature, false, compareTypes)) { return undefined; @@ -17312,15 +12699,15 @@ var ts; return mapper && mapper !== identityMapper; } function isAssignmentTarget(node) { - var parent = node.parent; - if (parent.kind === 167 && parent.operatorToken.kind === 52 && parent.left === node) { + var _parent = node.parent; + if (_parent.kind === 167 && _parent.operatorToken.kind === 52 && _parent.left === node) { return true; } - if (parent.kind === 218) { - return isAssignmentTarget(parent.parent); + if (_parent.kind === 218) { + return isAssignmentTarget(_parent.parent); } - if (parent.kind === 151) { - return isAssignmentTarget(parent); + if (_parent.kind === 151) { + return isAssignmentTarget(_parent); } return false; } @@ -17385,19 +12772,24 @@ var ts; var propertiesArray = []; var contextualType = getContextualType(node); var typeFlags; - for (var i = 0; i < node.properties.length; i++) { - var memberDecl = node.properties[i]; + for (var _i = 0, _a = node.properties, _n = _a.length; _i < _n; _i++) { + var memberDecl = _a[_i]; var member = memberDecl.symbol; - if (memberDecl.kind === 218 || memberDecl.kind === 219 || ts.isObjectLiteralMethod(memberDecl)) { + if (memberDecl.kind === 218 || + memberDecl.kind === 219 || + ts.isObjectLiteralMethod(memberDecl)) { + var type = void 0; if (memberDecl.kind === 218) { - var type = checkPropertyAssignment(memberDecl, contextualMapper); + type = checkPropertyAssignment(memberDecl, contextualMapper); } else if (memberDecl.kind === 132) { - var type = checkObjectLiteralMethod(memberDecl, contextualMapper); + type = checkObjectLiteralMethod(memberDecl, contextualMapper); } else { ts.Debug.assert(memberDecl.kind === 219); - var type = memberDecl.name.kind === 126 ? unknownType : checkExpression(memberDecl.name, contextualMapper); + type = memberDecl.name.kind === 126 + ? unknownType + : checkExpression(memberDecl.name, contextualMapper); } typeFlags |= type.flags; var prop = createSymbol(4 | 67108864 | member.flags, member.name); @@ -17430,15 +12822,15 @@ var ts; for (var i = 0; i < propertiesArray.length; i++) { var propertyDecl = node.properties[i]; if (kind === 0 || isNumericName(propertyDecl.name)) { - var type = getTypeOfSymbol(propertiesArray[i]); - if (!ts.contains(propTypes, type)) { - propTypes.push(type); + var _type = getTypeOfSymbol(propertiesArray[i]); + if (!ts.contains(propTypes, _type)) { + propTypes.push(_type); } } } - var result = propTypes.length ? getUnionType(propTypes) : undefinedType; - typeFlags |= result.flags; - return result; + var _result = propTypes.length ? getUnionType(propTypes) : undefinedType; + typeFlags |= _result.flags; + return _result; } return undefined; } @@ -17513,7 +12905,9 @@ var ts; return anyType; } function isValidPropertyAccess(node, propertyName) { - var left = node.kind === 153 ? node.expression : node.left; + var left = node.kind === 153 + ? node.expression + : node.left; var type = checkExpressionOrQualifiedName(left); if (type !== unknownType && type !== anyType) { var prop = getPropertyOfType(getWidenedType(type), propertyName); @@ -17539,9 +12933,9 @@ var ts; grammarErrorAtPos(sourceFile, start, end - start, ts.Diagnostics.new_T_cannot_be_used_to_create_an_array_Use_new_Array_T_instead); } else { - var start = node.end - "]".length; - var end = node.end; - grammarErrorAtPos(sourceFile, start, end - start, ts.Diagnostics.Expression_expected); + var _start = node.end - "]".length; + var _end = node.end; + grammarErrorAtPos(sourceFile, _start, _end - _start, ts.Diagnostics.Expression_expected); } } var objectType = getApparentType(checkExpression(node.expression)); @@ -17550,20 +12944,21 @@ var ts; return unknownType; } var isConstEnum = isConstEnumObjectType(objectType); - if (isConstEnum && (!node.argumentExpression || node.argumentExpression.kind !== 8)) { + if (isConstEnum && + (!node.argumentExpression || node.argumentExpression.kind !== 8)) { error(node.argumentExpression, ts.Diagnostics.A_const_enum_member_can_only_be_accessed_using_a_string_literal); return unknownType; } if (node.argumentExpression) { - var name = getPropertyNameForIndexedAccess(node.argumentExpression, indexType); - if (name !== undefined) { - var prop = getPropertyOfType(objectType, name); + var _name = getPropertyNameForIndexedAccess(node.argumentExpression, indexType); + if (_name !== undefined) { + var prop = getPropertyOfType(objectType, _name); if (prop) { getNodeLinks(node).resolvedSymbol = prop; return getTypeOfSymbol(prop); } else if (isConstEnum) { - error(node.argumentExpression, ts.Diagnostics.Property_0_does_not_exist_on_const_enum_1, name, symbolToString(objectType.symbol)); + error(node.argumentExpression, ts.Diagnostics.Property_0_does_not_exist_on_const_enum_1, _name, symbolToString(objectType.symbol)); return unknownType; } } @@ -17650,22 +13045,22 @@ var ts; var specializedIndex = -1; var spliceIndex; ts.Debug.assert(!result.length); - for (var i = 0; i < signatures.length; i++) { - var signature = signatures[i]; + for (var _i = 0, _n = signatures.length; _i < _n; _i++) { + var signature = signatures[_i]; var symbol = signature.declaration && getSymbolOfNode(signature.declaration); - var parent = signature.declaration && signature.declaration.parent; + var _parent = signature.declaration && signature.declaration.parent; if (!lastSymbol || symbol === lastSymbol) { - if (lastParent && parent === lastParent) { + if (lastParent && _parent === lastParent) { index++; } else { - lastParent = parent; + lastParent = _parent; index = cutoffIndex; } } else { index = cutoffIndex = result.length; - lastParent = parent; + lastParent = _parent; } lastSymbol = symbol; if (signature.hasStringLiterals) { @@ -17717,7 +13112,8 @@ var ts; callIsIncomplete = callExpression.arguments.end === callExpression.end; typeArguments = callExpression.typeArguments; } - var hasRightNumberOfTypeArgs = !typeArguments || (signature.typeParameters && typeArguments.length === signature.typeParameters.length); + var hasRightNumberOfTypeArgs = !typeArguments || + (signature.typeParameters && typeArguments.length === signature.typeParameters.length); if (!hasRightNumberOfTypeArgs) { return false; } @@ -17734,7 +13130,8 @@ var ts; function getSingleCallSignature(type) { if (type.flags & 48128) { var resolved = resolveObjectOrUnionTypeMembers(type); - if (resolved.callSignatures.length === 1 && resolved.constructSignatures.length === 0 && resolved.properties.length === 0 && !resolved.stringIndexType && !resolved.numberIndexType) { + if (resolved.callSignatures.length === 1 && resolved.constructSignatures.length === 0 && + resolved.properties.length === 0 && !resolved.stringIndexType && !resolved.numberIndexType) { return resolved.callSignatures[0]; } } @@ -17755,30 +13152,31 @@ var ts; var arg = args[i]; if (arg.kind !== 172) { var paramType = getTypeAtPosition(signature, arg.kind === 171 ? -1 : i); + var argType = void 0; if (i === 0 && args[i].parent.kind === 157) { - var argType = globalTemplateStringsArrayType; + argType = globalTemplateStringsArrayType; } else { var mapper = excludeArgument && excludeArgument[i] !== undefined ? identityMapper : inferenceMapper; - var argType = checkExpressionWithContextualType(arg, paramType, mapper); + argType = checkExpressionWithContextualType(arg, paramType, mapper); } inferTypes(context, argType, paramType); } } if (excludeArgument) { - for (var i = 0; i < args.length; i++) { - if (excludeArgument[i] === false) { - var arg = args[i]; - var paramType = getTypeAtPosition(signature, arg.kind === 171 ? -1 : i); - inferTypes(context, checkExpressionWithContextualType(arg, paramType, inferenceMapper), paramType); + for (var _i = 0; _i < args.length; _i++) { + if (excludeArgument[_i] === false) { + var _arg = args[_i]; + var _paramType = getTypeAtPosition(signature, _arg.kind === 171 ? -1 : _i); + inferTypes(context, checkExpressionWithContextualType(_arg, _paramType, inferenceMapper), _paramType); } } } var inferredTypes = getInferredTypes(context); context.failedTypeParameterIndex = ts.indexOf(inferredTypes, inferenceFailureType); - for (var i = 0; i < inferredTypes.length; i++) { - if (inferredTypes[i] === inferenceFailureType) { - inferredTypes[i] = unknownType; + for (var _i_1 = 0; _i_1 < inferredTypes.length; _i_1++) { + if (inferredTypes[_i_1] === inferenceFailureType) { + inferredTypes[_i_1] = unknownType; } } return context; @@ -17804,7 +13202,9 @@ var ts; var arg = args[i]; if (arg.kind !== 172) { var paramType = getTypeAtPosition(signature, arg.kind === 171 ? -1 : i); - var argType = i === 0 && node.kind === 157 ? globalTemplateStringsArrayType : arg.kind === 8 && !reportErrors ? getStringLiteralType(arg) : checkExpressionWithContextualType(arg, paramType, excludeArgument && excludeArgument[i] ? identityMapper : undefined); + var argType = i === 0 && node.kind === 157 ? globalTemplateStringsArrayType : + arg.kind === 8 && !reportErrors ? getStringLiteralType(arg) : + checkExpressionWithContextualType(arg, paramType, excludeArgument && excludeArgument[i] ? identityMapper : undefined); if (!checkTypeRelatedTo(argType, paramType, relation, reportErrors ? arg : undefined, ts.Diagnostics.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1)) { return false; } @@ -17816,9 +13216,7 @@ var ts; var args; if (node.kind === 157) { var template = node.template; - args = [ - template - ]; + args = [template]; if (template.kind === 169) { ts.forEach(template.templateSpans, function (span) { args.push(span.expression); @@ -17900,50 +13298,53 @@ var ts; error(node, ts.Diagnostics.Supplied_parameters_do_not_match_any_signature_of_call_target); } if (!produceDiagnostics) { - for (var i = 0, n = candidates.length; i < n; i++) { - if (hasCorrectArity(node, args, candidates[i])) { - return candidates[i]; + for (var _i = 0, _n = candidates.length; _i < _n; _i++) { + var candidate = candidates[_i]; + if (hasCorrectArity(node, args, candidate)) { + return candidate; } } } return resolveErrorCall(node); function chooseOverload(candidates, relation) { - for (var i = 0; i < candidates.length; i++) { - if (!hasCorrectArity(node, args, candidates[i])) { + for (var _a = 0, _b = candidates.length; _a < _b; _a++) { + var current = candidates[_a]; + if (!hasCorrectArity(node, args, current)) { continue; } - var originalCandidate = candidates[i]; - var inferenceResult; + var originalCandidate = current; + var inferenceResult = void 0; + var _candidate = void 0; + var typeArgumentsAreValid = void 0; while (true) { - var candidate = originalCandidate; - if (candidate.typeParameters) { - var typeArgumentTypes; - var typeArgumentsAreValid; + _candidate = originalCandidate; + if (_candidate.typeParameters) { + var typeArgumentTypes = void 0; if (typeArguments) { - typeArgumentTypes = new Array(candidate.typeParameters.length); - typeArgumentsAreValid = checkTypeArguments(candidate, typeArguments, typeArgumentTypes, false); + typeArgumentTypes = new Array(_candidate.typeParameters.length); + typeArgumentsAreValid = checkTypeArguments(_candidate, typeArguments, typeArgumentTypes, false); } else { - inferenceResult = inferTypeArguments(candidate, args, excludeArgument); + inferenceResult = inferTypeArguments(_candidate, args, excludeArgument); typeArgumentsAreValid = inferenceResult.failedTypeParameterIndex < 0; typeArgumentTypes = inferenceResult.inferredTypes; } if (!typeArgumentsAreValid) { break; } - candidate = getSignatureInstantiation(candidate, typeArgumentTypes); + _candidate = getSignatureInstantiation(_candidate, typeArgumentTypes); } - if (!checkApplicableSignature(node, args, candidate, relation, excludeArgument, false)) { + if (!checkApplicableSignature(node, args, _candidate, relation, excludeArgument, false)) { break; } var index = excludeArgument ? ts.indexOf(excludeArgument, true) : -1; if (index < 0) { - return candidate; + return _candidate; } excludeArgument[index] = false; } if (originalCandidate.typeParameters) { - var instantiatedCandidate = candidate; + var instantiatedCandidate = _candidate; if (typeArgumentsAreValid) { candidateForArgumentError = instantiatedCandidate; } @@ -17955,7 +13356,7 @@ var ts; } } else { - ts.Debug.assert(originalCandidate === candidate); + ts.Debug.assert(originalCandidate === _candidate); candidateForArgumentError = originalCandidate; } } @@ -18070,7 +13471,10 @@ var ts; } if (node.kind === 156) { var declaration = signature.declaration; - if (declaration && declaration.kind !== 133 && declaration.kind !== 137 && declaration.kind !== 141) { + if (declaration && + declaration.kind !== 133 && + declaration.kind !== 137 && + declaration.kind !== 141) { if (compilerOptions.noImplicitAny) { error(node, ts.Diagnostics.new_expression_whose_target_lacks_a_construct_signature_implicitly_has_an_any_type); } @@ -18095,9 +13499,13 @@ var ts; } function getTypeAtPosition(signature, pos) { if (pos >= 0) { - return signature.hasRestParameter ? pos < signature.parameters.length - 1 ? getTypeOfSymbol(signature.parameters[pos]) : getRestTypeOfSignature(signature) : pos < signature.parameters.length ? getTypeOfSymbol(signature.parameters[pos]) : anyType; + return signature.hasRestParameter ? + pos < signature.parameters.length - 1 ? getTypeOfSymbol(signature.parameters[pos]) : getRestTypeOfSignature(signature) : + pos < signature.parameters.length ? getTypeOfSymbol(signature.parameters[pos]) : anyType; } - return signature.hasRestParameter ? getTypeOfSymbol(signature.parameters[signature.parameters.length - 1]) : anyArrayType; + return signature.hasRestParameter ? + getTypeOfSymbol(signature.parameters[signature.parameters.length - 1]) : + anyArrayType; } function assignContextualParameterTypes(signature, context, mapper) { var len = signature.parameters.length - (signature.hasRestParameter ? 1 : 0); @@ -18107,9 +13515,9 @@ var ts; links.type = instantiateType(getTypeAtPosition(context, i), mapper); } if (signature.hasRestParameter && context.hasRestParameter && signature.parameters.length >= context.parameters.length) { - var parameter = signature.parameters[signature.parameters.length - 1]; - var links = getSymbolLinks(parameter); - links.type = instantiateType(getTypeOfSymbol(context.parameters[context.parameters.length - 1]), mapper); + var _parameter = signature.parameters[signature.parameters.length - 1]; + var _links = getSymbolLinks(_parameter); + _links.type = instantiateType(getTypeOfSymbol(context.parameters[context.parameters.length - 1]), mapper); } } function getReturnTypeFromBody(func, contextualMapper) { @@ -18117,15 +13525,16 @@ var ts; if (!func.body) { return unknownType; } + var type; if (func.body.kind !== 174) { - var type = checkExpressionCached(func.body, contextualMapper); + type = checkExpressionCached(func.body, contextualMapper); } else { var types = checkAndAggregateReturnExpressionTypes(func.body, contextualMapper); if (types.length === 0) { return voidType; } - var type = contextualSignature ? getUnionType(types) : getCommonSupertype(types); + type = contextualSignature ? getUnionType(types) : getCommonSupertype(types); if (!type) { error(func, ts.Diagnostics.No_best_common_type_exists_among_return_expressions); return unknownType; @@ -18245,12 +13654,14 @@ var ts; } function isReferenceOrErrorExpression(n) { switch (n.kind) { - case 64: + case 64: { var symbol = findSymbol(n); return !symbol || symbol === unknownSymbol || symbol === argumentsSymbol || (symbol.flags & 3) !== 0; - case 153: - var symbol = findSymbol(n); - return !symbol || symbol === unknownSymbol || (symbol.flags & ~8) !== 0; + } + case 153: { + var _symbol = findSymbol(n); + return !_symbol || _symbol === unknownSymbol || (_symbol.flags & ~8) !== 0; + } case 154: return true; case 159: @@ -18262,18 +13673,20 @@ var ts; function isConstVariableReference(n) { switch (n.kind) { case 64: - case 153: + case 153: { var symbol = findSymbol(n); return symbol && (symbol.flags & 3) !== 0 && (getDeclarationFlagsFromSymbol(symbol) & 8192) !== 0; - case 154: + } + case 154: { var index = n.argumentExpression; - var symbol = findSymbol(n.expression); - if (symbol && index && index.kind === 8) { - var name = index.text; - var prop = getPropertyOfType(getTypeOfSymbol(symbol), name); + var _symbol = findSymbol(n.expression); + if (_symbol && index && index.kind === 8) { + var _name = index.text; + var prop = getPropertyOfType(getTypeOfSymbol(_symbol), _name); return prop && (prop.flags & 3) !== 0 && (getDeclarationFlagsFromSymbol(prop) & 8192) !== 0; } return false; + } case 159: return isConstVariableReference(n.expression); default: @@ -18345,8 +13758,9 @@ var ts; } if (type.flags & 16384) { var types = type.types; - for (var i = 0; i < types.length; i++) { - if (types[i].flags & kind) { + for (var _i = 0, _n = types.length; _i < _n; _i++) { + var current = types[_i]; + if (current.flags & kind) { return true; } } @@ -18360,8 +13774,9 @@ var ts; } if (type.flags & 16384) { var types = type.types; - for (var i = 0; i < types.length; i++) { - if (!(types[i].flags & kind)) { + for (var _i = 0, _n = types.length; _i < _n; _i++) { + var current = types[_i]; + if (!(current.flags & kind)) { return false; } } @@ -18395,16 +13810,19 @@ var ts; } function checkObjectLiteralAssignment(node, sourceType, contextualMapper) { var properties = node.properties; - for (var i = 0; i < properties.length; i++) { - var p = properties[i]; + for (var _i = 0, _n = properties.length; _i < _n; _i++) { + var p = properties[_i]; if (p.kind === 218 || p.kind === 219) { - var name = p.name; - var type = sourceType.flags & 1 ? sourceType : getTypeOfPropertyOfType(sourceType, name.text) || isNumericLiteralName(name.text) && getIndexTypeOfType(sourceType, 1) || getIndexTypeOfType(sourceType, 0); + var _name = p.name; + var type = sourceType.flags & 1 ? sourceType : + getTypeOfPropertyOfType(sourceType, _name.text) || + isNumericLiteralName(_name.text) && getIndexTypeOfType(sourceType, 1) || + getIndexTypeOfType(sourceType, 0); if (type) { - checkDestructuringAssignment(p.initializer || name, type); + checkDestructuringAssignment(p.initializer || _name, type); } else { - error(name, ts.Diagnostics.Type_0_has_no_property_1_and_no_string_index_signature, typeToString(sourceType), ts.declarationNameToString(name)); + error(_name, ts.Diagnostics.Type_0_has_no_property_1_and_no_string_index_signature, typeToString(sourceType), ts.declarationNameToString(_name)); } } else { @@ -18424,7 +13842,9 @@ var ts; if (e.kind !== 172) { if (e.kind !== 171) { var propName = "" + i; - var type = sourceType.flags & 1 ? sourceType : isTupleLikeType(sourceType) ? getTypeOfPropertyOfType(sourceType, propName) : getIndexTypeOfType(sourceType, 1); + var type = sourceType.flags & 1 ? sourceType : + isTupleLikeType(sourceType) ? getTypeOfPropertyOfType(sourceType, propName) : + getIndexTypeOfType(sourceType, 1); if (type) { checkDestructuringAssignment(e, type, contextualMapper); } @@ -18505,7 +13925,9 @@ var ts; if (rightType.flags & (32 | 64)) rightType = leftType; var suggestedOperator; - if ((leftType.flags & 8) && (rightType.flags & 8) && (suggestedOperator = getSuggestedBooleanOperator(node.operatorToken.kind)) !== undefined) { + if ((leftType.flags & 8) && + (rightType.flags & 8) && + (suggestedOperator = getSuggestedBooleanOperator(node.operatorToken.kind)) !== undefined) { error(node, ts.Diagnostics.The_0_operator_is_not_allowed_for_boolean_types_Consider_using_1_instead, ts.tokenToString(node.operatorToken.kind), ts.tokenToString(suggestedOperator)); } else { @@ -18567,10 +13989,7 @@ var ts; case 48: return rightType; case 49: - return getUnionType([ - leftType, - rightType - ]); + return getUnionType([leftType, rightType]); case 52: checkAssignmentOperator(rightType); return rightType; @@ -18578,7 +13997,9 @@ var ts; return rightType; } function checkForDisallowedESSymbolOperand(operator) { - var offendingSymbolOperand = someConstituentTypeHasKind(leftType, 1048576) ? node.left : someConstituentTypeHasKind(rightType, 1048576) ? node.right : undefined; + var offendingSymbolOperand = someConstituentTypeHasKind(leftType, 1048576) ? node.left : + someConstituentTypeHasKind(rightType, 1048576) ? node.right : + undefined; if (offendingSymbolOperand) { error(offendingSymbolOperand, ts.Diagnostics.The_0_operator_cannot_be_applied_to_type_symbol, ts.tokenToString(operator)); return false; @@ -18624,10 +14045,7 @@ var ts; checkExpression(node.condition); var type1 = checkExpression(node.whenTrue, contextualMapper); var type2 = checkExpression(node.whenFalse, contextualMapper); - return getUnionType([ - type1, - type2 - ]); + return getUnionType([type1, type2]); } function checkTemplateExpression(node) { ts.forEach(node.templateSpans, function (templateSpan) { @@ -18691,7 +14109,9 @@ var ts; type = instantiateTypeWithSingleGenericCallSignature(node, uninstantiatedType, contextualMapper); } if (isConstEnumObjectType(type)) { - var ok = (node.parent.kind === 153 && node.parent.expression === node) || (node.parent.kind === 154 && node.parent.expression === node) || ((node.kind === 64 || node.kind === 125) && isInRightSideOfImportOrExportAssignment(node)); + var ok = (node.parent.kind === 153 && node.parent.expression === node) || + (node.parent.kind === 154 && node.parent.expression === node) || + ((node.kind === 64 || node.kind === 125) && isInRightSideOfImportOrExportAssignment(node)); if (!ok) { error(node, ts.Diagnostics.const_enums_can_only_be_used_in_property_or_index_access_expressions_or_the_right_hand_side_of_an_import_declaration_or_export_assignment); } @@ -18801,7 +14221,9 @@ var ts; if (node.kind === 138) { checkGrammarIndexSignature(node); } - else if (node.kind === 140 || node.kind === 195 || node.kind === 141 || node.kind === 136 || node.kind === 133 || node.kind === 137) { + else if (node.kind === 140 || node.kind === 195 || node.kind === 141 || + node.kind === 136 || node.kind === 133 || + node.kind === 137) { checkGrammarFunctionLikeDeclaration(node); } checkTypeParameters(node.typeParameters); @@ -18835,8 +14257,9 @@ var ts; if (indexSymbol) { var seenNumericIndexer = false; var seenStringIndexer = false; - for (var i = 0, len = indexSymbol.declarations.length; i < len; ++i) { - var declaration = indexSymbol.declarations[i]; + for (var _i = 0, _a = indexSymbol.declarations, _n = _a.length; _i < _n; _i++) { + var decl = _a[_i]; + var declaration = decl; if (declaration.parameters.length === 1 && declaration.parameters[0].type) { switch (declaration.parameters[0].type.kind) { case 120: @@ -18894,10 +14317,8 @@ var ts; case 160: case 195: case 161: - case 152: - return false; - default: - return ts.forEachChild(n, containsSuperCall); + case 152: return false; + default: return ts.forEachChild(n, containsSuperCall); } } function markThisReferencesAsErrors(n) { @@ -18909,13 +14330,14 @@ var ts; } } function isInstancePropertyWithInitializer(n) { - return n.kind === 130 && !(n.flags & 128) && !!n.initializer; + return n.kind === 130 && + !(n.flags & 128) && + !!n.initializer; } if (ts.getClassBaseTypeNode(node.parent)) { if (containsSuperCall(node.body)) { - var superCallShouldBeFirst = ts.forEach(node.parent.members, isInstancePropertyWithInitializer) || ts.forEach(node.parameters, function (p) { - return p.flags & (16 | 32 | 64); - }); + var superCallShouldBeFirst = ts.forEach(node.parent.members, isInstancePropertyWithInitializer) || + ts.forEach(node.parameters, function (p) { return p.flags & (16 | 32 | 64); }); if (superCallShouldBeFirst) { var statements = node.body.statements; if (!statements.length || statements[0].kind !== 177 || !isSuperCallExpression(statements[0].expression)) { @@ -19024,8 +14446,8 @@ var ts; else { signaturesToCheck = getSignaturesOfSymbol(getSymbolOfNode(signatureDeclarationNode)); } - for (var i = 0; i < signaturesToCheck.length; i++) { - var otherSignature = signaturesToCheck[i]; + for (var _i = 0, _n = signaturesToCheck.length; _i < _n; _i++) { + var otherSignature = signaturesToCheck[_i]; if (!otherSignature.hasStringLiterals && isSignatureAssignableTo(signature, otherSignature)) { return; } @@ -19105,16 +14527,16 @@ var ts; }); if (subsequentNode) { if (subsequentNode.kind === node.kind) { - var errorNode = subsequentNode.name || subsequentNode; + var _errorNode = subsequentNode.name || subsequentNode; if (node.name && subsequentNode.name && node.name.text === subsequentNode.name.text) { ts.Debug.assert(node.kind === 132 || node.kind === 131); ts.Debug.assert((node.flags & 128) !== (subsequentNode.flags & 128)); var diagnostic = node.flags & 128 ? ts.Diagnostics.Function_overload_must_be_static : ts.Diagnostics.Function_overload_must_not_be_static; - error(errorNode, diagnostic); + error(_errorNode, diagnostic); return; } else if (ts.nodeIsPresent(subsequentNode.body)) { - error(errorNode, ts.Diagnostics.Function_implementation_name_must_be_0, ts.declarationNameToString(node.name)); + error(_errorNode, ts.Diagnostics.Function_implementation_name_must_be_0, ts.declarationNameToString(node.name)); return; } } @@ -19130,8 +14552,9 @@ var ts; var isExportSymbolInsideModule = symbol.parent && symbol.parent.flags & 1536; var duplicateFunctionDeclaration = false; var multipleConstructorImplementation = false; - for (var i = 0; i < declarations.length; i++) { - var node = declarations[i]; + for (var _i = 0, _n = declarations.length; _i < _n; _i++) { + var current = declarations[_i]; + var node = current; var inAmbientContext = ts.isInAmbientContext(node); var inAmbientContextOrInterface = node.parent.kind === 197 || node.parent.kind === 143 || inAmbientContext; if (inAmbientContextOrInterface) { @@ -19188,9 +14611,10 @@ var ts; var signatures = getSignaturesOfSymbol(symbol); var bodySignature = getSignatureFromDeclaration(bodyDeclaration); if (!bodySignature.hasStringLiterals) { - for (var i = 0, len = signatures.length; i < len; ++i) { - if (!signatures[i].hasStringLiterals && !isSignatureAssignableTo(bodySignature, signatures[i])) { - error(signatures[i].declaration, ts.Diagnostics.Overload_signature_is_not_compatible_with_function_implementation); + for (var _a = 0, _b = signatures.length; _a < _b; _a++) { + var signature = signatures[_a]; + if (!signature.hasStringLiterals && !isSignatureAssignableTo(bodySignature, signature)) { + error(signature.declaration, ts.Diagnostics.Overload_signature_is_not_compatible_with_function_implementation); break; } } @@ -19202,7 +14626,6 @@ var ts; if (!produceDiagnostics) { return; } - var symbol; var symbol = node.localSymbol; if (!symbol) { symbol = getSymbolOfNode(node); @@ -19237,16 +14660,16 @@ var ts; case 197: return 2097152; case 200: - return d.name.kind === 8 || ts.getModuleInstanceState(d) !== 0 ? 4194304 | 1048576 : 4194304; + return d.name.kind === 8 || ts.getModuleInstanceState(d) !== 0 + ? 4194304 | 1048576 + : 4194304; case 196: case 199: return 2097152 | 1048576; case 203: var result = 0; var target = resolveAlias(getSymbolOfNode(d)); - ts.forEach(target.declarations, function (d) { - result |= getDeclarationSpaces(d); - }); + ts.forEach(target.declarations, function (d) { result |= getDeclarationSpaces(d); }); return result; default: return 1048576; @@ -19255,7 +14678,10 @@ var ts; } function checkFunctionDeclaration(node) { if (produceDiagnostics) { - checkFunctionLikeDeclaration(node) || checkGrammarDisallowedModifiersInBlockOrObjectLiteralExpression(node) || checkGrammarFunctionName(node.name) || checkGrammarForGenerator(node); + checkFunctionLikeDeclaration(node) || + checkGrammarDisallowedModifiersInBlockOrObjectLiteralExpression(node) || + checkGrammarFunctionName(node.name) || + checkGrammarForGenerator(node); checkCollisionWithCapturedSuperVariable(node, node.name); checkCollisionWithCapturedThisVariable(node, node.name); checkCollisionWithRequireExportsInGeneratedCode(node, node.name); @@ -19310,7 +14736,12 @@ var ts; if (!(identifier && identifier.text === name)) { return false; } - if (node.kind === 130 || node.kind === 129 || node.kind === 132 || node.kind === 131 || node.kind === 134 || node.kind === 135) { + if (node.kind === 130 || + node.kind === 129 || + node.kind === 132 || + node.kind === 131 || + node.kind === 134 || + node.kind === 135) { return false; } if (ts.isInAmbientContext(node)) { @@ -19331,8 +14762,8 @@ var ts; var current = node; while (current) { if (getNodeCheckFlags(current) & 4) { - var isDeclaration = node.kind !== 64; - if (isDeclaration) { + var _isDeclaration = node.kind !== 64; + if (_isDeclaration) { error(node.name, ts.Diagnostics.Duplicate_identifier_this_Compiler_uses_variable_declaration_this_to_capture_this_reference); } else { @@ -19352,8 +14783,8 @@ var ts; return; } if (ts.getClassBaseTypeNode(enclosingClass)) { - var isDeclaration = node.kind !== 64; - if (isDeclaration) { + var _isDeclaration = node.kind !== 64; + if (_isDeclaration) { error(node, ts.Diagnostics.Duplicate_identifier_super_Compiler_uses_super_to_capture_base_class_reference); } else { @@ -19368,8 +14799,8 @@ var ts; if (node.kind === 200 && ts.getModuleInstanceState(node) !== 1) { return; } - var parent = getDeclarationContainer(node); - if (parent.kind === 221 && ts.isExternalModule(parent)) { + var _parent = getDeclarationContainer(node); + if (_parent.kind === 221 && ts.isExternalModule(_parent)) { error(name, ts.Diagnostics.Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_an_external_module, ts.declarationNameToString(name), ts.declarationNameToString(name)); } } @@ -19378,14 +14809,20 @@ var ts; var symbol = getSymbolOfNode(node); if (symbol.flags & 1) { var localDeclarationSymbol = resolveName(node, node.name.text, 3, undefined, undefined); - if (localDeclarationSymbol && localDeclarationSymbol !== symbol && localDeclarationSymbol.flags & 2) { + if (localDeclarationSymbol && + localDeclarationSymbol !== symbol && + localDeclarationSymbol.flags & 2) { if (getDeclarationFlagsFromSymbol(localDeclarationSymbol) & 12288) { var varDeclList = ts.getAncestor(localDeclarationSymbol.valueDeclaration, 194); - var container = varDeclList.parent.kind === 175 && varDeclList.parent.parent; - var namesShareScope = container && (container.kind === 174 && ts.isFunctionLike(container.parent) || (container.kind === 201 && container.kind === 200) || container.kind === 221); + var container = varDeclList.parent.kind === 175 && + varDeclList.parent.parent; + var namesShareScope = container && + (container.kind === 174 && ts.isFunctionLike(container.parent) || + (container.kind === 201 && container.kind === 200) || + container.kind === 221); if (!namesShareScope) { - var name = symbolToString(localDeclarationSymbol); - error(node, ts.Diagnostics.Cannot_initialize_outer_scoped_variable_0_in_the_same_scope_as_block_scoped_declaration_1, name, name); + var _name = symbolToString(localDeclarationSymbol); + error(node, ts.Diagnostics.Cannot_initialize_outer_scoped_variable_0_in_the_same_scope_as_block_scoped_declaration_1, _name, _name); } } } @@ -19399,10 +14836,11 @@ var ts; return node.kind === 128; } function checkParameterInitializer(node) { - if (getRootDeclaration(node).kind === 128) { - var func = ts.getContainingFunction(node); - visit(node.initializer); + if (getRootDeclaration(node).kind !== 128) { + return; } + var func = ts.getContainingFunction(node); + visit(node.initializer); function visit(n) { if (n.kind === 64) { var referencedSymbol = getNodeLinks(n).resolvedSymbol; @@ -19598,15 +15036,17 @@ var ts; } function checkRightHandSideOfForOf(rhsExpression) { var expressionType = getTypeOfExpression(rhsExpression); - return languageVersion >= 2 ? checkIteratedType(expressionType, rhsExpression) : checkElementTypeOfArrayOrString(expressionType, rhsExpression); + return languageVersion >= 2 + ? checkIteratedType(expressionType, rhsExpression) + : checkElementTypeOfArrayOrString(expressionType, rhsExpression); } function checkIteratedType(iterable, expressionForError) { ts.Debug.assert(languageVersion >= 2); var iteratedType = getIteratedType(iterable, expressionForError); if (expressionForError && iteratedType) { - var completeIterableType = globalIterableType !== emptyObjectType ? createTypeReference(globalIterableType, [ - iteratedType - ]) : emptyObjectType; + var completeIterableType = globalIterableType !== emptyObjectType + ? createTypeReference(globalIterableType, [iteratedType]) + : emptyObjectType; checkTypeAssignableTo(iterable, completeIterableType, expressionForError); } return iteratedType; @@ -19670,7 +15110,9 @@ var ts; } if (!isArrayLikeType(arrayType)) { if (!reportedError) { - var diagnostic = hasStringConstituent ? ts.Diagnostics.Type_0_is_not_an_array_type : ts.Diagnostics.Type_0_is_not_an_array_type_or_a_string_type; + var diagnostic = hasStringConstituent + ? ts.Diagnostics.Type_0_is_not_an_array_type + : ts.Diagnostics.Type_0_is_not_an_array_type_or_a_string_type; error(expressionForError, diagnostic, typeToString(arrayType)); } return hasStringConstituent ? stringType : unknownType; @@ -19680,10 +15122,7 @@ var ts; if (arrayElementType.flags & 258) { return stringType; } - return getUnionType([ - arrayElementType, - stringType - ]); + return getUnionType([arrayElementType, stringType]); } return arrayElementType; } @@ -19831,8 +15270,8 @@ var ts; }); if (type.flags & 1024 && type.symbol.valueDeclaration.kind === 196) { var classDeclaration = type.symbol.valueDeclaration; - for (var i = 0; i < classDeclaration.members.length; i++) { - var member = classDeclaration.members[i]; + for (var _i = 0, _a = classDeclaration.members, _n = _a.length; _i < _n; _i++) { + var member = _a[_i]; if (!(member.flags & 128) && ts.hasDynamicName(member)) { var propType = getTypeOfSymbol(member.symbol); checkIndexConstraintForProperty(member.symbol, propType, type, declaredStringIndexer, stringIndexType, 0); @@ -19845,9 +15284,7 @@ var ts; if (stringIndexType && numberIndexType) { errorNode = declaredNumberIndexer || declaredStringIndexer; if (!errorNode && (type.flags & 2048)) { - var someBaseTypeHasBothIndexers = ts.forEach(type.baseTypes, function (base) { - return getIndexTypeOfType(base, 0) && getIndexTypeOfType(base, 1); - }); + var someBaseTypeHasBothIndexers = ts.forEach(type.baseTypes, function (base) { return getIndexTypeOfType(base, 0) && getIndexTypeOfType(base, 1); }); errorNode = someBaseTypeHasBothIndexers ? undefined : type.symbol.declarations[0]; } } @@ -19861,22 +15298,22 @@ var ts; if (indexKind === 1 && !isNumericName(prop.valueDeclaration.name)) { return; } - var errorNode; + var _errorNode; if (prop.valueDeclaration.name.kind === 126 || prop.parent === containingType.symbol) { - errorNode = prop.valueDeclaration; + _errorNode = prop.valueDeclaration; } else if (indexDeclaration) { - errorNode = indexDeclaration; + _errorNode = indexDeclaration; } else if (containingType.flags & 2048) { - var someBaseClassHasBothPropertyAndIndexer = ts.forEach(containingType.baseTypes, function (base) { - return getPropertyOfObjectType(base, prop.name) && getIndexTypeOfType(base, indexKind); - }); - errorNode = someBaseClassHasBothPropertyAndIndexer ? undefined : containingType.symbol.declarations[0]; + var someBaseClassHasBothPropertyAndIndexer = ts.forEach(containingType.baseTypes, function (base) { return getPropertyOfObjectType(base, prop.name) && getIndexTypeOfType(base, indexKind); }); + _errorNode = someBaseClassHasBothPropertyAndIndexer ? undefined : containingType.symbol.declarations[0]; } - if (errorNode && !isTypeAssignableTo(propertyType, indexType)) { - var errorMessage = indexKind === 0 ? ts.Diagnostics.Property_0_of_type_1_is_not_assignable_to_string_index_type_2 : ts.Diagnostics.Property_0_of_type_1_is_not_assignable_to_numeric_index_type_2; - error(errorNode, errorMessage, symbolToString(prop), typeToString(propertyType), typeToString(indexType)); + if (_errorNode && !isTypeAssignableTo(propertyType, indexType)) { + var errorMessage = indexKind === 0 + ? ts.Diagnostics.Property_0_of_type_1_is_not_assignable_to_string_index_type_2 + : ts.Diagnostics.Property_0_of_type_1_is_not_assignable_to_numeric_index_type_2; + error(_errorNode, errorMessage, symbolToString(prop), typeToString(propertyType), typeToString(indexType)); } } } @@ -19893,7 +15330,7 @@ var ts; } function checkTypeParameters(typeParameterDeclarations) { if (typeParameterDeclarations) { - for (var i = 0; i < typeParameterDeclarations.length; i++) { + for (var i = 0, n = typeParameterDeclarations.length; i < n; i++) { var node = typeParameterDeclarations[i]; checkTypeParameter(node); if (produceDiagnostics) { @@ -19965,8 +15402,9 @@ var ts; } function checkKindsOfPropertyMemberOverrides(type, baseType) { var baseProperties = getPropertiesOfObjectType(baseType); - for (var i = 0, len = baseProperties.length; i < len; ++i) { - var base = getTargetSymbol(baseProperties[i]); + for (var _i = 0, _n = baseProperties.length; _i < _n; _i++) { + var baseProperty = baseProperties[_i]; + var base = getTargetSymbol(baseProperty); if (base.flags & 134217728) { continue; } @@ -19983,7 +15421,7 @@ var ts; if ((base.flags & derived.flags & 8192) || ((base.flags & 98308) && (derived.flags & 98308))) { continue; } - var errorMessage; + var errorMessage = void 0; if (base.flags & 8192) { if (derived.flags & 98304) { errorMessage = ts.Diagnostics.Class_0_defines_instance_member_function_1_but_extended_class_2_defines_it_as_instance_member_accessor; @@ -20039,23 +15477,15 @@ var ts; return true; } var seen = {}; - ts.forEach(type.declaredProperties, function (p) { - seen[p.name] = { - prop: p, - containingType: type - }; - }); + ts.forEach(type.declaredProperties, function (p) { seen[p.name] = { prop: p, containingType: type }; }); var ok = true; - for (var i = 0, len = type.baseTypes.length; i < len; ++i) { - var base = type.baseTypes[i]; + for (var _i = 0, _a = type.baseTypes, _n = _a.length; _i < _n; _i++) { + var base = _a[_i]; var properties = getPropertiesOfObjectType(base); - for (var j = 0, proplen = properties.length; j < proplen; ++j) { - var prop = properties[j]; + for (var _b = 0, _c = properties.length; _b < _c; _b++) { + var prop = properties[_b]; if (!ts.hasProperty(seen, prop.name)) { - seen[prop.name] = { - prop: prop, - containingType: base - }; + seen[prop.name] = { prop: prop, containingType: base }; } else { var existing = seen[prop.name]; @@ -20108,8 +15538,8 @@ var ts; checkSourceElement(node.type); } function computeEnumMemberValues(node) { - var nodeLinks = getNodeLinks(node); - if (!(nodeLinks.flags & 128)) { + var _nodeLinks = getNodeLinks(node); + if (!(_nodeLinks.flags & 128)) { var enumSymbol = getSymbolOfNode(node); var enumType = getDeclaredTypeOfSymbol(enumSymbol); var autoValue = 0; @@ -20146,7 +15576,7 @@ var ts; getNodeLinks(member).enumMemberValue = autoValue++; } }); - nodeLinks.flags |= 128; + _nodeLinks.flags |= 128; } function getConstantValueForEnumMemberInitializer(initializer, enumIsConst) { return evalConstant(initializer); @@ -20158,12 +15588,9 @@ var ts; return undefined; } switch (e.operator) { - case 33: - return value; - case 34: - return -value; - case 47: - return enumIsConst ? ~value : undefined; + case 33: return value; + case 34: return -value; + case 47: return enumIsConst ? ~value : undefined; } return undefined; case 167: @@ -20179,28 +15606,17 @@ var ts; return undefined; } switch (e.operatorToken.kind) { - case 44: - return left | right; - case 43: - return left & right; - case 41: - return left >> right; - case 42: - return left >>> right; - case 40: - return left << right; - case 45: - return left ^ right; - case 35: - return left * right; - case 36: - return left / right; - case 33: - return left + right; - case 34: - return left - right; - case 37: - return left % right; + case 44: return left | right; + case 43: return left & right; + case 41: return left >> right; + case 42: return left >>> right; + case 40: return left << right; + case 45: return left ^ right; + case 35: return left * right; + case 36: return left / right; + case 33: return left + right; + case 34: return left - right; + case 37: return left % right; } return undefined; case 7: @@ -20215,32 +15631,33 @@ var ts; } var member = initializer.parent; var currentType = getTypeOfSymbol(getSymbolOfNode(member.parent)); - var enumType; + var _enumType; var propertyName; if (e.kind === 64) { - enumType = currentType; + _enumType = currentType; propertyName = e.text; } else { if (e.kind === 154) { - if (e.argumentExpression === undefined || e.argumentExpression.kind !== 8) { + if (e.argumentExpression === undefined || + e.argumentExpression.kind !== 8) { return undefined; } - var enumType = getTypeOfNode(e.expression); + _enumType = getTypeOfNode(e.expression); propertyName = e.argumentExpression.text; } else { - var enumType = getTypeOfNode(e.expression); + _enumType = getTypeOfNode(e.expression); propertyName = e.name.text; } - if (enumType !== currentType) { + if (_enumType !== currentType) { return undefined; } } if (propertyName === undefined) { return undefined; } - var property = getPropertyOfObjectType(enumType, propertyName); + var property = getPropertyOfObjectType(_enumType, propertyName); if (!property || !(property.flags & 8)) { return undefined; } @@ -20300,8 +15717,8 @@ var ts; } function getFirstNonAmbientClassOrFunctionDeclaration(symbol) { var declarations = symbol.declarations; - for (var i = 0; i < declarations.length; i++) { - var declaration = declarations[i]; + for (var _i = 0, _n = declarations.length; _i < _n; _i++) { + var declaration = declarations[_i]; if ((declaration.kind === 196 || (declaration.kind === 195 && ts.nodeIsPresent(declaration.body))) && !ts.isInAmbientContext(declaration)) { return declaration; } @@ -20319,7 +15736,10 @@ var ts; checkCollisionWithRequireExportsInGeneratedCode(node, node.name); checkExportsOnMergedDeclarations(node); var symbol = getSymbolOfNode(node); - if (symbol.flags & 512 && symbol.declarations.length > 1 && !ts.isInAmbientContext(node) && ts.isInstantiatedModule(node, compilerOptions.preserveConstEnums)) { + if (symbol.flags & 512 + && symbol.declarations.length > 1 + && !ts.isInAmbientContext(node) + && ts.isInstantiatedModule(node, compilerOptions.preserveConstEnums)) { var classOrFunc = getFirstNonAmbientClassOrFunctionDeclaration(symbol); if (classOrFunc) { if (ts.getSourceFileOfNode(node) !== ts.getSourceFileOfNode(classOrFunc)) { @@ -20355,7 +15775,9 @@ var ts; } var inAmbientExternalModule = node.parent.kind === 201 && node.parent.parent.name.kind === 8; if (node.parent.kind !== 221 && !inAmbientExternalModule) { - error(moduleName, node.kind === 210 ? ts.Diagnostics.Export_declarations_are_not_permitted_in_an_internal_module : ts.Diagnostics.Import_declarations_in_an_internal_module_cannot_reference_an_external_module); + error(moduleName, node.kind === 210 ? + ts.Diagnostics.Export_declarations_are_not_permitted_in_an_internal_module : + ts.Diagnostics.Import_declarations_in_an_internal_module_cannot_reference_an_external_module); return false; } if (inAmbientExternalModule && isExternalModuleNameRelative(moduleName.text)) { @@ -20368,9 +15790,13 @@ var ts; var symbol = getSymbolOfNode(node); var target = resolveAlias(symbol); if (target !== unknownSymbol) { - var excludedMeanings = (symbol.flags & 107455 ? 107455 : 0) | (symbol.flags & 793056 ? 793056 : 0) | (symbol.flags & 1536 ? 1536 : 0); + var excludedMeanings = (symbol.flags & 107455 ? 107455 : 0) | + (symbol.flags & 793056 ? 793056 : 0) | + (symbol.flags & 1536 ? 1536 : 0); if (target.flags & excludedMeanings) { - var message = node.kind === 212 ? ts.Diagnostics.Export_declaration_conflicts_with_exported_declaration_of_0 : ts.Diagnostics.Import_declaration_conflicts_with_local_declaration_of_0; + var message = node.kind === 212 ? + ts.Diagnostics.Export_declaration_conflicts_with_exported_declaration_of_0 : + ts.Diagnostics.Import_declaration_conflicts_with_local_declaration_of_0; error(node, message, symbolToString(symbol)); } } @@ -20468,18 +15894,19 @@ var ts; } function hasExportedMembers(moduleSymbol) { var declarations = moduleSymbol.declarations; - for (var i = 0; i < declarations.length; i++) { - var statements = getModuleStatements(declarations[i]); - for (var j = 0; j < statements.length; j++) { - var node = statements[j]; + for (var _i = 0, _n = declarations.length; _i < _n; _i++) { + var current = declarations[_i]; + var statements = getModuleStatements(current); + for (var _a = 0, _b = statements.length; _a < _b; _a++) { + var node = statements[_a]; if (node.kind === 210) { var exportClause = node.exportClause; if (!exportClause) { return true; } var specifiers = exportClause.elements; - for (var k = 0; k < specifiers.length; k++) { - var specifier = specifiers[k]; + for (var _c = 0, _d = specifiers.length; _c < _d; _c++) { + var specifier = specifiers[_c]; if (!(specifier.propertyName && specifier.name && specifier.name.text === "default")) { return true; } @@ -20803,7 +16230,9 @@ var ts; return ts.mapToArray(symbols); } function isTypeDeclarationName(name) { - return name.kind == 64 && isTypeDeclaration(name.parent) && name.parent.name === name; + return name.kind == 64 && + isTypeDeclaration(name.parent) && + name.parent.name === name; } function isTypeDeclaration(node) { switch (node.kind) { @@ -20842,21 +16271,21 @@ var ts; } case 125: ts.Debug.assert(node.kind === 64 || node.kind === 125, "'node' was expected to be a qualified name or identifier in 'isTypeNode'."); - var parent = node.parent; - if (parent.kind === 142) { + var _parent = node.parent; + if (_parent.kind === 142) { return false; } - if (139 <= parent.kind && parent.kind <= 147) { + if (139 <= _parent.kind && _parent.kind <= 147) { return true; } - switch (parent.kind) { + switch (_parent.kind) { case 127: - return node === parent.constraint; + return node === _parent.constraint; case 130: case 129: case 128: case 193: - return node === parent.type; + return node === _parent.type; case 195: case 160: case 161: @@ -20865,16 +16294,16 @@ var ts; case 131: case 134: case 135: - return node === parent.type; + return node === _parent.type; case 136: case 137: case 138: - return node === parent.type; + return node === _parent.type; case 158: - return node === parent.type; + return node === _parent.type; case 155: case 156: - return parent.typeArguments && ts.indexOf(parent.typeArguments, node) >= 0; + return _parent.typeArguments && ts.indexOf(_parent.typeArguments, node) >= 0; case 157: return false; } @@ -20897,7 +16326,8 @@ var ts; return getLeftSideOfImportEqualsOrExportAssignment(node) !== undefined; } function isRightSideOfQualifiedNameOrPropertyAccess(node) { - return (node.parent.kind === 125 && node.parent.right === node) || (node.parent.kind === 153 && node.parent.name === node); + return (node.parent.kind === 125 && node.parent.right === node) || + (node.parent.kind === 153 && node.parent.name === node); } function getSymbolOfEntityNameOrPropertyAccessExpression(entityName) { if (ts.isDeclarationName(entityName)) { @@ -20930,17 +16360,17 @@ var ts; return getNodeLinks(entityName).resolvedSymbol; } else if (entityName.kind === 125) { - var symbol = getNodeLinks(entityName).resolvedSymbol; - if (!symbol) { + var _symbol = getNodeLinks(entityName).resolvedSymbol; + if (!_symbol) { checkQualifiedName(entityName); } return getNodeLinks(entityName).resolvedSymbol; } } else if (isTypeReferenceIdentifier(entityName)) { - var meaning = entityName.parent.kind === 139 ? 793056 : 1536; - meaning |= 8388608; - return resolveEntityName(entityName, meaning); + var _meaning = entityName.parent.kind === 139 ? 793056 : 1536; + _meaning |= 8388608; + return resolveEntityName(entityName, _meaning); } return undefined; } @@ -20952,7 +16382,9 @@ var ts; return getSymbolOfNode(node.parent); } if (node.kind === 64 && isInRightSideOfImportOrExportAssignment(node)) { - return node.parent.kind === 209 ? getSymbolOfEntityNameOrPropertyAccessExpression(node) : getSymbolOfPartOfRightHandSideOfImportEquals(node); + return node.parent.kind === 209 + ? getSymbolOfEntityNameOrPropertyAccessExpression(node) + : getSymbolOfPartOfRightHandSideOfImportEquals(node); } switch (node.kind) { case 64: @@ -20971,7 +16403,10 @@ var ts; return undefined; case 8: var moduleName; - if ((ts.isExternalModuleImportEqualsDeclaration(node.parent.parent) && ts.getExternalModuleImportEqualsDeclarationExpression(node.parent.parent) === node) || ((node.parent.kind === 204 || node.parent.kind === 210) && node.parent.moduleSpecifier === node)) { + if ((ts.isExternalModuleImportEqualsDeclaration(node.parent.parent) && + ts.getExternalModuleImportEqualsDeclarationExpression(node.parent.parent) === node) || + ((node.parent.kind === 204 || node.parent.kind === 210) && + node.parent.moduleSpecifier === node)) { return resolveExternalModuleName(node, node); } case 7: @@ -21009,21 +16444,21 @@ var ts; return getDeclaredTypeOfSymbol(symbol); } if (isTypeDeclarationName(node)) { - var symbol = getSymbolInfo(node); - return symbol && getDeclaredTypeOfSymbol(symbol); + var _symbol = getSymbolInfo(node); + return _symbol && getDeclaredTypeOfSymbol(_symbol); } if (ts.isDeclaration(node)) { - var symbol = getSymbolOfNode(node); - return getTypeOfSymbol(symbol); + var _symbol_1 = getSymbolOfNode(node); + return getTypeOfSymbol(_symbol_1); } if (ts.isDeclarationName(node)) { - var symbol = getSymbolInfo(node); - return symbol && getTypeOfSymbol(symbol); + var _symbol_2 = getSymbolInfo(node); + return _symbol_2 && getTypeOfSymbol(_symbol_2); } if (isInRightSideOfImportOrExportAssignment(node)) { - var symbol = getSymbolInfo(node); - var declaredType = symbol && getDeclaredTypeOfSymbol(symbol); - return declaredType !== unknownType ? declaredType : getTypeOfSymbol(symbol); + var _symbol_3 = getSymbolInfo(node); + var declaredType = _symbol_3 && getDeclaredTypeOfSymbol(_symbol_3); + return declaredType !== unknownType ? declaredType : getTypeOfSymbol(_symbol_3); } return unknownType; } @@ -21034,7 +16469,7 @@ var ts; return checkExpression(expr); } function getAugmentedPropertiesOfType(type) { - var type = getApparentType(type); + type = getApparentType(type); var propsByName = createSymbolTable(getPropertiesOfType(type)); if (getSignaturesOfType(type, 0).length || getSignaturesOfType(type, 1).length) { ts.forEach(getPropertiesOfType(globalFunctionType), function (p) { @@ -21048,23 +16483,19 @@ var ts; function getRootSymbols(symbol) { if (symbol.flags & 268435456) { var symbols = []; - var name = symbol.name; + var _name = symbol.name; ts.forEach(getSymbolLinks(symbol).unionType.types, function (t) { - symbols.push(getPropertyOfType(t, name)); + symbols.push(getPropertyOfType(t, _name)); }); return symbols; } else if (symbol.flags & 67108864) { var target = getSymbolLinks(symbol).target; if (target) { - return [ - target - ]; + return [target]; } } - return [ - symbol - ]; + return [symbol]; } function isExternalModuleSymbol(symbol) { return symbol.flags & 512 && symbol.declarations.length === 1 && symbol.declarations[0].kind === 221; @@ -21127,8 +16558,8 @@ var ts; return ts.hasProperty(globals, name) || ts.hasProperty(sourceFile.identifiers, name) || ts.hasProperty(generatedNames, name); } function makeUniqueName(baseName) { - var name = ts.generateUniqueName(baseName, isExistingName); - return generatedNames[name] = name; + var _name = ts.generateUniqueName(baseName, isExistingName); + return generatedNames[_name] = _name; } function assignGeneratedName(node, name) { getNodeLinks(node).generatedName = ts.unescapeIdentifier(name); @@ -21140,13 +16571,14 @@ var ts; } function generateNameForModuleOrEnum(node) { if (node.name.kind === 64) { - var name = node.name.text; - assignGeneratedName(node, isUniqueLocalName(name, node) ? name : makeUniqueName(name)); + var _name = node.name.text; + assignGeneratedName(node, isUniqueLocalName(_name, node) ? _name : makeUniqueName(_name)); } } function generateNameForImportOrExportDeclaration(node) { var expr = ts.getExternalModuleName(node); - var baseName = expr.kind === 8 ? ts.escapeIdentifier(ts.makeIdentifierFromModuleName(expr.text)) : "module"; + var baseName = expr.kind === 8 ? + ts.escapeIdentifier(ts.makeIdentifierFromModuleName(expr.text)) : "module"; assignGeneratedName(node, makeUniqueName(baseName)); } function generateNameForImportDeclaration(node) { @@ -21244,7 +16676,8 @@ var ts; if (ts.nodeIsPresent(node.body)) { var symbol = getSymbolOfNode(node); var signaturesOfSymbol = getSignaturesOfSymbol(symbol); - return signaturesOfSymbol.length > 1 || (signaturesOfSymbol.length === 1 && signaturesOfSymbol[0].declaration !== node); + return signaturesOfSymbol.length > 1 || + (signaturesOfSymbol.length === 1 && signaturesOfSymbol[0].declaration !== node); } return false; } @@ -21271,7 +16704,9 @@ var ts; } function writeTypeOfDeclaration(declaration, enclosingDeclaration, flags, writer) { var symbol = getSymbolOfNode(declaration); - var type = symbol && !(symbol.flags & (2048 | 131072)) ? getTypeOfSymbol(symbol) : unknownType; + var type = symbol && !(symbol.flags & (2048 | 131072)) + ? getTypeOfSymbol(symbol) + : unknownType; getSymbolDisplayBuilder().buildTypeDisplay(type, writer, enclosingDeclaration, flags); } function writeReturnTypeOfSignatureDeclaration(signatureDeclaration, enclosingDeclaration, flags, writer) { @@ -21280,19 +16715,29 @@ var ts; } function isUnknownIdentifier(location, name) { ts.Debug.assert(!ts.nodeIsSynthesized(location), "isUnknownIdentifier called with a synthesized location"); - return !resolveName(location, name, 107455, undefined, undefined) && !ts.hasProperty(getGeneratedNamesForSourceFile(getSourceFile(location)), name); + return !resolveName(location, name, 107455, undefined, undefined) && + !ts.hasProperty(getGeneratedNamesForSourceFile(getSourceFile(location)), name); } function getBlockScopedVariableId(n) { ts.Debug.assert(!ts.nodeIsSynthesized(n)); - if (n.parent.kind === 153 && n.parent.name === n) { + if (n.parent.kind === 153 && + n.parent.name === n) { return undefined; } - if (n.parent.kind === 150 && n.parent.propertyName === n) { + if (n.parent.kind === 150 && + n.parent.propertyName === n) { return undefined; } - var declarationSymbol = (n.parent.kind === 193 && n.parent.name === n) || n.parent.kind === 150 ? getSymbolOfNode(n.parent) : undefined; - var symbol = declarationSymbol || getNodeLinks(n).resolvedSymbol || resolveName(n, n.text, 2 | 8388608, undefined, undefined); - var isLetOrConst = symbol && (symbol.flags & 2) && symbol.valueDeclaration.parent.kind !== 217; + var declarationSymbol = (n.parent.kind === 193 && n.parent.name === n) || + n.parent.kind === 150 + ? getSymbolOfNode(n.parent) + : undefined; + var symbol = declarationSymbol || + getNodeLinks(n).resolvedSymbol || + resolveName(n, n.text, 107455 | 8388608, undefined, undefined); + var isLetOrConst = symbol && + (symbol.flags & 2) && + symbol.valueDeclaration.parent.kind !== 217; if (isLetOrConst) { getSymbolLinks(symbol); return symbol.id; @@ -21383,13 +16828,13 @@ var ts; } var lastStatic, lastPrivate, lastProtected, lastDeclare; var flags = 0; - for (var i = 0, n = node.modifiers.length; i < n; i++) { - var modifier = node.modifiers[i]; + for (var _i = 0, _a = node.modifiers, _n = _a.length; _i < _n; _i++) { + var modifier = _a[_i]; switch (modifier.kind) { case 108: case 107: case 106: - var text; + var text = void 0; if (modifier.kind === 108) { text = "public"; } @@ -21582,13 +17027,14 @@ var ts; } } function checkGrammarTypeArguments(node, typeArguments) { - return checkGrammarForDisallowedTrailingComma(typeArguments) || checkGrammarForAtLeastOneTypeArgument(node, typeArguments); + return checkGrammarForDisallowedTrailingComma(typeArguments) || + checkGrammarForAtLeastOneTypeArgument(node, typeArguments); } function checkGrammarForOmittedArgument(node, arguments) { if (arguments) { var sourceFile = ts.getSourceFileOfNode(node); - for (var i = 0, n = arguments.length; i < n; i++) { - var arg = arguments[i]; + for (var _i = 0, _n = arguments.length; _i < _n; _i++) { + var arg = arguments[_i]; if (arg.kind === 172) { return grammarErrorAtPos(sourceFile, arg.pos, 0, ts.Diagnostics.Argument_expression_expected); } @@ -21596,7 +17042,8 @@ var ts; } } function checkGrammarArguments(node, arguments) { - return checkGrammarForDisallowedTrailingComma(arguments) || checkGrammarForOmittedArgument(node, arguments); + return checkGrammarForDisallowedTrailingComma(arguments) || + checkGrammarForOmittedArgument(node, arguments); } function checkGrammarHeritageClause(node) { var types = node.types; @@ -21613,9 +17060,8 @@ var ts; var seenExtendsClause = false; var seenImplementsClause = false; if (!checkGrammarModifiers(node) && node.heritageClauses) { - for (var i = 0, n = node.heritageClauses.length; i < n; i++) { - ts.Debug.assert(i <= 2); - var heritageClause = node.heritageClauses[i]; + for (var _i = 0, _a = node.heritageClauses, _n = _a.length; _i < _n; _i++) { + var heritageClause = _a[_i]; if (heritageClause.token === 78) { if (seenExtendsClause) { return grammarErrorOnFirstToken(heritageClause, ts.Diagnostics.extends_clause_already_seen); @@ -21642,9 +17088,8 @@ var ts; function checkGrammarInterfaceDeclaration(node) { var seenExtendsClause = false; if (node.heritageClauses) { - for (var i = 0, n = node.heritageClauses.length; i < n; i++) { - ts.Debug.assert(i <= 1); - var heritageClause = node.heritageClauses[i]; + for (var _i = 0, _a = node.heritageClauses, _n = _a.length; _i < _n; _i++) { + var heritageClause = _a[_i]; if (heritageClause.token === 78) { if (seenExtendsClause) { return grammarErrorOnFirstToken(heritageClause, ts.Diagnostics.extends_clause_already_seen); @@ -21689,18 +17134,19 @@ var ts; var SetAccesor = 4; var GetOrSetAccessor = GetAccessor | SetAccesor; var inStrictMode = (node.parserContextFlags & 1) !== 0; - for (var i = 0, n = node.properties.length; i < n; i++) { - var prop = node.properties[i]; - var name = prop.name; - if (prop.kind === 172 || name.kind === 126) { - checkGrammarComputedPropertyName(name); + for (var _i = 0, _a = node.properties, _n = _a.length; _i < _n; _i++) { + var prop = _a[_i]; + var _name = prop.name; + if (prop.kind === 172 || + _name.kind === 126) { + checkGrammarComputedPropertyName(_name); continue; } - var currentKind; + var currentKind = void 0; if (prop.kind === 218 || prop.kind === 219) { checkGrammarForInvalidQuestionMark(prop, prop.questionToken, ts.Diagnostics.An_object_member_cannot_be_declared_optional); - if (name.kind === 7) { - checkGrammarNumbericLiteral(name); + if (_name.kind === 7) { + checkGrammarNumbericLiteral(_name); } currentKind = Property; } @@ -21716,26 +17162,26 @@ var ts; else { ts.Debug.fail("Unexpected syntax kind:" + prop.kind); } - if (!ts.hasProperty(seen, name.text)) { - seen[name.text] = currentKind; + if (!ts.hasProperty(seen, _name.text)) { + seen[_name.text] = currentKind; } else { - var existingKind = seen[name.text]; + var existingKind = seen[_name.text]; if (currentKind === Property && existingKind === Property) { if (inStrictMode) { - grammarErrorOnNode(name, ts.Diagnostics.An_object_literal_cannot_have_multiple_properties_with_the_same_name_in_strict_mode); + grammarErrorOnNode(_name, ts.Diagnostics.An_object_literal_cannot_have_multiple_properties_with_the_same_name_in_strict_mode); } } else if ((currentKind & GetOrSetAccessor) && (existingKind & GetOrSetAccessor)) { if (existingKind !== GetOrSetAccessor && currentKind !== existingKind) { - seen[name.text] = currentKind | existingKind; + seen[_name.text] = currentKind | existingKind; } else { - return grammarErrorOnNode(name, ts.Diagnostics.An_object_literal_cannot_have_multiple_get_Slashset_accessors_with_the_same_name); + return grammarErrorOnNode(_name, ts.Diagnostics.An_object_literal_cannot_have_multiple_get_Slashset_accessors_with_the_same_name); } } else { - return grammarErrorOnNode(name, ts.Diagnostics.An_object_literal_cannot_have_property_and_accessor_with_the_same_name); + return grammarErrorOnNode(_name, ts.Diagnostics.An_object_literal_cannot_have_property_and_accessor_with_the_same_name); } } } @@ -21748,17 +17194,23 @@ var ts; var variableList = forInOrOfStatement.initializer; if (!checkGrammarVariableDeclarationList(variableList)) { if (variableList.declarations.length > 1) { - var diagnostic = forInOrOfStatement.kind === 182 ? ts.Diagnostics.Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement : ts.Diagnostics.Only_a_single_variable_declaration_is_allowed_in_a_for_of_statement; + var diagnostic = forInOrOfStatement.kind === 182 + ? ts.Diagnostics.Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement + : ts.Diagnostics.Only_a_single_variable_declaration_is_allowed_in_a_for_of_statement; return grammarErrorOnFirstToken(variableList.declarations[1], diagnostic); } var firstDeclaration = variableList.declarations[0]; if (firstDeclaration.initializer) { - var diagnostic = forInOrOfStatement.kind === 182 ? ts.Diagnostics.The_variable_declaration_of_a_for_in_statement_cannot_have_an_initializer : ts.Diagnostics.The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer; - return grammarErrorOnNode(firstDeclaration.name, diagnostic); + var _diagnostic = forInOrOfStatement.kind === 182 + ? ts.Diagnostics.The_variable_declaration_of_a_for_in_statement_cannot_have_an_initializer + : ts.Diagnostics.The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer; + return grammarErrorOnNode(firstDeclaration.name, _diagnostic); } if (firstDeclaration.type) { - var diagnostic = forInOrOfStatement.kind === 182 ? ts.Diagnostics.The_left_hand_side_of_a_for_in_statement_cannot_use_a_type_annotation : ts.Diagnostics.The_left_hand_side_of_a_for_of_statement_cannot_use_a_type_annotation; - return grammarErrorOnNode(firstDeclaration, diagnostic); + var _diagnostic_1 = forInOrOfStatement.kind === 182 + ? ts.Diagnostics.The_left_hand_side_of_a_for_in_statement_cannot_use_a_type_annotation + : ts.Diagnostics.The_left_hand_side_of_a_for_of_statement_cannot_use_a_type_annotation; + return grammarErrorOnNode(firstDeclaration, _diagnostic_1); } } } @@ -21811,7 +17263,9 @@ var ts; } } function checkGrammarMethod(node) { - if (checkGrammarDisallowedModifiersInBlockOrObjectLiteralExpression(node) || checkGrammarFunctionLikeDeclaration(node) || checkGrammarForGenerator(node)) { + if (checkGrammarDisallowedModifiersInBlockOrObjectLiteralExpression(node) || + checkGrammarFunctionLikeDeclaration(node) || + checkGrammarForGenerator(node)) { return true; } if (node.parent.kind === 152) { @@ -21862,7 +17316,8 @@ var ts; switch (current.kind) { case 189: if (node.label && current.label.text === node.label.text) { - var isMisplacedContinueLabel = node.kind === 184 && !isIterationStatement(current.statement, true); + var isMisplacedContinueLabel = node.kind === 184 + && !isIterationStatement(current.statement, true); if (isMisplacedContinueLabel) { return grammarErrorOnNode(node, ts.Diagnostics.A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement); } @@ -21883,12 +17338,16 @@ var ts; current = current.parent; } if (node.label) { - var message = node.kind === 185 ? ts.Diagnostics.A_break_statement_can_only_jump_to_a_label_of_an_enclosing_statement : ts.Diagnostics.A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement; + var message = node.kind === 185 + ? ts.Diagnostics.A_break_statement_can_only_jump_to_a_label_of_an_enclosing_statement + : ts.Diagnostics.A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement; return grammarErrorOnNode(node, message); } else { - var message = node.kind === 185 ? ts.Diagnostics.A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement : ts.Diagnostics.A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement; - return grammarErrorOnNode(node, message); + var _message = node.kind === 185 + ? ts.Diagnostics.A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement + : ts.Diagnostics.A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement; + return grammarErrorOnNode(node, _message); } } function checkGrammarBindingElement(node) { @@ -21924,7 +17383,8 @@ var ts; } } var checkLetConstNames = languageVersion >= 2 && (ts.isLet(node) || ts.isConst(node)); - return (checkLetConstNames && checkGrammarNameInLetOrConstDeclarations(node.name)) || checkGrammarEvalOrArgumentsInStrictMode(node, node.name); + return (checkLetConstNames && checkGrammarNameInLetOrConstDeclarations(node.name)) || + checkGrammarEvalOrArgumentsInStrictMode(node, node.name); } function checkGrammarNameInLetOrConstDeclarations(name) { if (name.kind === 64) { @@ -21934,8 +17394,9 @@ var ts; } else { var elements = name.elements; - for (var i = 0; i < elements.length; ++i) { - checkGrammarNameInLetOrConstDeclarations(elements[i].name); + for (var _i = 0, _n = elements.length; _i < _n; _i++) { + var element = elements[_i]; + checkGrammarNameInLetOrConstDeclarations(element.name); } } } @@ -21991,8 +17452,8 @@ var ts; if (!enumIsConst) { var inConstantEnumMemberSection = true; var inAmbientContext = ts.isInAmbientContext(enumDecl); - for (var i = 0, n = enumDecl.members.length; i < n; i++) { - var node = enumDecl.members[i]; + for (var _i = 0, _a = enumDecl.members, _n = _a.length; _i < _n; _i++) { + var node = _a[_i]; if (node.name.kind === 126) { hasError = grammarErrorOnNode(node.name, ts.Diagnostics.Computed_property_names_are_not_allowed_in_enums); } @@ -22056,7 +17517,8 @@ var ts; } function checkGrammarProperty(node) { if (node.parent.kind === 196) { - if (checkGrammarForInvalidQuestionMark(node, node.questionToken, ts.Diagnostics.A_class_member_cannot_be_declared_optional) || checkGrammarForNonSymbolComputedProperty(node.name, ts.Diagnostics.A_computed_property_name_in_a_class_property_declaration_must_directly_refer_to_a_built_in_symbol)) { + if (checkGrammarForInvalidQuestionMark(node, node.questionToken, ts.Diagnostics.A_class_member_cannot_be_declared_optional) || + checkGrammarForNonSymbolComputedProperty(node.name, ts.Diagnostics.A_computed_property_name_in_a_class_property_declaration_must_directly_refer_to_a_built_in_symbol)) { return true; } } @@ -22075,14 +17537,19 @@ var ts; } } function checkGrammarTopLevelElementForRequiredDeclareModifier(node) { - if (node.kind === 197 || node.kind === 204 || node.kind === 203 || node.kind === 210 || node.kind === 209 || (node.flags & 2)) { + if (node.kind === 197 || + node.kind === 204 || + node.kind === 203 || + node.kind === 210 || + node.kind === 209 || + (node.flags & 2)) { return false; } return grammarErrorOnFirstToken(node, ts.Diagnostics.A_declare_modifier_is_required_for_a_top_level_declaration_in_a_d_ts_file); } function checkGrammarTopLevelElementsForRequiredDeclareModifier(file) { - for (var i = 0, n = file.statements.length; i < n; i++) { - var decl = file.statements[i]; + for (var _i = 0, _a = file.statements, _n = _a.length; _i < _n; _i++) { + var decl = _a[_i]; if (ts.isDeclaration(decl) || decl.kind === 175) { if (checkGrammarTopLevelElementForRequiredDeclareModifier(decl)) { return true; @@ -22103,9 +17570,9 @@ var ts; return getNodeLinks(node).hasReportedStatementInAmbientContext = grammarErrorOnFirstToken(node, ts.Diagnostics.An_implementation_cannot_be_declared_in_ambient_contexts); } if (node.parent.kind === 174 || node.parent.kind === 201 || node.parent.kind === 221) { - var links = getNodeLinks(node.parent); - if (!links.hasReportedStatementInAmbientContext) { - return links.hasReportedStatementInAmbientContext = grammarErrorOnFirstToken(node, ts.Diagnostics.Statements_are_not_allowed_in_ambient_contexts); + var _links = getNodeLinks(node.parent); + if (!_links.hasReportedStatementInAmbientContext) { + return _links.hasReportedStatementInAmbientContext = grammarErrorOnFirstToken(node, ts.Diagnostics.Statements_are_not_allowed_in_ambient_contexts); } } else { @@ -22137,10 +17604,7 @@ var ts; })(ts || (ts = {})); var ts; (function (ts) { - var indentStrings = [ - "", - " " - ]; + var indentStrings = ["", " "]; function getIndentString(level) { if (indentStrings[level] === undefined) { indentStrings[level] = getIndentString(level - 1) + indentStrings[1]; @@ -22215,34 +17679,21 @@ var ts; writeTextOfNode: writeTextOfNode, writeLiteral: writeLiteral, writeLine: writeLine, - increaseIndent: function () { - return indent++; - }, - decreaseIndent: function () { - return indent--; - }, - getIndent: function () { - return indent; - }, - getTextPos: function () { - return output.length; - }, - getLine: function () { - return lineCount + 1; - }, - getColumn: function () { - return lineStart ? indent * getIndentSize() + 1 : output.length - linePos + 1; - }, - getText: function () { - return output; - } + increaseIndent: function () { return indent++; }, + decreaseIndent: function () { return indent--; }, + getIndent: function () { return indent; }, + getTextPos: function () { return output.length; }, + getLine: function () { return lineCount + 1; }, + getColumn: function () { return lineStart ? indent * getIndentSize() + 1 : output.length - linePos + 1; }, + getText: function () { return output; } }; } function getLineOfLocalPosition(currentSourceFile, pos) { return ts.getLineAndCharacterOfPosition(currentSourceFile, pos).line; } function emitNewLineBeforeLeadingComments(currentSourceFile, writer, node, leadingComments) { - if (leadingComments && leadingComments.length && node.pos !== leadingComments[0].pos && getLineOfLocalPosition(currentSourceFile, node.pos) !== getLineOfLocalPosition(currentSourceFile, leadingComments[0].pos)) { + if (leadingComments && leadingComments.length && node.pos !== leadingComments[0].pos && + getLineOfLocalPosition(currentSourceFile, node.pos) !== getLineOfLocalPosition(currentSourceFile, leadingComments[0].pos)) { writer.writeLine(); } } @@ -22271,7 +17722,9 @@ var ts; var lineCount = ts.getLineStarts(currentSourceFile).length; var firstCommentLineIndent; for (var pos = comment.pos, currentLine = firstCommentLineAndCharacter.line; pos < comment.end; currentLine++) { - var nextLineStart = (currentLine + 1) === lineCount ? currentSourceFile.text.length + 1 : ts.getStartPositionOfLine(currentLine + 1, currentSourceFile); + var nextLineStart = (currentLine + 1) === lineCount + ? currentSourceFile.text.length + 1 + : ts.getStartPositionOfLine(currentLine + 1, currentSourceFile); if (pos !== comment.pos) { if (firstCommentLineIndent === undefined) { firstCommentLineIndent = calculateIndent(ts.getStartPositionOfLine(firstCommentLineAndCharacter.line, currentSourceFile), comment.pos); @@ -22349,7 +17802,8 @@ var ts; } else { ts.forEach(declarations, function (member) { - if ((member.kind === 134 || member.kind === 135) && (member.flags & 128) === (accessor.flags & 128)) { + if ((member.kind === 134 || member.kind === 135) + && (member.flags & 128) === (accessor.flags & 128)) { var memberName = ts.getPropertyNameForPropertyNameNode(member.name); var accessorName = ts.getPropertyNameForPropertyNameNode(accessor.name); if (memberName === accessorName) { @@ -22379,11 +17833,12 @@ var ts; } function getOwnEmitOutputFilePath(sourceFile, host, extension) { var compilerOptions = host.getCompilerOptions(); + var emitOutputFilePathWithoutExtension; if (compilerOptions.outDir) { - var emitOutputFilePathWithoutExtension = ts.removeFileExtension(getSourceFilePathInNewDir(sourceFile, host, compilerOptions.outDir)); + emitOutputFilePathWithoutExtension = ts.removeFileExtension(getSourceFilePathInNewDir(sourceFile, host, compilerOptions.outDir)); } else { - var emitOutputFilePathWithoutExtension = ts.removeFileExtension(sourceFile.fileName); + emitOutputFilePathWithoutExtension = ts.removeFileExtension(sourceFile.fileName); } return emitOutputFilePathWithoutExtension + extension; } @@ -22405,8 +17860,7 @@ var ts; var enclosingDeclaration; var currentSourceFile; var reportedDeclarationError = false; - var emitJsDocComments = compilerOptions.removeComments ? function (declaration) { - } : writeJsDocComments; + var emitJsDocComments = compilerOptions.removeComments ? function (declaration) { } : writeJsDocComments; var emit = compilerOptions.stripInternal ? stripInternal : emitNode; var aliasDeclarationEmitInfo = []; var referencePathsOutput = ""; @@ -22415,7 +17869,9 @@ var ts; var addedGlobalFileReference = false; ts.forEach(root.referencedFiles, function (fileReference) { var referencedFile = ts.tryResolveScriptReference(host, root, fileReference); - if (referencedFile && ((referencedFile.flags & 2048) || shouldEmitToOwnFile(referencedFile, compilerOptions) || !addedGlobalFileReference)) { + if (referencedFile && ((referencedFile.flags & 2048) || + shouldEmitToOwnFile(referencedFile, compilerOptions) || + !addedGlobalFileReference)) { writeReferencePath(referencedFile); if (!isExternalModuleOrDeclarationFile(referencedFile)) { addedGlobalFileReference = true; @@ -22432,7 +17888,8 @@ var ts; if (!compilerOptions.noResolve) { ts.forEach(sourceFile.referencedFiles, function (fileReference) { var referencedFile = ts.tryResolveScriptReference(host, sourceFile, fileReference); - if (referencedFile && (isExternalModuleOrDeclarationFile(referencedFile) && !ts.contains(emittedReferencedFiles, referencedFile))) { + if (referencedFile && (isExternalModuleOrDeclarationFile(referencedFile) && + !ts.contains(emittedReferencedFiles, referencedFile))) { writeReferencePath(referencedFile); emittedReferencedFiles.push(referencedFile); } @@ -22463,17 +17920,17 @@ var ts; } } function createAndSetNewTextWriterWithSymbolWriter() { - var writer = createTextWriter(newLine); - writer.trackSymbol = trackSymbol; - writer.writeKeyword = writer.write; - writer.writeOperator = writer.write; - writer.writePunctuation = writer.write; - writer.writeSpace = writer.write; - writer.writeStringLiteral = writer.writeLiteral; - writer.writeParameter = writer.write; - writer.writeSymbol = writer.write; - setWriter(writer); - return writer; + var _writer = createTextWriter(newLine); + _writer.trackSymbol = trackSymbol; + _writer.writeKeyword = _writer.write; + _writer.writeOperator = _writer.write; + _writer.writePunctuation = _writer.write; + _writer.writeSpace = _writer.write; + _writer.writeStringLiteral = _writer.writeLiteral; + _writer.writeParameter = _writer.write; + _writer.writeSymbol = _writer.write; + setWriter(_writer); + return _writer; } function setWriter(newWriter) { writer = newWriter; @@ -22486,9 +17943,7 @@ var ts; function writeAsychronousImportEqualsDeclarations(importEqualsDeclarations) { var oldWriter = writer; ts.forEach(importEqualsDeclarations, function (aliasToWrite) { - var aliasEmitInfo = ts.forEach(aliasDeclarationEmitInfo, function (declEmitInfo) { - return declEmitInfo.declaration === aliasToWrite ? declEmitInfo : undefined; - }); + var aliasEmitInfo = ts.forEach(aliasDeclarationEmitInfo, function (declEmitInfo) { return declEmitInfo.declaration === aliasToWrite ? declEmitInfo : undefined; }); if (aliasEmitInfo) { createAndSetNewTextWriterWithSymbolWriter(); for (var declarationIndent = aliasEmitInfo.indent; declarationIndent; declarationIndent--) { @@ -22543,18 +17998,20 @@ var ts; } } function emitLines(nodes) { - for (var i = 0, n = nodes.length; i < n; i++) { - emit(nodes[i]); + for (var _i = 0, _n = nodes.length; _i < _n; _i++) { + var node = nodes[_i]; + emit(node); } } function emitSeparatedList(nodes, separator, eachNodeEmitFn) { var currentWriterPos = writer.getTextPos(); - for (var i = 0, n = nodes.length; i < n; i++) { + for (var _i = 0, _n = nodes.length; _i < _n; _i++) { + var node = nodes[_i]; if (currentWriterPos !== writer.getTextPos()) { write(separator); } currentWriterPos = writer.getTextPos(); - eachNodeEmitFn(nodes[i]); + eachNodeEmitFn(node); } } function emitCommaList(nodes, eachNodeEmitFn) { @@ -22813,8 +18270,15 @@ var ts; writeTextOfNode(currentSourceFile, node.name); if (node.constraint && !isPrivateMethodTypeParameter(node)) { write(" extends "); - if (node.parent.kind === 140 || node.parent.kind === 141 || (node.parent.parent && node.parent.parent.kind === 143)) { - ts.Debug.assert(node.parent.kind === 132 || node.parent.kind === 131 || node.parent.kind === 140 || node.parent.kind === 141 || node.parent.kind === 136 || node.parent.kind === 137); + if (node.parent.kind === 140 || + node.parent.kind === 141 || + (node.parent.parent && node.parent.parent.kind === 143)) { + ts.Debug.assert(node.parent.kind === 132 || + node.parent.kind === 131 || + node.parent.kind === 140 || + node.parent.kind === 141 || + node.parent.kind === 136 || + node.parent.kind === 137); emitType(node.constraint); } else { @@ -22877,7 +18341,9 @@ var ts; function getHeritageClauseVisibilityError(symbolAccesibilityResult) { var diagnosticMessage; if (node.parent.parent.kind === 196) { - diagnosticMessage = isImplementsList ? ts.Diagnostics.Implements_clause_of_exported_class_0_has_or_is_using_private_name_1 : ts.Diagnostics.Extends_clause_of_exported_class_0_has_or_is_using_private_name_1; + diagnosticMessage = isImplementsList ? + ts.Diagnostics.Implements_clause_of_exported_class_0_has_or_is_using_private_name_1 : + ts.Diagnostics.Extends_clause_of_exported_class_0_has_or_is_using_private_name_1; } else { diagnosticMessage = ts.Diagnostics.Extends_clause_of_exported_interface_0_has_or_is_using_private_name_1; @@ -22910,9 +18376,7 @@ var ts; emitTypeParameters(node.typeParameters); var baseTypeNode = ts.getClassBaseTypeNode(node); if (baseTypeNode) { - emitHeritageClause([ - baseTypeNode - ], false); + emitHeritageClause([baseTypeNode], false); } emitHeritageClause(ts.getClassImplementedTypeNodes(node), true); write(" {"); @@ -22972,17 +18436,31 @@ var ts; function getVariableDeclarationTypeVisibilityError(symbolAccesibilityResult) { var diagnosticMessage; if (node.kind === 193) { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 ? ts.Diagnostics.Exported_variable_0_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : ts.Diagnostics.Exported_variable_0_has_or_is_using_name_1_from_private_module_2 : ts.Diagnostics.Exported_variable_0_has_or_is_using_private_name_1; + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + symbolAccesibilityResult.accessibility === 2 ? + ts.Diagnostics.Exported_variable_0_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : + ts.Diagnostics.Exported_variable_0_has_or_is_using_name_1_from_private_module_2 : + ts.Diagnostics.Exported_variable_0_has_or_is_using_private_name_1; } else if (node.kind === 130 || node.kind === 129) { if (node.flags & 128) { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 ? ts.Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : ts.Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2 : ts.Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_private_name_1; + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + symbolAccesibilityResult.accessibility === 2 ? + ts.Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : + ts.Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2 : + ts.Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_private_name_1; } else if (node.parent.kind === 196) { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 ? ts.Diagnostics.Public_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : ts.Diagnostics.Public_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2 : ts.Diagnostics.Public_property_0_of_exported_class_has_or_is_using_private_name_1; + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + symbolAccesibilityResult.accessibility === 2 ? + ts.Diagnostics.Public_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : + ts.Diagnostics.Public_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2 : + ts.Diagnostics.Public_property_0_of_exported_class_has_or_is_using_private_name_1; } else { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? ts.Diagnostics.Property_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2 : ts.Diagnostics.Property_0_of_exported_interface_has_or_is_using_private_name_1; + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + ts.Diagnostics.Property_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2 : + ts.Diagnostics.Property_0_of_exported_interface_has_or_is_using_private_name_1; } } return diagnosticMessage !== undefined ? { @@ -22999,9 +18477,7 @@ var ts; } } function emitVariableStatement(node) { - var hasDeclarationWithEmit = ts.forEach(node.declarationList.declarations, function (varDeclaration) { - return resolver.isDeclarationVisible(varDeclaration); - }); + var hasDeclarationWithEmit = ts.forEach(node.declarationList.declarations, function (varDeclaration) { return resolver.isDeclarationVisible(varDeclaration); }); if (hasDeclarationWithEmit) { emitJsDocComments(node); emitModuleElementDeclarationFlags(node); @@ -23024,13 +18500,14 @@ var ts; return; } var accessors = getAllAccessorDeclarations(node.parent.members, node); + var accessorWithTypeAnnotation; if (node === accessors.firstAccessor) { emitJsDocComments(accessors.getAccessor); emitJsDocComments(accessors.setAccessor); emitClassMemberDeclarationFlags(node); writeTextOfNode(currentSourceFile, node.name); if (!(node.flags & 32)) { - var accessorWithTypeAnnotation = node; + accessorWithTypeAnnotation = node; var type = getTypeAnnotationFromAccessor(node); if (!type) { var anotherAccessor = node.kind === 134 ? accessors.setAccessor : accessors.getAccessor; @@ -23046,17 +18523,25 @@ var ts; } function getTypeAnnotationFromAccessor(accessor) { if (accessor) { - return accessor.kind === 134 ? accessor.type : accessor.parameters.length > 0 ? accessor.parameters[0].type : undefined; + return accessor.kind === 134 + ? accessor.type + : accessor.parameters.length > 0 + ? accessor.parameters[0].type + : undefined; } } function getAccessorDeclarationTypeVisibilityError(symbolAccesibilityResult) { var diagnosticMessage; if (accessorWithTypeAnnotation.kind === 135) { if (accessorWithTypeAnnotation.parent.flags & 128) { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? ts.Diagnostics.Parameter_0_of_public_static_property_setter_from_exported_class_has_or_is_using_name_1_from_private_module_2 : ts.Diagnostics.Parameter_0_of_public_static_property_setter_from_exported_class_has_or_is_using_private_name_1; + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + ts.Diagnostics.Parameter_0_of_public_static_property_setter_from_exported_class_has_or_is_using_name_1_from_private_module_2 : + ts.Diagnostics.Parameter_0_of_public_static_property_setter_from_exported_class_has_or_is_using_private_name_1; } else { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? ts.Diagnostics.Parameter_0_of_public_property_setter_from_exported_class_has_or_is_using_name_1_from_private_module_2 : ts.Diagnostics.Parameter_0_of_public_property_setter_from_exported_class_has_or_is_using_private_name_1; + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + ts.Diagnostics.Parameter_0_of_public_property_setter_from_exported_class_has_or_is_using_name_1_from_private_module_2 : + ts.Diagnostics.Parameter_0_of_public_property_setter_from_exported_class_has_or_is_using_private_name_1; } return { diagnosticMessage: diagnosticMessage, @@ -23066,10 +18551,18 @@ var ts; } else { if (accessorWithTypeAnnotation.flags & 128) { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 ? ts.Diagnostics.Return_type_of_public_static_property_getter_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named : ts.Diagnostics.Return_type_of_public_static_property_getter_from_exported_class_has_or_is_using_name_0_from_private_module_1 : ts.Diagnostics.Return_type_of_public_static_property_getter_from_exported_class_has_or_is_using_private_name_0; + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + symbolAccesibilityResult.accessibility === 2 ? + ts.Diagnostics.Return_type_of_public_static_property_getter_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named : + ts.Diagnostics.Return_type_of_public_static_property_getter_from_exported_class_has_or_is_using_name_0_from_private_module_1 : + ts.Diagnostics.Return_type_of_public_static_property_getter_from_exported_class_has_or_is_using_private_name_0; } else { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 ? ts.Diagnostics.Return_type_of_public_property_getter_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named : ts.Diagnostics.Return_type_of_public_property_getter_from_exported_class_has_or_is_using_name_0_from_private_module_1 : ts.Diagnostics.Return_type_of_public_property_getter_from_exported_class_has_or_is_using_private_name_0; + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + symbolAccesibilityResult.accessibility === 2 ? + ts.Diagnostics.Return_type_of_public_property_getter_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named : + ts.Diagnostics.Return_type_of_public_property_getter_from_exported_class_has_or_is_using_name_0_from_private_module_1 : + ts.Diagnostics.Return_type_of_public_property_getter_from_exported_class_has_or_is_using_private_name_0; } return { diagnosticMessage: diagnosticMessage, @@ -23083,7 +18576,8 @@ var ts; if (ts.hasDynamicName(node)) { return; } - if ((node.kind !== 195 || resolver.isDeclarationVisible(node)) && !resolver.isImplementationOfOverload(node)) { + if ((node.kind !== 195 || resolver.isDeclarationVisible(node)) && + !resolver.isImplementationOfOverload(node)) { emitJsDocComments(node); if (node.kind === 195) { emitModuleElementDeclarationFlags(node); @@ -23150,28 +18644,48 @@ var ts; var diagnosticMessage; switch (node.kind) { case 137: - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? ts.Diagnostics.Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1 : ts.Diagnostics.Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_0; + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + ts.Diagnostics.Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1 : + ts.Diagnostics.Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_0; break; case 136: - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? ts.Diagnostics.Return_type_of_call_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1 : ts.Diagnostics.Return_type_of_call_signature_from_exported_interface_has_or_is_using_private_name_0; + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + ts.Diagnostics.Return_type_of_call_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1 : + ts.Diagnostics.Return_type_of_call_signature_from_exported_interface_has_or_is_using_private_name_0; break; case 138: - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? ts.Diagnostics.Return_type_of_index_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1 : ts.Diagnostics.Return_type_of_index_signature_from_exported_interface_has_or_is_using_private_name_0; + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + ts.Diagnostics.Return_type_of_index_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1 : + ts.Diagnostics.Return_type_of_index_signature_from_exported_interface_has_or_is_using_private_name_0; break; case 132: case 131: if (node.flags & 128) { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 ? ts.Diagnostics.Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named : ts.Diagnostics.Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_private_module_1 : ts.Diagnostics.Return_type_of_public_static_method_from_exported_class_has_or_is_using_private_name_0; + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + symbolAccesibilityResult.accessibility === 2 ? + ts.Diagnostics.Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named : + ts.Diagnostics.Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_private_module_1 : + ts.Diagnostics.Return_type_of_public_static_method_from_exported_class_has_or_is_using_private_name_0; } else if (node.parent.kind === 196) { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 ? ts.Diagnostics.Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named : ts.Diagnostics.Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_private_module_1 : ts.Diagnostics.Return_type_of_public_method_from_exported_class_has_or_is_using_private_name_0; + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + symbolAccesibilityResult.accessibility === 2 ? + ts.Diagnostics.Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named : + ts.Diagnostics.Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_private_module_1 : + ts.Diagnostics.Return_type_of_public_method_from_exported_class_has_or_is_using_private_name_0; } else { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? ts.Diagnostics.Return_type_of_method_from_exported_interface_has_or_is_using_name_0_from_private_module_1 : ts.Diagnostics.Return_type_of_method_from_exported_interface_has_or_is_using_private_name_0; + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + ts.Diagnostics.Return_type_of_method_from_exported_interface_has_or_is_using_name_0_from_private_module_1 : + ts.Diagnostics.Return_type_of_method_from_exported_interface_has_or_is_using_private_name_0; } break; case 195: - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 ? ts.Diagnostics.Return_type_of_exported_function_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named : ts.Diagnostics.Return_type_of_exported_function_has_or_is_using_name_0_from_private_module_1 : ts.Diagnostics.Return_type_of_exported_function_has_or_is_using_private_name_0; + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + symbolAccesibilityResult.accessibility === 2 ? + ts.Diagnostics.Return_type_of_exported_function_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named : + ts.Diagnostics.Return_type_of_exported_function_has_or_is_using_name_0_from_private_module_1 : + ts.Diagnostics.Return_type_of_exported_function_has_or_is_using_private_name_0; break; default: ts.Debug.fail("This is unknown kind for signature: " + node.kind); @@ -23198,7 +18712,9 @@ var ts; write("?"); } decreaseIndent(); - if (node.parent.kind === 140 || node.parent.kind === 141 || node.parent.parent.kind === 143) { + if (node.parent.kind === 140 || + node.parent.kind === 141 || + node.parent.parent.kind === 143) { emitTypeOfVariableDeclarationFromTypeLiteral(node); } else if (!(node.parent.flags & 32)) { @@ -23208,28 +18724,50 @@ var ts; var diagnosticMessage; switch (node.parent.kind) { case 133: - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 ? ts.Diagnostics.Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : ts.Diagnostics.Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_private_module_2 : ts.Diagnostics.Parameter_0_of_constructor_from_exported_class_has_or_is_using_private_name_1; + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + symbolAccesibilityResult.accessibility === 2 ? + ts.Diagnostics.Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : + ts.Diagnostics.Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_private_module_2 : + ts.Diagnostics.Parameter_0_of_constructor_from_exported_class_has_or_is_using_private_name_1; break; case 137: - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? ts.Diagnostics.Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2 : ts.Diagnostics.Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1; + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + ts.Diagnostics.Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2 : + ts.Diagnostics.Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1; break; case 136: - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? ts.Diagnostics.Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2 : ts.Diagnostics.Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1; + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + ts.Diagnostics.Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2 : + ts.Diagnostics.Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1; break; case 132: case 131: if (node.parent.flags & 128) { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 ? ts.Diagnostics.Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : ts.Diagnostics.Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_private_module_2 : ts.Diagnostics.Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1; + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + symbolAccesibilityResult.accessibility === 2 ? + ts.Diagnostics.Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : + ts.Diagnostics.Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_private_module_2 : + ts.Diagnostics.Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1; } else if (node.parent.parent.kind === 196) { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 ? ts.Diagnostics.Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : ts.Diagnostics.Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_private_module_2 : ts.Diagnostics.Parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1; + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + symbolAccesibilityResult.accessibility === 2 ? + ts.Diagnostics.Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : + ts.Diagnostics.Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_private_module_2 : + ts.Diagnostics.Parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1; } else { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? ts.Diagnostics.Parameter_0_of_method_from_exported_interface_has_or_is_using_name_1_from_private_module_2 : ts.Diagnostics.Parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1; + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + ts.Diagnostics.Parameter_0_of_method_from_exported_interface_has_or_is_using_name_1_from_private_module_2 : + ts.Diagnostics.Parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1; } break; case 195: - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 ? ts.Diagnostics.Parameter_0_of_exported_function_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : ts.Diagnostics.Parameter_0_of_exported_function_has_or_is_using_name_1_from_private_module_2 : ts.Diagnostics.Parameter_0_of_exported_function_has_or_is_using_private_name_1; + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + symbolAccesibilityResult.accessibility === 2 ? + ts.Diagnostics.Parameter_0_of_exported_function_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : + ts.Diagnostics.Parameter_0_of_exported_function_has_or_is_using_name_1_from_private_module_2 : + ts.Diagnostics.Parameter_0_of_exported_function_has_or_is_using_private_name_1; break; default: ts.Debug.fail("This is unknown parent for parameter: " + node.parent.kind); @@ -23281,7 +18819,11 @@ var ts; } } function writeReferencePath(referencedFile) { - var declFileName = referencedFile.flags & 2048 ? referencedFile.fileName : shouldEmitToOwnFile(referencedFile, compilerOptions) ? getOwnEmitOutputFilePath(referencedFile, host, ".d.ts") : ts.removeFileExtension(compilerOptions.out) + ".d.ts"; + var declFileName = referencedFile.flags & 2048 + ? referencedFile.fileName + : shouldEmitToOwnFile(referencedFile, compilerOptions) + ? getOwnEmitOutputFilePath(referencedFile, host, ".d.ts") + : ts.removeFileExtension(compilerOptions.out) + ".d.ts"; declFileName = ts.getRelativePathToDirectoryOrUrl(ts.getDirectoryPath(ts.normalizeSlashes(jsFilePath)), declFileName, host.getCurrentDirectory(), host.getCanonicalFileName, false); referencePathsOutput += "/// " + newLine; } @@ -23345,28 +18887,20 @@ var ts; var exportSpecifiers; var exportDefault; var writeEmittedFiles = writeJavaScriptFile; - var emitLeadingComments = compilerOptions.removeComments ? function (node) { - } : emitLeadingDeclarationComments; - var emitTrailingComments = compilerOptions.removeComments ? function (node) { - } : emitTrailingDeclarationComments; - var emitLeadingCommentsOfPosition = compilerOptions.removeComments ? function (pos) { - } : emitLeadingCommentsOfLocalPosition; + var emitLeadingComments = compilerOptions.removeComments ? function (node) { } : emitLeadingDeclarationComments; + var emitTrailingComments = compilerOptions.removeComments ? function (node) { } : emitTrailingDeclarationComments; + var emitLeadingCommentsOfPosition = compilerOptions.removeComments ? function (pos) { } : emitLeadingCommentsOfLocalPosition; var detachedCommentsInfo; - var emitDetachedComments = compilerOptions.removeComments ? function (node) { - } : emitDetachedCommentsAtPosition; + var emitDetachedComments = compilerOptions.removeComments ? function (node) { } : emitDetachedCommentsAtPosition; var writeComment = writeCommentRange; var emitNodeWithoutSourceMap = compilerOptions.removeComments ? emitNodeWithoutSourceMapWithoutComments : emitNodeWithoutSourceMapWithComments; var emit = emitNodeWithoutSourceMap; var emitWithoutComments = emitNodeWithoutSourceMapWithoutComments; - var emitStart = function (node) { - }; - var emitEnd = function (node) { - }; + var emitStart = function (node) { }; + var emitEnd = function (node) { }; var emitToken = emitTokenText; - var scopeEmitStart = function (scopeDeclaration, scopeName) { - }; - var scopeEmitEnd = function () { - }; + var scopeEmitStart = function (scopeDeclaration, scopeName) { }; + var scopeEmitEnd = function () { }; var sourceMapData; if (compilerOptions.sourceMap) { initializeEmitterWithSourceMaps(); @@ -23392,10 +18926,7 @@ var ts; var names = currentScopeNames; currentScopeNames = undefined; if (names) { - lastFrame = { - names: names, - previous: lastFrame - }; + lastFrame = { names: names, previous: lastFrame }; return true; } return false; @@ -23410,16 +18941,14 @@ var ts; } } function generateUniqueNameForLocation(location, baseName) { - var name; + var _name; if (!isExistingName(location, baseName)) { - name = baseName; + _name = baseName; } else { - name = ts.generateUniqueName(baseName, function (n) { - return isExistingName(location, n); - }); + _name = ts.generateUniqueName(baseName, function (n) { return isExistingName(location, n); }); } - return recordNameInCurrentScope(name); + return recordNameInCurrentScope(_name); } function recordNameInCurrentScope(name) { if (!currentScopeNames) { @@ -23517,7 +19046,12 @@ var ts; sourceLinePos.character++; var emittedLine = writer.getLine(); var emittedColumn = writer.getColumn(); - if (!lastRecordedSourceMapSpan || lastRecordedSourceMapSpan.emittedLine != emittedLine || lastRecordedSourceMapSpan.emittedColumn != emittedColumn || (lastRecordedSourceMapSpan.sourceIndex === sourceMapSourceIndex && (lastRecordedSourceMapSpan.sourceLine > sourceLinePos.line || (lastRecordedSourceMapSpan.sourceLine === sourceLinePos.line && lastRecordedSourceMapSpan.sourceColumn > sourceLinePos.character)))) { + if (!lastRecordedSourceMapSpan || + lastRecordedSourceMapSpan.emittedLine != emittedLine || + lastRecordedSourceMapSpan.emittedColumn != emittedColumn || + (lastRecordedSourceMapSpan.sourceIndex === sourceMapSourceIndex && + (lastRecordedSourceMapSpan.sourceLine > sourceLinePos.line || + (lastRecordedSourceMapSpan.sourceLine === sourceLinePos.line && lastRecordedSourceMapSpan.sourceColumn > sourceLinePos.character)))) { encodeLastRecordedSourceMapSpan(); lastRecordedSourceMapSpan = { emittedLine: emittedLine, @@ -23562,8 +19096,8 @@ var ts; if (scopeName) { var parentIndex = getSourceMapNameIndex(); if (parentIndex !== -1) { - var name = node.name; - if (!name || name.kind !== 126) { + var _name = node.name; + if (!_name || _name.kind !== 126) { scopeName = "." + scopeName; } scopeName = sourceMapData.sourceMapNames[parentIndex] + scopeName; @@ -23580,10 +19114,20 @@ var ts; if (scopeName) { recordScopeNameStart(scopeName); } - else if (node.kind === 195 || node.kind === 160 || node.kind === 132 || node.kind === 131 || node.kind === 134 || node.kind === 135 || node.kind === 200 || node.kind === 196 || node.kind === 199) { + else if (node.kind === 195 || + node.kind === 160 || + node.kind === 132 || + node.kind === 131 || + node.kind === 134 || + node.kind === 135 || + node.kind === 200 || + node.kind === 196 || + node.kind === 199) { if (node.name) { - var name = node.name; - scopeName = name.kind === 126 ? ts.getTextOfNode(name) : node.name.text; + var _name = node.name; + scopeName = _name.kind === 126 + ? ts.getTextOfNode(_name) + : node.name.text; } recordScopeNameStart(scopeName); } @@ -23697,14 +19241,18 @@ var ts; function writeJavaScriptFile(emitOutput, writeByteOrderMark) { writeFile(host, diagnostics, jsFilePath, emitOutput, writeByteOrderMark); } - function createTempVariable(location, forLoopVariable) { - var name = forLoopVariable ? "_i" : undefined; - while (true) { - if (name && !isExistingName(location, name)) { - break; + function createTempVariable(location, preferredName) { + for (var name = preferredName; !name || isExistingName(location, name); tempCount++) { + var char = 97 + tempCount; + if (char === 105 || char === 110) { + continue; + } + if (tempCount < 26) { + name = "_" + String.fromCharCode(char); + } + else { + name = "_" + (tempCount - 26); } - name = "_" + (tempCount < 25 ? String.fromCharCode(tempCount + (tempCount < 8 ? 0 : 1) + 97) : tempCount - 25); - tempCount++; } recordNameInCurrentScope(name); var result = ts.createSynthesizedNode(64); @@ -23717,8 +19265,8 @@ var ts; } tempVariables.push(name); } - function createAndRecordTempVariable(location) { - var temp = createTempVariable(location, false); + function createAndRecordTempVariable(location, preferredName) { + var temp = createTempVariable(location, preferredName); recordTempDeclaration(temp); return temp; } @@ -23926,7 +19474,8 @@ var ts; if (node.template.kind === 169) { ts.forEach(node.template.templateSpans, function (templateSpan) { write(", "); - var needsParens = templateSpan.expression.kind === 167 && templateSpan.expression.operatorToken.kind === 23; + var needsParens = templateSpan.expression.kind === 167 + && templateSpan.expression.operatorToken.kind === 23; emitParenthesizedIf(templateSpan.expression, needsParens); }); } @@ -23937,7 +19486,8 @@ var ts; ts.forEachChild(node, emit); return; } - var emitOuterParens = ts.isExpression(node.parent) && templateNeedsParens(node, node.parent); + var emitOuterParens = ts.isExpression(node.parent) + && templateNeedsParens(node, node.parent); if (emitOuterParens) { write("("); } @@ -23946,9 +19496,10 @@ var ts; emitLiteral(node.head); headEmitted = true; } - for (var i = 0; i < node.templateSpans.length; i++) { + for (var i = 0, n = node.templateSpans.length; i < n; i++) { var templateSpan = node.templateSpans[i]; - var needsParens = templateSpan.expression.kind !== 159 && comparePrecedenceToBinaryPlus(templateSpan.expression) !== 1; + var needsParens = templateSpan.expression.kind !== 159 + && comparePrecedenceToBinaryPlus(templateSpan.expression) !== 1; if (i > 0 || headEmitted) { write(" + "); } @@ -24022,8 +19573,8 @@ var ts; } } function isNotExpressionIdentifier(node) { - var parent = node.parent; - switch (parent.kind) { + var _parent = node.parent; + switch (_parent.kind) { case 128: case 193: case 150: @@ -24043,7 +19594,7 @@ var ts; case 199: case 200: case 203: - return parent.name === node; + return _parent.name === node; case 185: case 184: case 209: @@ -24150,8 +19701,8 @@ var ts; function emitListWithSpread(elements, multiLine, trailingComma) { var pos = 0; var group = 0; - var length = elements.length; - while (pos < length) { + var _length = elements.length; + while (pos < _length) { if (group === 1) { write(".concat("); } @@ -24166,14 +19717,14 @@ var ts; } else { var i = pos; - while (i < length && elements[i].kind !== 171) { + while (i < _length && elements[i].kind !== 171) { i++; } write("["); if (multiLine) { increaseIndent(); } - emitList(elements, pos, i - pos, multiLine, trailingComma && i === length); + emitList(elements, pos, i - pos, multiLine, trailingComma && i === _length); if (multiLine) { decreaseIndent(); } @@ -24249,8 +19800,8 @@ var ts; var propertyDescriptor = ts.createSynthesizedNode(152); var descriptorProperties = []; if (getAccessor) { - var getProperty = createPropertyAssignment(createIdentifier("get"), createFunctionExpression(getAccessor.parameters, getAccessor.body)); - descriptorProperties.push(getProperty); + var _getProperty = createPropertyAssignment(createIdentifier("get"), createFunctionExpression(getAccessor.parameters, getAccessor.body)); + descriptorProperties.push(_getProperty); } if (setAccessor) { var setProperty = createPropertyAssignment(createIdentifier("set"), createFunctionExpression(setAccessor.parameters, setAccessor.body)); @@ -24363,7 +19914,6 @@ var ts; } } write("{"); - var properties = node.properties; if (properties.length) { emitLinePreservingList(node, properties, languageVersion >= 1, true); } @@ -24446,9 +19996,7 @@ var ts; write("]"); } function hasSpreadElement(elements) { - return ts.forEach(elements, function (e) { - return e.kind === 171; - }); + return ts.forEach(elements, function (e) { return e.kind === 171; }); } function skipParentheses(node) { while (node.kind === 159 || node.kind === 158) { @@ -24561,7 +20109,14 @@ var ts; while (operand.kind == 158) { operand = operand.expression; } - if (operand.kind !== 165 && operand.kind !== 164 && operand.kind !== 163 && operand.kind !== 162 && operand.kind !== 166 && operand.kind !== 156 && !(operand.kind === 155 && node.parent.kind === 156) && !(operand.kind === 160 && node.parent.kind === 155)) { + if (operand.kind !== 165 && + operand.kind !== 164 && + operand.kind !== 163 && + operand.kind !== 162 && + operand.kind !== 166 && + operand.kind !== 156 && + !(operand.kind === 155 && node.parent.kind === 156) && + !(operand.kind === 160 && node.parent.kind === 155)) { emit(operand); return; } @@ -24604,7 +20159,8 @@ var ts; write(ts.tokenToString(node.operator)); } function emitBinaryExpression(node) { - if (languageVersion < 2 && node.operatorToken.kind === 52 && (node.left.kind === 152 || node.left.kind === 151)) { + if (languageVersion < 2 && node.operatorToken.kind === 52 && + (node.left.kind === 152 || node.left.kind === 151)) { emitDestructuring(node, node.parent.kind === 177); } else { @@ -24802,8 +20358,9 @@ var ts; write(" "); endPos = emitToken(16, endPos); var rhsIsIdentifier = node.expression.kind === 64; - var counter = createTempVariable(node, true); - var rhsReference = rhsIsIdentifier ? node.expression : createTempVariable(node, false); + var counter = createTempVariable(node, "_i"); + var rhsReference = rhsIsIdentifier ? node.expression : createTempVariable(node); + var cachedLength = compilerOptions.cacheDownlevelForOfLength ? createTempVariable(node, "_n") : undefined; emitStart(node.expression); write("var "); emitNodeWithoutSourceMap(counter); @@ -24817,12 +20374,24 @@ var ts; emitNodeWithoutSourceMap(node.expression); emitEnd(node.expression); } + if (cachedLength) { + write(", "); + emitNodeWithoutSourceMap(cachedLength); + write(" = "); + emitNodeWithoutSourceMap(rhsReference); + write(".length"); + } write("; "); emitStart(node.initializer); emitNodeWithoutSourceMap(counter); write(" < "); - emitNodeWithoutSourceMap(rhsReference); - write(".length"); + if (cachedLength) { + emitNodeWithoutSourceMap(cachedLength); + } + else { + emitNodeWithoutSourceMap(rhsReference); + write(".length"); + } emitEnd(node.initializer); write("; "); emitStart(node.initializer); @@ -24850,7 +20419,7 @@ var ts; } } else { - emitNodeWithoutSourceMap(createTempVariable(node, false)); + emitNodeWithoutSourceMap(createTempVariable(node)); write(" = "); emitNodeWithoutSourceMap(rhsIterationValue); } @@ -24911,13 +20480,16 @@ var ts; emitToken(15, node.clauses.end); } function nodeStartPositionsAreOnSameLine(node1, node2) { - return getLineOfLocalPosition(currentSourceFile, ts.skipTrivia(currentSourceFile.text, node1.pos)) === getLineOfLocalPosition(currentSourceFile, ts.skipTrivia(currentSourceFile.text, node2.pos)); + return getLineOfLocalPosition(currentSourceFile, ts.skipTrivia(currentSourceFile.text, node1.pos)) === + getLineOfLocalPosition(currentSourceFile, ts.skipTrivia(currentSourceFile.text, node2.pos)); } function nodeEndPositionsAreOnSameLine(node1, node2) { - return getLineOfLocalPosition(currentSourceFile, node1.end) === getLineOfLocalPosition(currentSourceFile, node2.end); + return getLineOfLocalPosition(currentSourceFile, node1.end) === + getLineOfLocalPosition(currentSourceFile, node2.end); } function nodeEndIsOnSameLineAsNodeStart(node1, node2) { - return getLineOfLocalPosition(currentSourceFile, node1.end) === getLineOfLocalPosition(currentSourceFile, ts.skipTrivia(currentSourceFile.text, node2.pos)); + return getLineOfLocalPosition(currentSourceFile, node1.end) === + getLineOfLocalPosition(currentSourceFile, ts.skipTrivia(currentSourceFile.text, node2.pos)); } function emitCaseOrDefaultClause(node) { if (node.kind === 214) { @@ -25015,7 +20587,7 @@ var ts; } function emitDestructuring(root, isAssignmentExpressionStatement, value, lowestNonSynthesizedAncestor) { var emitCount = 0; - var isDeclaration = (root.kind === 193 && !(ts.getCombinedNodeFlags(root) & 1)) || root.kind === 128; + var _isDeclaration = (root.kind === 193 && !(ts.getCombinedNodeFlags(root) & 1)) || root.kind === 128; if (root.kind === 167) { emitAssignmentExpression(root); } @@ -25040,7 +20612,7 @@ var ts; function ensureIdentifier(expr) { if (expr.kind !== 64) { var identifier = createTempVariable(lowestNonSynthesizedAncestor || root); - if (!isDeclaration) { + if (!_isDeclaration) { recordTempDeclaration(identifier); } emitAssignment(identifier, expr); @@ -25095,8 +20667,8 @@ var ts; if (properties.length !== 1) { value = ensureIdentifier(value); } - for (var i = 0; i < properties.length; i++) { - var p = properties[i]; + for (var _i = 0, _n = properties.length; _i < _n; _i++) { + var p = properties[_i]; if (p.kind === 218 || p.kind === 219) { var propName = (p.name); emitDestructuringAssignment(p.initializer || propName, createPropertyAccess(value, propName)); @@ -25141,18 +20713,18 @@ var ts; } function emitAssignmentExpression(root) { var target = root.left; - var value = root.right; + var _value = root.right; if (isAssignmentExpressionStatement) { - emitDestructuringAssignment(target, value); + emitDestructuringAssignment(target, _value); } else { if (root.parent.kind !== 159) { write("("); } - value = ensureIdentifier(value); - emitDestructuringAssignment(target, value); + _value = ensureIdentifier(_value); + emitDestructuringAssignment(target, _value); write(", "); - emit(value); + emit(_value); if (root.parent.kind !== 159) { write(")"); } @@ -25211,8 +20783,11 @@ var ts; emitModuleMemberName(node); var initializer = node.initializer; if (!initializer && languageVersion < 2) { - var isUninitializedLet = (resolver.getNodeCheckFlags(node) & 256) && (getCombinedFlagsForIdentifier(node.name) & 4096); - if (isUninitializedLet && node.parent.parent.kind !== 182 && node.parent.parent.kind !== 183) { + var isUninitializedLet = (resolver.getNodeCheckFlags(node) & 256) && + (getCombinedFlagsForIdentifier(node.name) & 4096); + if (isUninitializedLet && + node.parent.parent.kind !== 182 && + node.parent.parent.kind !== 183) { initializer = createVoidZero(); } } @@ -25220,12 +20795,12 @@ var ts; } } function emitExportVariableAssignments(node) { - var name = node.name; - if (name.kind === 64) { - emitExportMemberAssignments(name); + var _name = node.name; + if (_name.kind === 64) { + emitExportMemberAssignments(_name); } - else if (ts.isBindingPattern(name)) { - ts.forEach(name.elements, emitExportVariableAssignments); + else if (ts.isBindingPattern(_name)) { + ts.forEach(_name.elements, emitExportVariableAssignments); } } function getCombinedFlagsForIdentifier(node) { @@ -25235,7 +20810,10 @@ var ts; return ts.getCombinedNodeFlags(node.parent); } function renameNonTopLevelLetAndConst(node) { - if (languageVersion >= 2 || ts.nodeIsSynthesized(node) || node.kind !== 64 || (node.parent.kind !== 193 && node.parent.kind !== 150)) { + if (languageVersion >= 2 || + ts.nodeIsSynthesized(node) || + node.kind !== 64 || + (node.parent.kind !== 193 && node.parent.kind !== 150)) { return; } var combinedFlags = getCombinedFlagsForIdentifier(node); @@ -25247,8 +20825,10 @@ var ts; return; } var blockScopeContainer = ts.getEnclosingBlockScopeContainer(node); - var parent = blockScopeContainer.kind === 221 ? blockScopeContainer : blockScopeContainer.parent; - var generatedName = generateUniqueNameForLocation(parent, node.text); + var _parent = blockScopeContainer.kind === 221 + ? blockScopeContainer + : blockScopeContainer.parent; + var generatedName = generateUniqueNameForLocation(_parent, node.text); var variableId = resolver.getBlockScopedVariableId(node); if (!generatedBlockScopeNames) { generatedBlockScopeNames = []; @@ -25268,12 +20848,12 @@ var ts; function emitParameter(node) { if (languageVersion < 2) { if (ts.isBindingPattern(node.name)) { - var name = createTempVariable(node); + var _name = createTempVariable(node); if (!tempParameters) { tempParameters = []; } - tempParameters.push(name); - emit(name); + tempParameters.push(_name); + emit(_name); } else { emit(node.name); @@ -25320,7 +20900,7 @@ var ts; if (languageVersion < 2 && ts.hasRestParameters(node)) { var restIndex = node.parameters.length - 1; var restParam = node.parameters[restIndex]; - var tempName = createTempVariable(node, true).text; + var tempName = createTempVariable(node, "_i").text; writeLine(); emitLeadingComments(restParam); emitStart(restParam); @@ -25519,9 +21099,10 @@ var ts; decreaseIndent(); var preambleEmitted = writer.getTextPos() !== initialTextPos; if (preserveNewLines && !preambleEmitted && nodeEndIsOnSameLineAsNodeStart(body, body)) { - for (var i = 0, n = body.statements.length; i < n; i++) { + for (var _i = 0, _a = body.statements, _n = _a.length; _i < _n; _i++) { + var statement = _a[_i]; write(" "); - emit(body.statements[i]); + emit(statement); } emitTempDeclarations(false); write(" "); @@ -25759,11 +21340,12 @@ var ts; emitDetachedComments(ctor.body.statements); } emitCaptureThisForNodeIfNecessary(node); + var superCall; if (ctor) { emitDefaultValueAssignments(ctor); emitRestParameter(ctor); if (baseTypeNode) { - var superCall = findInitialSuperCall(ctor); + superCall = findInitialSuperCall(ctor); if (superCall) { writeLine(); emit(superCall); @@ -26008,7 +21590,8 @@ var ts; emitImportDeclaration(node); return; } - if (resolver.isReferencedAliasDeclaration(node) || (!ts.isExternalModule(currentSourceFile) && resolver.isTopLevelValueImportEqualsWithEntityName(node))) { + if (resolver.isReferencedAliasDeclaration(node) || + (!ts.isExternalModule(currentSourceFile) && resolver.isTopLevelValueImportEqualsWithEntityName(node))) { emitLeadingComments(node); emitStart(node); if (!(node.flags & 1)) @@ -26110,8 +21693,8 @@ var ts; if (specifier.name.text === "default") { exportDefault = exportDefault || specifier; } - var name = (specifier.propertyName || specifier.name).text; - (exportSpecifiers[name] || (exportSpecifiers[name] = [])).push(specifier); + var _name = (specifier.propertyName || specifier.name).text; + (exportSpecifiers[_name] || (exportSpecifiers[_name] = [])).push(specifier); }); } else if (node.kind === 209) { @@ -26134,8 +21717,8 @@ var ts; } function getExternalImportInfo(node) { if (externalImports) { - for (var i = 0; i < externalImports.length; i++) { - var info = externalImports[i]; + for (var _i = 0, _n = externalImports.length; _i < _n; _i++) { + var info = externalImports[_i]; if (info.rootNode === node) { return info; } @@ -26296,12 +21879,12 @@ var ts; if (node.flags & 2) { return emitPinnedOrTripleSlashComments(node); } - var emitComments = shouldEmitLeadingAndTrailingComments(node); - if (emitComments) { + var _emitComments = shouldEmitLeadingAndTrailingComments(node); + if (_emitComments) { emitLeadingComments(node); } emitJavaScriptWorker(node); - if (emitComments) { + if (_emitComments) { emitTrailingComments(node); } } @@ -26530,10 +22113,7 @@ var ts; else { leadingComments = ts.getLeadingCommentRanges(currentSourceFile.text, pos); } - emitNewLineBeforeLeadingComments(currentSourceFile, writer, { - pos: pos, - end: pos - }, leadingComments); + emitNewLineBeforeLeadingComments(currentSourceFile, writer, { pos: pos, end: pos }, leadingComments); emitComments(currentSourceFile, writer, leadingComments, true, newLine, writeComment); } function emitDetachedCommentsAtPosition(node) { @@ -26558,17 +22138,12 @@ var ts; if (nodeLine >= lastCommentLine + 2) { emitNewLineBeforeLeadingComments(currentSourceFile, writer, node, leadingComments); emitComments(currentSourceFile, writer, detachedComments, true, newLine, writeComment); - var currentDetachedCommentInfo = { - nodePos: node.pos, - detachedCommentEndPos: detachedComments[detachedComments.length - 1].end - }; + var currentDetachedCommentInfo = { nodePos: node.pos, detachedCommentEndPos: detachedComments[detachedComments.length - 1].end }; if (detachedCommentsInfo) { detachedCommentsInfo.push(currentDetachedCommentInfo); } else { - detachedCommentsInfo = [ - currentDetachedCommentInfo - ]; + detachedCommentsInfo = [currentDetachedCommentInfo]; } } } @@ -26580,7 +22155,10 @@ var ts; if (currentSourceFile.text.charCodeAt(comment.pos + 1) === 42) { return currentSourceFile.text.charCodeAt(comment.pos + 2) === 33; } - else if (currentSourceFile.text.charCodeAt(comment.pos + 1) === 47 && comment.pos + 2 < comment.end && currentSourceFile.text.charCodeAt(comment.pos + 2) === 47 && currentSourceFile.text.substring(comment.pos, comment.end).match(ts.fullTripleSlashReferencePathRegEx)) { + else if (currentSourceFile.text.charCodeAt(comment.pos + 1) === 47 && + comment.pos + 2 < comment.end && + currentSourceFile.text.charCodeAt(comment.pos + 2) === 47 && + currentSourceFile.text.substring(comment.pos, comment.end).match(ts.fullTripleSlashReferencePathRegEx)) { return true; } } @@ -26626,14 +22204,17 @@ var ts; } var unsupportedFileEncodingErrorCode = -2147024809; function getSourceFile(fileName, languageVersion, onError) { + var text; try { var start = new Date().getTime(); - var text = ts.sys.readFile(fileName, options.charset); + text = ts.sys.readFile(fileName, options.charset); ts.ioReadTime += new Date().getTime() - start; } catch (e) { if (onError) { - onError(e.number === unsupportedFileEncodingErrorCode ? ts.createCompilerDiagnostic(ts.Diagnostics.Unsupported_file_encoding).messageText : e.message); + onError(e.number === unsupportedFileEncodingErrorCode + ? ts.createCompilerDiagnostic(ts.Diagnostics.Unsupported_file_encoding).messageText + : e.message); } text = ""; } @@ -26669,20 +22250,12 @@ var ts; } return { getSourceFile: getSourceFile, - getDefaultLibFileName: function (options) { - return ts.combinePaths(ts.getDirectoryPath(ts.normalizePath(ts.sys.getExecutingFilePath())), ts.getDefaultLibFileName(options)); - }, + getDefaultLibFileName: function (options) { return ts.combinePaths(ts.getDirectoryPath(ts.normalizePath(ts.sys.getExecutingFilePath())), ts.getDefaultLibFileName(options)); }, writeFile: writeFile, - getCurrentDirectory: function () { - return currentDirectory || (currentDirectory = ts.sys.getCurrentDirectory()); - }, - useCaseSensitiveFileNames: function () { - return ts.sys.useCaseSensitiveFileNames; - }, + getCurrentDirectory: function () { return currentDirectory || (currentDirectory = ts.sys.getCurrentDirectory()); }, + useCaseSensitiveFileNames: function () { return ts.sys.useCaseSensitiveFileNames; }, getCanonicalFileName: getCanonicalFileName, - getNewLine: function () { - return ts.sys.newLine; - } + getNewLine: function () { return ts.sys.newLine; } }; } ts.createCompilerHost = createCompilerHost; @@ -26722,9 +22295,7 @@ var ts; var seenNoDefaultLib = options.noLib; var commonSourceDirectory; host = host || createCompilerHost(options); - ts.forEach(rootNames, function (name) { - return processRootFile(name, false); - }); + ts.forEach(rootNames, function (name) { return processRootFile(name, false); }); if (!seenNoDefaultLib) { processRootFile(host.getDefaultLibFileName(options), true); } @@ -26733,35 +22304,21 @@ var ts; var noDiagnosticsTypeChecker; program = { getSourceFile: getSourceFile, - getSourceFiles: function () { - return files; - }, - getCompilerOptions: function () { - return options; - }, + getSourceFiles: function () { return files; }, + getCompilerOptions: function () { return options; }, getSyntacticDiagnostics: getSyntacticDiagnostics, getGlobalDiagnostics: getGlobalDiagnostics, getSemanticDiagnostics: getSemanticDiagnostics, getDeclarationDiagnostics: getDeclarationDiagnostics, getTypeChecker: getTypeChecker, getDiagnosticsProducingTypeChecker: getDiagnosticsProducingTypeChecker, - getCommonSourceDirectory: function () { - return commonSourceDirectory; - }, + getCommonSourceDirectory: function () { return commonSourceDirectory; }, emit: emit, getCurrentDirectory: host.getCurrentDirectory, - getNodeCount: function () { - return getDiagnosticsProducingTypeChecker().getNodeCount(); - }, - getIdentifierCount: function () { - return getDiagnosticsProducingTypeChecker().getIdentifierCount(); - }, - getSymbolCount: function () { - return getDiagnosticsProducingTypeChecker().getSymbolCount(); - }, - getTypeCount: function () { - return getDiagnosticsProducingTypeChecker().getTypeCount(); - } + getNodeCount: function () { return getDiagnosticsProducingTypeChecker().getNodeCount(); }, + getIdentifierCount: function () { return getDiagnosticsProducingTypeChecker().getIdentifierCount(); }, + getSymbolCount: function () { return getDiagnosticsProducingTypeChecker().getSymbolCount(); }, + getTypeCount: function () { return getDiagnosticsProducingTypeChecker().getTypeCount(); } }; return program; function getEmitHost(writeFileCallback) { @@ -26788,11 +22345,7 @@ var ts; } function emit(sourceFile, writeFileCallback) { if (options.noEmitOnError && getPreEmitDiagnostics(this).length > 0) { - return { - diagnostics: [], - sourceMaps: undefined, - emitSkipped: true - }; + return { diagnostics: [], sourceMaps: undefined, emitSkipped: true }; } var emitResolver = getDiagnosticsProducingTypeChecker().getEmitResolver(sourceFile); var start = new Date().getTime(); @@ -26845,9 +22398,11 @@ var ts; processSourceFile(ts.normalizePath(fileName), isDefaultLib); } function processSourceFile(fileName, isDefaultLib, refFile, refPos, refEnd) { + var start; + var _length; if (refEnd !== undefined && refPos !== undefined) { - var start = refPos; - var length = refEnd - refPos; + start = refPos; + _length = refEnd - refPos; } var diagnostic; if (hasExtension(fileName)) { @@ -26872,7 +22427,7 @@ var ts; } if (diagnostic) { if (refFile) { - diagnostics.add(ts.createFileDiagnostic(refFile, start, length, diagnostic, fileName)); + diagnostics.add(ts.createFileDiagnostic(refFile, start, _length, diagnostic, fileName)); } else { diagnostics.add(ts.createCompilerDiagnostic(diagnostic, fileName)); @@ -26913,17 +22468,17 @@ var ts; files.push(file); } } + return file; } - return file; function getSourceFileFromCache(fileName, canonicalName, useAbsolutePath) { - var file = filesByName[canonicalName]; - if (file && host.useCaseSensitiveFileNames()) { - var sourceFileName = useAbsolutePath ? ts.getNormalizedAbsolutePath(file.fileName, host.getCurrentDirectory()) : file.fileName; + var _file = filesByName[canonicalName]; + if (_file && host.useCaseSensitiveFileNames()) { + var sourceFileName = useAbsolutePath ? ts.getNormalizedAbsolutePath(_file.fileName, host.getCurrentDirectory()) : _file.fileName; if (canonicalName !== sourceFileName) { diagnostics.add(ts.createFileDiagnostic(refFile, refStart, refLength, ts.Diagnostics.File_name_0_differs_from_already_included_file_name_1_only_in_casing, fileName, sourceFileName)); } } - return file; + return _file; } } function processReferencedFiles(file, basePath) { @@ -26956,14 +22511,15 @@ var ts; } else if (node.kind === 200 && node.name.kind === 8 && (node.flags & 2 || ts.isDeclarationFile(file))) { ts.forEachChild(node.body, function (node) { - if (ts.isExternalModuleImportEqualsDeclaration(node) && ts.getExternalModuleImportEqualsDeclarationExpression(node).kind === 8) { + if (ts.isExternalModuleImportEqualsDeclaration(node) && + ts.getExternalModuleImportEqualsDeclarationExpression(node).kind === 8) { var nameLiteral = ts.getExternalModuleImportEqualsDeclarationExpression(node); var moduleName = nameLiteral.text; if (moduleName) { - var searchName = ts.normalizePath(ts.combinePaths(basePath, moduleName)); - var tsFile = findModuleSourceFile(searchName + ".ts", nameLiteral); + var _searchName = ts.normalizePath(ts.combinePaths(basePath, moduleName)); + var tsFile = findModuleSourceFile(_searchName + ".ts", nameLiteral); if (!tsFile) { - findModuleSourceFile(searchName + ".d.ts", nameLiteral); + findModuleSourceFile(_searchName + ".d.ts", nameLiteral); } } } @@ -26984,17 +22540,19 @@ var ts; } return; } - var firstExternalModuleSourceFile = ts.forEach(files, function (f) { - return ts.isExternalModule(f) ? f : undefined; - }); + var firstExternalModuleSourceFile = ts.forEach(files, function (f) { return ts.isExternalModule(f) ? f : undefined; }); if (firstExternalModuleSourceFile && !options.module) { var span = ts.getErrorSpanForNode(firstExternalModuleSourceFile, firstExternalModuleSourceFile.externalModuleIndicator); diagnostics.add(ts.createFileDiagnostic(firstExternalModuleSourceFile, span.start, span.length, ts.Diagnostics.Cannot_compile_external_modules_unless_the_module_flag_is_provided)); } - if (options.outDir || options.sourceRoot || (options.mapRoot && (!options.out || firstExternalModuleSourceFile !== undefined))) { + if (options.outDir || + options.sourceRoot || + (options.mapRoot && + (!options.out || firstExternalModuleSourceFile !== undefined))) { var commonPathComponents; ts.forEach(files, function (sourceFile) { - if (!(sourceFile.flags & 2048) && !ts.fileExtensionIs(sourceFile.fileName, ".js")) { + if (!(sourceFile.flags & 2048) + && !ts.fileExtensionIs(sourceFile.fileName, ".js")) { var sourcePathComponents = ts.getNormalizedPathComponents(sourceFile.fileName, host.getCurrentDirectory()); sourcePathComponents.pop(); if (commonPathComponents) { @@ -27203,12 +22761,17 @@ var ts; } } function spanInVariableDeclaration(variableDeclaration) { - if (variableDeclaration.parent.parent.kind === 182 || variableDeclaration.parent.parent.kind === 183) { + if (variableDeclaration.parent.parent.kind === 182 || + variableDeclaration.parent.parent.kind === 183) { return spanInNode(variableDeclaration.parent.parent); } var isParentVariableStatement = variableDeclaration.parent.parent.kind === 175; var isDeclarationOfForStatement = variableDeclaration.parent.parent.kind === 181 && ts.contains(variableDeclaration.parent.parent.initializer.declarations, variableDeclaration); - var declarations = isParentVariableStatement ? variableDeclaration.parent.parent.declarationList.declarations : isDeclarationOfForStatement ? variableDeclaration.parent.parent.initializer.declarations : undefined; + var declarations = isParentVariableStatement + ? variableDeclaration.parent.parent.declarationList.declarations + : isDeclarationOfForStatement + ? variableDeclaration.parent.parent.initializer.declarations + : undefined; if (variableDeclaration.initializer || (variableDeclaration.flags & 1)) { if (declarations && declarations[0] === variableDeclaration) { if (isParentVariableStatement) { @@ -27229,7 +22792,8 @@ var ts; } } function canHaveSpanInParameterDeclaration(parameter) { - return !!parameter.initializer || parameter.dotDotDotToken !== undefined || !!(parameter.flags & 16) || !!(parameter.flags & 32); + return !!parameter.initializer || parameter.dotDotDotToken !== undefined || + !!(parameter.flags & 16) || !!(parameter.flags & 32); } function spanInParameterDeclaration(parameter) { if (canHaveSpanInParameterDeclaration(parameter)) { @@ -27247,7 +22811,8 @@ var ts; } } function canFunctionHaveSpanInWholeDeclaration(functionDeclaration) { - return !!(functionDeclaration.flags & 1) || (functionDeclaration.parent.kind === 196 && functionDeclaration.kind !== 133); + return !!(functionDeclaration.flags & 1) || + (functionDeclaration.parent.kind === 196 && functionDeclaration.kind !== 133); } function spanInFunctionDeclaration(functionDeclaration) { if (!functionDeclaration.body) { @@ -27418,17 +22983,24 @@ var ts; switch (n.kind) { case 174: if (!ts.isFunctionBlock(n)) { - var parent = n.parent; + var _parent = n.parent; var openBrace = ts.findChildOfKind(n, 14, sourceFile); var closeBrace = ts.findChildOfKind(n, 15, sourceFile); - if (parent.kind === 179 || parent.kind === 182 || parent.kind === 183 || parent.kind === 181 || parent.kind === 178 || parent.kind === 180 || parent.kind === 187 || parent.kind === 217) { - addOutliningSpan(parent, openBrace, closeBrace, autoCollapse(n)); + if (_parent.kind === 179 || + _parent.kind === 182 || + _parent.kind === 183 || + _parent.kind === 181 || + _parent.kind === 178 || + _parent.kind === 180 || + _parent.kind === 187 || + _parent.kind === 217) { + addOutliningSpan(_parent, openBrace, closeBrace, autoCollapse(n)); break; } - if (parent.kind === 191) { - var tryStatement = parent; + if (_parent.kind === 191) { + var tryStatement = _parent; if (tryStatement.tryBlock === n) { - addOutliningSpan(parent, openBrace, closeBrace, autoCollapse(n)); + addOutliningSpan(_parent, openBrace, closeBrace, autoCollapse(n)); break; } else if (tryStatement.finallyBlock === n) { @@ -27448,20 +23020,22 @@ var ts; }); break; } - case 201: - var openBrace = ts.findChildOfKind(n, 14, sourceFile); - var closeBrace = ts.findChildOfKind(n, 15, sourceFile); - addOutliningSpan(n.parent, openBrace, closeBrace, autoCollapse(n)); + case 201: { + var _openBrace = ts.findChildOfKind(n, 14, sourceFile); + var _closeBrace = ts.findChildOfKind(n, 15, sourceFile); + addOutliningSpan(n.parent, _openBrace, _closeBrace, autoCollapse(n)); break; + } case 196: case 197: case 199: case 152: - case 202: - var openBrace = ts.findChildOfKind(n, 14, sourceFile); - var closeBrace = ts.findChildOfKind(n, 15, sourceFile); - addOutliningSpan(n, openBrace, closeBrace, autoCollapse(n)); + case 202: { + var _openBrace_1 = ts.findChildOfKind(n, 14, sourceFile); + var _closeBrace_1 = ts.findChildOfKind(n, 15, sourceFile); + addOutliningSpan(n, _openBrace_1, _closeBrace_1, autoCollapse(n)); break; + } case 151: var openBracket = ts.findChildOfKind(n, 18, sourceFile); var closeBracket = ts.findChildOfKind(n, 19, sourceFile); @@ -27488,8 +23062,8 @@ var ts; ts.forEach(program.getSourceFiles(), function (sourceFile) { cancellationToken.throwIfCancellationRequested(); var declarations = sourceFile.getNamedDeclarations(); - for (var i = 0, n = declarations.length; i < n; i++) { - var declaration = declarations[i]; + for (var _i = 0, _n = declarations.length; _i < _n; _i++) { + var declaration = declarations[_i]; var name = getDeclarationName(declaration); if (name !== undefined) { var matches = patternMatcher.getMatchesForLastSegmentOfPattern(name); @@ -27508,13 +23082,7 @@ var ts; } var fileName = sourceFile.fileName; var matchKind = bestMatchKind(matches); - rawItems.push({ - name: name, - fileName: fileName, - matchKind: matchKind, - isCaseSensitive: allMatchesAreCaseSensitive(matches), - declaration: declaration - }); + rawItems.push({ name: name, fileName: fileName, matchKind: matchKind, isCaseSensitive: allMatchesAreCaseSensitive(matches), declaration: declaration }); } } }); @@ -27526,8 +23094,9 @@ var ts; return items; function allMatchesAreCaseSensitive(matches) { ts.Debug.assert(matches.length > 0); - for (var i = 0, n = matches.length; i < n; i++) { - if (!matches[i].isCaseSensitive) { + for (var _i = 0, _n = matches.length; _i < _n; _i++) { + var match = matches[_i]; + if (!match.isCaseSensitive) { return false; } } @@ -27548,7 +23117,9 @@ var ts; return undefined; } function getTextOfIdentifierOrLiteral(node) { - if (node.kind === 64 || node.kind === 8 || node.kind === 7) { + if (node.kind === 64 || + node.kind === 8 || + node.kind === 7) { return node.text; } return undefined; @@ -27603,20 +23174,21 @@ var ts; } function bestMatchKind(matches) { ts.Debug.assert(matches.length > 0); - var bestMatchKind = 3; - for (var i = 0, n = matches.length; i < n; i++) { - var kind = matches[i].kind; - if (kind < bestMatchKind) { - bestMatchKind = kind; + var _bestMatchKind = 3; + for (var _i = 0, _n = matches.length; _i < _n; _i++) { + var match = matches[_i]; + var kind = match.kind; + if (kind < _bestMatchKind) { + _bestMatchKind = kind; } } - return bestMatchKind; + return _bestMatchKind; } - var baseSensitivity = { - sensitivity: "base" - }; + var baseSensitivity = { sensitivity: "base" }; function compareNavigateToItems(i1, i2) { - return i1.matchKind - i2.matchKind || i1.name.localeCompare(i2.name, undefined, baseSensitivity) || i1.name.localeCompare(i2.name); + return i1.matchKind - i2.matchKind || + i1.name.localeCompare(i2.name, undefined, baseSensitivity) || + i1.name.localeCompare(i2.name); } function createNavigateToItem(rawItem) { var declaration = rawItem.declaration; @@ -27740,8 +23312,8 @@ var ts; } function addTopLevelNodes(nodes, topLevelNodes) { nodes = sortNodes(nodes); - for (var i = 0, n = nodes.length; i < n; i++) { - var node = nodes[i]; + for (var _i = 0, _n = nodes.length; _i < _n; _i++) { + var node = nodes[_i]; switch (node.kind) { case 196: case 199: @@ -27766,9 +23338,7 @@ var ts; function isTopLevelFunctionDeclaration(functionDeclaration) { if (functionDeclaration.kind === 195) { if (functionDeclaration.body && functionDeclaration.body.kind === 174) { - if (ts.forEach(functionDeclaration.body.statements, function (s) { - return s.kind === 195 && !isEmpty(s.name.text); - })) { + if (ts.forEach(functionDeclaration.body.statements, function (s) { return s.kind === 195 && !isEmpty(s.name.text); })) { return true; } if (!ts.isFunctionBlock(functionDeclaration.parent)) { @@ -27781,19 +23351,19 @@ var ts; function getItemsWorker(nodes, createItem) { var items = []; var keyToItem = {}; - for (var i = 0, n = nodes.length; i < n; i++) { - var child = nodes[i]; - var item = createItem(child); - if (item !== undefined) { - if (item.text.length > 0) { - var key = item.text + "-" + item.kind + "-" + item.indent; + for (var _i = 0, _n = nodes.length; _i < _n; _i++) { + var child = nodes[_i]; + var _item = createItem(child); + if (_item !== undefined) { + if (_item.text.length > 0) { + var key = _item.text + "-" + _item.kind + "-" + _item.indent; var itemWithSameName = keyToItem[key]; if (itemWithSameName) { - merge(itemWithSameName, item); + merge(itemWithSameName, _item); } else { - keyToItem[key] = item; - items.push(item); + keyToItem[key] = _item; + items.push(_item); } } } @@ -27806,10 +23376,10 @@ var ts; if (!target.childItems) { target.childItems = []; } - outer: for (var i = 0, n = source.childItems.length; i < n; i++) { - var sourceChild = source.childItems[i]; - for (var j = 0, m = target.childItems.length; j < m; j++) { - var targetChild = target.childItems[j]; + outer: for (var _i = 0, _a = source.childItems, _n = _a.length; _i < _n; _i++) { + var sourceChild = _a[_i]; + for (var _b = 0, _c = target.childItems, _d = _c.length; _b < _d; _b++) { + var targetChild = _c[_b]; if (targetChild.text === sourceChild.text && targetChild.kind === sourceChild.kind) { merge(targetChild, sourceChild); continue outer; @@ -27852,9 +23422,9 @@ var ts; case 193: case 150: var variableDeclarationNode; - var name; + var _name; if (node.kind === 150) { - name = node.name; + _name = node.name; variableDeclarationNode = node; while (variableDeclarationNode && variableDeclarationNode.kind !== 193) { variableDeclarationNode = variableDeclarationNode.parent; @@ -27864,16 +23434,16 @@ var ts; else { ts.Debug.assert(!ts.isBindingPattern(node.name)); variableDeclarationNode = node; - name = node.name; + _name = node.name; } if (ts.isConst(variableDeclarationNode)) { - return createItem(node, getTextOfNode(name), ts.ScriptElementKind.constElement); + return createItem(node, getTextOfNode(_name), ts.ScriptElementKind.constElement); } else if (ts.isLet(variableDeclarationNode)) { - return createItem(node, getTextOfNode(name), ts.ScriptElementKind.letElement); + return createItem(node, getTextOfNode(_name), ts.ScriptElementKind.letElement); } else { - return createItem(node, getTextOfNode(name), ts.ScriptElementKind.variableElement); + return createItem(node, getTextOfNode(_name), ts.ScriptElementKind.variableElement); } case 133: return createItem(node, "constructor", ts.ScriptElementKind.constructorImplementationElement); @@ -27886,9 +23456,7 @@ var ts; } return undefined; function createItem(node, name, scriptElementKind) { - return getNavigationBarItem(name, scriptElementKind, ts.getNodeModifiers(node), [ - getNodeSpan(node) - ]); + return getNavigationBarItem(name, scriptElementKind, ts.getNodeModifiers(node), [getNodeSpan(node)]); } } function isEmpty(text) { @@ -27942,16 +23510,12 @@ var ts; function createModuleItem(node) { var moduleName = getModuleName(node); var childItems = getItemsWorker(getChildNodes(getInnermostModule(node).body.statements), createChildItem); - return getNavigationBarItem(moduleName, ts.ScriptElementKind.moduleElement, ts.getNodeModifiers(node), [ - getNodeSpan(node) - ], childItems, getIndent(node)); + return getNavigationBarItem(moduleName, ts.ScriptElementKind.moduleElement, ts.getNodeModifiers(node), [getNodeSpan(node)], childItems, getIndent(node)); } function createFunctionItem(node) { if (node.name && node.body && node.body.kind === 174) { var childItems = getItemsWorker(sortNodes(node.body.statements), createChildItem); - return getNavigationBarItem(node.name.text, ts.ScriptElementKind.functionElement, ts.getNodeModifiers(node), [ - getNodeSpan(node) - ], childItems, getIndent(node)); + return getNavigationBarItem(node.name.text, ts.ScriptElementKind.functionElement, ts.getNodeModifiers(node), [getNodeSpan(node)], childItems, getIndent(node)); } return undefined; } @@ -27961,10 +23525,10 @@ var ts; return undefined; } hasGlobalNode = true; - var rootName = ts.isExternalModule(node) ? "\"" + ts.escapeString(ts.getBaseFileName(ts.removeFileExtension(ts.normalizePath(node.fileName)))) + "\"" : ""; - return getNavigationBarItem(rootName, ts.ScriptElementKind.moduleElement, ts.ScriptElementKindModifier.none, [ - getNodeSpan(node) - ], childItems); + var rootName = ts.isExternalModule(node) + ? "\"" + ts.escapeString(ts.getBaseFileName(ts.removeFileExtension(ts.normalizePath(node.fileName)))) + "\"" + : ""; + return getNavigationBarItem(rootName, ts.ScriptElementKind.moduleElement, ts.ScriptElementKindModifier.none, [getNodeSpan(node)], childItems); } function createClassItem(node) { if (!node.name) { @@ -27977,38 +23541,26 @@ var ts; }); var nodes = removeDynamicallyNamedProperties(node); if (constructor) { - nodes.push.apply(nodes, ts.filter(constructor.parameters, function (p) { - return !ts.isBindingPattern(p.name); - })); + nodes.push.apply(nodes, ts.filter(constructor.parameters, function (p) { return !ts.isBindingPattern(p.name); })); } - var childItems = getItemsWorker(sortNodes(nodes), createChildItem); + childItems = getItemsWorker(sortNodes(nodes), createChildItem); } - return getNavigationBarItem(node.name.text, ts.ScriptElementKind.classElement, ts.getNodeModifiers(node), [ - getNodeSpan(node) - ], childItems, getIndent(node)); + return getNavigationBarItem(node.name.text, ts.ScriptElementKind.classElement, ts.getNodeModifiers(node), [getNodeSpan(node)], childItems, getIndent(node)); } function createEnumItem(node) { var childItems = getItemsWorker(sortNodes(removeComputedProperties(node)), createChildItem); - return getNavigationBarItem(node.name.text, ts.ScriptElementKind.enumElement, ts.getNodeModifiers(node), [ - getNodeSpan(node) - ], childItems, getIndent(node)); + return getNavigationBarItem(node.name.text, ts.ScriptElementKind.enumElement, ts.getNodeModifiers(node), [getNodeSpan(node)], childItems, getIndent(node)); } function createIterfaceItem(node) { var childItems = getItemsWorker(sortNodes(removeDynamicallyNamedProperties(node)), createChildItem); - return getNavigationBarItem(node.name.text, ts.ScriptElementKind.interfaceElement, ts.getNodeModifiers(node), [ - getNodeSpan(node) - ], childItems, getIndent(node)); + return getNavigationBarItem(node.name.text, ts.ScriptElementKind.interfaceElement, ts.getNodeModifiers(node), [getNodeSpan(node)], childItems, getIndent(node)); } } function removeComputedProperties(node) { - return ts.filter(node.members, function (member) { - return member.name === undefined || member.name.kind !== 126; - }); + return ts.filter(node.members, function (member) { return member.name === undefined || member.name.kind !== 126; }); } function removeDynamicallyNamedProperties(node) { - return ts.filter(node.members, function (member) { - return !ts.hasDynamicName(member); - }); + return ts.filter(node.members, function (member) { return !ts.hasDynamicName(member); }); } function getInnermostModule(node) { while (node.body.kind === 200) { @@ -28017,7 +23569,9 @@ var ts; return node; } function getNodeSpan(node) { - return node.kind === 221 ? ts.createTextSpanFromBounds(node.getFullStart(), node.getEnd()) : ts.createTextSpanFromBounds(node.getStart(), node.getEnd()); + return node.kind === 221 + ? ts.createTextSpanFromBounds(node.getFullStart(), node.getEnd()) + : ts.createTextSpanFromBounds(node.getStart(), node.getEnd()); } function getTextOfNode(node) { return ts.getTextOfNodeFromSourceText(sourceFile.text, node); @@ -28047,9 +23601,7 @@ var ts; var stringToWordSpans = {}; pattern = pattern.trim(); var fullPatternSegment = createSegment(pattern); - var dotSeparatedSegments = pattern.split(".").map(function (p) { - return createSegment(p.trim()); - }); + var dotSeparatedSegments = pattern.split(".").map(function (p) { return createSegment(p.trim()); }); var invalidPattern = dotSeparatedSegments.length === 0 || ts.forEach(dotSeparatedSegments, segmentIsInvalid); return { getMatches: getMatches, @@ -28109,8 +23661,8 @@ var ts; if (isLowercase) { if (index > 0) { var wordSpans = getWordSpans(candidate); - for (var i = 0, n = wordSpans.length; i < n; i++) { - var span = wordSpans[i]; + for (var _i = 0, _n = wordSpans.length; _i < _n; _i++) { + var span = wordSpans[_i]; if (partStartsWith(candidate, span, chunk.text, true)) { return createPatternMatch(2, punctuationStripped, partStartsWith(candidate, span, chunk.text, false)); } @@ -28157,15 +23709,13 @@ var ts; if (!containsSpaceOrAsterisk(segment.totalTextChunk.text)) { var match = matchTextChunk(candidate, segment.totalTextChunk, false); if (match) { - return [ - match - ]; + return [match]; } } var subWordTextChunks = segment.subWordTextChunks; var matches = undefined; - for (var i = 0, n = subWordTextChunks.length; i < n; i++) { - var subWordTextChunk = subWordTextChunks[i]; + for (var _i = 0, _n = subWordTextChunks.length; _i < _n; _i++) { + var subWordTextChunk = subWordTextChunks[_i]; var result = matchTextChunk(candidate, subWordTextChunk, true); if (!result) { return undefined; @@ -28191,10 +23741,10 @@ var ts; } } else { - for (var i = 0; i < patternPartLength; i++) { - var ch1 = pattern.charCodeAt(patternPartStart + i); - var ch2 = candidate.charCodeAt(candidateSpan.start + i); - if (ch1 !== ch2) { + for (var _i = 0; _i < patternPartLength; _i++) { + var _ch1 = pattern.charCodeAt(patternPartStart + _i); + var _ch2 = candidate.charCodeAt(candidateSpan.start + _i); + if (_ch1 !== _ch2) { return false; } } @@ -28226,7 +23776,8 @@ var ts; for (; currentChunkSpan < chunkCharacterSpans.length; currentChunkSpan++) { var chunkCharacterSpan = chunkCharacterSpans[currentChunkSpan]; if (gotOneMatchThisCandidate) { - if (!isUpperCaseLetter(chunk.text.charCodeAt(chunkCharacterSpans[currentChunkSpan - 1].start)) || !isUpperCaseLetter(chunk.text.charCodeAt(chunkCharacterSpans[currentChunkSpan].start))) { + if (!isUpperCaseLetter(chunk.text.charCodeAt(chunkCharacterSpans[currentChunkSpan - 1].start)) || + !isUpperCaseLetter(chunk.text.charCodeAt(chunkCharacterSpans[currentChunkSpan].start))) { break; } } @@ -28247,7 +23798,10 @@ var ts; } ts.createPatternMatcher = createPatternMatcher; function patternMatchCompareTo(match1, match2) { - return compareType(match1, match2) || compareCamelCase(match1, match2) || compareCase(match1, match2) || comparePunctuation(match1, match2); + return compareType(match1, match2) || + compareCamelCase(match1, match2) || + compareCase(match1, match2) || + comparePunctuation(match1, match2); } function comparePunctuation(result1, result2) { if (result1.punctuationStripped !== result2.punctuationStripped) { @@ -28396,7 +23950,11 @@ var ts; var currentIsDigit = isDigit(identifier.charCodeAt(i)); var hasTransitionFromLowerToUpper = transitionFromLowerToUpper(identifier, word, i); var hasTransitionFromUpperToLower = transitionFromUpperToLower(identifier, word, i, wordStart); - if (charIsPunctuation(identifier.charCodeAt(i - 1)) || charIsPunctuation(identifier.charCodeAt(i)) || lastIsDigit != currentIsDigit || hasTransitionFromLowerToUpper || hasTransitionFromUpperToLower) { + if (charIsPunctuation(identifier.charCodeAt(i - 1)) || + charIsPunctuation(identifier.charCodeAt(i)) || + lastIsDigit != currentIsDigit || + hasTransitionFromLowerToUpper || + hasTransitionFromUpperToLower) { if (!isAllPunctuation(identifier, wordStart, i)) { result.push(ts.createTextSpan(wordStart, i - wordStart)); } @@ -28448,7 +24006,8 @@ var ts; } function transitionFromUpperToLower(identifier, word, index, wordStart) { if (word) { - if (index != wordStart && index + 1 < identifier.length) { + if (index != wordStart && + index + 1 < identifier.length) { var currentIsUpper = isUpperCaseLetter(identifier.charCodeAt(index)); var nextIsLower = isLowerCaseLetter(identifier.charCodeAt(index + 1)); if (currentIsUpper && nextIsLower) { @@ -28466,7 +24025,9 @@ var ts; function transitionFromLowerToUpper(identifier, word, index) { var lastIsUpper = isUpperCaseLetter(identifier.charCodeAt(index - 1)); var currentIsUpper = isUpperCaseLetter(identifier.charCodeAt(index)); - var transition = word ? (currentIsUpper && !lastIsUpper) : currentIsUpper; + var transition = word + ? (currentIsUpper && !lastIsUpper) + : currentIsUpper; return transition; } })(ts || (ts = {})); @@ -28496,7 +24057,8 @@ var ts; function getImmediatelyContainingArgumentInfo(node) { if (node.parent.kind === 155 || node.parent.kind === 156) { var callExpression = node.parent; - if (node.kind === 24 || node.kind === 16) { + if (node.kind === 24 || + node.kind === 16) { var list = getChildListThatStartsWithOpenerToken(callExpression, node, sourceFile); var isTypeArgList = callExpression.typeArguments && callExpression.typeArguments.pos === list.pos; ts.Debug.assert(list !== undefined); @@ -28510,15 +24072,15 @@ var ts; } var listItemInfo = ts.findListItemInfo(node); if (listItemInfo) { - var list = listItemInfo.list; - var isTypeArgList = callExpression.typeArguments && callExpression.typeArguments.pos === list.pos; - var argumentIndex = getArgumentIndex(list, node); - var argumentCount = getArgumentCount(list); + var _list = listItemInfo.list; + var _isTypeArgList = callExpression.typeArguments && callExpression.typeArguments.pos === _list.pos; + var argumentIndex = getArgumentIndex(_list, node); + var argumentCount = getArgumentCount(_list); ts.Debug.assert(argumentIndex === 0 || argumentIndex < argumentCount, "argumentCount < argumentIndex, " + argumentCount + " < " + argumentIndex); return { - kind: isTypeArgList ? 0 : 1, + kind: _isTypeArgList ? 0 : 1, invocation: callExpression, - argumentsSpan: getApplicableSpanForArguments(list), + argumentsSpan: getApplicableSpanForArguments(_list), argumentIndex: argumentIndex, argumentCount: argumentCount }; @@ -28533,28 +24095,28 @@ var ts; var templateExpression = node.parent; var tagExpression = templateExpression.parent; ts.Debug.assert(templateExpression.kind === 169); - var argumentIndex = ts.isInsideTemplateLiteral(node, position) ? 0 : 1; - return getArgumentListInfoForTemplate(tagExpression, argumentIndex); + var _argumentIndex = ts.isInsideTemplateLiteral(node, position) ? 0 : 1; + return getArgumentListInfoForTemplate(tagExpression, _argumentIndex); } else if (node.parent.kind === 173 && node.parent.parent.parent.kind === 157) { var templateSpan = node.parent; - var templateExpression = templateSpan.parent; - var tagExpression = templateExpression.parent; - ts.Debug.assert(templateExpression.kind === 169); + var _templateExpression = templateSpan.parent; + var _tagExpression = _templateExpression.parent; + ts.Debug.assert(_templateExpression.kind === 169); if (node.kind === 13 && !ts.isInsideTemplateLiteral(node, position)) { return undefined; } - var spanIndex = templateExpression.templateSpans.indexOf(templateSpan); - var argumentIndex = getArgumentIndexForTemplatePiece(spanIndex, node); - return getArgumentListInfoForTemplate(tagExpression, argumentIndex); + var spanIndex = _templateExpression.templateSpans.indexOf(templateSpan); + var _argumentIndex_1 = getArgumentIndexForTemplatePiece(spanIndex, node); + return getArgumentListInfoForTemplate(_tagExpression, _argumentIndex_1); } return undefined; } function getArgumentIndex(argumentsList, node) { var argumentIndex = 0; var listChildren = argumentsList.getChildren(); - for (var i = 0, n = listChildren.length; i < n; i++) { - var child = listChildren[i]; + for (var _i = 0, _n = listChildren.length; _i < _n; _i++) { + var child = listChildren[_i]; if (child === node) { break; } @@ -28566,9 +24128,7 @@ var ts; } function getArgumentCount(argumentsList) { var listChildren = argumentsList.getChildren(); - var argumentCount = ts.countWhere(listChildren, function (arg) { - return arg.kind !== 23; - }); + var argumentCount = ts.countWhere(listChildren, function (arg) { return arg.kind !== 23; }); if (listChildren.length > 0 && ts.lastOrUndefined(listChildren).kind === 23) { argumentCount++; } @@ -28585,7 +24145,9 @@ var ts; return spanIndex + 1; } function getArgumentListInfoForTemplate(tagExpression, argumentIndex) { - var argumentCount = tagExpression.template.kind === 10 ? 1 : tagExpression.template.templateSpans.length + 1; + var argumentCount = tagExpression.template.kind === 10 + ? 1 + : tagExpression.template.templateSpans.length + 1; ts.Debug.assert(argumentIndex === 0 || argumentIndex < argumentCount, "argumentCount < argumentIndex, " + argumentCount + " < " + argumentIndex); return { kind: 2, @@ -28620,9 +24182,9 @@ var ts; if (n.pos < n.parent.pos || n.end > n.parent.end) { ts.Debug.fail("Node of kind " + n.kind + " is not a subspan of its parent of kind " + n.parent.kind); } - var argumentInfo = getImmediatelyContainingArgumentInfo(n); - if (argumentInfo) { - return argumentInfo; + var _argumentInfo = getImmediatelyContainingArgumentInfo(n); + if (_argumentInfo) { + return _argumentInfo; } } return undefined; @@ -28690,10 +24252,7 @@ var ts; isVariadic: candidateSignature.hasRestParameter, prefixDisplayParts: prefixDisplayParts, suffixDisplayParts: suffixDisplayParts, - separatorDisplayParts: [ - ts.punctuationPart(23), - ts.spacePart() - ], + separatorDisplayParts: [ts.punctuationPart(23), ts.spacePart()], parameters: signatureHelpParameters, documentation: candidateSignature.getDocumentationComment() }; @@ -28802,9 +24361,7 @@ var ts; } ts.findListItemInfo = findListItemInfo; function findChildOfKind(n, kind, sourceFile) { - return ts.forEach(n.getChildren(sourceFile), function (c) { - return c.kind === kind && c; - }); + return ts.forEach(n.getChildren(sourceFile), function (c) { return c.kind === kind && c; }); } ts.findChildOfKind = findChildOfKind; function findContainingList(node) { @@ -28818,15 +24375,11 @@ var ts; } ts.findContainingList = findContainingList; function getTouchingWord(sourceFile, position) { - return getTouchingToken(sourceFile, position, function (n) { - return isWord(n.kind); - }); + return getTouchingToken(sourceFile, position, function (n) { return isWord(n.kind); }); } ts.getTouchingWord = getTouchingWord; function getTouchingPropertyName(sourceFile, position) { - return getTouchingToken(sourceFile, position, function (n) { - return isPropertyName(n.kind); - }); + return getTouchingToken(sourceFile, position, function (n) { return isPropertyName(n.kind); }); } ts.getTouchingPropertyName = getTouchingPropertyName; function getTouchingToken(sourceFile, position, includeItemAtEndPosition) { @@ -28878,9 +24431,10 @@ var ts; return n; } var children = n.getChildren(); - for (var i = 0, len = children.length; i < len; ++i) { - var child = children[i]; - var shouldDiveInChildNode = (child.pos <= previousToken.pos && child.end > previousToken.end) || (child.pos === previousToken.end); + for (var _i = 0, _n = children.length; _i < _n; _i++) { + var child = children[_i]; + var shouldDiveInChildNode = (child.pos <= previousToken.pos && child.end > previousToken.end) || + (child.pos === previousToken.end); if (shouldDiveInChildNode && nodeHasTokens(child)) { return find(child); } @@ -28904,7 +24458,7 @@ var ts; return n; } var children = n.getChildren(); - for (var i = 0, len = children.length; i < len; ++i) { + for (var i = 0, len = children.length; i < len; i++) { var child = children[i]; if (nodeHasTokens(child)) { if (position <= child.end) { @@ -28920,8 +24474,8 @@ var ts; } ts.Debug.assert(startNode !== undefined || n.kind === 221); if (children.length) { - var candidate = findRightmostChildNodeWithTokens(children, children.length); - return candidate && findRightmostToken(candidate); + var _candidate = findRightmostChildNodeWithTokens(children, children.length); + return _candidate && findRightmostToken(_candidate); } } function findRightmostChildNodeWithTokens(children, exclusiveStartPosition) { @@ -28983,7 +24537,8 @@ var ts; } ts.isPunctuation = isPunctuation; function isInsideTemplateLiteral(node, position) { - return ts.isTemplateLiteralKind(node.kind) && (node.getStart() < position && position < node.getEnd()) || (!!node.isUnterminated && position === node.getEnd()); + return ts.isTemplateLiteralKind(node.kind) + && (node.getStart() < position && position < node.getEnd()) || (!!node.isUnterminated && position === node.getEnd()); } ts.isInsideTemplateLiteral = isInsideTemplateLiteral; function compareDataObjects(dst, src) { @@ -29016,38 +24571,19 @@ var ts; var indent; resetWriter(); return { - displayParts: function () { - return displayParts; - }, - writeKeyword: function (text) { - return writeKind(text, 5); - }, - writeOperator: function (text) { - return writeKind(text, 12); - }, - writePunctuation: function (text) { - return writeKind(text, 15); - }, - writeSpace: function (text) { - return writeKind(text, 16); - }, - writeStringLiteral: function (text) { - return writeKind(text, 8); - }, - writeParameter: function (text) { - return writeKind(text, 13); - }, + displayParts: function () { return displayParts; }, + writeKeyword: function (text) { return writeKind(text, 5); }, + writeOperator: function (text) { return writeKind(text, 12); }, + writePunctuation: function (text) { return writeKind(text, 15); }, + writeSpace: function (text) { return writeKind(text, 16); }, + writeStringLiteral: function (text) { return writeKind(text, 8); }, + writeParameter: function (text) { return writeKind(text, 13); }, writeSymbol: writeSymbol, writeLine: writeLine, - increaseIndent: function () { - indent++; - }, - decreaseIndent: function () { - indent--; - }, + increaseIndent: function () { indent++; }, + decreaseIndent: function () { indent--; }, clear: resetWriter, - trackSymbol: function () { - } + trackSymbol: function () { } }; function writeIndent() { if (lineStart) { @@ -29201,9 +24737,7 @@ var ts; advance: advance, readTokenInfo: readTokenInfo, isOnToken: isOnToken, - lastTrailingTriviaWasNewLine: function () { - return wasNewLine; - }, + lastTrailingTriviaWasNewLine: function () { return wasNewLine; }, close: function () { lastTokenInfo = undefined; scanner.setText(undefined); @@ -29229,21 +24763,21 @@ var ts; var t; var pos = scanner.getStartPos(); while (pos < endPos) { - var t = scanner.getToken(); - if (!ts.isTrivia(t)) { + var _t = scanner.getToken(); + if (!ts.isTrivia(_t)) { break; } scanner.scan(); - var item = { + var _item = { pos: pos, end: scanner.getStartPos(), - kind: t + kind: _t }; pos = scanner.getStartPos(); if (!leadingTrivia) { leadingTrivia = []; } - leadingTrivia.push(item); + leadingTrivia.push(_item); } savedPos = scanner.getStartPos(); } @@ -29264,7 +24798,8 @@ var ts; return container.kind === 9; } function shouldRescanTemplateToken(container) { - return container.kind === 12 || container.kind === 13; + return container.kind === 12 || + container.kind === 13; } function startsWithSlashToken(t) { return t === 36 || t === 56; @@ -29277,7 +24812,13 @@ var ts; token: undefined }; } - var expectedScanAction = shouldRescanGreaterThanToken(n) ? 1 : shouldRescanSlashToken(n) ? 2 : shouldRescanTemplateToken(n) ? 3 : 0; + var expectedScanAction = shouldRescanGreaterThanToken(n) + ? 1 + : shouldRescanSlashToken(n) + ? 2 + : shouldRescanTemplateToken(n) + ? 3 + : 0; if (lastTokenInfo && expectedScanAction === lastScanAction) { return fixTokenKind(lastTokenInfo, n); } @@ -29340,8 +24881,8 @@ var ts; } function isOnToken() { var current = (lastTokenInfo && lastTokenInfo.token.kind) || scanner.getToken(); - var startPos = (lastTokenInfo && lastTokenInfo.token.pos) || scanner.getStartPos(); - return startPos < endPos && current !== 1 && !ts.isTrivia(current); + var _startPos = (lastTokenInfo && lastTokenInfo.token.pos) || scanner.getStartPos(); + return _startPos < endPos && current !== 1 && !ts.isTrivia(current); } function fixTokenKind(tokenInfo, container) { if (ts.isToken(container) && tokenInfo.token.kind !== container.kind) { @@ -29444,7 +24985,9 @@ var ts; this.Flag = Flag; } Rule.prototype.toString = function () { - return "[desc=" + this.Descriptor + "," + "operation=" + this.Operation + "," + "flag=" + this.Flag + "]"; + return "[desc=" + this.Descriptor + "," + + "operation=" + this.Operation + "," + + "flag=" + this.Flag + "]"; }; return Rule; })(); @@ -29462,7 +25005,8 @@ var ts; this.RightTokenRange = RightTokenRange; } RuleDescriptor.prototype.toString = function () { - return "[leftRange=" + this.LeftTokenRange + "," + "rightRange=" + this.RightTokenRange + "]"; + return "[leftRange=" + this.LeftTokenRange + "," + + "rightRange=" + this.RightTokenRange + "]"; }; RuleDescriptor.create1 = function (left, right) { return RuleDescriptor.create4(formatting.Shared.TokenRange.FromToken(left), formatting.Shared.TokenRange.FromToken(right)); @@ -29492,7 +25036,8 @@ var ts; this.Action = null; } RuleOperation.prototype.toString = function () { - return "[context=" + this.Context + "," + "action=" + this.Action + "]"; + return "[context=" + this.Context + "," + + "action=" + this.Action + "]"; }; RuleOperation.create1 = function (action) { return RuleOperation.create2(formatting.RuleOperationContext.Any, action); @@ -29527,8 +25072,9 @@ var ts; if (this.IsAny()) { return true; } - for (var i = 0, len = this.customContextChecks.length; i < len; i++) { - if (!this.customContextChecks[i](context)) { + for (var _i = 0, _a = this.customContextChecks, _n = _a.length; _i < _n; _i++) { + var check = _a[_i]; + if (!check(context)) { return false; } } @@ -29558,12 +25104,7 @@ var ts; this.SpaceAfterCloseBrace = new formatting.Rule(formatting.RuleDescriptor.create3(15, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsAfterCodeBlockContext), 2)); this.SpaceBetweenCloseBraceAndElse = new formatting.Rule(formatting.RuleDescriptor.create1(15, 75), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2)); this.SpaceBetweenCloseBraceAndWhile = new formatting.Rule(formatting.RuleDescriptor.create1(15, 99), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2)); - this.NoSpaceAfterCloseBrace = new formatting.Rule(formatting.RuleDescriptor.create3(15, formatting.Shared.TokenRange.FromTokens([ - 17, - 19, - 23, - 22 - ])), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); + this.NoSpaceAfterCloseBrace = new formatting.Rule(formatting.RuleDescriptor.create3(15, formatting.Shared.TokenRange.FromTokens([17, 19, 23, 22])), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); this.NoSpaceBeforeDot = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Any, 20), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); this.NoSpaceAfterDot = new formatting.Rule(formatting.RuleDescriptor.create3(20, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); this.NoSpaceBeforeOpenBracket = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Any, 18), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); @@ -29572,19 +25113,9 @@ var ts; this.NoSpaceAfterCloseBracket = new formatting.Rule(formatting.RuleDescriptor.create3(19, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); this.FunctionOpenBraceLeftTokenRange = formatting.Shared.TokenRange.AnyIncludingMultilineComments; this.SpaceBeforeOpenBraceInFunction = new formatting.Rule(formatting.RuleDescriptor.create2(this.FunctionOpenBraceLeftTokenRange, 14), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsFunctionDeclContext, Rules.IsBeforeBlockContext, Rules.IsNotFormatOnEnter, Rules.IsSameLineTokenOrBeforeMultilineBlockContext), 2), 1); - this.TypeScriptOpenBraceLeftTokenRange = formatting.Shared.TokenRange.FromTokens([ - 64, - 3 - ]); + this.TypeScriptOpenBraceLeftTokenRange = formatting.Shared.TokenRange.FromTokens([64, 3]); this.SpaceBeforeOpenBraceInTypeScriptDeclWithBlock = new formatting.Rule(formatting.RuleDescriptor.create2(this.TypeScriptOpenBraceLeftTokenRange, 14), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsTypeScriptDeclWithBlockContext, Rules.IsNotFormatOnEnter, Rules.IsSameLineTokenOrBeforeMultilineBlockContext), 2), 1); - this.ControlOpenBraceLeftTokenRange = formatting.Shared.TokenRange.FromTokens([ - 17, - 3, - 74, - 95, - 80, - 75 - ]); + this.ControlOpenBraceLeftTokenRange = formatting.Shared.TokenRange.FromTokens([17, 3, 74, 95, 80, 75]); this.SpaceBeforeOpenBraceInControl = new formatting.Rule(formatting.RuleDescriptor.create2(this.ControlOpenBraceLeftTokenRange, 14), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsControlDeclContext, Rules.IsNotFormatOnEnter, Rules.IsSameLineTokenOrBeforeMultilineBlockContext), 2), 1); this.SpaceAfterOpenBrace = new formatting.Rule(formatting.RuleDescriptor.create3(14, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSingleLineBlockContext), 2)); this.SpaceBeforeCloseBrace = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Any, 15), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSingleLineBlockContext), 2)); @@ -29603,151 +25134,79 @@ var ts; this.SpaceAfterSubtractWhenFollowedByUnaryMinus = new formatting.Rule(formatting.RuleDescriptor.create1(34, 34), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsBinaryOpContext), 2)); this.SpaceAfterSubtractWhenFollowedByPredecrement = new formatting.Rule(formatting.RuleDescriptor.create1(34, 39), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsBinaryOpContext), 2)); this.NoSpaceBeforeComma = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Any, 23), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); - this.SpaceAfterCertainKeywords = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.FromTokens([ - 97, - 93, - 87, - 73, - 89, - 96 - ]), formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2)); - this.SpaceAfterLetConstInVariableDeclaration = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.FromTokens([ - 104, - 69 - ]), formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsStartOfVariableDeclarationList), 2)); + this.SpaceAfterCertainKeywords = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.FromTokens([97, 93, 87, 73, 89, 96]), formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2)); + this.SpaceAfterLetConstInVariableDeclaration = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.FromTokens([104, 69]), formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsStartOfVariableDeclarationList), 2)); this.NoSpaceBeforeOpenParenInFuncCall = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Any, 16), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsFunctionCallOrNewContext, Rules.IsPreviousTokenNotComma), 8)); this.SpaceAfterFunctionInFuncDecl = new formatting.Rule(formatting.RuleDescriptor.create3(82, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsFunctionDeclContext), 2)); this.NoSpaceBeforeOpenParenInFuncDecl = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Any, 16), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsFunctionDeclContext), 8)); this.SpaceAfterVoidOperator = new formatting.Rule(formatting.RuleDescriptor.create3(98, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsVoidOpContext), 2)); this.NoSpaceBetweenReturnAndSemicolon = new formatting.Rule(formatting.RuleDescriptor.create1(89, 22), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); - this.SpaceBetweenStatements = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.FromTokens([ - 17, - 74, - 75, - 66 - ]), formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsNotForContext), 2)); - this.SpaceAfterTryFinally = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.FromTokens([ - 95, - 80 - ]), 14), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2)); - this.SpaceAfterGetSetInMember = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.FromTokens([ - 115, - 119 - ]), 64), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsFunctionDeclContext), 2)); + this.SpaceBetweenStatements = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.FromTokens([17, 74, 75, 66]), formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsNotForContext), 2)); + this.SpaceAfterTryFinally = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.FromTokens([95, 80]), 14), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2)); + this.SpaceAfterGetSetInMember = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.FromTokens([115, 119]), 64), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsFunctionDeclContext), 2)); this.SpaceBeforeBinaryKeywordOperator = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.Any, formatting.Shared.TokenRange.BinaryKeywordOperators), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsBinaryOpContext), 2)); this.SpaceAfterBinaryKeywordOperator = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.BinaryKeywordOperators, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsBinaryOpContext), 2)); this.NoSpaceAfterConstructor = new formatting.Rule(formatting.RuleDescriptor.create1(113, 16), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); - this.NoSpaceAfterModuleImport = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.FromTokens([ - 116, - 117 - ]), 16), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); - this.SpaceAfterCertainTypeScriptKeywords = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.FromTokens([ - 68, - 114, - 76, - 77, - 78, - 115, - 102, - 84, - 103, - 116, - 106, - 108, - 119, - 109 - ]), formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2)); - this.SpaceBeforeCertainTypeScriptKeywords = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.Any, formatting.Shared.TokenRange.FromTokens([ - 78, - 102 - ])), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2)); + this.NoSpaceAfterModuleImport = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.FromTokens([116, 117]), 16), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); + this.SpaceAfterCertainTypeScriptKeywords = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.FromTokens([68, 114, 76, 77, 78, 115, 102, 84, 103, 116, 106, 108, 119, 109]), formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2)); + this.SpaceBeforeCertainTypeScriptKeywords = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.Any, formatting.Shared.TokenRange.FromTokens([78, 102])), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2)); this.SpaceAfterModuleName = new formatting.Rule(formatting.RuleDescriptor.create1(8, 14), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsModuleDeclContext), 2)); this.SpaceAfterArrow = new formatting.Rule(formatting.RuleDescriptor.create3(32, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2)); this.NoSpaceAfterEllipsis = new formatting.Rule(formatting.RuleDescriptor.create1(21, 64), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); - this.NoSpaceAfterOptionalParameters = new formatting.Rule(formatting.RuleDescriptor.create3(50, formatting.Shared.TokenRange.FromTokens([ - 17, - 23 - ])), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsNotBinaryOpContext), 8)); + this.NoSpaceAfterOptionalParameters = new formatting.Rule(formatting.RuleDescriptor.create3(50, formatting.Shared.TokenRange.FromTokens([17, 23])), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsNotBinaryOpContext), 8)); this.NoSpaceBeforeOpenAngularBracket = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.TypeNames, 24), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsTypeArgumentOrParameterContext), 8)); this.NoSpaceBetweenCloseParenAndAngularBracket = new formatting.Rule(formatting.RuleDescriptor.create1(17, 24), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsTypeArgumentOrParameterContext), 8)); this.NoSpaceAfterOpenAngularBracket = new formatting.Rule(formatting.RuleDescriptor.create3(24, formatting.Shared.TokenRange.TypeNames), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsTypeArgumentOrParameterContext), 8)); this.NoSpaceBeforeCloseAngularBracket = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Any, 25), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsTypeArgumentOrParameterContext), 8)); - this.NoSpaceAfterCloseAngularBracket = new formatting.Rule(formatting.RuleDescriptor.create3(25, formatting.Shared.TokenRange.FromTokens([ - 16, - 18, - 25, - 23 - ])), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsTypeArgumentOrParameterContext), 8)); + this.NoSpaceAfterCloseAngularBracket = new formatting.Rule(formatting.RuleDescriptor.create3(25, formatting.Shared.TokenRange.FromTokens([16, 18, 25, 23])), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsTypeArgumentOrParameterContext), 8)); this.NoSpaceBetweenEmptyInterfaceBraceBrackets = new formatting.Rule(formatting.RuleDescriptor.create1(14, 15), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsObjectTypeContext), 8)); - this.HighPriorityCommonRules = [ - this.IgnoreBeforeComment, - this.IgnoreAfterLineComment, - this.NoSpaceBeforeColon, - this.SpaceAfterColon, - this.NoSpaceBeforeQuestionMark, - this.SpaceAfterQuestionMarkInConditionalOperator, - this.NoSpaceAfterQuestionMark, - this.NoSpaceBeforeDot, - this.NoSpaceAfterDot, - this.NoSpaceAfterUnaryPrefixOperator, - this.NoSpaceAfterUnaryPreincrementOperator, - this.NoSpaceAfterUnaryPredecrementOperator, - this.NoSpaceBeforeUnaryPostincrementOperator, - this.NoSpaceBeforeUnaryPostdecrementOperator, - this.SpaceAfterPostincrementWhenFollowedByAdd, - this.SpaceAfterAddWhenFollowedByUnaryPlus, - this.SpaceAfterAddWhenFollowedByPreincrement, - this.SpaceAfterPostdecrementWhenFollowedBySubtract, - this.SpaceAfterSubtractWhenFollowedByUnaryMinus, - this.SpaceAfterSubtractWhenFollowedByPredecrement, - this.NoSpaceAfterCloseBrace, - this.SpaceAfterOpenBrace, - this.SpaceBeforeCloseBrace, - this.NewLineBeforeCloseBraceInBlockContext, - this.SpaceAfterCloseBrace, - this.SpaceBetweenCloseBraceAndElse, - this.SpaceBetweenCloseBraceAndWhile, - this.NoSpaceBetweenEmptyBraceBrackets, - this.SpaceAfterFunctionInFuncDecl, - this.NewLineAfterOpenBraceInBlockContext, - this.SpaceAfterGetSetInMember, - this.NoSpaceBetweenReturnAndSemicolon, - this.SpaceAfterCertainKeywords, - this.SpaceAfterLetConstInVariableDeclaration, - this.NoSpaceBeforeOpenParenInFuncCall, - this.SpaceBeforeBinaryKeywordOperator, - this.SpaceAfterBinaryKeywordOperator, - this.SpaceAfterVoidOperator, - this.NoSpaceAfterConstructor, - this.NoSpaceAfterModuleImport, - this.SpaceAfterCertainTypeScriptKeywords, - this.SpaceBeforeCertainTypeScriptKeywords, - this.SpaceAfterModuleName, - this.SpaceAfterArrow, - this.NoSpaceAfterEllipsis, - this.NoSpaceAfterOptionalParameters, - this.NoSpaceBetweenEmptyInterfaceBraceBrackets, - this.NoSpaceBeforeOpenAngularBracket, - this.NoSpaceBetweenCloseParenAndAngularBracket, - this.NoSpaceAfterOpenAngularBracket, - this.NoSpaceBeforeCloseAngularBracket, - this.NoSpaceAfterCloseAngularBracket - ]; - this.LowPriorityCommonRules = [ - this.NoSpaceBeforeSemicolon, - this.SpaceBeforeOpenBraceInControl, - this.SpaceBeforeOpenBraceInFunction, - this.SpaceBeforeOpenBraceInTypeScriptDeclWithBlock, - this.NoSpaceBeforeComma, - this.NoSpaceBeforeOpenBracket, - this.NoSpaceAfterOpenBracket, - this.NoSpaceBeforeCloseBracket, - this.NoSpaceAfterCloseBracket, - this.SpaceAfterSemicolon, - this.NoSpaceBeforeOpenParenInFuncDecl, - this.SpaceBetweenStatements, - this.SpaceAfterTryFinally - ]; + this.HighPriorityCommonRules = + [ + this.IgnoreBeforeComment, this.IgnoreAfterLineComment, + this.NoSpaceBeforeColon, this.SpaceAfterColon, this.NoSpaceBeforeQuestionMark, this.SpaceAfterQuestionMarkInConditionalOperator, + this.NoSpaceAfterQuestionMark, + this.NoSpaceBeforeDot, this.NoSpaceAfterDot, + this.NoSpaceAfterUnaryPrefixOperator, + this.NoSpaceAfterUnaryPreincrementOperator, this.NoSpaceAfterUnaryPredecrementOperator, + this.NoSpaceBeforeUnaryPostincrementOperator, this.NoSpaceBeforeUnaryPostdecrementOperator, + this.SpaceAfterPostincrementWhenFollowedByAdd, + this.SpaceAfterAddWhenFollowedByUnaryPlus, this.SpaceAfterAddWhenFollowedByPreincrement, + this.SpaceAfterPostdecrementWhenFollowedBySubtract, + this.SpaceAfterSubtractWhenFollowedByUnaryMinus, this.SpaceAfterSubtractWhenFollowedByPredecrement, + this.NoSpaceAfterCloseBrace, + this.SpaceAfterOpenBrace, this.SpaceBeforeCloseBrace, this.NewLineBeforeCloseBraceInBlockContext, + this.SpaceAfterCloseBrace, this.SpaceBetweenCloseBraceAndElse, this.SpaceBetweenCloseBraceAndWhile, this.NoSpaceBetweenEmptyBraceBrackets, + this.SpaceAfterFunctionInFuncDecl, this.NewLineAfterOpenBraceInBlockContext, this.SpaceAfterGetSetInMember, + this.NoSpaceBetweenReturnAndSemicolon, + this.SpaceAfterCertainKeywords, + this.SpaceAfterLetConstInVariableDeclaration, + this.NoSpaceBeforeOpenParenInFuncCall, + this.SpaceBeforeBinaryKeywordOperator, this.SpaceAfterBinaryKeywordOperator, + this.SpaceAfterVoidOperator, + this.NoSpaceAfterConstructor, this.NoSpaceAfterModuleImport, + this.SpaceAfterCertainTypeScriptKeywords, this.SpaceBeforeCertainTypeScriptKeywords, + this.SpaceAfterModuleName, + this.SpaceAfterArrow, + this.NoSpaceAfterEllipsis, + this.NoSpaceAfterOptionalParameters, + this.NoSpaceBetweenEmptyInterfaceBraceBrackets, + this.NoSpaceBeforeOpenAngularBracket, + this.NoSpaceBetweenCloseParenAndAngularBracket, + this.NoSpaceAfterOpenAngularBracket, + this.NoSpaceBeforeCloseAngularBracket, + this.NoSpaceAfterCloseAngularBracket + ]; + this.LowPriorityCommonRules = + [ + this.NoSpaceBeforeSemicolon, + this.SpaceBeforeOpenBraceInControl, this.SpaceBeforeOpenBraceInFunction, this.SpaceBeforeOpenBraceInTypeScriptDeclWithBlock, + this.NoSpaceBeforeComma, + this.NoSpaceBeforeOpenBracket, this.NoSpaceAfterOpenBracket, + this.NoSpaceBeforeCloseBracket, this.NoSpaceAfterCloseBracket, + this.SpaceAfterSemicolon, + this.NoSpaceBeforeOpenParenInFuncDecl, + this.SpaceBetweenStatements, this.SpaceAfterTryFinally + ]; this.SpaceAfterComma = new formatting.Rule(formatting.RuleDescriptor.create3(23, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2)); this.NoSpaceAfterComma = new formatting.Rule(formatting.RuleDescriptor.create3(23, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); this.SpaceBeforeBinaryOperator = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.Any, formatting.Shared.TokenRange.BinaryOperators), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsBinaryOpContext), 2)); @@ -29771,9 +25230,9 @@ var ts; } Rules.prototype.getRuleName = function (rule) { var o = this; - for (var name in o) { - if (o[name] === rule) { - return name; + for (var _name in o) { + if (o[_name] === rule) { + return _name; } } throw new Error("Unknown rule"); @@ -29921,7 +25380,8 @@ var ts; return context.TokensAreOnSameLine(); }; Rules.IsStartOfVariableDeclarationList = function (context) { - return context.currentTokenParent.kind === 194 && context.currentTokenParent.getStart(context.sourceFile) === context.currentTokenSpan.pos; + return context.currentTokenParent.kind === 194 && + context.currentTokenParent.getStart(context.sourceFile) === context.currentTokenSpan.pos; }; Rules.IsNotFormatOnEnter = function (context) { return context.formattingRequestKind != 2; @@ -29955,7 +25415,8 @@ var ts; } }; Rules.IsTypeArgumentOrParameterContext = function (context) { - return Rules.IsTypeArgumentOrParameter(context.currentTokenSpan, context.currentTokenParent) || Rules.IsTypeArgumentOrParameter(context.nextTokenSpan, context.nextTokenParent); + return Rules.IsTypeArgumentOrParameter(context.currentTokenSpan, context.currentTokenParent) || + Rules.IsTypeArgumentOrParameter(context.nextTokenSpan, context.nextTokenParent); }; Rules.IsVoidOpContext = function (context) { return context.currentTokenSpan.kind === 98 && context.currentTokenParent.kind === 164; @@ -29998,7 +25459,8 @@ var ts; }; RulesMap.prototype.FillRule = function (rule, rulesBucketConstructionStateList) { var _this = this; - var specificRule = rule.Descriptor.LeftTokenRange != formatting.Shared.TokenRange.Any && rule.Descriptor.RightTokenRange != formatting.Shared.TokenRange.Any; + var specificRule = rule.Descriptor.LeftTokenRange != formatting.Shared.TokenRange.Any && + rule.Descriptor.RightTokenRange != formatting.Shared.TokenRange.Any; rule.Descriptor.LeftTokenRange.GetTokens().forEach(function (left) { rule.Descriptor.RightTokenRange.GetTokens().forEach(function (right) { var rulesBucketIndex = _this.GetRuleBucketIndex(left, right); @@ -30014,10 +25476,11 @@ var ts; var bucketIndex = this.GetRuleBucketIndex(context.currentTokenSpan.kind, context.nextTokenSpan.kind); var bucket = this.map[bucketIndex]; if (bucket != null) { - for (var i = 0, len = bucket.Rules().length; i < len; i++) { - var rule = bucket.Rules()[i]; - if (rule.Operation.Context.InContext(context)) + for (var _i = 0, _a = bucket.Rules(), _n = _a.length; _i < _n; _i++) { + var rule = _a[_i]; + if (rule.Operation.Context.InContext(context)) { return rule; + } } } return null; @@ -30072,13 +25535,19 @@ var ts; RulesBucket.prototype.AddRule = function (rule, specificTokens, constructionState, rulesBucketIndex) { var position; if (rule.Operation.Action == 1) { - position = specificTokens ? 0 : RulesPosition.IgnoreRulesAny; + position = specificTokens ? + 0 : + RulesPosition.IgnoreRulesAny; } else if (!rule.Operation.Context.IsAny()) { - position = specificTokens ? RulesPosition.ContextRulesSpecific : RulesPosition.ContextRulesAny; + position = specificTokens ? + RulesPosition.ContextRulesSpecific : + RulesPosition.ContextRulesAny; } else { - position = specificTokens ? RulesPosition.NoContextRulesSpecific : RulesPosition.NoContextRulesAny; + position = specificTokens ? + RulesPosition.NoContextRulesSpecific : + RulesPosition.NoContextRulesAny; } var state = constructionState[rulesBucketIndex]; if (state === undefined) { @@ -30135,9 +25604,7 @@ var ts; this.token = token; } TokenSingleValueAccess.prototype.GetTokens = function () { - return [ - this.token - ]; + return [this.token]; }; TokenSingleValueAccess.prototype.Contains = function (tokenValue) { return tokenValue == this.token; @@ -30191,68 +25658,18 @@ var ts; return this.tokenAccess.toString(); }; TokenRange.Any = TokenRange.AllTokens(); - TokenRange.AnyIncludingMultilineComments = TokenRange.FromTokens(TokenRange.Any.GetTokens().concat([ - 3 - ])); + TokenRange.AnyIncludingMultilineComments = TokenRange.FromTokens(TokenRange.Any.GetTokens().concat([3])); TokenRange.Keywords = TokenRange.FromRange(65, 124); TokenRange.BinaryOperators = TokenRange.FromRange(24, 63); - TokenRange.BinaryKeywordOperators = TokenRange.FromTokens([ - 85, - 86, - 124 - ]); - TokenRange.UnaryPrefixOperators = TokenRange.FromTokens([ - 38, - 39, - 47, - 46 - ]); - TokenRange.UnaryPrefixExpressions = TokenRange.FromTokens([ - 7, - 64, - 16, - 18, - 14, - 92, - 87 - ]); - TokenRange.UnaryPreincrementExpressions = TokenRange.FromTokens([ - 64, - 16, - 92, - 87 - ]); - TokenRange.UnaryPostincrementExpressions = TokenRange.FromTokens([ - 64, - 17, - 19, - 87 - ]); - TokenRange.UnaryPredecrementExpressions = TokenRange.FromTokens([ - 64, - 16, - 92, - 87 - ]); - TokenRange.UnaryPostdecrementExpressions = TokenRange.FromTokens([ - 64, - 17, - 19, - 87 - ]); - TokenRange.Comments = TokenRange.FromTokens([ - 2, - 3 - ]); - TokenRange.TypeNames = TokenRange.FromTokens([ - 64, - 118, - 120, - 112, - 121, - 98, - 111 - ]); + TokenRange.BinaryKeywordOperators = TokenRange.FromTokens([85, 86, 124]); + TokenRange.UnaryPrefixOperators = TokenRange.FromTokens([38, 39, 47, 46]); + TokenRange.UnaryPrefixExpressions = TokenRange.FromTokens([7, 64, 16, 18, 14, 92, 87]); + TokenRange.UnaryPreincrementExpressions = TokenRange.FromTokens([64, 16, 92, 87]); + TokenRange.UnaryPostincrementExpressions = TokenRange.FromTokens([64, 17, 19, 87]); + TokenRange.UnaryPredecrementExpressions = TokenRange.FromTokens([64, 16, 92, 87]); + TokenRange.UnaryPostdecrementExpressions = TokenRange.FromTokens([64, 17, 19, 87]); + TokenRange.Comments = TokenRange.FromTokens([2, 3]); + TokenRange.TypeNames = TokenRange.FromTokens([64, 118, 120, 112, 121, 98, 111]); return TokenRange; })(); Shared.TokenRange = TokenRange; @@ -30385,23 +25802,28 @@ var ts; } formatting.formatSelection = formatSelection; function formatOutermostParent(position, expectedLastToken, sourceFile, options, rulesProvider, requestKind) { - var parent = findOutermostParent(position, expectedLastToken, sourceFile); - if (!parent) { + var _parent = findOutermostParent(position, expectedLastToken, sourceFile); + if (!_parent) { return []; } var span = { - pos: ts.getLineStartPositionForPosition(parent.getStart(sourceFile), sourceFile), - end: parent.end + pos: ts.getLineStartPositionForPosition(_parent.getStart(sourceFile), sourceFile), + end: _parent.end }; return formatSpan(span, sourceFile, options, rulesProvider, requestKind); } function findOutermostParent(position, expectedTokenKind, sourceFile) { var precedingToken = ts.findPrecedingToken(position, sourceFile); - if (!precedingToken || precedingToken.kind !== expectedTokenKind || position !== precedingToken.getEnd()) { + if (!precedingToken || + precedingToken.kind !== expectedTokenKind || + position !== precedingToken.getEnd()) { return undefined; } var current = precedingToken; - while (current && current.parent && current.parent.end === precedingToken.end && !isListElement(current.parent, current)) { + while (current && + current.parent && + current.parent.end === precedingToken.end && + !isListElement(current.parent, current)) { current = current.parent; } return current; @@ -30426,9 +25848,7 @@ var ts; function findEnclosingNode(range, sourceFile) { return find(sourceFile); function find(n) { - var candidate = ts.forEachChild(n, function (c) { - return ts.startEndContainsRange(c.getStart(sourceFile), c.end, range) && c; - }); + var candidate = ts.forEachChild(n, function (c) { return ts.startEndContainsRange(c.getStart(sourceFile), c.end, range) && c; }); if (candidate) { var result = find(candidate); if (result) { @@ -30442,11 +25862,9 @@ var ts; if (!errors.length) { return rangeHasNoErrors; } - var sorted = errors.filter(function (d) { - return ts.rangeOverlapsWithStartEnd(originalRange, d.start, d.start + d.length); - }).sort(function (e1, e2) { - return e1.start - e2.start; - }); + var sorted = errors + .filter(function (d) { return ts.rangeOverlapsWithStartEnd(originalRange, d.start, d.start + d.length); }) + .sort(function (e1, e2) { return e1.start - e2.start; }); if (!sorted.length) { return rangeHasNoErrors; } @@ -30527,10 +25945,10 @@ var ts; } } else { - var startLine = sourceFile.getLineAndCharacterOfPosition(startPos).line; + var _startLine = sourceFile.getLineAndCharacterOfPosition(startPos).line; var startLinePosition = ts.getLineStartPositionForPosition(startPos, sourceFile); var column = formatting.SmartIndenter.findFirstNonWhitespaceColumn(startLinePosition, startPos, sourceFile, options); - if (startLine !== parentStartLine || startPos === column) { + if (_startLine !== parentStartLine || startPos === column) { return column; } } @@ -30540,7 +25958,10 @@ var ts; var indentation = inheritedIndentation; if (indentation === -1) { if (isSomeBlock(node.kind)) { - if (isSomeBlock(parent.kind) || parent.kind === 221 || parent.kind === 214 || parent.kind === 215) { + if (isSomeBlock(parent.kind) || + parent.kind === 221 || + parent.kind === 214 || + parent.kind === 215) { indentation = parentDynamicIndentation.getIndentation() + parentDynamicIndentation.getDelta(); } else { @@ -30589,12 +26010,8 @@ var ts; return nodeStartLine !== line ? indentation + delta : indentation; } }, - getIndentation: function () { - return indentation; - }, - getDelta: function () { - return delta; - }, + getIndentation: function () { return indentation; }, + getDelta: function () { return delta; }, recomputeIndentation: function (lineAdded) { if (node.parent && formatting.SmartIndenter.shouldIndentChildNode(node.parent.kind, node.kind)) { if (lineAdded) { @@ -30648,19 +26065,19 @@ var ts; return inheritedIndentation; } while (formattingScanner.isOnToken()) { - var tokenInfo = formattingScanner.readTokenInfo(node); - if (tokenInfo.token.end > childStartPos) { + var _tokenInfo = formattingScanner.readTokenInfo(node); + if (_tokenInfo.token.end > childStartPos) { break; } - consumeTokenAndAdvanceScanner(tokenInfo, node, parentDynamicIndentation); + consumeTokenAndAdvanceScanner(_tokenInfo, node, parentDynamicIndentation); } if (!formattingScanner.isOnToken()) { return inheritedIndentation; } if (ts.isToken(child)) { - var tokenInfo = formattingScanner.readTokenInfo(child); - ts.Debug.assert(tokenInfo.token.end === child.end); - consumeTokenAndAdvanceScanner(tokenInfo, node, parentDynamicIndentation); + var _tokenInfo_1 = formattingScanner.readTokenInfo(child); + ts.Debug.assert(_tokenInfo_1.token.end === child.end); + consumeTokenAndAdvanceScanner(_tokenInfo_1, node, parentDynamicIndentation); return inheritedIndentation; } var childIndentation = computeIndentation(child, childStart.line, childIndentationAmount, node, parentDynamicIndentation, parentStartLine); @@ -30672,33 +26089,34 @@ var ts; var listStartToken = getOpenTokenForList(parent, nodes); var listEndToken = getCloseTokenForOpenToken(listStartToken); var listDynamicIndentation = parentDynamicIndentation; - var startLine = parentStartLine; + var _startLine = parentStartLine; if (listStartToken !== 0) { while (formattingScanner.isOnToken()) { - var tokenInfo = formattingScanner.readTokenInfo(parent); - if (tokenInfo.token.end > nodes.pos) { + var _tokenInfo = formattingScanner.readTokenInfo(parent); + if (_tokenInfo.token.end > nodes.pos) { break; } - else if (tokenInfo.token.kind === listStartToken) { - startLine = sourceFile.getLineAndCharacterOfPosition(tokenInfo.token.pos).line; - var indentation = computeIndentation(tokenInfo.token, startLine, -1, parent, parentDynamicIndentation, startLine); - listDynamicIndentation = getDynamicIndentation(parent, parentStartLine, indentation.indentation, indentation.delta); - consumeTokenAndAdvanceScanner(tokenInfo, parent, listDynamicIndentation); + else if (_tokenInfo.token.kind === listStartToken) { + _startLine = sourceFile.getLineAndCharacterOfPosition(_tokenInfo.token.pos).line; + var _indentation = computeIndentation(_tokenInfo.token, _startLine, -1, parent, parentDynamicIndentation, _startLine); + listDynamicIndentation = getDynamicIndentation(parent, parentStartLine, _indentation.indentation, _indentation.delta); + consumeTokenAndAdvanceScanner(_tokenInfo, parent, listDynamicIndentation); } else { - consumeTokenAndAdvanceScanner(tokenInfo, parent, parentDynamicIndentation); + consumeTokenAndAdvanceScanner(_tokenInfo, parent, parentDynamicIndentation); } } } var inheritedIndentation = -1; - for (var i = 0, len = nodes.length; i < len; ++i) { - inheritedIndentation = processChildNode(nodes[i], inheritedIndentation, node, listDynamicIndentation, startLine, true); + for (var _i = 0, _n = nodes.length; _i < _n; _i++) { + var child = nodes[_i]; + inheritedIndentation = processChildNode(child, inheritedIndentation, node, listDynamicIndentation, _startLine, true); } if (listEndToken !== 0) { if (formattingScanner.isOnToken()) { - var tokenInfo = formattingScanner.readTokenInfo(parent); - if (tokenInfo.token.kind === listEndToken && ts.rangeContainsRange(parent, tokenInfo.token)) { - consumeTokenAndAdvanceScanner(tokenInfo, parent, listDynamicIndentation); + var _tokenInfo_1 = formattingScanner.readTokenInfo(parent); + if (_tokenInfo_1.token.kind === listEndToken && ts.rangeContainsRange(parent, _tokenInfo_1.token)) { + consumeTokenAndAdvanceScanner(_tokenInfo_1, parent, listDynamicIndentation); } } } @@ -30735,8 +26153,8 @@ var ts; if (indentToken) { var indentNextTokenOrTrivia = true; if (currentTokenInfo.leadingTrivia) { - for (var i = 0, len = currentTokenInfo.leadingTrivia.length; i < len; ++i) { - var triviaItem = currentTokenInfo.leadingTrivia[i]; + for (var _i = 0, _a = currentTokenInfo.leadingTrivia, _n = _a.length; _i < _n; _i++) { + var triviaItem = _a[_i]; if (!ts.rangeContainsRange(originalRange, triviaItem)) { continue; } @@ -30749,8 +26167,8 @@ var ts; break; case 2: if (indentNextTokenOrTrivia) { - var commentIndentation = dynamicIndentation.getIndentationForComment(currentTokenInfo.token.kind); - insertIndentation(triviaItem.pos, commentIndentation, false); + var _commentIndentation = dynamicIndentation.getIndentationForComment(currentTokenInfo.token.kind); + insertIndentation(triviaItem.pos, _commentIndentation, false); indentNextTokenOrTrivia = false; } break; @@ -30770,8 +26188,8 @@ var ts; } } function processTrivia(trivia, parent, contextNode, dynamicIndentation) { - for (var i = 0, len = trivia.length; i < len; ++i) { - var triviaItem = trivia[i]; + for (var _i = 0, _n = trivia.length; _i < _n; _i++) { + var triviaItem = trivia[_i]; if (ts.isComment(triviaItem.kind) && ts.rangeContainsRange(originalRange, triviaItem)) { var triviaItemStart = sourceFile.getLineAndCharacterOfPosition(triviaItem.pos); processRange(triviaItem, triviaItemStart, parent, contextNode, dynamicIndentation); @@ -30787,7 +26205,8 @@ var ts; trimTrailingWhitespacesForLines(originalStart.line, rangeStart.line); } else { - lineAdded = processPair(range, rangeStart.line, parent, previousRange, previousRangeStartLine, previousParent, contextNode, dynamicIndentation); + lineAdded = + processPair(range, rangeStart.line, parent, previousRange, previousRangeStartLine, previousParent, contextNode, dynamicIndentation); } } previousRange = range; @@ -30815,7 +26234,9 @@ var ts; dynamicIndentation.recomputeIndentation(true); } } - trimTrailingWhitespaces = (rule.Operation.Action & (4 | 2)) && rule.Flag !== 1; + trimTrailingWhitespaces = + (rule.Operation.Action & (4 | 2)) && + rule.Flag !== 1; } else { trimTrailingWhitespaces = true; @@ -30839,31 +26260,26 @@ var ts; } } function indentMultilineComment(commentRange, indentation, firstLineIsIndented) { - var startLine = sourceFile.getLineAndCharacterOfPosition(commentRange.pos).line; + var _startLine = sourceFile.getLineAndCharacterOfPosition(commentRange.pos).line; var endLine = sourceFile.getLineAndCharacterOfPosition(commentRange.end).line; - if (startLine === endLine) { + var parts; + if (_startLine === endLine) { if (!firstLineIsIndented) { insertIndentation(commentRange.pos, indentation, false); } return; } else { - var parts = []; + parts = []; var startPos = commentRange.pos; - for (var line = startLine; line < endLine; ++line) { + for (var line = _startLine; line < endLine; ++line) { var endOfLine = ts.getEndLinePosition(line, sourceFile); - parts.push({ - pos: startPos, - end: endOfLine - }); + parts.push({ pos: startPos, end: endOfLine }); startPos = ts.getStartPositionOfLine(line + 1, sourceFile); } - parts.push({ - pos: startPos, - end: commentRange.end - }); + parts.push({ pos: startPos, end: commentRange.end }); } - var startLinePos = ts.getStartPositionOfLine(startLine, sourceFile); + var startLinePos = ts.getStartPositionOfLine(_startLine, sourceFile); var nonWhitespaceColumnInFirstPart = formatting.SmartIndenter.findFirstNonWhitespaceCharacterAndColumn(startLinePos, parts[0].pos, sourceFile, options); if (indentation === nonWhitespaceColumnInFirstPart.column) { return; @@ -30871,19 +26287,21 @@ var ts; var startIndex = 0; if (firstLineIsIndented) { startIndex = 1; - startLine++; + _startLine++; } - var delta = indentation - nonWhitespaceColumnInFirstPart.column; - for (var i = startIndex, len = parts.length; i < len; ++i, ++startLine) { - var startLinePos = ts.getStartPositionOfLine(startLine, sourceFile); - var nonWhitespaceCharacterAndColumn = i === 0 ? nonWhitespaceColumnInFirstPart : formatting.SmartIndenter.findFirstNonWhitespaceCharacterAndColumn(parts[i].pos, parts[i].end, sourceFile, options); - var newIndentation = nonWhitespaceCharacterAndColumn.column + delta; + var _delta = indentation - nonWhitespaceColumnInFirstPart.column; + for (var i = startIndex, len = parts.length; i < len; ++i, ++_startLine) { + var _startLinePos = ts.getStartPositionOfLine(_startLine, sourceFile); + var nonWhitespaceCharacterAndColumn = i === 0 + ? nonWhitespaceColumnInFirstPart + : formatting.SmartIndenter.findFirstNonWhitespaceCharacterAndColumn(parts[i].pos, parts[i].end, sourceFile, options); + var newIndentation = nonWhitespaceCharacterAndColumn.column + _delta; if (newIndentation > 0) { var indentationString = getIndentationString(newIndentation, options); - recordReplace(startLinePos, nonWhitespaceCharacterAndColumn.character, indentationString); + recordReplace(_startLinePos, nonWhitespaceCharacterAndColumn.character, indentationString); } else { - recordDelete(startLinePos, nonWhitespaceCharacterAndColumn.character); + recordDelete(_startLinePos, nonWhitespaceCharacterAndColumn.character); } } } @@ -30905,10 +26323,7 @@ var ts; } } function newTextChange(start, len, newText) { - return { - span: ts.createTextSpan(start, len), - newText: newText - }; + return { span: ts.createTextSpan(start, len), newText: newText }; } function recordDelete(start, len) { if (len) { @@ -31058,7 +26473,12 @@ var ts; if (!precedingToken) { return 0; } - var precedingTokenIsLiteral = precedingToken.kind === 8 || precedingToken.kind === 9 || precedingToken.kind === 10 || precedingToken.kind === 11 || precedingToken.kind === 12 || precedingToken.kind === 13; + var precedingTokenIsLiteral = precedingToken.kind === 8 || + precedingToken.kind === 9 || + precedingToken.kind === 10 || + precedingToken.kind === 11 || + precedingToken.kind === 12 || + precedingToken.kind === 13; if (precedingTokenIsLiteral && precedingToken.getStart(sourceFile) <= position && precedingToken.end > position) { return 0; } @@ -31084,9 +26504,9 @@ var ts; } break; } - var actualIndentation = getActualIndentationForListItem(current, sourceFile, options); - if (actualIndentation !== -1) { - return actualIndentation; + var _actualIndentation = getActualIndentationForListItem(current, sourceFile, options); + if (_actualIndentation !== -1) { + return _actualIndentation; } previous = current; current = current.parent; @@ -31103,9 +26523,9 @@ var ts; } SmartIndenter.getIndentationForNode = getIndentationForNode; function getIndentationForNodeWorker(current, currentStart, ignoreActualIndentationRange, indentationDelta, sourceFile, options) { - var parent = current.parent; + var _parent = current.parent; var parentStart; - while (parent) { + while (_parent) { var useActualIndentation = true; if (ignoreActualIndentationRange) { var start = current.getStart(sourceFile); @@ -31117,20 +26537,21 @@ var ts; return actualIndentation + indentationDelta; } } - parentStart = getParentStart(parent, current, sourceFile); - var parentAndChildShareLine = parentStart.line === currentStart.line || childStartsOnTheSameLineWithElseInIfStatement(parent, current, currentStart.line, sourceFile); + parentStart = getParentStart(_parent, current, sourceFile); + var parentAndChildShareLine = parentStart.line === currentStart.line || + childStartsOnTheSameLineWithElseInIfStatement(_parent, current, currentStart.line, sourceFile); if (useActualIndentation) { - var actualIndentation = getActualIndentationForNode(current, parent, currentStart, parentAndChildShareLine, sourceFile, options); - if (actualIndentation !== -1) { - return actualIndentation + indentationDelta; + var _actualIndentation = getActualIndentationForNode(current, _parent, currentStart, parentAndChildShareLine, sourceFile, options); + if (_actualIndentation !== -1) { + return _actualIndentation + indentationDelta; } } - if (shouldIndentChildNode(parent.kind, current.kind) && !parentAndChildShareLine) { + if (shouldIndentChildNode(_parent.kind, current.kind) && !parentAndChildShareLine) { indentationDelta += options.IndentSize; } - current = parent; + current = _parent; currentStart = parentStart; - parent = current.parent; + _parent = current.parent; } return indentationDelta; } @@ -31151,7 +26572,8 @@ var ts; } } function getActualIndentationForNode(current, parent, currentLineAndChar, parentAndChildShareLine, sourceFile, options) { - var useActualIndentation = (ts.isDeclaration(current) || ts.isStatement(current)) && (parent.kind === 221 || !parentAndChildShareLine); + var useActualIndentation = (ts.isDeclaration(current) || ts.isStatement(current)) && + (parent.kind === 221 || !parentAndChildShareLine); if (!useActualIndentation) { return -1; } @@ -31191,7 +26613,8 @@ var ts; if (node.parent) { switch (node.parent.kind) { case 139: - if (node.parent.typeArguments && ts.rangeContainsStartEnd(node.parent.typeArguments, node.getStart(sourceFile), node.getEnd())) { + if (node.parent.typeArguments && + ts.rangeContainsStartEnd(node.parent.typeArguments, node.getStart(sourceFile), node.getEnd())) { return node.parent.typeArguments; } break; @@ -31205,25 +26628,30 @@ var ts; case 132: case 131: case 136: - case 137: + case 137: { var start = node.getStart(sourceFile); - if (node.parent.typeParameters && ts.rangeContainsStartEnd(node.parent.typeParameters, start, node.getEnd())) { + if (node.parent.typeParameters && + ts.rangeContainsStartEnd(node.parent.typeParameters, start, node.getEnd())) { return node.parent.typeParameters; } if (ts.rangeContainsStartEnd(node.parent.parameters, start, node.getEnd())) { return node.parent.parameters; } break; + } case 156: - case 155: - var start = node.getStart(sourceFile); - if (node.parent.typeArguments && ts.rangeContainsStartEnd(node.parent.typeArguments, start, node.getEnd())) { + case 155: { + var _start = node.getStart(sourceFile); + if (node.parent.typeArguments && + ts.rangeContainsStartEnd(node.parent.typeArguments, _start, node.getEnd())) { return node.parent.typeArguments; } - if (node.parent.arguments && ts.rangeContainsStartEnd(node.parent.arguments, start, node.getEnd())) { + if (node.parent.arguments && + ts.rangeContainsStartEnd(node.parent.arguments, _start, node.getEnd())) { return node.parent.arguments; } break; + } } } return undefined; @@ -31272,10 +26700,7 @@ var ts; } character++; } - return { - column: column, - character: character - }; + return { column: column, character: character }; } SmartIndenter.findFirstNonWhitespaceCharacterAndColumn = findFirstNonWhitespaceCharacterAndColumn; function findFirstNonWhitespaceColumn(startPos, endPos, sourceFile, options) { @@ -31492,8 +26917,8 @@ var ts; var list = createNode(222, nodes.pos, nodes.end, 1024, this); list._children = []; var pos = nodes.pos; - for (var i = 0, len = nodes.length; i < len; i++) { - var node = nodes[i]; + for (var _i = 0, _n = nodes.length; _i < _n; _i++) { + var node = nodes[_i]; if (pos < node.pos) { pos = this.addSyntheticNodes(list._children, pos, node.pos); } @@ -31507,9 +26932,10 @@ var ts; }; NodeObject.prototype.createChildren = function (sourceFile) { var _this = this; + var children; if (this.kind >= 125) { scanner.setText((sourceFile || this.getSourceFile()).text); - var children = []; + children = []; var pos = this.pos; var processNode = function (node) { if (pos < node.pos) { @@ -31550,8 +26976,8 @@ var ts; }; NodeObject.prototype.getFirstToken = function (sourceFile) { var children = this.getChildren(); - for (var i = 0; i < children.length; i++) { - var child = children[i]; + for (var _i = 0, _n = children.length; _i < _n; _i++) { + var child = children[_i]; if (child.kind < 125) { return child; } @@ -31658,7 +27084,10 @@ var ts; return pos; } function isName(pos, end, sourceFile, name) { - return pos + name.length < end && sourceFile.text.substr(pos, name.length) === name && (ts.isWhiteSpace(sourceFile.text.charCodeAt(pos + name.length)) || ts.isLineBreak(sourceFile.text.charCodeAt(pos + name.length))); + return pos + name.length < end && + sourceFile.text.substr(pos, name.length) === name && + (ts.isWhiteSpace(sourceFile.text.charCodeAt(pos + name.length)) || + ts.isLineBreak(sourceFile.text.charCodeAt(pos + name.length))); } function isParamTag(pos, end, sourceFile) { return isName(pos, end, sourceFile, paramTag); @@ -31670,7 +27099,7 @@ var ts; } function getCleanedJsDocComment(pos, end, sourceFile) { var spacesToRemoveAfterAsterisk; - var docComments = []; + var _docComments = []; var blankLineCount = 0; var isInParamTag = false; while (pos < end) { @@ -31705,14 +27134,14 @@ var ts; } pos = consumeLineBreaks(pos, end, sourceFile); if (docCommentTextOfLine) { - pushDocCommentLineText(docComments, docCommentTextOfLine, blankLineCount); + pushDocCommentLineText(_docComments, docCommentTextOfLine, blankLineCount); blankLineCount = 0; } - else if (!isInParamTag && docComments.length) { + else if (!isInParamTag && _docComments.length) { blankLineCount++; } } - return docComments; + return _docComments; } function getCleanedParamJsDocComment(pos, end, sourceFile) { var paramHelpStringMargin; @@ -31813,8 +27242,8 @@ var ts; } var consumedSpaces = pos - startOfLinePos; if (consumedSpaces < paramHelpStringMargin) { - var ch = sourceFile.text.charCodeAt(pos); - if (ch === 42) { + var _ch = sourceFile.text.charCodeAt(pos); + if (_ch === 42) { pos = consumeWhiteSpacesOnTheLine(pos + 1, end, sourceFile, paramHelpStringMargin - consumedSpaces - 1); } } @@ -31874,9 +27303,7 @@ var ts; }; SignatureObject.prototype.getDocumentationComment = function () { if (this.documentationComment === undefined) { - this.documentationComment = this.declaration ? getJsDocCommentsFromDeclarations([ - this.declaration - ], undefined, false) : []; + this.documentationComment = this.declaration ? getJsDocCommentsFromDeclarations([this.declaration], undefined, false) : []; } return this.documentationComment; }; @@ -31910,7 +27337,9 @@ var ts; case 131: var functionDeclaration = node; if (functionDeclaration.name && functionDeclaration.name.getFullWidth() > 0) { - var lastDeclaration = namedDeclarations.length > 0 ? namedDeclarations[namedDeclarations.length - 1] : undefined; + var lastDeclaration = namedDeclarations.length > 0 ? + namedDeclarations[namedDeclarations.length - 1] : + undefined; if (lastDeclaration && functionDeclaration.symbol === lastDeclaration.symbol) { if (functionDeclaration.body && !lastDeclaration.body) { namedDeclarations[namedDeclarations.length - 1] = functionDeclaration; @@ -32108,9 +27537,7 @@ var ts; ts.ClassificationTypeNames = ClassificationTypeNames; function displayPartsToString(displayParts) { if (displayParts) { - return ts.map(displayParts, function (displayPart) { - return displayPart.text; - }).join(""); + return ts.map(displayParts, function (displayPart) { return displayPart.text; }).join(""); } return ""; } @@ -32126,8 +27553,8 @@ var ts; if (declaration.kind !== 193 && declaration.kind !== 195) { return false; } - for (var parent = declaration.parent; !ts.isFunctionBlock(parent); parent = parent.parent) { - if (parent.kind === 221 || parent.kind === 201) { + for (var _parent = declaration.parent; !ts.isFunctionBlock(_parent); _parent = _parent.parent) { + if (_parent.kind === 221 || _parent.kind === 201) { return false; } } @@ -32168,8 +27595,9 @@ var ts; this.host = host; this.fileNameToEntry = {}; var rootFileNames = host.getScriptFileNames(); - for (var i = 0, n = rootFileNames.length; i < n; i++) { - this.createEntry(rootFileNames[i]); + for (var _i = 0, _n = rootFileNames.length; _i < _n; _i++) { + var fileName = rootFileNames[_i]; + this.createEntry(fileName); } this._compilationSettings = host.getCompilationSettings() || getDefaultCompilerOptions(); } @@ -32228,17 +27656,17 @@ var ts; if (!scriptSnapshot) { throw new Error("Could not find file: '" + fileName + "'."); } - var version = this.host.getScriptVersion(fileName); + var _version = this.host.getScriptVersion(fileName); var sourceFile; if (this.currentFileName !== fileName) { - sourceFile = createLanguageServiceSourceFile(fileName, scriptSnapshot, 2, version, true); + sourceFile = createLanguageServiceSourceFile(fileName, scriptSnapshot, 2, _version, true); } - else if (this.currentFileVersion !== version) { + else if (this.currentFileVersion !== _version) { var editRange = scriptSnapshot.getChangeRange(this.currentFileScriptSnapshot); - sourceFile = updateLanguageServiceSourceFile(this.currentSourceFile, scriptSnapshot, version, editRange); + sourceFile = updateLanguageServiceSourceFile(this.currentSourceFile, scriptSnapshot, _version, editRange); } if (sourceFile) { - this.currentFileVersion = version; + this.currentFileVersion = _version; this.currentFileName = fileName; this.currentFileScriptSnapshot = scriptSnapshot; this.currentSourceFile = sourceFile; @@ -32287,9 +27715,7 @@ var ts; return bucket; } function reportStats() { - var bucketInfoArray = Object.keys(buckets).filter(function (name) { - return name && name.charAt(0) === '_'; - }).map(function (name) { + var bucketInfoArray = Object.keys(buckets).filter(function (name) { return name && name.charAt(0) === '_'; }).map(function (name) { var entries = ts.lookUp(buckets, name); var sourceFiles = []; for (var i in entries) { @@ -32300,9 +27726,7 @@ var ts; references: entry.owners.slice(0) }); } - sourceFiles.sort(function (x, y) { - return y.refCount - x.refCount; - }); + sourceFiles.sort(function (x, y) { return y.refCount - x.refCount; }); return { bucket: name, sourceFiles: sourceFiles @@ -32491,11 +27915,7 @@ var ts; processImport(); } processTripleSlashDirectives(); - return { - referencedFiles: referencedFiles, - importedFiles: importedFiles, - isLibFile: isNoDefaultLib - }; + return { referencedFiles: referencedFiles, importedFiles: importedFiles, isLibFile: isNoDefaultLib }; } ts.preProcessFile = preProcessFile; function getTargetLabel(referenceNode, labelName) { @@ -32508,10 +27928,14 @@ var ts; return undefined; } function isJumpStatementTarget(node) { - return node.kind === 64 && (node.parent.kind === 185 || node.parent.kind === 184) && node.parent.label === node; + return node.kind === 64 && + (node.parent.kind === 185 || node.parent.kind === 184) && + node.parent.label === node; } function isLabelOfLabeledStatement(node) { - return node.kind === 64 && node.parent.kind === 189 && node.parent.label === node; + return node.kind === 64 && + node.parent.kind === 189 && + node.parent.label === node; } function isLabeledBy(node, labelName) { for (var owner = node.parent; owner.kind === 189; owner = owner.parent) { @@ -32546,10 +27970,12 @@ var ts; return node.parent.kind === 200 && node.parent.name === node; } function isNameOfFunctionDeclaration(node) { - return node.kind === 64 && ts.isFunctionLike(node.parent) && node.parent.name === node; + return node.kind === 64 && + ts.isFunctionLike(node.parent) && node.parent.name === node; } function isNameOfPropertyAssignment(node) { - return (node.kind === 64 || node.kind === 8 || node.kind === 7) && (node.parent.kind === 218 || node.parent.kind === 219) && node.parent.name === node; + return (node.kind === 64 || node.kind === 8 || node.kind === 7) && + (node.parent.kind === 218 || node.parent.kind === 219) && node.parent.name === node; } function isLiteralNameOfPropertyDeclarationOrIndexAccess(node) { if (node.kind === 8 || node.kind === 7) { @@ -32572,12 +27998,15 @@ var ts; } function isNameOfExternalModuleImportOrDeclaration(node) { if (node.kind === 8) { - return isNameOfModuleDeclaration(node) || (ts.isExternalModuleImportEqualsDeclaration(node.parent.parent) && ts.getExternalModuleImportEqualsDeclarationExpression(node.parent.parent) === node); + return isNameOfModuleDeclaration(node) || + (ts.isExternalModuleImportEqualsDeclaration(node.parent.parent) && ts.getExternalModuleImportEqualsDeclarationExpression(node.parent.parent) === node); } return false; } function isInsideComment(sourceFile, token, position) { - return position <= token.getStart(sourceFile) && (isInsideCommentRange(ts.getTrailingCommentRanges(sourceFile.text, token.getFullStart())) || isInsideCommentRange(ts.getLeadingCommentRanges(sourceFile.text, token.getFullStart()))); + return position <= token.getStart(sourceFile) && + (isInsideCommentRange(ts.getTrailingCommentRanges(sourceFile.text, token.getFullStart())) || + isInsideCommentRange(ts.getLeadingCommentRanges(sourceFile.text, token.getFullStart()))); function isInsideCommentRange(comments) { return ts.forEach(comments, function (comment) { if (comment.pos < position && position < comment.end) { @@ -32590,7 +28019,8 @@ var ts; return true; } else { - return !(text.charCodeAt(comment.end - 1) === 47 && text.charCodeAt(comment.end - 2) === 42); + return !(text.charCodeAt(comment.end - 1) === 47 && + text.charCodeAt(comment.end - 2) === 42); } } return false; @@ -32630,44 +28060,33 @@ var ts; ts.getContainerNode = getContainerNode; function getNodeKind(node) { switch (node.kind) { - case 200: - return ScriptElementKind.moduleElement; - case 196: - return ScriptElementKind.classElement; - case 197: - return ScriptElementKind.interfaceElement; - case 198: - return ScriptElementKind.typeElement; - case 199: - return ScriptElementKind.enumElement; + case 200: return ScriptElementKind.moduleElement; + case 196: return ScriptElementKind.classElement; + case 197: return ScriptElementKind.interfaceElement; + case 198: return ScriptElementKind.typeElement; + case 199: return ScriptElementKind.enumElement; case 193: - return ts.isConst(node) ? ScriptElementKind.constElement : ts.isLet(node) ? ScriptElementKind.letElement : ScriptElementKind.variableElement; - case 195: - return ScriptElementKind.functionElement; - case 134: - return ScriptElementKind.memberGetAccessorElement; - case 135: - return ScriptElementKind.memberSetAccessorElement; + return ts.isConst(node) + ? ScriptElementKind.constElement + : ts.isLet(node) + ? ScriptElementKind.letElement + : ScriptElementKind.variableElement; + case 195: return ScriptElementKind.functionElement; + case 134: return ScriptElementKind.memberGetAccessorElement; + case 135: return ScriptElementKind.memberSetAccessorElement; case 132: case 131: return ScriptElementKind.memberFunctionElement; case 130: case 129: return ScriptElementKind.memberVariableElement; - case 138: - return ScriptElementKind.indexSignatureElement; - case 137: - return ScriptElementKind.constructSignatureElement; - case 136: - return ScriptElementKind.callSignatureElement; - case 133: - return ScriptElementKind.constructorImplementationElement; - case 127: - return ScriptElementKind.typeParameterElement; - case 220: - return ScriptElementKind.variableElement; - case 128: - return (node.flags & 112) ? ScriptElementKind.memberVariableElement : ScriptElementKind.parameterElement; + case 138: return ScriptElementKind.indexSignatureElement; + case 137: return ScriptElementKind.constructSignatureElement; + case 136: return ScriptElementKind.callSignatureElement; + case 133: return ScriptElementKind.constructorImplementationElement; + case 127: return ScriptElementKind.typeParameterElement; + case 220: return ScriptElementKind.variableElement; + case 128: return (node.flags & 112) ? ScriptElementKind.memberVariableElement : ScriptElementKind.parameterElement; case 203: case 208: case 205: @@ -32723,31 +28142,19 @@ var ts; var changesInCompilationSettingsAffectSyntax = oldSettings && oldSettings.target !== newSettings.target; var newProgram = ts.createProgram(hostCache.getRootFileNames(), newSettings, { getSourceFile: getOrCreateSourceFile, - getCancellationToken: function () { - return cancellationToken; - }, - getCanonicalFileName: function (fileName) { - return useCaseSensitivefileNames ? fileName : fileName.toLowerCase(); - }, - useCaseSensitiveFileNames: function () { - return useCaseSensitivefileNames; - }, - getNewLine: function () { - return host.getNewLine ? host.getNewLine() : "\r\n"; - }, - getDefaultLibFileName: function (options) { - return host.getDefaultLibFileName(options); - }, - writeFile: function (fileName, data, writeByteOrderMark) { - }, - getCurrentDirectory: function () { - return host.getCurrentDirectory(); - } + getCancellationToken: function () { return cancellationToken; }, + getCanonicalFileName: function (fileName) { return useCaseSensitivefileNames ? fileName : fileName.toLowerCase(); }, + useCaseSensitiveFileNames: function () { return useCaseSensitivefileNames; }, + getNewLine: function () { return host.getNewLine ? host.getNewLine() : "\r\n"; }, + getDefaultLibFileName: function (options) { return host.getDefaultLibFileName(options); }, + writeFile: function (fileName, data, writeByteOrderMark) { }, + getCurrentDirectory: function () { return host.getCurrentDirectory(); } }); if (program) { var oldSourceFiles = program.getSourceFiles(); - for (var i = 0, n = oldSourceFiles.length; i < n; i++) { - var fileName = oldSourceFiles[i].fileName; + for (var _i = 0, _n = oldSourceFiles.length; _i < _n; _i++) { + var oldSourceFile = oldSourceFiles[_i]; + var fileName = oldSourceFile.fileName; if (!newProgram.getSourceFile(fileName) || changesInCompilationSettingsAffectSyntax) { documentRegistry.releaseDocument(fileName, oldSettings); } @@ -32762,8 +28169,8 @@ var ts; return undefined; } if (!changesInCompilationSettingsAffectSyntax) { - var oldSourceFile = program && program.getSourceFile(fileName); - if (oldSourceFile) { + var _oldSourceFile = program && program.getSourceFile(fileName); + if (_oldSourceFile) { return documentRegistry.updateDocument(fileName, newSettings, hostFileInformation.scriptSnapshot, hostFileInformation.version); } } @@ -32780,8 +28187,9 @@ var ts; if (program.getSourceFiles().length !== rootFileNames.length) { return false; } - for (var i = 0, n = rootFileNames.length; i < n; i++) { - if (!sourceFileUpToDate(program.getSourceFile(rootFileNames[i]))) { + for (var _a = 0, _b = rootFileNames.length; _a < _b; _a++) { + var _fileName = rootFileNames[_a]; + if (!sourceFileUpToDate(program.getSourceFile(_fileName))) { return false; } } @@ -32829,12 +28237,13 @@ var ts; if ((symbol.flags & 1536) && (firstCharCode === 39 || firstCharCode === 34)) { return undefined; } - if (displayName && displayName.length >= 2 && firstCharCode === displayName.charCodeAt(displayName.length - 1) && (firstCharCode === 39 || firstCharCode === 34)) { + if (displayName && displayName.length >= 2 && firstCharCode === displayName.charCodeAt(displayName.length - 1) && + (firstCharCode === 39 || firstCharCode === 34)) { displayName = displayName.substring(1, displayName.length - 1); } var isValid = ts.isIdentifierStart(displayName.charCodeAt(0), target); - for (var i = 1, n = displayName.length; isValid && i < n; i++) { - isValid = ts.isIdentifierPart(displayName.charCodeAt(i), target); + for (var _i = 1, n = displayName.length; isValid && _i < n; _i++) { + isValid = ts.isIdentifierPart(displayName.charCodeAt(_i), target); } if (isValid) { return ts.unescapeIdentifier(displayName); @@ -32860,20 +28269,20 @@ var ts; var start = new Date().getTime(); var currentToken = ts.getTokenAtPosition(sourceFile, position); log("getCompletionsAtPosition: Get current token: " + (new Date().getTime() - start)); - var start = new Date().getTime(); + start = new Date().getTime(); var insideComment = isInsideComment(sourceFile, currentToken, position); log("getCompletionsAtPosition: Is inside comment: " + (new Date().getTime() - start)); if (insideComment) { log("Returning an empty list because completion was inside a comment."); return undefined; } - var start = new Date().getTime(); + start = new Date().getTime(); var previousToken = ts.findPrecedingToken(position, sourceFile); log("getCompletionsAtPosition: Get previous token 1: " + (new Date().getTime() - start)); if (previousToken && position <= previousToken.end && previousToken.kind === 64) { - var start = new Date().getTime(); + var _start = new Date().getTime(); previousToken = ts.findPrecedingToken(previousToken.pos, sourceFile); - log("getCompletionsAtPosition: Get previous token 2: " + (new Date().getTime() - start)); + log("getCompletionsAtPosition: Get previous token 2: " + (new Date().getTime() - _start)); } if (previousToken && isCompletionListBlocker(previousToken)) { log("Returning an empty list because completion was requested in an invalid position."); @@ -32901,12 +28310,14 @@ var ts; typeChecker: typeInfoResolver }; log("getCompletionsAtPosition: Syntactic work: " + (new Date().getTime() - syntacticStart)); - var location = ts.getTouchingPropertyName(sourceFile, position); + var _location = ts.getTouchingPropertyName(sourceFile, position); var semanticStart = new Date().getTime(); + var isMemberCompletion; + var isNewIdentifierLocation; if (isRightOfDot) { var symbols = []; - var isMemberCompletion = true; - var isNewIdentifierLocation = false; + isMemberCompletion = true; + isNewIdentifierLocation = false; if (node.kind === 64 || node.kind === 125 || node.kind === 153) { var symbol = typeInfoResolver.getSymbolAtLocation(node); if (symbol && symbol.flags & 8388608) { @@ -32951,8 +28362,8 @@ var ts; if (showCompletionsInImportsClause(previousToken)) { var importDeclaration = ts.getAncestor(previousToken, 204); ts.Debug.assert(importDeclaration !== undefined); - var exports = typeInfoResolver.getExportsOfExternalModule(importDeclaration); - var filteredExports = filterModuleExports(exports, importDeclaration); + var _exports = typeInfoResolver.getExportsOfExternalModule(importDeclaration); + var filteredExports = filterModuleExports(_exports, importDeclaration); getCompletionEntriesFromSymbols(filteredExports, activeCompletionSession); } } @@ -32960,8 +28371,8 @@ var ts; isMemberCompletion = false; isNewIdentifierLocation = isNewIdentifierDefinitionLocation(previousToken); var symbolMeanings = 793056 | 107455 | 1536 | 8388608; - var symbols = typeInfoResolver.getSymbolsInScope(node, symbolMeanings); - getCompletionEntriesFromSymbols(symbols, activeCompletionSession); + var _symbols = typeInfoResolver.getSymbolsInScope(node, symbolMeanings); + getCompletionEntriesFromSymbols(_symbols, activeCompletionSession); } } if (!isMemberCompletion) { @@ -32975,9 +28386,9 @@ var ts; entries: activeCompletionSession.entries }; function getCompletionEntriesFromSymbols(symbols, session) { - var start = new Date().getTime(); + var _start_1 = new Date().getTime(); ts.forEach(symbols, function (symbol) { - var entry = createCompletionEntry(symbol, session.typeChecker, location); + var entry = createCompletionEntry(symbol, session.typeChecker, _location); if (entry) { var id = ts.escapeIdentifier(entry.name); if (!ts.lookUp(session.symbols, id)) { @@ -32986,12 +28397,14 @@ var ts; } } }); - log("getCompletionsAtPosition: getCompletionEntriesFromSymbols: " + (new Date().getTime() - start)); + log("getCompletionsAtPosition: getCompletionEntriesFromSymbols: " + (new Date().getTime() - _start_1)); } function isCompletionListBlocker(previousToken) { - var start = new Date().getTime(); - var result = isInStringOrRegularExpressionOrTemplateLiteral(previousToken) || isIdentifierDefinitionLocation(previousToken) || isRightOfIllegalDot(previousToken); - log("getCompletionsAtPosition: isCompletionListBlocker: " + (new Date().getTime() - start)); + var _start_1 = new Date().getTime(); + var result = isInStringOrRegularExpressionOrTemplateLiteral(previousToken) || + isIdentifierDefinitionLocation(previousToken) || + isRightOfIllegalDot(previousToken); + log("getCompletionsAtPosition: isCompletionListBlocker: " + (new Date().getTime() - _start_1)); return result; } function showCompletionsInImportsClause(node) { @@ -33007,9 +28420,16 @@ var ts; var containingNodeKind = previousToken.parent.kind; switch (previousToken.kind) { case 23: - return containingNodeKind === 155 || containingNodeKind === 133 || containingNodeKind === 156 || containingNodeKind === 151 || containingNodeKind === 167; + return containingNodeKind === 155 + || containingNodeKind === 133 + || containingNodeKind === 156 + || containingNodeKind === 151 + || containingNodeKind === 167; case 16: - return containingNodeKind === 155 || containingNodeKind === 133 || containingNodeKind === 156 || containingNodeKind === 159; + return containingNodeKind === 155 + || containingNodeKind === 133 + || containingNodeKind === 156 + || containingNodeKind === 159; case 18: return containingNodeKind === 151; case 116: @@ -33019,7 +28439,8 @@ var ts; case 14: return containingNodeKind === 196; case 52: - return containingNodeKind === 193 || containingNodeKind === 167; + return containingNodeKind === 193 + || containingNodeKind === 167; case 11: return containingNodeKind === 169; case 12: @@ -33039,10 +28460,12 @@ var ts; return false; } function isInStringOrRegularExpressionOrTemplateLiteral(previousToken) { - if (previousToken.kind === 8 || previousToken.kind === 9 || ts.isTemplateLiteralKind(previousToken.kind)) { - var start = previousToken.getStart(); + if (previousToken.kind === 8 + || previousToken.kind === 9 + || ts.isTemplateLiteralKind(previousToken.kind)) { + var _start_1 = previousToken.getStart(); var end = previousToken.getEnd(); - if (start < position && position < end) { + if (_start_1 < position && position < end) { return true; } else if (position === end) { @@ -33053,12 +28476,12 @@ var ts; } function getContainingObjectLiteralApplicableForCompletion(previousToken) { if (previousToken) { - var parent = previousToken.parent; + var _parent = previousToken.parent; switch (previousToken.kind) { case 14: case 23: - if (parent && parent.kind === 152) { - return parent; + if (_parent && _parent.kind === 152) { + return _parent; } break; } @@ -33086,23 +28509,43 @@ var ts; var containingNodeKind = previousToken.parent.kind; switch (previousToken.kind) { case 23: - return containingNodeKind === 193 || containingNodeKind === 194 || containingNodeKind === 175 || containingNodeKind === 199 || isFunction(containingNodeKind) || containingNodeKind === 196 || containingNodeKind === 195 || containingNodeKind === 197 || containingNodeKind === 149 || containingNodeKind === 148; + return containingNodeKind === 193 || + containingNodeKind === 194 || + containingNodeKind === 175 || + containingNodeKind === 199 || + isFunction(containingNodeKind) || + containingNodeKind === 196 || + containingNodeKind === 195 || + containingNodeKind === 197 || + containingNodeKind === 149 || + containingNodeKind === 148; case 20: return containingNodeKind === 149; case 18: return containingNodeKind === 149; case 16: - return containingNodeKind === 217 || isFunction(containingNodeKind); + return containingNodeKind === 217 || + isFunction(containingNodeKind); case 14: - return containingNodeKind === 199 || containingNodeKind === 197 || containingNodeKind === 143 || containingNodeKind === 148; + return containingNodeKind === 199 || + containingNodeKind === 197 || + containingNodeKind === 143 || + containingNodeKind === 148; case 22: - return containingNodeKind === 129 && (previousToken.parent.parent.kind === 197 || previousToken.parent.parent.kind === 143); + return containingNodeKind === 129 && + (previousToken.parent.parent.kind === 197 || + previousToken.parent.parent.kind === 143); case 24: - return containingNodeKind === 196 || containingNodeKind === 195 || containingNodeKind === 197 || isFunction(containingNodeKind); + return containingNodeKind === 196 || + containingNodeKind === 195 || + containingNodeKind === 197 || + isFunction(containingNodeKind); case 109: return containingNodeKind === 130; case 21: - return containingNodeKind === 128 || containingNodeKind === 133 || (previousToken.parent.parent.kind === 149); + return containingNodeKind === 128 || + containingNodeKind === 133 || + (previousToken.parent.parent.kind === 149); case 108: case 106: case 107: @@ -33147,18 +28590,17 @@ var ts; if (!importDeclaration.importClause) { return exports; } - if (importDeclaration.importClause.namedBindings && importDeclaration.importClause.namedBindings.kind === 207) { + if (importDeclaration.importClause.namedBindings && + importDeclaration.importClause.namedBindings.kind === 207) { ts.forEach(importDeclaration.importClause.namedBindings.elements, function (el) { - var name = el.propertyName || el.name; - exisingImports[name.text] = true; + var _name = el.propertyName || el.name; + exisingImports[_name.text] = true; }); } if (ts.isEmpty(exisingImports)) { return exports; } - return ts.filter(exports, function (e) { - return !ts.lookUp(exisingImports, e.name); - }); + return ts.filter(exports, function (e) { return !ts.lookUp(exisingImports, e.name); }); } function filterContextualMembersList(contextualMemberSymbols, existingMembers) { if (!existingMembers || existingMembers.length === 0) { @@ -33174,13 +28616,13 @@ var ts; } existingMemberNames[m.name.text] = true; }); - var filteredMembers = []; + var _filteredMembers = []; ts.forEach(contextualMemberSymbols, function (s) { if (!existingMemberNames[s.name]) { - filteredMembers.push(s); + _filteredMembers.push(s); } }); - return filteredMembers; + return _filteredMembers; } } function getCompletionEntryDetails(fileName, position, entryName) { @@ -33191,10 +28633,10 @@ var ts; } var symbol = ts.lookUp(activeCompletionSession.symbols, ts.escapeIdentifier(entryName)); if (symbol) { - var location = ts.getTouchingPropertyName(sourceFile, position); - var completionEntry = createCompletionEntry(symbol, session.typeChecker, location); - ts.Debug.assert(session.typeChecker.getTypeOfSymbolAtLocation(symbol, location) !== undefined, "Could not find type for symbol"); - var displayPartsDocumentationsAndSymbolKind = getSymbolDisplayPartsDocumentationAndSymbolKind(symbol, getValidSourceFile(fileName), location, session.typeChecker, location, 7); + var _location = ts.getTouchingPropertyName(sourceFile, position); + var completionEntry = createCompletionEntry(symbol, session.typeChecker, _location); + ts.Debug.assert(session.typeChecker.getTypeOfSymbolAtLocation(symbol, _location) !== undefined, "Could not find type for symbol"); + var displayPartsDocumentationsAndSymbolKind = getSymbolDisplayPartsDocumentationAndSymbolKind(symbol, getValidSourceFile(fileName), _location, session.typeChecker, _location, 7); return { name: entryName, kind: displayPartsDocumentationsAndSymbolKind.symbolKind, @@ -33208,9 +28650,7 @@ var ts; name: entryName, kind: ScriptElementKind.keyword, kindModifiers: ScriptElementKindModifier.none, - displayParts: [ - ts.displayPart(entryName, 5) - ], + displayParts: [ts.displayPart(entryName, 5)], documentation: undefined }; } @@ -33308,7 +28748,9 @@ var ts; return ScriptElementKind.unknown; } function getSymbolModifiers(symbol) { - return symbol && symbol.declarations && symbol.declarations.length > 0 ? ts.getNodeModifiers(symbol.declarations[0]) : ScriptElementKindModifier.none; + return symbol && symbol.declarations && symbol.declarations.length > 0 + ? ts.getNodeModifiers(symbol.declarations[0]) + : ScriptElementKindModifier.none; } function getSymbolDisplayPartsDocumentationAndSymbolKind(symbol, sourceFile, enclosingDeclaration, typeResolver, location, semanticMeaning) { if (semanticMeaning === void 0) { semanticMeaning = getMeaningFromLocation(location); } @@ -33317,11 +28759,13 @@ var ts; var symbolFlags = symbol.flags; var symbolKind = getSymbolKindOfConstructorPropertyMethodAccessorFunctionOrVar(symbol, symbolFlags, typeResolver, location); var hasAddedSymbolInfo; + var type; if (symbolKind !== ScriptElementKind.unknown || symbolFlags & 32 || symbolFlags & 8388608) { if (symbolKind === ScriptElementKind.memberGetAccessorElement || symbolKind === ScriptElementKind.memberSetAccessorElement) { symbolKind = ScriptElementKind.memberVariableElement; } - var type = typeResolver.getTypeOfSymbolAtLocation(symbol, location); + var signature; + type = typeResolver.getTypeOfSymbolAtLocation(symbol, location); if (type) { if (location.parent && location.parent.kind === 153) { var right = location.parent.name; @@ -33391,24 +28835,25 @@ var ts; hasAddedSymbolInfo = true; } } - else if ((isNameOfFunctionDeclaration(location) && !(symbol.flags & 98304)) || (location.kind === 113 && location.parent.kind === 133)) { - var signature; + else if ((isNameOfFunctionDeclaration(location) && !(symbol.flags & 98304)) || + (location.kind === 113 && location.parent.kind === 133)) { var functionDeclaration = location.parent; - var allSignatures = functionDeclaration.kind === 133 ? type.getConstructSignatures() : type.getCallSignatures(); + var _allSignatures = functionDeclaration.kind === 133 ? type.getConstructSignatures() : type.getCallSignatures(); if (!typeResolver.isImplementationOfOverload(functionDeclaration)) { signature = typeResolver.getSignatureFromDeclaration(functionDeclaration); } else { - signature = allSignatures[0]; + signature = _allSignatures[0]; } if (functionDeclaration.kind === 133) { symbolKind = ScriptElementKind.constructorImplementationElement; addPrefixForAnyFunctionOrVar(type.symbol, symbolKind); } else { - addPrefixForAnyFunctionOrVar(functionDeclaration.kind === 136 && !(type.symbol.flags & 2048 || type.symbol.flags & 4096) ? type.symbol : symbol, symbolKind); + addPrefixForAnyFunctionOrVar(functionDeclaration.kind === 136 && + !(type.symbol.flags & 2048 || type.symbol.flags & 4096) ? type.symbol : symbol, symbolKind); } - addSignatureDisplayParts(signature, allSignatures); + addSignatureDisplayParts(signature, _allSignatures); hasAddedSymbolInfo = true; } } @@ -33468,7 +28913,7 @@ var ts; } else { var signatureDeclaration = ts.getDeclarationOfKind(symbol, 127).parent; - var signature = typeResolver.getSignatureFromDeclaration(signatureDeclaration); + var _signature = typeResolver.getSignatureFromDeclaration(signatureDeclaration); if (signatureDeclaration.kind === 137) { displayParts.push(ts.keywordPart(87)); displayParts.push(ts.spacePart()); @@ -33476,7 +28921,7 @@ var ts; else if (signatureDeclaration.kind !== 136 && signatureDeclaration.name) { addFullSymbolName(signatureDeclaration.symbol); } - displayParts.push.apply(displayParts, ts.signatureToDisplayParts(typeResolver, signature, sourceFile, 32)); + displayParts.push.apply(displayParts, ts.signatureToDisplayParts(typeResolver, _signature, sourceFile, 32)); } } if (symbolFlags & 8) { @@ -33526,7 +28971,9 @@ var ts; if (symbolKind !== ScriptElementKind.unknown) { if (type) { addPrefixForAnyFunctionOrVar(symbol, symbolKind); - if (symbolKind === ScriptElementKind.memberVariableElement || symbolFlags & 3 || symbolKind === ScriptElementKind.localVariableElement) { + if (symbolKind === ScriptElementKind.memberVariableElement || + symbolFlags & 3 || + symbolKind === ScriptElementKind.localVariableElement) { displayParts.push(ts.punctuationPart(51)); displayParts.push(ts.spacePart()); if (type.symbol && type.symbol.flags & 262144) { @@ -33539,9 +28986,14 @@ var ts; displayParts.push.apply(displayParts, ts.typeToDisplayParts(typeResolver, type, enclosingDeclaration)); } } - else if (symbolFlags & 16 || symbolFlags & 8192 || symbolFlags & 16384 || symbolFlags & 131072 || symbolFlags & 98304 || symbolKind === ScriptElementKind.memberFunctionElement) { - var allSignatures = type.getCallSignatures(); - addSignatureDisplayParts(allSignatures[0], allSignatures); + else if (symbolFlags & 16 || + symbolFlags & 8192 || + symbolFlags & 16384 || + symbolFlags & 131072 || + symbolFlags & 98304 || + symbolKind === ScriptElementKind.memberFunctionElement) { + var _allSignatures_1 = type.getCallSignatures(); + addSignatureDisplayParts(_allSignatures_1[0], _allSignatures_1); } } } @@ -33552,11 +29004,7 @@ var ts; if (!documentation) { documentation = symbol.getDocumentationComment(); } - return { - displayParts: displayParts, - documentation: documentation, - symbolKind: symbolKind - }; + return { displayParts: displayParts, documentation: documentation, symbolKind: symbolKind }; function addNewLineIfDisplayPartsExist() { if (displayParts.length) { displayParts.push(ts.lineBreakPart()); @@ -33590,10 +29038,10 @@ var ts; documentation = signature.getDocumentationComment(); } function writeTypeParametersOfSymbol(symbol, enclosingDeclaration) { - var typeParameterParts = ts.mapToDisplayParts(function (writer) { + var _typeParameterParts = ts.mapToDisplayParts(function (writer) { typeResolver.getSymbolDisplayBuilder().buildTypeParameterDisplayFromSymbol(symbol, writer, enclosingDeclaration); }); - displayParts.push.apply(displayParts, typeParameterParts); + displayParts.push.apply(displayParts, _typeParameterParts); } } function getQuickInfoAtPosition(fileName, position) { @@ -33643,26 +29091,20 @@ var ts; if (isJumpStatementTarget(node)) { var labelName = node.text; var label = getTargetLabel(node.parent, node.text); - return label ? [ - getDefinitionInfo(label, ScriptElementKind.label, labelName, undefined) - ] : undefined; + return label ? [getDefinitionInfo(label, ScriptElementKind.label, labelName, undefined)] : undefined; } - var comment = ts.forEach(sourceFile.referencedFiles, function (r) { - return (r.pos <= position && position < r.end) ? r : undefined; - }); + var comment = ts.forEach(sourceFile.referencedFiles, function (r) { return (r.pos <= position && position < r.end) ? r : undefined; }); if (comment) { var referenceFile = ts.tryResolveScriptReference(program, sourceFile, comment); if (referenceFile) { - return [ - { + return [{ fileName: referenceFile.fileName, textSpan: ts.createTextSpanFromBounds(0, 0), kind: ScriptElementKind.scriptElement, name: comment.fileName, containerName: undefined, containerKind: undefined - } - ]; + }]; } return undefined; } @@ -33693,7 +29135,8 @@ var ts; var symbolKind = getSymbolKind(symbol, typeInfoResolver, node); var containerSymbol = symbol.parent; var containerName = containerSymbol ? typeInfoResolver.symbolToString(containerSymbol, node) : ""; - if (!tryAddConstructSignature(symbol, node, symbolKind, symbolName, containerName, result) && !tryAddCallSignature(symbol, node, symbolKind, symbolName, containerName, result)) { + if (!tryAddConstructSignature(symbol, node, symbolKind, symbolName, containerName, result) && + !tryAddCallSignature(symbol, node, symbolKind, symbolName, containerName, result)) { ts.forEach(declarations, function (declaration) { result.push(getDefinitionInfo(declaration, symbolKind, symbolName, containerName)); }); @@ -33710,11 +29153,12 @@ var ts; }; } function tryAddSignature(signatureDeclarations, selectConstructors, symbolKind, symbolName, containerName, result) { - var declarations = []; + var _declarations = []; var definition; ts.forEach(signatureDeclarations, function (d) { - if ((selectConstructors && d.kind === 133) || (!selectConstructors && (d.kind === 195 || d.kind === 132 || d.kind === 131))) { - declarations.push(d); + if ((selectConstructors && d.kind === 133) || + (!selectConstructors && (d.kind === 195 || d.kind === 132 || d.kind === 131))) { + _declarations.push(d); if (d.body) definition = d; } @@ -33723,8 +29167,8 @@ var ts; result.push(getDefinitionInfo(definition, symbolKind, symbolName, containerName)); return true; } - else if (declarations.length) { - result.push(getDefinitionInfo(declarations[declarations.length - 1], symbolKind, symbolName, containerName)); + else if (_declarations.length) { + result.push(getDefinitionInfo(_declarations[_declarations.length - 1], symbolKind, symbolName, containerName)); return true; } return false; @@ -33753,10 +29197,9 @@ var ts; if (!node) { return undefined; } - if (node.kind === 64 || node.kind === 92 || node.kind === 90 || isLiteralNameOfPropertyDeclarationOrIndexAccess(node) || isNameOfExternalModuleImportOrDeclaration(node)) { - return getReferencesForNode(node, [ - sourceFile - ], true, false, false); + if (node.kind === 64 || node.kind === 92 || node.kind === 90 || + isLiteralNameOfPropertyDeclarationOrIndexAccess(node) || isNameOfExternalModuleImportOrDeclaration(node)) { + return getReferencesForNode(node, [sourceFile], true, false, false); } switch (node.kind) { case 83: @@ -33804,7 +29247,9 @@ var ts; } break; case 81: - if (hasKind(node.parent, 181) || hasKind(node.parent, 182) || hasKind(node.parent, 183)) { + if (hasKind(node.parent, 181) || + hasKind(node.parent, 182) || + hasKind(node.parent, 183)) { return getLoopBreakContinueOccurrences(node.parent); } break; @@ -33825,7 +29270,8 @@ var ts; return getGetAndSetOccurrences(node.parent); } default: - if (ts.isModifier(node.kind) && node.parent && (ts.isDeclaration(node.parent) || node.parent.kind === 175)) { + if (ts.isModifier(node.kind) && node.parent && + (ts.isDeclaration(node.parent) || node.parent.kind === 175)) { return getModifierOccurrences(node.kind, node.parent); } } @@ -33838,8 +29284,8 @@ var ts; while (ifStatement) { var children = ifStatement.getChildren(); pushKeywordIf(keywords, children[0], 83); - for (var i = children.length - 1; i >= 0; i--) { - if (pushKeywordIf(keywords, children[i], 75)) { + for (var _i = children.length - 1; _i >= 0; _i--) { + if (pushKeywordIf(keywords, children[_i], 75)) { break; } } @@ -33849,10 +29295,10 @@ var ts; ifStatement = ifStatement.elseStatement; } var result = []; - for (var i = 0; i < keywords.length; i++) { - if (keywords[i].kind === 75 && i < keywords.length - 1) { - var elseKeyword = keywords[i]; - var ifKeyword = keywords[i + 1]; + for (var _i_1 = 0; _i_1 < keywords.length; _i_1++) { + if (keywords[_i_1].kind === 75 && _i_1 < keywords.length - 1) { + var elseKeyword = keywords[_i_1]; + var ifKeyword = keywords[_i_1 + 1]; var shouldHighlightNextKeyword = true; for (var j = ifKeyword.getStart() - 1; j >= elseKeyword.end; j--) { if (!ts.isWhiteSpace(sourceFile.text.charCodeAt(j))) { @@ -33866,11 +29312,11 @@ var ts; textSpan: ts.createTextSpanFromBounds(elseKeyword.getStart(), ifKeyword.end), isWriteAccess: false }); - i++; + _i_1++; continue; } } - result.push(getReferenceEntryFromNode(keywords[i])); + result.push(getReferenceEntryFromNode(keywords[_i_1])); } return result; } @@ -33933,17 +29379,17 @@ var ts; function getThrowStatementOwner(throwStatement) { var child = throwStatement; while (child.parent) { - var parent = child.parent; - if (ts.isFunctionBlock(parent) || parent.kind === 221) { - return parent; + var _parent = child.parent; + if (ts.isFunctionBlock(_parent) || _parent.kind === 221) { + return _parent; } - if (parent.kind === 191) { - var tryStatement = parent; + if (_parent.kind === 191) { + var tryStatement = _parent; if (tryStatement.tryBlock === child && tryStatement.catchClause) { return child; } } - child = parent; + child = _parent; } return undefined; } @@ -33964,8 +29410,8 @@ var ts; if (pushKeywordIf(keywords, loopNode.getFirstToken(), 81, 99, 74)) { if (loopNode.kind === 179) { var loopTokens = loopNode.getChildren(); - for (var i = loopTokens.length - 1; i >= 0; i--) { - if (pushKeywordIf(keywords, loopTokens[i], 99)) { + for (var _i = loopTokens.length - 1; _i >= 0; _i--) { + if (pushKeywordIf(keywords, loopTokens[_i], 99)) { break; } } @@ -34028,8 +29474,8 @@ var ts; return actualOwner && actualOwner === owner; } function getBreakOrContinueOwner(statement) { - for (var node = statement.parent; node; node = node.parent) { - switch (node.kind) { + for (var _node = statement.parent; _node; _node = _node.parent) { + switch (_node.kind) { case 188: if (statement.kind === 184) { continue; @@ -34039,12 +29485,12 @@ var ts; case 183: case 180: case 179: - if (!statement.label || isLabeledBy(node, statement.label.text)) { - return node; + if (!statement.label || isLabeledBy(_node, statement.label.text)) { + return _node; } break; default: - if (ts.isFunctionLike(node)) { + if (ts.isFunctionLike(_node)) { return undefined; } break; @@ -34070,16 +29516,15 @@ var ts; function tryPushAccessorKeyword(accessorSymbol, accessorKind) { var accessor = ts.getDeclarationOfKind(accessorSymbol, accessorKind); if (accessor) { - ts.forEach(accessor.getChildren(), function (child) { - return pushKeywordIf(keywords, child, 115, 119); - }); + ts.forEach(accessor.getChildren(), function (child) { return pushKeywordIf(keywords, child, 115, 119); }); } } } function getModifierOccurrences(modifier, declaration) { var container = declaration.parent; if (declaration.flags & 112) { - if (!(container.kind === 196 || (declaration.kind === 128 && hasKind(container, 133)))) { + if (!(container.kind === 196 || + (declaration.kind === 128 && hasKind(container, 133)))) { return undefined; } } @@ -34123,9 +29568,7 @@ var ts; } ts.forEach(nodes, function (node) { if (node.modifiers && node.flags & modifierFlag) { - ts.forEach(node.modifiers, function (child) { - return pushKeywordIf(keywords, child, modifier); - }); + ts.forEach(node.modifiers, function (child) { return pushKeywordIf(keywords, child, modifier); }); } }); return ts.map(keywords, getReferenceEntryFromNode); @@ -34179,7 +29622,9 @@ var ts; if (!node) { return undefined; } - if (node.kind !== 64 && !isLiteralNameOfPropertyDeclarationOrIndexAccess(node) && !isNameOfExternalModuleImportOrDeclaration(node)) { + if (node.kind !== 64 && + !isLiteralNameOfPropertyDeclarationOrIndexAccess(node) && + !isNameOfExternalModuleImportOrDeclaration(node)) { return undefined; } ts.Debug.assert(node.kind === 64 || node.kind === 7 || node.kind === 8); @@ -34189,9 +29634,7 @@ var ts; if (isLabelName(node)) { if (isJumpStatementTarget(node)) { var labelDefinition = getTargetLabel(node.parent, node.text); - return labelDefinition ? getLabelReferencesInNode(labelDefinition.parent, labelDefinition) : [ - getReferenceEntryFromNode(node) - ]; + return labelDefinition ? getLabelReferencesInNode(labelDefinition.parent, labelDefinition) : [getReferenceEntryFromNode(node)]; } else { return getLabelReferencesInNode(node.parent, node); @@ -34205,9 +29648,7 @@ var ts; } var symbol = typeInfoResolver.getSymbolAtLocation(node); if (!symbol) { - return [ - getReferenceEntryFromNode(node) - ]; + return [getReferenceEntryFromNode(node)]; } var declarations = symbol.declarations; if (!declarations || !declarations.length) { @@ -34241,7 +29682,9 @@ var ts; } return result; function isImportOrExportSpecifierName(location) { - return location.parent && (location.parent.kind === 208 || location.parent.kind === 212) && location.parent.propertyName === location; + return location.parent && + (location.parent.kind === 208 || location.parent.kind === 212) && + location.parent.propertyName === location; } function isImportOrExportSpecifierImportSymbol(symbol) { return (symbol.flags & 8388608) && ts.forEach(symbol.declarations, function (declaration) { @@ -34249,46 +29692,38 @@ var ts; }); } function getDeclaredName(symbol, location) { - var functionExpression = ts.forEach(symbol.declarations, function (d) { - return d.kind === 160 ? d : undefined; - }); + var functionExpression = ts.forEach(symbol.declarations, function (d) { return d.kind === 160 ? d : undefined; }); + var _name; if (functionExpression && functionExpression.name) { - var name = functionExpression.name.text; + _name = functionExpression.name.text; } if (isImportOrExportSpecifierName(location)) { return location.getText(); } - var name = typeInfoResolver.symbolToString(symbol); - return stripQuotes(name); + _name = typeInfoResolver.symbolToString(symbol); + return stripQuotes(_name); } function getInternedName(symbol, location, declarations) { if (isImportOrExportSpecifierName(location)) { return location.getText(); } - var functionExpression = ts.forEach(declarations, function (d) { - return d.kind === 160 ? d : undefined; - }); - if (functionExpression && functionExpression.name) { - var name = functionExpression.name.text; - } - else { - var name = symbol.name; - } - return stripQuotes(name); + var functionExpression = ts.forEach(declarations, function (d) { return d.kind === 160 ? d : undefined; }); + var _name = functionExpression && functionExpression.name + ? functionExpression.name.text + : symbol.name; + return stripQuotes(_name); } function stripQuotes(name) { - var length = name.length; - if (length >= 2 && name.charCodeAt(0) === 34 && name.charCodeAt(length - 1) === 34) { - return name.substring(1, length - 1); + var _length = name.length; + if (_length >= 2 && name.charCodeAt(0) === 34 && name.charCodeAt(_length - 1) === 34) { + return name.substring(1, _length - 1); } ; return name; } function getSymbolScope(symbol) { if (symbol.flags & (4 | 8192)) { - var privateDeclaration = ts.forEach(symbol.getDeclarations(), function (d) { - return (d.flags & 32) ? d : undefined; - }); + var privateDeclaration = ts.forEach(symbol.getDeclarations(), function (d) { return (d.flags & 32) ? d : undefined; }); if (privateDeclaration) { return ts.getAncestor(privateDeclaration, 196); } @@ -34299,24 +29734,25 @@ var ts; if (symbol.parent || (symbol.flags & 268435456)) { return undefined; } - var scope = undefined; - var declarations = symbol.getDeclarations(); - if (declarations) { - for (var i = 0, n = declarations.length; i < n; i++) { - var container = getContainerNode(declarations[i]); + var _scope = undefined; + var _declarations = symbol.getDeclarations(); + if (_declarations) { + for (var _i = 0, _n = _declarations.length; _i < _n; _i++) { + var declaration = _declarations[_i]; + var container = getContainerNode(declaration); if (!container) { return undefined; } - if (scope && scope !== container) { + if (_scope && _scope !== container) { return undefined; } if (container.kind === 221 && !ts.isExternalModule(container)) { return undefined; } - scope = container; + _scope = container; } } - return scope; + return _scope; } function getPossibleSymbolReferencePositions(sourceFile, symbolName, start, end) { var positions = []; @@ -34332,7 +29768,8 @@ var ts; if (position > end) break; var endPosition = position + symbolNameLength; - if ((position === 0 || !ts.isIdentifierPart(text.charCodeAt(position - 1), 2)) && (endPosition === sourceLength || !ts.isIdentifierPart(text.charCodeAt(endPosition), 2))) { + if ((position === 0 || !ts.isIdentifierPart(text.charCodeAt(position - 1), 2)) && + (endPosition === sourceLength || !ts.isIdentifierPart(text.charCodeAt(endPosition), 2))) { positions.push(position); } position = text.indexOf(symbolName, position + symbolNameLength + 1); @@ -34340,21 +29777,22 @@ var ts; return positions; } function getLabelReferencesInNode(container, targetLabel) { - var result = []; + var _result = []; var sourceFile = container.getSourceFile(); var labelName = targetLabel.text; var possiblePositions = getPossibleSymbolReferencePositions(sourceFile, labelName, container.getStart(), container.getEnd()); ts.forEach(possiblePositions, function (position) { cancellationToken.throwIfCancellationRequested(); - var node = ts.getTouchingWord(sourceFile, position); - if (!node || node.getWidth() !== labelName.length) { + var _node = ts.getTouchingWord(sourceFile, position); + if (!_node || _node.getWidth() !== labelName.length) { return; } - if (node === targetLabel || (isJumpStatementTarget(node) && getTargetLabel(node, labelName) === targetLabel)) { - result.push(getReferenceEntryFromNode(node)); + if (_node === targetLabel || + (isJumpStatementTarget(_node) && getTargetLabel(_node, labelName) === targetLabel)) { + _result.push(getReferenceEntryFromNode(_node)); } }); - return result; + return _result; } function isValidReferencePosition(node, searchSymbolName) { if (node) { @@ -34362,7 +29800,8 @@ var ts; case 64: return node.getWidth() === searchSymbolName.length; case 8: - if (isLiteralNameOfPropertyDeclarationOrIndexAccess(node) || isNameOfExternalModuleImportOrDeclaration(node)) { + if (isLiteralNameOfPropertyDeclarationOrIndexAccess(node) || + isNameOfExternalModuleImportOrDeclaration(node)) { return node.getWidth() === searchSymbolName.length + 2; } break; @@ -34385,7 +29824,8 @@ var ts; cancellationToken.throwIfCancellationRequested(); var referenceLocation = ts.getTouchingPropertyName(sourceFile, position); if (!isValidReferencePosition(referenceLocation, searchText)) { - if ((findInStrings && isInString(position)) || (findInComments && isInComment(position))) { + if ((findInStrings && isInString(position)) || + (findInComments && isInComment(position))) { result.push({ fileName: sourceFile.fileName, textSpan: ts.createTextSpan(position, searchText.length), @@ -34450,21 +29890,21 @@ var ts; default: return undefined; } - var result = []; + var _result = []; var sourceFile = searchSpaceNode.getSourceFile(); var possiblePositions = getPossibleSymbolReferencePositions(sourceFile, "super", searchSpaceNode.getStart(), searchSpaceNode.getEnd()); ts.forEach(possiblePositions, function (position) { cancellationToken.throwIfCancellationRequested(); - var node = ts.getTouchingWord(sourceFile, position); - if (!node || node.kind !== 90) { + var _node = ts.getTouchingWord(sourceFile, position); + if (!_node || _node.kind !== 90) { return; } - var container = ts.getSuperContainer(node, false); + var container = ts.getSuperContainer(_node, false); if (container && (128 & container.flags) === staticFlag && container.parent.symbol === searchSpaceNode.symbol) { - result.push(getReferenceEntryFromNode(node)); + _result.push(getReferenceEntryFromNode(_node)); } }); - return result; + return _result; } function getReferencesForThisKeyword(thisOrSuperKeyword, sourceFiles) { var searchSpaceNode = ts.getThisContainer(thisOrSuperKeyword, false); @@ -34493,48 +29933,49 @@ var ts; default: return undefined; } - var result = []; + var _result = []; + var possiblePositions; if (searchSpaceNode.kind === 221) { ts.forEach(sourceFiles, function (sourceFile) { - var possiblePositions = getPossibleSymbolReferencePositions(sourceFile, "this", sourceFile.getStart(), sourceFile.getEnd()); - getThisReferencesInFile(sourceFile, sourceFile, possiblePositions, result); + possiblePositions = getPossibleSymbolReferencePositions(sourceFile, "this", sourceFile.getStart(), sourceFile.getEnd()); + getThisReferencesInFile(sourceFile, sourceFile, possiblePositions, _result); }); } else { var sourceFile = searchSpaceNode.getSourceFile(); - var possiblePositions = getPossibleSymbolReferencePositions(sourceFile, "this", searchSpaceNode.getStart(), searchSpaceNode.getEnd()); - getThisReferencesInFile(sourceFile, searchSpaceNode, possiblePositions, result); + possiblePositions = getPossibleSymbolReferencePositions(sourceFile, "this", searchSpaceNode.getStart(), searchSpaceNode.getEnd()); + getThisReferencesInFile(sourceFile, searchSpaceNode, possiblePositions, _result); } - return result; + return _result; function getThisReferencesInFile(sourceFile, searchSpaceNode, possiblePositions, result) { ts.forEach(possiblePositions, function (position) { cancellationToken.throwIfCancellationRequested(); - var node = ts.getTouchingWord(sourceFile, position); - if (!node || node.kind !== 92) { + var _node = ts.getTouchingWord(sourceFile, position); + if (!_node || _node.kind !== 92) { return; } - var container = ts.getThisContainer(node, false); + var container = ts.getThisContainer(_node, false); switch (searchSpaceNode.kind) { case 160: case 195: if (searchSpaceNode.symbol === container.symbol) { - result.push(getReferenceEntryFromNode(node)); + result.push(getReferenceEntryFromNode(_node)); } break; case 132: case 131: if (ts.isObjectLiteralMethod(searchSpaceNode) && searchSpaceNode.symbol === container.symbol) { - result.push(getReferenceEntryFromNode(node)); + result.push(getReferenceEntryFromNode(_node)); } break; case 196: if (container.parent && searchSpaceNode.symbol === container.parent.symbol && (container.flags & 128) === staticFlag) { - result.push(getReferenceEntryFromNode(node)); + result.push(getReferenceEntryFromNode(_node)); } break; case 221: if (container.kind === 221 && !ts.isExternalModule(container)) { - result.push(getReferenceEntryFromNode(node)); + result.push(getReferenceEntryFromNode(_node)); } break; } @@ -34542,30 +29983,28 @@ var ts; } } function populateSearchSymbolSet(symbol, location) { - var result = [ - symbol - ]; + var _result = [symbol]; if (isImportOrExportSpecifierImportSymbol(symbol)) { - result.push(typeInfoResolver.getAliasedSymbol(symbol)); + _result.push(typeInfoResolver.getAliasedSymbol(symbol)); } if (isNameOfPropertyAssignment(location)) { ts.forEach(getPropertySymbolsFromContextualType(location), function (contextualSymbol) { - result.push.apply(result, typeInfoResolver.getRootSymbols(contextualSymbol)); + _result.push.apply(_result, typeInfoResolver.getRootSymbols(contextualSymbol)); }); var shorthandValueSymbol = typeInfoResolver.getShorthandAssignmentValueSymbol(location.parent); if (shorthandValueSymbol) { - result.push(shorthandValueSymbol); + _result.push(shorthandValueSymbol); } } ts.forEach(typeInfoResolver.getRootSymbols(symbol), function (rootSymbol) { if (rootSymbol !== symbol) { - result.push(rootSymbol); + _result.push(rootSymbol); } if (rootSymbol.parent && rootSymbol.parent.flags & (32 | 64)) { - getPropertySymbolsFromBaseTypes(rootSymbol.parent, rootSymbol.getName(), result); + getPropertySymbolsFromBaseTypes(rootSymbol.parent, rootSymbol.getName(), _result); } }); - return result; + return _result; } function getPropertySymbolsFromBaseTypes(symbol, propertyName, result) { if (symbol && symbol.flags & (32 | 64)) { @@ -34597,14 +30036,13 @@ var ts; if (searchSymbols.indexOf(referenceSymbol) >= 0) { return true; } - if (isImportOrExportSpecifierImportSymbol(referenceSymbol) && searchSymbols.indexOf(typeInfoResolver.getAliasedSymbol(referenceSymbol)) >= 0) { + if (isImportOrExportSpecifierImportSymbol(referenceSymbol) && + searchSymbols.indexOf(typeInfoResolver.getAliasedSymbol(referenceSymbol)) >= 0) { return true; } if (isNameOfPropertyAssignment(referenceLocation)) { return ts.forEach(getPropertySymbolsFromContextualType(referenceLocation), function (contextualSymbol) { - return ts.forEach(typeInfoResolver.getRootSymbols(contextualSymbol), function (s) { - return searchSymbols.indexOf(s) >= 0; - }); + return ts.forEach(typeInfoResolver.getRootSymbols(contextualSymbol), function (s) { return searchSymbols.indexOf(s) >= 0; }); }); } return ts.forEach(typeInfoResolver.getRootSymbols(referenceSymbol), function (rootSymbol) { @@ -34612,11 +30050,9 @@ var ts; return true; } if (rootSymbol.parent && rootSymbol.parent.flags & (32 | 64)) { - var result = []; - getPropertySymbolsFromBaseTypes(rootSymbol.parent, rootSymbol.getName(), result); - return ts.forEach(result, function (s) { - return searchSymbols.indexOf(s) >= 0; - }); + var _result = []; + getPropertySymbolsFromBaseTypes(rootSymbol.parent, rootSymbol.getName(), _result); + return ts.forEach(_result, function (s) { return searchSymbols.indexOf(s) >= 0; }); } return false; }); @@ -34625,32 +30061,28 @@ var ts; if (isNameOfPropertyAssignment(node)) { var objectLiteral = node.parent.parent; var contextualType = typeInfoResolver.getContextualType(objectLiteral); - var name = node.text; + var _name = node.text; if (contextualType) { if (contextualType.flags & 16384) { - var unionProperty = contextualType.getProperty(name); + var unionProperty = contextualType.getProperty(_name); if (unionProperty) { - return [ - unionProperty - ]; + return [unionProperty]; } else { - var result = []; + var _result = []; ts.forEach(contextualType.types, function (t) { - var symbol = t.getProperty(name); - if (symbol) { - result.push(symbol); + var _symbol = t.getProperty(_name); + if (_symbol) { + _result.push(_symbol); } }); - return result; + return _result; } } else { - var symbol = contextualType.getProperty(name); - if (symbol) { - return [ - symbol - ]; + var _symbol = contextualType.getProperty(_name); + if (_symbol) { + return [_symbol]; } } } @@ -34659,10 +30091,12 @@ var ts; } function getIntersectingMeaningFromDeclarations(meaning, declarations) { if (declarations) { + var lastIterationMeaning; do { - var lastIterationMeaning = meaning; - for (var i = 0, n = declarations.length; i < n; i++) { - var declarationMeaning = getMeaningFromDeclaration(declarations[i]); + lastIterationMeaning = meaning; + for (var _i = 0, _n = declarations.length; _i < _n; _i++) { + var declaration = declarations[_i]; + var declarationMeaning = getMeaningFromDeclaration(declaration); if (declarationMeaning & meaning) { meaning |= declarationMeaning; } @@ -34689,13 +30123,13 @@ var ts; if (node.kind === 64 && ts.isDeclarationName(node)) { return true; } - var parent = node.parent; - if (parent) { - if (parent.kind === 166 || parent.kind === 165) { + var _parent = node.parent; + if (_parent) { + if (_parent.kind === 166 || _parent.kind === 165) { return true; } - else if (parent.kind === 167 && parent.left === node) { - var operator = parent.operatorToken.kind; + else if (_parent.kind === 167 && _parent.left === node) { + var operator = _parent.operatorToken.kind; return 52 <= operator && operator <= 63; } } @@ -34706,9 +30140,7 @@ var ts; return ts.NavigateTo.getNavigateToItems(program, cancellationToken, searchValue, maxResultCount); } function containErrors(diagnostics) { - return ts.forEach(diagnostics, function (diagnostic) { - return diagnostic.category === 1; - }); + return ts.forEach(diagnostics, function (diagnostic) { return diagnostic.category === 1; }); } function getEmitOutput(fileName) { synchronizeHostData(); @@ -34802,7 +30234,9 @@ var ts; } function getMeaningFromRightHandSideOfImportEquals(node) { ts.Debug.assert(node.kind === 64); - if (node.parent.kind === 125 && node.parent.right === node && node.parent.parent.kind === 203) { + if (node.parent.kind === 125 && + node.parent.right === node && + node.parent.parent.kind === 203) { return 1 | 2 | 4; } return 4; @@ -34861,7 +30295,8 @@ var ts; nodeForStartPos = nodeForStartPos.parent; } else if (isNameOfModuleDeclaration(nodeForStartPos)) { - if (nodeForStartPos.parent.parent.kind === 200 && nodeForStartPos.parent.parent.body === nodeForStartPos.parent) { + if (nodeForStartPos.parent.parent.kind === 200 && + nodeForStartPos.parent.parent.body === nodeForStartPos.parent) { nodeForStartPos = nodeForStartPos.parent.parent.name; } else { @@ -34908,7 +30343,8 @@ var ts; } } else if (flags & 1536) { - if (meaningAtPosition & 4 || (meaningAtPosition & 1 && hasValueSideModule(symbol))) { + if (meaningAtPosition & 4 || + (meaningAtPosition & 1 && hasValueSideModule(symbol))) { return ClassificationTypeNames.moduleName; } } @@ -35033,11 +30469,16 @@ var ts; if (ts.isPunctuation(tokenKind)) { if (token) { if (tokenKind === 52) { - if (token.parent.kind === 193 || token.parent.kind === 130 || token.parent.kind === 128) { + if (token.parent.kind === 193 || + token.parent.kind === 130 || + token.parent.kind === 128) { return ClassificationTypeNames.operator; } } - if (token.parent.kind === 167 || token.parent.kind === 165 || token.parent.kind === 166 || token.parent.kind === 168) { + if (token.parent.kind === 167 || + token.parent.kind === 165 || + token.parent.kind === 166 || + token.parent.kind === 168) { return ClassificationTypeNames.operator; } } @@ -35091,8 +30532,8 @@ var ts; function processElement(element) { if (ts.textSpanIntersectsWith(span, element.getFullStart(), element.getFullWidth())) { var children = element.getChildren(); - for (var i = 0, n = children.length; i < n; i++) { - var child = children[i]; + for (var _i = 0, _n = children.length; _i < _n; _i++) { + var child = children[_i]; if (ts.isToken(child)) { classifyToken(child); } @@ -35116,8 +30557,8 @@ var ts; if (matchKind) { var parentElement = token.parent; var childNodes = parentElement.getChildren(sourceFile); - for (var i = 0, n = childNodes.length; i < n; i++) { - var current = childNodes[i]; + for (var _i = 0, _n = childNodes.length; _i < _n; _i++) { + var current = childNodes[_i]; if (current.kind === matchKind) { var range1 = ts.createTextSpan(token.getStart(sourceFile), token.getWidth(sourceFile)); var range2 = ts.createTextSpan(current.getStart(sourceFile), current.getWidth(sourceFile)); @@ -35135,22 +30576,14 @@ var ts; return result; function getMatchingTokenKind(token) { switch (token.kind) { - case 14: - return 15; - case 16: - return 17; - case 18: - return 19; - case 24: - return 25; - case 15: - return 14; - case 17: - return 16; - case 19: - return 18; - case 25: - return 24; + case 14: return 15; + case 16: return 17; + case 18: return 19; + case 24: return 25; + case 15: return 14; + case 17: return 16; + case 19: return 18; + case 25: return 24; } return undefined; } @@ -35159,7 +30592,7 @@ var ts; var start = new Date().getTime(); var sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName); log("getIndentationAtPosition: getCurrentSourceFile: " + (new Date().getTime() - start)); - var start = new Date().getTime(); + start = new Date().getTime(); var result = ts.formatting.SmartIndenter.getIndentation(position, sourceFile, editorOptions); log("getIndentationAtPosition: computeIndentation : " + (new Date().getTime() - start)); return result; @@ -35205,9 +30638,9 @@ var ts; continue; } var descriptor = undefined; - for (var i = 0, n = descriptors.length; i < n; i++) { - if (matchArray[i + firstDescriptorCaptureIndex]) { - descriptor = descriptors[i]; + for (var _i = 0, n = descriptors.length; _i < n; _i++) { + if (matchArray[_i + firstDescriptorCaptureIndex]) { + descriptor = descriptors[_i]; } } ts.Debug.assert(descriptor !== undefined); @@ -35230,18 +30663,18 @@ var ts; var singleLineCommentStart = /(?:\/\/+\s*)/.source; var multiLineCommentStart = /(?:\/\*+\s*)/.source; var anyNumberOfSpacesAndAsterixesAtStartOfLine = /(?:^(?:\s|\*)*)/.source; - var preamble = "(" + anyNumberOfSpacesAndAsterixesAtStartOfLine + "|" + singleLineCommentStart + "|" + multiLineCommentStart + ")"; - var literals = "(?:" + ts.map(descriptors, function (d) { - return "(" + escapeRegExp(d.text) + ")"; - }).join("|") + ")"; + var _preamble = "(" + anyNumberOfSpacesAndAsterixesAtStartOfLine + "|" + singleLineCommentStart + "|" + multiLineCommentStart + ")"; + var literals = "(?:" + ts.map(descriptors, function (d) { return "(" + escapeRegExp(d.text) + ")"; }).join("|") + ")"; var endOfLineOrEndOfComment = /(?:$|\*\/)/.source; var messageRemainder = /(?:.*?)/.source; var messagePortion = "(" + literals + messageRemainder + ")"; - var regExpString = preamble + messagePortion + endOfLineOrEndOfComment; + var regExpString = _preamble + messagePortion + endOfLineOrEndOfComment; return new RegExp(regExpString, "gim"); } function isLetterOrDigit(char) { - return (char >= 97 && char <= 122) || (char >= 65 && char <= 90) || (char >= 48 && char <= 57); + return (char >= 97 && char <= 122) || + (char >= 65 && char <= 90) || + (char >= 48 && char <= 57); } } function getRenameInfo(fileName, position) { @@ -35255,9 +30688,10 @@ var ts; if (declarations && declarations.length > 0) { var defaultLibFileName = host.getDefaultLibFileName(host.getCompilationSettings()); if (defaultLibFileName) { - for (var i = 0; i < declarations.length; i++) { - var sourceFile = declarations[i].getSourceFile(); - if (sourceFile && getCanonicalFileName(ts.normalizePath(sourceFile.fileName)) === getCanonicalFileName(ts.normalizePath(defaultLibFileName))) { + for (var _i = 0, _n = declarations.length; _i < _n; _i++) { + var current = declarations[_i]; + var _sourceFile = current.getSourceFile(); + if (_sourceFile && getCanonicalFileName(ts.normalizePath(_sourceFile.fileName)) === getCanonicalFileName(ts.normalizePath(defaultLibFileName))) { return getRenameInfoError(ts.getLocaleSpecificMessage(ts.Diagnostics.You_cannot_rename_elements_that_are_defined_in_the_standard_TypeScript_library.key)); } } @@ -35342,7 +30776,9 @@ var ts; break; case 8: case 7: - if (ts.isDeclarationName(node) || node.parent.kind === 213 || isArgumentOfElementAccessExpression(node)) { + if (ts.isDeclarationName(node) || + node.parent.kind === 213 || + isArgumentOfElementAccessExpression(node)) { nameTable[node.text] = node.text; } break; @@ -35352,10 +30788,13 @@ var ts; } } function isArgumentOfElementAccessExpression(node) { - return node && node.parent && node.parent.kind === 154 && node.parent.argumentExpression === node; + return node && + node.parent && + node.parent.kind === 154 && + node.parent.argumentExpression === node; } function createClassifier() { - var scanner = ts.createScanner(2, false); + var _scanner = ts.createScanner(2, false); var noRegexTable = []; noRegexTable[64] = true; noRegexTable[8] = true; @@ -35381,7 +30820,10 @@ var ts; } function canFollow(keyword1, keyword2) { if (isAccessibilityModifier(keyword1)) { - if (keyword2 === 115 || keyword2 === 119 || keyword2 === 113 || keyword2 === 109) { + if (keyword2 === 115 || + keyword2 === 119 || + keyword2 === 113 || + keyword2 === 109) { return true; } return false; @@ -35419,17 +30861,17 @@ var ts; templateStack.push(11); break; } - scanner.setText(text); + _scanner.setText(text); var result = { finalLexState: 0, entries: [] }; var angleBracketStack = 0; do { - token = scanner.scan(); + token = _scanner.scan(); if (!ts.isTrivia(token)) { if ((token === 36 || token === 56) && !noRegexTable[lastNonTriviaToken]) { - if (scanner.reScanSlashToken() === 9) { + if (_scanner.reScanSlashToken() === 9) { token = 9; } } @@ -35439,13 +30881,18 @@ var ts; else if (isKeyword(lastNonTriviaToken) && isKeyword(token) && !canFollow(lastNonTriviaToken, token)) { token = 64; } - else if (lastNonTriviaToken === 64 && token === 24) { + else if (lastNonTriviaToken === 64 && + token === 24) { angleBracketStack++; } else if (token === 25 && angleBracketStack > 0) { angleBracketStack--; } - else if (token === 111 || token === 120 || token === 118 || token === 112 || token === 121) { + else if (token === 111 || + token === 120 || + token === 118 || + token === 112 || + token === 121) { if (angleBracketStack > 0 && !syntacticClassifierAbsent) { token = 64; } @@ -35462,7 +30909,7 @@ var ts; if (templateStack.length > 0) { var lastTemplateStackToken = ts.lastOrUndefined(templateStack); if (lastTemplateStackToken === 11) { - token = scanner.reScanTemplateToken(); + token = _scanner.reScanTemplateToken(); if (token === 13) { templateStack.pop(); } @@ -35482,13 +30929,13 @@ var ts; } while (token !== 1); return result; function processToken() { - var start = scanner.getTokenPos(); - var end = scanner.getTextPos(); + var start = _scanner.getTokenPos(); + var end = _scanner.getTextPos(); addResult(end - start, classFromKind(token)); if (end >= text.length) { if (token === 8) { - var tokenText = scanner.getTokenText(); - if (scanner.isUnterminated()) { + var tokenText = _scanner.getTokenText(); + if (_scanner.isUnterminated()) { var lastCharIndex = tokenText.length - 1; var numBackslashes = 0; while (tokenText.charCodeAt(lastCharIndex - numBackslashes) === 92) { @@ -35496,17 +30943,19 @@ var ts; } if (numBackslashes & 1) { var quoteChar = tokenText.charCodeAt(0); - result.finalLexState = quoteChar === 34 ? 3 : 2; + result.finalLexState = quoteChar === 34 + ? 3 + : 2; } } } else if (token === 3) { - if (scanner.isUnterminated()) { + if (_scanner.isUnterminated()) { result.finalLexState = 1; } } else if (ts.isTemplateLiteralKind(token)) { - if (scanner.isUnterminated()) { + if (_scanner.isUnterminated()) { if (token === 13) { result.finalLexState = 5; } @@ -35528,10 +30977,7 @@ var ts; if (result.entries.length === 0) { length -= offset; } - result.entries.push({ - length: length, - classification: classification - }); + result.entries.push({ length: length, classification: classification }); } } } @@ -35626,9 +31072,7 @@ var ts; return 5; } } - return { - getClassificationsForLine: getClassificationsForLine - }; + return { getClassificationsForLine: getClassificationsForLine }; } ts.createClassifier = createClassifier; function getDefaultLibFilePath(options) { @@ -35652,15 +31096,9 @@ var ts; Node.prototype = proto; return Node; }, - getSymbolConstructor: function () { - return SymbolObject; - }, - getTypeConstructor: function () { - return TypeObject; - }, - getSignatureConstructor: function () { - return SignatureObject; - } + getSymbolConstructor: function () { return SymbolObject; }, + getTypeConstructor: function () { return TypeObject; }, + getSignatureConstructor: function () { return SignatureObject; } }; } initializeServices(); @@ -35741,9 +31179,7 @@ var ts; return this.compilationSettings; }; LSHost.prototype.getScriptFileNames = function () { - return this.roots.map(function (root) { - return root.fileName; - }); + return this.roots.map(function (root) { return root.fileName; }); }; LSHost.prototype.getScriptVersion = function (filename) { return this.getScriptInfo(filename).svc.latestVersion().toString(); @@ -35836,10 +31272,7 @@ var ts; var script = this.filenameToScript[filename]; var index = script.snap().index; var lineCol = index.charOffsetToLineNumberAndPos(position); - return { - line: lineCol.line, - col: lineCol.col + 1 - }; + return { line: lineCol.line, col: lineCol.col + 1 }; }; return LSHost; })(); @@ -35917,9 +31350,7 @@ var ts; }; Project.prototype.filesToString = function () { var strBuilder = ""; - ts.forEachValue(this.filenameToSourceFile, function (sourceFile) { - strBuilder += sourceFile.fileName + "\n"; - }); + ts.forEachValue(this.filenameToSourceFile, function (sourceFile) { strBuilder += sourceFile.fileName + "\n"; }); return strBuilder; }; Project.prototype.setProjectOptions = function (projectOptions) { @@ -36016,7 +31447,8 @@ var ts; for (var i = 0, len = this.openFileRoots.length; i < len; i++) { var r = this.openFileRoots[i]; if (info.defaultProject.getSourceFile(r)) { - this.inferredProjects = copyListRemovingItem(r.defaultProject, this.inferredProjects); + this.inferredProjects = + copyListRemovingItem(r.defaultProject, this.inferredProjects); this.openFilesReferenced.push(r); r.defaultProject = info.defaultProject; } @@ -36138,9 +31570,7 @@ var ts; info = new ScriptInfo(this.host, fileName, content, openedByClient); this.filenameToScriptInfo[fileName] = info; if (!info.isOpen) { - info.fileWatcher = this.host.watchFile(fileName, function (_) { - _this.watchedFileChanged(fileName); - }); + info.fileWatcher = this.host.watchFile(fileName, function (_) { _this.watchedFileChanged(fileName); }); } } } @@ -36222,16 +31652,12 @@ var ts; var dirPath = ts.getDirectoryPath(configFilename); var rawConfig = ts.readConfigFile(configFilename); if (!rawConfig) { - return { - errorMsg: "tsconfig syntax error" - }; + return { errorMsg: "tsconfig syntax error" }; } else { var parsedCommandLine = ts.parseConfigFile(rawConfig); if (parsedCommandLine.errors) { - return { - errorMsg: "tsconfig option errors" - }; + return { errorMsg: "tsconfig option errors" }; } else if (parsedCommandLine.fileNames) { var proj = this.createProject(configFilename); @@ -36244,9 +31670,7 @@ var ts; proj.addRoot(info); } else { - return { - errorMsg: "specified file " + rootFilename + " not found" - }; + return { errorMsg: "specified file " + rootFilename + " not found" }; } } var projectOptions = { @@ -36257,15 +31681,10 @@ var ts; projectOptions.formatCodeOptions = rawConfig.formatCodeOptions; } proj.setProjectOptions(projectOptions); - return { - success: true, - project: proj - }; + return { success: true, project: proj }; } else { - return { - errorMsg: "no files found" - }; + return { errorMsg: "no files found" }; } } }; @@ -36342,12 +31761,8 @@ var ts; this.trailingText = ""; this.suppressTrailingText = false; this.lineIndex.root = new LineNode(); - this.startPath = [ - this.lineIndex.root - ]; - this.stack = [ - this.lineIndex.root - ]; + this.startPath = [this.lineIndex.root]; + this.stack = [this.lineIndex.root]; } EditWalker.prototype.insertLines = function (insertedText) { if (this.suppressTrailingText) { @@ -36539,7 +31954,9 @@ var ts; } ScriptVersionCache.prototype.edit = function (pos, deleteLen, insertedText) { this.changes[this.changes.length] = new TextChange(pos, deleteLen, insertedText); - if ((this.changes.length > ScriptVersionCache.changeNumberThreshold) || (deleteLen > ScriptVersionCache.changeLengthThreshold) || (insertedText && (insertedText.length > ScriptVersionCache.changeLengthThreshold))) { + if ((this.changes.length > ScriptVersionCache.changeNumberThreshold) || + (deleteLen > ScriptVersionCache.changeLengthThreshold) || + (insertedText && (insertedText.length > ScriptVersionCache.changeLengthThreshold))) { this.getSnapshot(); } }; @@ -36644,9 +32061,7 @@ var ts; return this.index.root.charCount(); }; LineIndexSnapshot.prototype.getLineStartPositions = function () { - var starts = [ - -1 - ]; + var starts = [-1]; var count = 1; var pos = 0; this.index.every(function (ll, s, len) { @@ -36825,10 +32240,7 @@ var ts; LineIndex.linesFromText = function (text) { var lineStarts = ts.computeLineStarts(text); if (lineStarts.length == 0) { - return { - lines: [], - lineMap: lineStarts - }; + return { lines: [], lineMap: lineStarts }; } var lines = new Array(lineStarts.length); var lc = lineStarts.length - 1; @@ -36842,10 +32254,7 @@ var ts; else { lines.length--; } - return { - lines: lines, - lineMap: lineStarts - }; + return { lines: lines, lineMap: lineStarts }; }; return LineIndex; })(); @@ -36959,10 +32368,7 @@ var ts; } else { var lineInfo = this.lineNumberToInfo(this.lineCount(), 0); - return { - line: this.lineCount(), - col: lineInfo.leaf.charCount() - }; + return { line: this.lineCount(), col: lineInfo.leaf.charCount() }; } }; LineNode.prototype.lineNumberToInfo = function (lineNumber, charOffset) { @@ -37149,12 +32555,7 @@ var ts; (function (ts) { var server; (function (server) { - var spaceCache = [ - " ", - " ", - " ", - " " - ]; + var spaceCache = [" ", " ", " ", " "]; function generateSpaces(n) { if (!spaceCache[n]) { var strBuilder = ""; @@ -37240,22 +32641,16 @@ var ts; this.fileHash = {}; this.nextFileId = 1; this.changeSeq = 0; - this.projectService = new server.ProjectService(host, logger, function (eventName, project, fileName) { - _this.handleEvent(eventName, project, fileName); - }); + this.projectService = + new server.ProjectService(host, logger, function (eventName, project, fileName) { + _this.handleEvent(eventName, project, fileName); + }); } Session.prototype.handleEvent = function (eventName, project, fileName) { var _this = this; if (eventName == "context") { this.projectService.log("got context event, updating diagnostics for" + fileName, "Info"); - this.updateErrorCheck([ - { - fileName: fileName, - project: project - } - ], this.changeSeq, function (n) { - return n == _this.changeSeq; - }, 100); + this.updateErrorCheck([{ fileName: fileName, project: project }], this.changeSeq, function (n) { return n == _this.changeSeq; }, 100); } }; Session.prototype.logError = function (err, cmd) { @@ -37277,7 +32672,8 @@ var ts; if (this.logger.isVerbose()) { this.logger.info(msg.type + ": " + json); } - this.sendLineToClient('Content-Length: ' + (1 + Buffer.byteLength(json, 'utf8')) + '\r\n\r\n' + json); + this.sendLineToClient('Content-Length: ' + (1 + Buffer.byteLength(json, 'utf8')) + + '\r\n\r\n' + json); }; Session.prototype.event = function (info, eventName) { var ev = { @@ -37313,13 +32709,8 @@ var ts; try { var diags = project.compilerService.languageService.getSemanticDiagnostics(file); if (diags) { - var bakedDiags = diags.map(function (diag) { - return formatDiag(file, project, diag); - }); - this.event({ - file: file, - diagnostics: bakedDiags - }, "semanticDiag"); + var bakedDiags = diags.map(function (diag) { return formatDiag(file, project, diag); }); + this.event({ file: file, diagnostics: bakedDiags }, "semanticDiag"); } } catch (err) { @@ -37330,13 +32721,8 @@ var ts; try { var diags = project.compilerService.languageService.getSyntacticDiagnostics(file); if (diags) { - var bakedDiags = diags.map(function (diag) { - return formatDiag(file, project, diag); - }); - this.event({ - file: file, - diagnostics: bakedDiags - }, "syntaxDiag"); + var bakedDiags = diags.map(function (diag) { return formatDiag(file, project, diag); }); + this.event({ file: file, diagnostics: bakedDiags }, "syntaxDiag"); } } catch (err) { @@ -37405,13 +32791,11 @@ var ts; if (!definitions) { return undefined; } - return definitions.map(function (def) { - return ({ - file: def.fileName, - start: compilerService.host.positionToLineCol(def.fileName, def.textSpan.start), - end: compilerService.host.positionToLineCol(def.fileName, ts.textSpanEnd(def.textSpan)) - }); - }); + return definitions.map(function (def) { return ({ + file: def.fileName, + start: compilerService.host.positionToLineCol(def.fileName, def.textSpan.start), + end: compilerService.host.positionToLineCol(def.fileName, ts.textSpanEnd(def.textSpan)) + }); }); }; Session.prototype.getRenameLocations = function (line, col, fileName, findInComments, findInStrings) { var file = ts.normalizePath(fileName); @@ -37435,13 +32819,11 @@ var ts; if (!renameLocations) { return undefined; } - var bakedRenameLocs = renameLocations.map(function (location) { - return ({ - file: location.fileName, - start: compilerService.host.positionToLineCol(location.fileName, location.textSpan.start), - end: compilerService.host.positionToLineCol(location.fileName, ts.textSpanEnd(location.textSpan)) - }); - }).sort(function (a, b) { + var bakedRenameLocs = renameLocations.map(function (location) { return ({ + file: location.fileName, + start: compilerService.host.positionToLineCol(location.fileName, location.textSpan.start), + end: compilerService.host.positionToLineCol(location.fileName, ts.textSpanEnd(location.textSpan)) + }); }).sort(function (a, b) { if (a.file < b.file) { return -1; } @@ -37468,22 +32850,13 @@ var ts; } } if (!curFileAccum) { - curFileAccum = { - file: cur.file, - locs: [] - }; + curFileAccum = { file: cur.file, locs: [] }; accum.push(curFileAccum); } - curFileAccum.locs.push({ - start: cur.start, - end: cur.end - }); + curFileAccum.locs.push({ start: cur.start, end: cur.end }); return accum; }, []); - return { - info: renameInfo, - locs: bakedRenameLocs - }; + return { info: renameInfo, locs: bakedRenameLocs }; }; Session.prototype.getReferences = function (line, col, fileName) { var file = ts.normalizePath(fileName); @@ -37606,10 +32979,7 @@ var ts; } if (indentPosition > 0) { var spaces = generateSpaces(indentPosition); - edits.push({ - span: ts.createTextSpanFromBounds(position, position), - newText: spaces - }); + edits.push({ span: ts.createTextSpanFromBounds(position, position), newText: spaces }); } else if (indentPosition < 0) { edits.push({ @@ -37676,17 +33046,12 @@ var ts; fileName = ts.normalizePath(fileName); var project = _this.projectService.getProjectForFile(fileName); if (project) { - accum.push({ - fileName: fileName, - project: project - }); + accum.push({ fileName: fileName, project: project }); } return accum; }, []); if (checkList.length > 0) { - this.updateErrorCheck(checkList, this.changeSeq, function (n) { - return n == _this.changeSeq; - }, delay); + this.updateErrorCheck(checkList, this.changeSeq, function (n) { return n == _this.changeSeq; }, delay); } }; Session.prototype.change = function (line, col, endLine, endCol, insertString, fileName) { @@ -37701,9 +33066,7 @@ var ts; compilerService.host.editScript(file, start, end, insertString); this.changeSeq++; } - this.updateProjectStructure(this.changeSeq, function (n) { - return n == _this.changeSeq; - }); + this.updateProjectStructure(this.changeSeq, function (n) { return n == _this.changeSeq; }); } }; Session.prototype.reload = function (fileName, tempFileName, reqSeq) { @@ -37737,20 +33100,16 @@ var ts; return undefined; } var compilerService = project.compilerService; - return items.map(function (item) { - return ({ - text: item.text, - kind: item.kind, - kindModifiers: item.kindModifiers, - spans: item.spans.map(function (span) { - return ({ - start: compilerService.host.positionToLineCol(fileName, span.start), - end: compilerService.host.positionToLineCol(fileName, ts.textSpanEnd(span)) - }); - }), - childItems: _this.decorateNavigationBarItem(project, fileName, item.childItems) - }); - }); + return items.map(function (item) { return ({ + text: item.text, + kind: item.kind, + kindModifiers: item.kindModifiers, + spans: item.spans.map(function (span) { return ({ + start: compilerService.host.positionToLineCol(fileName, span.start), + end: compilerService.host.positionToLineCol(fileName, ts.textSpanEnd(span)) + }); }), + childItems: _this.decorateNavigationBarItem(project, fileName, item.childItems) + }); }); }; Session.prototype.getNavigationBarItems = function (fileName) { var file = ts.normalizePath(fileName); @@ -37813,12 +33172,10 @@ var ts; if (!spans) { return undefined; } - return spans.map(function (span) { - return ({ - start: compilerService.host.positionToLineCol(file, span.start), - end: compilerService.host.positionToLineCol(file, span.start + span.length) - }); - }); + return spans.map(function (span) { return ({ + start: compilerService.host.positionToLineCol(file, span.start), + end: compilerService.host.positionToLineCol(file, span.start + span.length) + }); }); }; Session.prototype.onMessage = function (message) { if (this.logger.isVerbose()) { @@ -37831,119 +33188,101 @@ var ts; var errorMessage; var responseRequired = true; switch (request.command) { - case CommandNames.Definition: - { - var defArgs = request.arguments; - response = this.getDefinition(defArgs.line, defArgs.col, defArgs.file); - break; - } - case CommandNames.References: - { - var refArgs = request.arguments; - response = this.getReferences(refArgs.line, refArgs.col, refArgs.file); - break; - } - case CommandNames.Rename: - { - var renameArgs = request.arguments; - response = this.getRenameLocations(renameArgs.line, renameArgs.col, renameArgs.file, renameArgs.findInComments, renameArgs.findInStrings); - break; - } - case CommandNames.Open: - { - var openArgs = request.arguments; - this.openClientFile(openArgs.file); - responseRequired = false; - break; - } - case CommandNames.Quickinfo: - { - var quickinfoArgs = request.arguments; - response = this.getQuickInfo(quickinfoArgs.line, quickinfoArgs.col, quickinfoArgs.file); - break; - } - case CommandNames.Format: - { - var formatArgs = request.arguments; - response = this.getFormattingEditsForRange(formatArgs.line, formatArgs.col, formatArgs.endLine, formatArgs.endCol, formatArgs.file); - break; - } - case CommandNames.Formatonkey: - { - var formatOnKeyArgs = request.arguments; - response = this.getFormattingEditsAfterKeystroke(formatOnKeyArgs.line, formatOnKeyArgs.col, formatOnKeyArgs.key, formatOnKeyArgs.file); - break; - } - case CommandNames.Completions: - { - var completionsArgs = request.arguments; - response = this.getCompletions(request.arguments.line, request.arguments.col, completionsArgs.prefix, request.arguments.file); - break; - } - case CommandNames.CompletionDetails: - { - var completionDetailsArgs = request.arguments; - response = this.getCompletionEntryDetails(request.arguments.line, request.arguments.col, completionDetailsArgs.entryNames, request.arguments.file); - break; - } - case CommandNames.Geterr: - { - var geterrArgs = request.arguments; - response = this.getDiagnostics(geterrArgs.delay, geterrArgs.files); - responseRequired = false; - break; - } - case CommandNames.Change: - { - var changeArgs = request.arguments; - this.change(changeArgs.line, changeArgs.col, changeArgs.endLine, changeArgs.endCol, changeArgs.insertString, changeArgs.file); - responseRequired = false; - break; - } - case CommandNames.Reload: - { - var reloadArgs = request.arguments; - this.reload(reloadArgs.file, reloadArgs.tmpfile, request.seq); - break; - } - case CommandNames.Saveto: - { - var savetoArgs = request.arguments; - this.saveToTmp(savetoArgs.file, savetoArgs.tmpfile); - responseRequired = false; - break; - } - case CommandNames.Close: - { - var closeArgs = request.arguments; - this.closeClientFile(closeArgs.file); - responseRequired = false; - break; - } - case CommandNames.Navto: - { - var navtoArgs = request.arguments; - response = this.getNavigateToItems(navtoArgs.searchValue, navtoArgs.file, navtoArgs.maxResultCount); - break; - } - case CommandNames.Brace: - { - var braceArguments = request.arguments; - response = this.getBraceMatching(braceArguments.line, braceArguments.col, braceArguments.file); - break; - } - case CommandNames.NavBar: - { - var navBarArgs = request.arguments; - response = this.getNavigationBarItems(navBarArgs.file); - break; - } - default: - { - this.projectService.log("Unrecognized JSON command: " + message); - this.output(undefined, CommandNames.Unknown, request.seq, "Unrecognized JSON command: " + request.command); - break; - } + case CommandNames.Definition: { + var defArgs = request.arguments; + response = this.getDefinition(defArgs.line, defArgs.col, defArgs.file); + break; + } + case CommandNames.References: { + var refArgs = request.arguments; + response = this.getReferences(refArgs.line, refArgs.col, refArgs.file); + break; + } + case CommandNames.Rename: { + var renameArgs = request.arguments; + response = this.getRenameLocations(renameArgs.line, renameArgs.col, renameArgs.file, renameArgs.findInComments, renameArgs.findInStrings); + break; + } + case CommandNames.Open: { + var openArgs = request.arguments; + this.openClientFile(openArgs.file); + responseRequired = false; + break; + } + case CommandNames.Quickinfo: { + var quickinfoArgs = request.arguments; + response = this.getQuickInfo(quickinfoArgs.line, quickinfoArgs.col, quickinfoArgs.file); + break; + } + case CommandNames.Format: { + var formatArgs = request.arguments; + response = this.getFormattingEditsForRange(formatArgs.line, formatArgs.col, formatArgs.endLine, formatArgs.endCol, formatArgs.file); + break; + } + case CommandNames.Formatonkey: { + var formatOnKeyArgs = request.arguments; + response = this.getFormattingEditsAfterKeystroke(formatOnKeyArgs.line, formatOnKeyArgs.col, formatOnKeyArgs.key, formatOnKeyArgs.file); + break; + } + case CommandNames.Completions: { + var completionsArgs = request.arguments; + response = this.getCompletions(request.arguments.line, request.arguments.col, completionsArgs.prefix, request.arguments.file); + break; + } + case CommandNames.CompletionDetails: { + var completionDetailsArgs = request.arguments; + response = this.getCompletionEntryDetails(request.arguments.line, request.arguments.col, completionDetailsArgs.entryNames, request.arguments.file); + break; + } + case CommandNames.Geterr: { + var geterrArgs = request.arguments; + response = this.getDiagnostics(geterrArgs.delay, geterrArgs.files); + responseRequired = false; + break; + } + case CommandNames.Change: { + var changeArgs = request.arguments; + this.change(changeArgs.line, changeArgs.col, changeArgs.endLine, changeArgs.endCol, changeArgs.insertString, changeArgs.file); + responseRequired = false; + break; + } + case CommandNames.Reload: { + var reloadArgs = request.arguments; + this.reload(reloadArgs.file, reloadArgs.tmpfile, request.seq); + break; + } + case CommandNames.Saveto: { + var savetoArgs = request.arguments; + this.saveToTmp(savetoArgs.file, savetoArgs.tmpfile); + responseRequired = false; + break; + } + case CommandNames.Close: { + var closeArgs = request.arguments; + this.closeClientFile(closeArgs.file); + responseRequired = false; + break; + } + case CommandNames.Navto: { + var navtoArgs = request.arguments; + response = this.getNavigateToItems(navtoArgs.searchValue, navtoArgs.file, navtoArgs.maxResultCount); + break; + } + case CommandNames.Brace: { + var braceArguments = request.arguments; + response = this.getBraceMatching(braceArguments.line, braceArguments.col, braceArguments.file); + break; + } + case CommandNames.NavBar: { + var navBarArgs = request.arguments; + response = this.getNavigationBarItems(navBarArgs.file); + break; + } + default: { + this.projectService.log("Unrecognized JSON command: " + message); + this.output(undefined, CommandNames.Unknown, request.seq, "Unrecognized JSON command: " + request.command); + break; + } } if (this.logger.isVerbose()) { var elapsed = process.hrtime(start); @@ -38184,9 +33523,7 @@ var ts; ts.sys.watchFile = function (fileName, callback) { var watchedFile = watchedFileSet.addFile(fileName, callback); return { - close: function () { - return watchedFileSet.removeFile(watchedFile); - } + close: function () { return watchedFileSet.removeFile(watchedFile); } }; }; var ioSession = new IOSession(ts.sys, logger); diff --git a/bin/typescript.d.ts b/bin/typescript.d.ts index bf6b204d3bb..8f71dc4ee08 100644 --- a/bin/typescript.d.ts +++ b/bin/typescript.d.ts @@ -1200,8 +1200,6 @@ declare module "typescript" { target?: ScriptTarget; version?: boolean; watch?: boolean; - stripInternal?: boolean; - preserveNewLines?: boolean; [option: string]: string | number | boolean; } const enum ModuleKind { @@ -1443,7 +1441,7 @@ declare module "typescript" { } declare module "typescript" { /** The version of the TypeScript compiler release */ - var version: string; + let version: string; function createCompilerHost(options: CompilerOptions): CompilerHost; function getPreEmitDiagnostics(program: Program): Diagnostic[]; function flattenDiagnosticMessageText(messageText: string | DiagnosticMessageChain, newLine: string): string; @@ -1451,7 +1449,7 @@ declare module "typescript" { } declare module "typescript" { /** The version of the language service API */ - var servicesVersion: string; + let servicesVersion: string; interface Node { getSourceFile(): SourceFile; getChildCount(sourceFile?: SourceFile): number; @@ -1938,7 +1936,7 @@ declare module "typescript" { throwIfCancellationRequested(): void; } function createLanguageServiceSourceFile(fileName: string, scriptSnapshot: IScriptSnapshot, scriptTarget: ScriptTarget, version: string, setNodeParents: boolean): SourceFile; - var disableIncrementalParsing: boolean; + let disableIncrementalParsing: boolean; function updateLanguageServiceSourceFile(sourceFile: SourceFile, scriptSnapshot: IScriptSnapshot, version: string, textChangeRange: TextChangeRange, aggressiveChecks?: boolean): SourceFile; function createDocumentRegistry(): DocumentRegistry; function preProcessFile(sourceText: string, readImportFiles?: boolean): PreProcessedFileInfo; diff --git a/bin/typescript.js b/bin/typescript.js index 0fb345eea1b..9e939631006 100644 --- a/bin/typescript.js +++ b/bin/typescript.js @@ -625,8 +625,9 @@ var ts; ts.forEach = forEach; function contains(array, value) { if (array) { - for (var i = 0, len = array.length; i < len; i++) { - if (array[i] === value) { + for (var _i = 0, _n = array.length; _i < _n; _i++) { + var v = array[_i]; + if (v === value) { return true; } } @@ -648,8 +649,9 @@ var ts; function countWhere(array, predicate) { var count = 0; if (array) { - for (var i = 0, len = array.length; i < len; i++) { - if (predicate(array[i])) { + for (var _i = 0, _n = array.length; _i < _n; _i++) { + var v = array[_i]; + if (predicate(v)) { count++; } } @@ -658,12 +660,13 @@ var ts; } ts.countWhere = countWhere; function filter(array, f) { + var result; if (array) { - var result = []; - for (var i = 0, len = array.length; i < len; i++) { - var item = array[i]; - if (f(item)) { - result.push(item); + result = []; + for (var _i = 0, _n = array.length; _i < _n; _i++) { + var _item = array[_i]; + if (f(_item)) { + result.push(_item); } } } @@ -671,10 +674,12 @@ var ts; } ts.filter = filter; function map(array, f) { + var result; if (array) { - var result = []; - for (var i = 0, len = array.length; i < len; i++) { - result.push(f(array[i])); + result = []; + for (var _i = 0, _n = array.length; _i < _n; _i++) { + var v = array[_i]; + result.push(f(v)); } } return result; @@ -689,12 +694,14 @@ var ts; } ts.concatenate = concatenate; function deduplicate(array) { + var result; if (array) { - var result = []; - for (var i = 0, len = array.length; i < len; i++) { - var item = array[i]; - if (!contains(result, item)) - result.push(item); + result = []; + for (var _i = 0, _n = array.length; _i < _n; _i++) { + var _item = array[_i]; + if (!contains(result, _item)) { + result.push(_item); + } } } return result; @@ -702,15 +709,17 @@ var ts; ts.deduplicate = deduplicate; function sum(array, prop) { var result = 0; - for (var i = 0; i < array.length; i++) { - result += array[i][prop]; + for (var _i = 0, _n = array.length; _i < _n; _i++) { + var v = array[_i]; + result += v[prop]; } return result; } ts.sum = sum; function addRange(to, from) { - for (var i = 0, n = from.length; i < n; i++) { - to.push(from[i]); + for (var _i = 0, _n = from.length; _i < _n; _i++) { + var v = from[_i]; + to.push(v); } } ts.addRange = addRange; @@ -771,9 +780,9 @@ var ts; for (var id in first) { result[id] = first[id]; } - for (var id in second) { - if (!hasProperty(result, id)) { - result[id] = second[id]; + for (var _id in second) { + if (!hasProperty(result, _id)) { + result[_id] = second[_id]; } } return result; @@ -825,13 +834,13 @@ var ts; ts.arrayToMap = arrayToMap; function formatStringFromArgs(text, args, baseIndex) { baseIndex = baseIndex || 0; - return text.replace(/{(\d+)}/g, function (match, index) { - return args[+index + baseIndex]; - }); + return text.replace(/{(\d+)}/g, function (match, index) { return args[+index + baseIndex]; }); } ts.localizedDiagnosticMessages = undefined; function getLocaleSpecificMessage(message) { - return ts.localizedDiagnosticMessages && ts.localizedDiagnosticMessages[message] ? ts.localizedDiagnosticMessages[message] : message; + return ts.localizedDiagnosticMessages && ts.localizedDiagnosticMessages[message] + ? ts.localizedDiagnosticMessages[message] + : message; } ts.getLocaleSpecificMessage = getLocaleSpecificMessage; function createFileDiagnostic(file, start, length, message) { @@ -902,7 +911,12 @@ var ts; return diagnostic.file ? diagnostic.file.fileName : undefined; } function compareDiagnostics(d1, d2) { - return compareValues(getDiagnosticFileName(d1), getDiagnosticFileName(d2)) || compareValues(d1.start, d2.start) || compareValues(d1.length, d2.length) || compareValues(d1.code, d2.code) || compareMessageText(d1.messageText, d2.messageText) || 0; + return compareValues(getDiagnosticFileName(d1), getDiagnosticFileName(d2)) || + compareValues(d1.start, d2.start) || + compareValues(d1.length, d2.length) || + compareValues(d1.code, d2.code) || + compareMessageText(d1.messageText, d2.messageText) || + 0; } ts.compareDiagnostics = compareDiagnostics; function compareMessageText(text1, text2) { @@ -929,9 +943,7 @@ var ts; if (diagnostics.length < 2) { return diagnostics; } - var newDiagnostics = [ - diagnostics[0] - ]; + var newDiagnostics = [diagnostics[0]]; var previousDiagnostic = diagnostics[0]; for (var i = 1; i < diagnostics.length; i++) { var currentDiagnostic = diagnostics[i]; @@ -972,8 +984,8 @@ var ts; function getNormalizedParts(normalizedSlashedPath, rootLength) { var parts = normalizedSlashedPath.substr(rootLength).split(ts.directorySeparator); var normalized = []; - for (var i = 0; i < parts.length; i++) { - var part = parts[i]; + for (var _i = 0, _n = parts.length; _i < _n; _i++) { + var part = parts[_i]; if (part !== ".") { if (part === ".." && normalized.length > 0 && normalized[normalized.length - 1] !== "..") { normalized.pop(); @@ -988,7 +1000,7 @@ var ts; return normalized; } function normalizePath(path) { - var path = normalizeSlashes(path); + path = normalizeSlashes(path); var rootLength = getRootLength(path); var normalized = getNormalizedParts(path, rootLength); return path.substr(0, rootLength) + normalized.join(ts.directorySeparator); @@ -1008,12 +1020,10 @@ var ts; ts.isRootedDiskPath = isRootedDiskPath; function normalizedPathComponents(path, rootLength) { var normalizedParts = getNormalizedParts(path, rootLength); - return [ - path.substr(0, rootLength) - ].concat(normalizedParts); + return [path.substr(0, rootLength)].concat(normalizedParts); } function getNormalizedPathComponents(path, currentDirectory) { - var path = normalizeSlashes(path); + path = normalizeSlashes(path); var rootLength = getRootLength(path); if (rootLength == 0) { path = combinePaths(normalizeSlashes(currentDirectory), path); @@ -1044,9 +1054,7 @@ var ts; } } if (rootLength === urlLength) { - return [ - url - ]; + return [url]; } var indexOfNextSlash = url.indexOf(ts.directorySeparator, rootLength); if (indexOfNextSlash !== -1) { @@ -1054,9 +1062,7 @@ var ts; return normalizedPathComponents(url, rootLength); } else { - return [ - url + ts.directorySeparator - ]; + return [url + ts.directorySeparator]; } } function getNormalizedPathOrUrlComponents(pathOrUrl, currentDirectory) { @@ -1118,14 +1124,10 @@ var ts; return pathLen > extLen && path.substr(pathLen - extLen, extLen) === extension; } ts.fileExtensionIs = fileExtensionIs; - var supportedExtensions = [ - ".d.ts", - ".ts", - ".js" - ]; + var supportedExtensions = [".d.ts", ".ts", ".js"]; function removeFileExtension(path) { - for (var i = 0; i < supportedExtensions.length; i++) { - var ext = supportedExtensions[i]; + for (var _i = 0, _n = supportedExtensions.length; _i < _n; _i++) { + var ext = supportedExtensions[_i]; if (fileExtensionIs(path, ext)) { return path.substr(0, path.length - ext.length); } @@ -1176,15 +1178,9 @@ var ts; }; return Node; }, - getSymbolConstructor: function () { - return Symbol; - }, - getTypeConstructor: function () { - return Type; - }, - getSignatureConstructor: function () { - return Signature; - } + getSymbolConstructor: function () { return Symbol; }, + getTypeConstructor: function () { return Type; }, + getSignatureConstructor: function () { return Signature; } }; (function (AssertionLevel) { AssertionLevel[AssertionLevel["None"] = 0] = "None"; @@ -1289,15 +1285,16 @@ var ts; function visitDirectory(path) { var folder = fso.GetFolder(path || "."); var files = getNames(folder.files); - for (var i = 0; i < files.length; i++) { - var name = files[i]; - if (!extension || ts.fileExtensionIs(name, extension)) { - result.push(ts.combinePaths(path, name)); + for (var _i = 0, _n = files.length; _i < _n; _i++) { + var _name = files[_i]; + if (!extension || ts.fileExtensionIs(_name, extension)) { + result.push(ts.combinePaths(path, _name)); } } var subfolders = getNames(folder.subfolders); - for (var i = 0; i < subfolders.length; i++) { - visitDirectory(ts.combinePaths(path, subfolders[i])); + for (var _a = 0, _b = subfolders.length; _a < _b; _a++) { + var current = subfolders[_a]; + visitDirectory(ts.combinePaths(path, current)); } } } @@ -1382,8 +1379,9 @@ var ts; function visitDirectory(path) { var files = _fs.readdirSync(path || ".").sort(); var directories = []; - for (var i = 0; i < files.length; i++) { - var name = ts.combinePaths(path, files[i]); + for (var _i = 0, _n = files.length; _i < _n; _i++) { + var current = files[_i]; + var name = ts.combinePaths(path, current); var stat = _fs.lstatSync(name); if (stat.isFile()) { if (!extension || ts.fileExtensionIs(name, extension)) { @@ -1394,8 +1392,9 @@ var ts; directories.push(name); } } - for (var i = 0; i < directories.length; i++) { - visitDirectory(directories[i]); + for (var _a = 0, _b = directories.length; _a < _b; _a++) { + var _current = directories[_a]; + visitDirectory(_current); } } } @@ -1409,14 +1408,9 @@ var ts; readFile: readFile, writeFile: writeFile, watchFile: function (fileName, callback) { - _fs.watchFile(fileName, { - persistent: true, - interval: 250 - }, fileChanged); + _fs.watchFile(fileName, { persistent: true, interval: 250 }, fileChanged); return { - close: function () { - _fs.unwatchFile(fileName, fileChanged); - } + close: function () { _fs.unwatchFile(fileName, fileChanged); } }; function fileChanged(curr, prev) { if (+curr.mtime <= +prev.mtime) { @@ -1472,2431 +1466,491 @@ var ts; var ts; (function (ts) { ts.Diagnostics = { - Unterminated_string_literal: { - code: 1002, - category: 1, - key: "Unterminated string literal." - }, - Identifier_expected: { - code: 1003, - category: 1, - key: "Identifier expected." - }, - _0_expected: { - code: 1005, - category: 1, - key: "'{0}' expected." - }, - A_file_cannot_have_a_reference_to_itself: { - code: 1006, - category: 1, - key: "A file cannot have a reference to itself." - }, - Trailing_comma_not_allowed: { - code: 1009, - category: 1, - key: "Trailing comma not allowed." - }, - Asterisk_Slash_expected: { - code: 1010, - category: 1, - key: "'*/' expected." - }, - Unexpected_token: { - code: 1012, - category: 1, - key: "Unexpected token." - }, - A_rest_parameter_must_be_last_in_a_parameter_list: { - code: 1014, - category: 1, - key: "A rest parameter must be last in a parameter list." - }, - Parameter_cannot_have_question_mark_and_initializer: { - code: 1015, - category: 1, - key: "Parameter cannot have question mark and initializer." - }, - A_required_parameter_cannot_follow_an_optional_parameter: { - code: 1016, - category: 1, - key: "A required parameter cannot follow an optional parameter." - }, - An_index_signature_cannot_have_a_rest_parameter: { - code: 1017, - category: 1, - key: "An index signature cannot have a rest parameter." - }, - An_index_signature_parameter_cannot_have_an_accessibility_modifier: { - code: 1018, - category: 1, - key: "An index signature parameter cannot have an accessibility modifier." - }, - An_index_signature_parameter_cannot_have_a_question_mark: { - code: 1019, - category: 1, - key: "An index signature parameter cannot have a question mark." - }, - An_index_signature_parameter_cannot_have_an_initializer: { - code: 1020, - category: 1, - key: "An index signature parameter cannot have an initializer." - }, - An_index_signature_must_have_a_type_annotation: { - code: 1021, - category: 1, - key: "An index signature must have a type annotation." - }, - An_index_signature_parameter_must_have_a_type_annotation: { - code: 1022, - category: 1, - key: "An index signature parameter must have a type annotation." - }, - An_index_signature_parameter_type_must_be_string_or_number: { - code: 1023, - category: 1, - key: "An index signature parameter type must be 'string' or 'number'." - }, - A_class_or_interface_declaration_can_only_have_one_extends_clause: { - code: 1024, - category: 1, - key: "A class or interface declaration can only have one 'extends' clause." - }, - An_extends_clause_must_precede_an_implements_clause: { - code: 1025, - category: 1, - key: "An 'extends' clause must precede an 'implements' clause." - }, - A_class_can_only_extend_a_single_class: { - code: 1026, - category: 1, - key: "A class can only extend a single class." - }, - A_class_declaration_can_only_have_one_implements_clause: { - code: 1027, - category: 1, - key: "A class declaration can only have one 'implements' clause." - }, - Accessibility_modifier_already_seen: { - code: 1028, - category: 1, - key: "Accessibility modifier already seen." - }, - _0_modifier_must_precede_1_modifier: { - code: 1029, - category: 1, - key: "'{0}' modifier must precede '{1}' modifier." - }, - _0_modifier_already_seen: { - code: 1030, - category: 1, - key: "'{0}' modifier already seen." - }, - _0_modifier_cannot_appear_on_a_class_element: { - code: 1031, - category: 1, - key: "'{0}' modifier cannot appear on a class element." - }, - An_interface_declaration_cannot_have_an_implements_clause: { - code: 1032, - category: 1, - key: "An interface declaration cannot have an 'implements' clause." - }, - super_must_be_followed_by_an_argument_list_or_member_access: { - code: 1034, - category: 1, - key: "'super' must be followed by an argument list or member access." - }, - Only_ambient_modules_can_use_quoted_names: { - code: 1035, - category: 1, - key: "Only ambient modules can use quoted names." - }, - Statements_are_not_allowed_in_ambient_contexts: { - code: 1036, - category: 1, - key: "Statements are not allowed in ambient contexts." - }, - A_declare_modifier_cannot_be_used_in_an_already_ambient_context: { - code: 1038, - category: 1, - key: "A 'declare' modifier cannot be used in an already ambient context." - }, - Initializers_are_not_allowed_in_ambient_contexts: { - code: 1039, - category: 1, - key: "Initializers are not allowed in ambient contexts." - }, - _0_modifier_cannot_appear_on_a_module_element: { - code: 1044, - category: 1, - key: "'{0}' modifier cannot appear on a module element." - }, - A_declare_modifier_cannot_be_used_with_an_interface_declaration: { - code: 1045, - category: 1, - key: "A 'declare' modifier cannot be used with an interface declaration." - }, - A_declare_modifier_is_required_for_a_top_level_declaration_in_a_d_ts_file: { - code: 1046, - category: 1, - key: "A 'declare' modifier is required for a top level declaration in a .d.ts file." - }, - A_rest_parameter_cannot_be_optional: { - code: 1047, - category: 1, - key: "A rest parameter cannot be optional." - }, - A_rest_parameter_cannot_have_an_initializer: { - code: 1048, - category: 1, - key: "A rest parameter cannot have an initializer." - }, - A_set_accessor_must_have_exactly_one_parameter: { - code: 1049, - category: 1, - key: "A 'set' accessor must have exactly one parameter." - }, - A_set_accessor_cannot_have_an_optional_parameter: { - code: 1051, - category: 1, - key: "A 'set' accessor cannot have an optional parameter." - }, - A_set_accessor_parameter_cannot_have_an_initializer: { - code: 1052, - category: 1, - key: "A 'set' accessor parameter cannot have an initializer." - }, - A_set_accessor_cannot_have_rest_parameter: { - code: 1053, - category: 1, - key: "A 'set' accessor cannot have rest parameter." - }, - A_get_accessor_cannot_have_parameters: { - code: 1054, - category: 1, - key: "A 'get' accessor cannot have parameters." - }, - Accessors_are_only_available_when_targeting_ECMAScript_5_and_higher: { - code: 1056, - category: 1, - key: "Accessors are only available when targeting ECMAScript 5 and higher." - }, - Enum_member_must_have_initializer: { - code: 1061, - category: 1, - key: "Enum member must have initializer." - }, - An_export_assignment_cannot_be_used_in_an_internal_module: { - code: 1063, - category: 1, - key: "An export assignment cannot be used in an internal module." - }, - Ambient_enum_elements_can_only_have_integer_literal_initializers: { - code: 1066, - category: 1, - key: "Ambient enum elements can only have integer literal initializers." - }, - Unexpected_token_A_constructor_method_accessor_or_property_was_expected: { - code: 1068, - category: 1, - key: "Unexpected token. A constructor, method, accessor, or property was expected." - }, - A_declare_modifier_cannot_be_used_with_an_import_declaration: { - code: 1079, - category: 1, - key: "A 'declare' modifier cannot be used with an import declaration." - }, - Invalid_reference_directive_syntax: { - code: 1084, - category: 1, - key: "Invalid 'reference' directive syntax." - }, - Octal_literals_are_not_available_when_targeting_ECMAScript_5_and_higher: { - code: 1085, - category: 1, - key: "Octal literals are not available when targeting ECMAScript 5 and higher." - }, - An_accessor_cannot_be_declared_in_an_ambient_context: { - code: 1086, - category: 1, - key: "An accessor cannot be declared in an ambient context." - }, - _0_modifier_cannot_appear_on_a_constructor_declaration: { - code: 1089, - category: 1, - key: "'{0}' modifier cannot appear on a constructor declaration." - }, - _0_modifier_cannot_appear_on_a_parameter: { - code: 1090, - category: 1, - key: "'{0}' modifier cannot appear on a parameter." - }, - Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement: { - code: 1091, - category: 1, - key: "Only a single variable declaration is allowed in a 'for...in' statement." - }, - Type_parameters_cannot_appear_on_a_constructor_declaration: { - code: 1092, - category: 1, - key: "Type parameters cannot appear on a constructor declaration." - }, - Type_annotation_cannot_appear_on_a_constructor_declaration: { - code: 1093, - category: 1, - key: "Type annotation cannot appear on a constructor declaration." - }, - An_accessor_cannot_have_type_parameters: { - code: 1094, - category: 1, - key: "An accessor cannot have type parameters." - }, - A_set_accessor_cannot_have_a_return_type_annotation: { - code: 1095, - category: 1, - key: "A 'set' accessor cannot have a return type annotation." - }, - An_index_signature_must_have_exactly_one_parameter: { - code: 1096, - category: 1, - key: "An index signature must have exactly one parameter." - }, - _0_list_cannot_be_empty: { - code: 1097, - category: 1, - key: "'{0}' list cannot be empty." - }, - Type_parameter_list_cannot_be_empty: { - code: 1098, - category: 1, - key: "Type parameter list cannot be empty." - }, - Type_argument_list_cannot_be_empty: { - code: 1099, - category: 1, - key: "Type argument list cannot be empty." - }, - Invalid_use_of_0_in_strict_mode: { - code: 1100, - category: 1, - key: "Invalid use of '{0}' in strict mode." - }, - with_statements_are_not_allowed_in_strict_mode: { - code: 1101, - category: 1, - key: "'with' statements are not allowed in strict mode." - }, - delete_cannot_be_called_on_an_identifier_in_strict_mode: { - code: 1102, - category: 1, - key: "'delete' cannot be called on an identifier in strict mode." - }, - A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement: { - code: 1104, - category: 1, - key: "A 'continue' statement can only be used within an enclosing iteration statement." - }, - A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement: { - code: 1105, - category: 1, - key: "A 'break' statement can only be used within an enclosing iteration or switch statement." - }, - Jump_target_cannot_cross_function_boundary: { - code: 1107, - category: 1, - key: "Jump target cannot cross function boundary." - }, - A_return_statement_can_only_be_used_within_a_function_body: { - code: 1108, - category: 1, - key: "A 'return' statement can only be used within a function body." - }, - Expression_expected: { - code: 1109, - category: 1, - key: "Expression expected." - }, - Type_expected: { - code: 1110, - category: 1, - key: "Type expected." - }, - A_class_member_cannot_be_declared_optional: { - code: 1112, - category: 1, - key: "A class member cannot be declared optional." - }, - A_default_clause_cannot_appear_more_than_once_in_a_switch_statement: { - code: 1113, - category: 1, - key: "A 'default' clause cannot appear more than once in a 'switch' statement." - }, - Duplicate_label_0: { - code: 1114, - category: 1, - key: "Duplicate label '{0}'" - }, - A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement: { - code: 1115, - category: 1, - key: "A 'continue' statement can only jump to a label of an enclosing iteration statement." - }, - A_break_statement_can_only_jump_to_a_label_of_an_enclosing_statement: { - code: 1116, - category: 1, - key: "A 'break' statement can only jump to a label of an enclosing statement." - }, - An_object_literal_cannot_have_multiple_properties_with_the_same_name_in_strict_mode: { - code: 1117, - category: 1, - key: "An object literal cannot have multiple properties with the same name in strict mode." - }, - An_object_literal_cannot_have_multiple_get_Slashset_accessors_with_the_same_name: { - code: 1118, - category: 1, - key: "An object literal cannot have multiple get/set accessors with the same name." - }, - An_object_literal_cannot_have_property_and_accessor_with_the_same_name: { - code: 1119, - category: 1, - key: "An object literal cannot have property and accessor with the same name." - }, - An_export_assignment_cannot_have_modifiers: { - code: 1120, - category: 1, - key: "An export assignment cannot have modifiers." - }, - Octal_literals_are_not_allowed_in_strict_mode: { - code: 1121, - category: 1, - key: "Octal literals are not allowed in strict mode." - }, - A_tuple_type_element_list_cannot_be_empty: { - code: 1122, - category: 1, - key: "A tuple type element list cannot be empty." - }, - Variable_declaration_list_cannot_be_empty: { - code: 1123, - category: 1, - key: "Variable declaration list cannot be empty." - }, - Digit_expected: { - code: 1124, - category: 1, - key: "Digit expected." - }, - Hexadecimal_digit_expected: { - code: 1125, - category: 1, - key: "Hexadecimal digit expected." - }, - Unexpected_end_of_text: { - code: 1126, - category: 1, - key: "Unexpected end of text." - }, - Invalid_character: { - code: 1127, - category: 1, - key: "Invalid character." - }, - Declaration_or_statement_expected: { - code: 1128, - category: 1, - key: "Declaration or statement expected." - }, - Statement_expected: { - code: 1129, - category: 1, - key: "Statement expected." - }, - case_or_default_expected: { - code: 1130, - category: 1, - key: "'case' or 'default' expected." - }, - Property_or_signature_expected: { - code: 1131, - category: 1, - key: "Property or signature expected." - }, - Enum_member_expected: { - code: 1132, - category: 1, - key: "Enum member expected." - }, - Type_reference_expected: { - code: 1133, - category: 1, - key: "Type reference expected." - }, - Variable_declaration_expected: { - code: 1134, - category: 1, - key: "Variable declaration expected." - }, - Argument_expression_expected: { - code: 1135, - category: 1, - key: "Argument expression expected." - }, - Property_assignment_expected: { - code: 1136, - category: 1, - key: "Property assignment expected." - }, - Expression_or_comma_expected: { - code: 1137, - category: 1, - key: "Expression or comma expected." - }, - Parameter_declaration_expected: { - code: 1138, - category: 1, - key: "Parameter declaration expected." - }, - Type_parameter_declaration_expected: { - code: 1139, - category: 1, - key: "Type parameter declaration expected." - }, - Type_argument_expected: { - code: 1140, - category: 1, - key: "Type argument expected." - }, - String_literal_expected: { - code: 1141, - category: 1, - key: "String literal expected." - }, - Line_break_not_permitted_here: { - code: 1142, - category: 1, - key: "Line break not permitted here." - }, - or_expected: { - code: 1144, - category: 1, - key: "'{' or ';' expected." - }, - Modifiers_not_permitted_on_index_signature_members: { - code: 1145, - category: 1, - key: "Modifiers not permitted on index signature members." - }, - Declaration_expected: { - code: 1146, - category: 1, - key: "Declaration expected." - }, - Import_declarations_in_an_internal_module_cannot_reference_an_external_module: { - code: 1147, - category: 1, - key: "Import declarations in an internal module cannot reference an external module." - }, - Cannot_compile_external_modules_unless_the_module_flag_is_provided: { - code: 1148, - category: 1, - key: "Cannot compile external modules unless the '--module' flag is provided." - }, - File_name_0_differs_from_already_included_file_name_1_only_in_casing: { - code: 1149, - category: 1, - key: "File name '{0}' differs from already included file name '{1}' only in casing" - }, - new_T_cannot_be_used_to_create_an_array_Use_new_Array_T_instead: { - code: 1150, - category: 1, - key: "'new T[]' cannot be used to create an array. Use 'new Array()' instead." - }, - var_let_or_const_expected: { - code: 1152, - category: 1, - key: "'var', 'let' or 'const' expected." - }, - let_declarations_are_only_available_when_targeting_ECMAScript_6_and_higher: { - code: 1153, - category: 1, - key: "'let' declarations are only available when targeting ECMAScript 6 and higher." - }, - const_declarations_are_only_available_when_targeting_ECMAScript_6_and_higher: { - code: 1154, - category: 1, - key: "'const' declarations are only available when targeting ECMAScript 6 and higher." - }, - const_declarations_must_be_initialized: { - code: 1155, - category: 1, - key: "'const' declarations must be initialized" - }, - const_declarations_can_only_be_declared_inside_a_block: { - code: 1156, - category: 1, - key: "'const' declarations can only be declared inside a block." - }, - let_declarations_can_only_be_declared_inside_a_block: { - code: 1157, - category: 1, - key: "'let' declarations can only be declared inside a block." - }, - Unterminated_template_literal: { - code: 1160, - category: 1, - key: "Unterminated template literal." - }, - Unterminated_regular_expression_literal: { - code: 1161, - category: 1, - key: "Unterminated regular expression literal." - }, - An_object_member_cannot_be_declared_optional: { - code: 1162, - category: 1, - key: "An object member cannot be declared optional." - }, - yield_expression_must_be_contained_within_a_generator_declaration: { - code: 1163, - category: 1, - key: "'yield' expression must be contained_within a generator declaration." - }, - Computed_property_names_are_not_allowed_in_enums: { - code: 1164, - category: 1, - key: "Computed property names are not allowed in enums." - }, - A_computed_property_name_in_an_ambient_context_must_directly_refer_to_a_built_in_symbol: { - code: 1165, - category: 1, - key: "A computed property name in an ambient context must directly refer to a built-in symbol." - }, - A_computed_property_name_in_a_class_property_declaration_must_directly_refer_to_a_built_in_symbol: { - code: 1166, - category: 1, - key: "A computed property name in a class property declaration must directly refer to a built-in symbol." - }, - Computed_property_names_are_only_available_when_targeting_ECMAScript_6_and_higher: { - code: 1167, - category: 1, - key: "Computed property names are only available when targeting ECMAScript 6 and higher." - }, - A_computed_property_name_in_a_method_overload_must_directly_refer_to_a_built_in_symbol: { - code: 1168, - category: 1, - key: "A computed property name in a method overload must directly refer to a built-in symbol." - }, - A_computed_property_name_in_an_interface_must_directly_refer_to_a_built_in_symbol: { - code: 1169, - category: 1, - key: "A computed property name in an interface must directly refer to a built-in symbol." - }, - A_computed_property_name_in_a_type_literal_must_directly_refer_to_a_built_in_symbol: { - code: 1170, - category: 1, - key: "A computed property name in a type literal must directly refer to a built-in symbol." - }, - A_comma_expression_is_not_allowed_in_a_computed_property_name: { - code: 1171, - category: 1, - key: "A comma expression is not allowed in a computed property name." - }, - extends_clause_already_seen: { - code: 1172, - category: 1, - key: "'extends' clause already seen." - }, - extends_clause_must_precede_implements_clause: { - code: 1173, - category: 1, - key: "'extends' clause must precede 'implements' clause." - }, - Classes_can_only_extend_a_single_class: { - code: 1174, - category: 1, - key: "Classes can only extend a single class." - }, - implements_clause_already_seen: { - code: 1175, - category: 1, - key: "'implements' clause already seen." - }, - Interface_declaration_cannot_have_implements_clause: { - code: 1176, - category: 1, - key: "Interface declaration cannot have 'implements' clause." - }, - Binary_digit_expected: { - code: 1177, - category: 1, - key: "Binary digit expected." - }, - Octal_digit_expected: { - code: 1178, - category: 1, - key: "Octal digit expected." - }, - Unexpected_token_expected: { - code: 1179, - category: 1, - key: "Unexpected token. '{' expected." - }, - Property_destructuring_pattern_expected: { - code: 1180, - category: 1, - key: "Property destructuring pattern expected." - }, - Array_element_destructuring_pattern_expected: { - code: 1181, - category: 1, - key: "Array element destructuring pattern expected." - }, - A_destructuring_declaration_must_have_an_initializer: { - code: 1182, - category: 1, - key: "A destructuring declaration must have an initializer." - }, - Destructuring_declarations_are_not_allowed_in_ambient_contexts: { - code: 1183, - category: 1, - key: "Destructuring declarations are not allowed in ambient contexts." - }, - An_implementation_cannot_be_declared_in_ambient_contexts: { - code: 1184, - category: 1, - key: "An implementation cannot be declared in ambient contexts." - }, - Modifiers_cannot_appear_here: { - code: 1184, - category: 1, - key: "Modifiers cannot appear here." - }, - Merge_conflict_marker_encountered: { - code: 1185, - category: 1, - key: "Merge conflict marker encountered." - }, - A_rest_element_cannot_have_an_initializer: { - code: 1186, - category: 1, - key: "A rest element cannot have an initializer." - }, - A_parameter_property_may_not_be_a_binding_pattern: { - code: 1187, - category: 1, - key: "A parameter property may not be a binding pattern." - }, - Only_a_single_variable_declaration_is_allowed_in_a_for_of_statement: { - code: 1188, - category: 1, - key: "Only a single variable declaration is allowed in a 'for...of' statement." - }, - The_variable_declaration_of_a_for_in_statement_cannot_have_an_initializer: { - code: 1189, - category: 1, - key: "The variable declaration of a 'for...in' statement cannot have an initializer." - }, - The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer: { - code: 1190, - category: 1, - key: "The variable declaration of a 'for...of' statement cannot have an initializer." - }, - An_import_declaration_cannot_have_modifiers: { - code: 1191, - category: 1, - key: "An import declaration cannot have modifiers." - }, - External_module_0_has_no_default_export_or_export_assignment: { - code: 1192, - category: 1, - key: "External module '{0}' has no default export or export assignment." - }, - An_export_declaration_cannot_have_modifiers: { - code: 1193, - category: 1, - key: "An export declaration cannot have modifiers." - }, - Export_declarations_are_not_permitted_in_an_internal_module: { - code: 1194, - category: 1, - key: "Export declarations are not permitted in an internal module." - }, - Catch_clause_variable_name_must_be_an_identifier: { - code: 1195, - category: 1, - key: "Catch clause variable name must be an identifier." - }, - Catch_clause_variable_cannot_have_a_type_annotation: { - code: 1196, - category: 1, - key: "Catch clause variable cannot have a type annotation." - }, - Catch_clause_variable_cannot_have_an_initializer: { - code: 1197, - category: 1, - key: "Catch clause variable cannot have an initializer." - }, - An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive: { - code: 1198, - category: 1, - key: "An extended Unicode escape value must be between 0x0 and 0x10FFFF inclusive." - }, - Unterminated_Unicode_escape_sequence: { - code: 1199, - category: 1, - key: "Unterminated Unicode escape sequence." - }, - Duplicate_identifier_0: { - code: 2300, - category: 1, - key: "Duplicate identifier '{0}'." - }, - Initializer_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor: { - code: 2301, - category: 1, - key: "Initializer of instance member variable '{0}' cannot reference identifier '{1}' declared in the constructor." - }, - Static_members_cannot_reference_class_type_parameters: { - code: 2302, - category: 1, - key: "Static members cannot reference class type parameters." - }, - Circular_definition_of_import_alias_0: { - code: 2303, - category: 1, - key: "Circular definition of import alias '{0}'." - }, - Cannot_find_name_0: { - code: 2304, - category: 1, - key: "Cannot find name '{0}'." - }, - Module_0_has_no_exported_member_1: { - code: 2305, - category: 1, - key: "Module '{0}' has no exported member '{1}'." - }, - File_0_is_not_an_external_module: { - code: 2306, - category: 1, - key: "File '{0}' is not an external module." - }, - Cannot_find_external_module_0: { - code: 2307, - category: 1, - key: "Cannot find external module '{0}'." - }, - A_module_cannot_have_more_than_one_export_assignment: { - code: 2308, - category: 1, - key: "A module cannot have more than one export assignment." - }, - An_export_assignment_cannot_be_used_in_a_module_with_other_exported_elements: { - code: 2309, - category: 1, - key: "An export assignment cannot be used in a module with other exported elements." - }, - Type_0_recursively_references_itself_as_a_base_type: { - code: 2310, - category: 1, - key: "Type '{0}' recursively references itself as a base type." - }, - A_class_may_only_extend_another_class: { - code: 2311, - category: 1, - key: "A class may only extend another class." - }, - An_interface_may_only_extend_a_class_or_another_interface: { - code: 2312, - category: 1, - key: "An interface may only extend a class or another interface." - }, - Constraint_of_a_type_parameter_cannot_reference_any_type_parameter_from_the_same_type_parameter_list: { - code: 2313, - category: 1, - key: "Constraint of a type parameter cannot reference any type parameter from the same type parameter list." - }, - Generic_type_0_requires_1_type_argument_s: { - code: 2314, - category: 1, - key: "Generic type '{0}' requires {1} type argument(s)." - }, - Type_0_is_not_generic: { - code: 2315, - category: 1, - key: "Type '{0}' is not generic." - }, - Global_type_0_must_be_a_class_or_interface_type: { - code: 2316, - category: 1, - key: "Global type '{0}' must be a class or interface type." - }, - Global_type_0_must_have_1_type_parameter_s: { - code: 2317, - category: 1, - key: "Global type '{0}' must have {1} type parameter(s)." - }, - Cannot_find_global_type_0: { - code: 2318, - category: 1, - key: "Cannot find global type '{0}'." - }, - Named_property_0_of_types_1_and_2_are_not_identical: { - code: 2319, - category: 1, - key: "Named property '{0}' of types '{1}' and '{2}' are not identical." - }, - Interface_0_cannot_simultaneously_extend_types_1_and_2: { - code: 2320, - category: 1, - key: "Interface '{0}' cannot simultaneously extend types '{1}' and '{2}'." - }, - Excessive_stack_depth_comparing_types_0_and_1: { - code: 2321, - category: 1, - key: "Excessive stack depth comparing types '{0}' and '{1}'." - }, - Type_0_is_not_assignable_to_type_1: { - code: 2322, - category: 1, - key: "Type '{0}' is not assignable to type '{1}'." - }, - Property_0_is_missing_in_type_1: { - code: 2324, - category: 1, - key: "Property '{0}' is missing in type '{1}'." - }, - Property_0_is_private_in_type_1_but_not_in_type_2: { - code: 2325, - category: 1, - key: "Property '{0}' is private in type '{1}' but not in type '{2}'." - }, - Types_of_property_0_are_incompatible: { - code: 2326, - category: 1, - key: "Types of property '{0}' are incompatible." - }, - Property_0_is_optional_in_type_1_but_required_in_type_2: { - code: 2327, - category: 1, - key: "Property '{0}' is optional in type '{1}' but required in type '{2}'." - }, - Types_of_parameters_0_and_1_are_incompatible: { - code: 2328, - category: 1, - key: "Types of parameters '{0}' and '{1}' are incompatible." - }, - Index_signature_is_missing_in_type_0: { - code: 2329, - category: 1, - key: "Index signature is missing in type '{0}'." - }, - Index_signatures_are_incompatible: { - code: 2330, - category: 1, - key: "Index signatures are incompatible." - }, - this_cannot_be_referenced_in_a_module_body: { - code: 2331, - category: 1, - key: "'this' cannot be referenced in a module body." - }, - this_cannot_be_referenced_in_current_location: { - code: 2332, - category: 1, - key: "'this' cannot be referenced in current location." - }, - this_cannot_be_referenced_in_constructor_arguments: { - code: 2333, - category: 1, - key: "'this' cannot be referenced in constructor arguments." - }, - this_cannot_be_referenced_in_a_static_property_initializer: { - code: 2334, - category: 1, - key: "'this' cannot be referenced in a static property initializer." - }, - super_can_only_be_referenced_in_a_derived_class: { - code: 2335, - category: 1, - key: "'super' can only be referenced in a derived class." - }, - super_cannot_be_referenced_in_constructor_arguments: { - code: 2336, - category: 1, - key: "'super' cannot be referenced in constructor arguments." - }, - Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors: { - code: 2337, - category: 1, - key: "Super calls are not permitted outside constructors or in nested functions inside constructors" - }, - super_property_access_is_permitted_only_in_a_constructor_member_function_or_member_accessor_of_a_derived_class: { - code: 2338, - category: 1, - key: "'super' property access is permitted only in a constructor, member function, or member accessor of a derived class" - }, - Property_0_does_not_exist_on_type_1: { - code: 2339, - category: 1, - key: "Property '{0}' does not exist on type '{1}'." - }, - Only_public_and_protected_methods_of_the_base_class_are_accessible_via_the_super_keyword: { - code: 2340, - category: 1, - key: "Only public and protected methods of the base class are accessible via the 'super' keyword" - }, - Property_0_is_private_and_only_accessible_within_class_1: { - code: 2341, - category: 1, - key: "Property '{0}' is private and only accessible within class '{1}'." - }, - An_index_expression_argument_must_be_of_type_string_number_symbol_or_any: { - code: 2342, - category: 1, - key: "An index expression argument must be of type 'string', 'number', 'symbol, or 'any'." - }, - Type_0_does_not_satisfy_the_constraint_1: { - code: 2344, - category: 1, - key: "Type '{0}' does not satisfy the constraint '{1}'." - }, - Argument_of_type_0_is_not_assignable_to_parameter_of_type_1: { - code: 2345, - category: 1, - key: "Argument of type '{0}' is not assignable to parameter of type '{1}'." - }, - Supplied_parameters_do_not_match_any_signature_of_call_target: { - code: 2346, - category: 1, - key: "Supplied parameters do not match any signature of call target." - }, - Untyped_function_calls_may_not_accept_type_arguments: { - code: 2347, - category: 1, - key: "Untyped function calls may not accept type arguments." - }, - Value_of_type_0_is_not_callable_Did_you_mean_to_include_new: { - code: 2348, - category: 1, - key: "Value of type '{0}' is not callable. Did you mean to include 'new'?" - }, - Cannot_invoke_an_expression_whose_type_lacks_a_call_signature: { - code: 2349, - category: 1, - key: "Cannot invoke an expression whose type lacks a call signature." - }, - Only_a_void_function_can_be_called_with_the_new_keyword: { - code: 2350, - category: 1, - key: "Only a void function can be called with the 'new' keyword." - }, - Cannot_use_new_with_an_expression_whose_type_lacks_a_call_or_construct_signature: { - code: 2351, - category: 1, - key: "Cannot use 'new' with an expression whose type lacks a call or construct signature." - }, - Neither_type_0_nor_type_1_is_assignable_to_the_other: { - code: 2352, - category: 1, - key: "Neither type '{0}' nor type '{1}' is assignable to the other." - }, - No_best_common_type_exists_among_return_expressions: { - code: 2354, - category: 1, - key: "No best common type exists among return expressions." - }, - A_function_whose_declared_type_is_neither_void_nor_any_must_return_a_value_or_consist_of_a_single_throw_statement: { - code: 2355, - category: 1, - key: "A function whose declared type is neither 'void' nor 'any' must return a value or consist of a single 'throw' statement." - }, - An_arithmetic_operand_must_be_of_type_any_number_or_an_enum_type: { - code: 2356, - category: 1, - key: "An arithmetic operand must be of type 'any', 'number' or an enum type." - }, - The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_property_or_indexer: { - code: 2357, - category: 1, - key: "The operand of an increment or decrement operator must be a variable, property or indexer." - }, - The_left_hand_side_of_an_instanceof_expression_must_be_of_type_any_an_object_type_or_a_type_parameter: { - code: 2358, - category: 1, - key: "The left-hand side of an 'instanceof' expression must be of type 'any', an object type or a type parameter." - }, - The_right_hand_side_of_an_instanceof_expression_must_be_of_type_any_or_of_a_type_assignable_to_the_Function_interface_type: { - code: 2359, - category: 1, - key: "The right-hand side of an 'instanceof' expression must be of type 'any' or of a type assignable to the 'Function' interface type." - }, - The_left_hand_side_of_an_in_expression_must_be_of_type_any_string_number_or_symbol: { - code: 2360, - category: 1, - key: "The left-hand side of an 'in' expression must be of type 'any', 'string', 'number', or 'symbol'." - }, - The_right_hand_side_of_an_in_expression_must_be_of_type_any_an_object_type_or_a_type_parameter: { - code: 2361, - category: 1, - key: "The right-hand side of an 'in' expression must be of type 'any', an object type or a type parameter" - }, - The_left_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_or_an_enum_type: { - code: 2362, - category: 1, - key: "The left-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type." - }, - The_right_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_or_an_enum_type: { - code: 2363, - category: 1, - key: "The right-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type." - }, - Invalid_left_hand_side_of_assignment_expression: { - code: 2364, - category: 1, - key: "Invalid left-hand side of assignment expression." - }, - Operator_0_cannot_be_applied_to_types_1_and_2: { - code: 2365, - category: 1, - key: "Operator '{0}' cannot be applied to types '{1}' and '{2}'." - }, - Type_parameter_name_cannot_be_0: { - code: 2368, - category: 1, - key: "Type parameter name cannot be '{0}'" - }, - A_parameter_property_is_only_allowed_in_a_constructor_implementation: { - code: 2369, - category: 1, - key: "A parameter property is only allowed in a constructor implementation." - }, - A_rest_parameter_must_be_of_an_array_type: { - code: 2370, - category: 1, - key: "A rest parameter must be of an array type." - }, - A_parameter_initializer_is_only_allowed_in_a_function_or_constructor_implementation: { - code: 2371, - category: 1, - key: "A parameter initializer is only allowed in a function or constructor implementation." - }, - Parameter_0_cannot_be_referenced_in_its_initializer: { - code: 2372, - category: 1, - key: "Parameter '{0}' cannot be referenced in its initializer." - }, - Initializer_of_parameter_0_cannot_reference_identifier_1_declared_after_it: { - code: 2373, - category: 1, - key: "Initializer of parameter '{0}' cannot reference identifier '{1}' declared after it." - }, - Duplicate_string_index_signature: { - code: 2374, - category: 1, - key: "Duplicate string index signature." - }, - Duplicate_number_index_signature: { - code: 2375, - category: 1, - key: "Duplicate number index signature." - }, - A_super_call_must_be_the_first_statement_in_the_constructor_when_a_class_contains_initialized_properties_or_has_parameter_properties: { - code: 2376, - category: 1, - key: "A 'super' call must be the first statement in the constructor when a class contains initialized properties or has parameter properties." - }, - Constructors_for_derived_classes_must_contain_a_super_call: { - code: 2377, - category: 1, - key: "Constructors for derived classes must contain a 'super' call." - }, - A_get_accessor_must_return_a_value_or_consist_of_a_single_throw_statement: { - code: 2378, - category: 1, - key: "A 'get' accessor must return a value or consist of a single 'throw' statement." - }, - Getter_and_setter_accessors_do_not_agree_in_visibility: { - code: 2379, - category: 1, - key: "Getter and setter accessors do not agree in visibility." - }, - get_and_set_accessor_must_have_the_same_type: { - code: 2380, - category: 1, - key: "'get' and 'set' accessor must have the same type." - }, - A_signature_with_an_implementation_cannot_use_a_string_literal_type: { - code: 2381, - category: 1, - key: "A signature with an implementation cannot use a string literal type." - }, - Specialized_overload_signature_is_not_assignable_to_any_non_specialized_signature: { - code: 2382, - category: 1, - key: "Specialized overload signature is not assignable to any non-specialized signature." - }, - Overload_signatures_must_all_be_exported_or_not_exported: { - code: 2383, - category: 1, - key: "Overload signatures must all be exported or not exported." - }, - Overload_signatures_must_all_be_ambient_or_non_ambient: { - code: 2384, - category: 1, - key: "Overload signatures must all be ambient or non-ambient." - }, - Overload_signatures_must_all_be_public_private_or_protected: { - code: 2385, - category: 1, - key: "Overload signatures must all be public, private or protected." - }, - Overload_signatures_must_all_be_optional_or_required: { - code: 2386, - category: 1, - key: "Overload signatures must all be optional or required." - }, - Function_overload_must_be_static: { - code: 2387, - category: 1, - key: "Function overload must be static." - }, - Function_overload_must_not_be_static: { - code: 2388, - category: 1, - key: "Function overload must not be static." - }, - Function_implementation_name_must_be_0: { - code: 2389, - category: 1, - key: "Function implementation name must be '{0}'." - }, - Constructor_implementation_is_missing: { - code: 2390, - category: 1, - key: "Constructor implementation is missing." - }, - Function_implementation_is_missing_or_not_immediately_following_the_declaration: { - code: 2391, - category: 1, - key: "Function implementation is missing or not immediately following the declaration." - }, - Multiple_constructor_implementations_are_not_allowed: { - code: 2392, - category: 1, - key: "Multiple constructor implementations are not allowed." - }, - Duplicate_function_implementation: { - code: 2393, - category: 1, - key: "Duplicate function implementation." - }, - Overload_signature_is_not_compatible_with_function_implementation: { - code: 2394, - category: 1, - key: "Overload signature is not compatible with function implementation." - }, - Individual_declarations_in_merged_declaration_0_must_be_all_exported_or_all_local: { - code: 2395, - category: 1, - key: "Individual declarations in merged declaration {0} must be all exported or all local." - }, - Duplicate_identifier_arguments_Compiler_uses_arguments_to_initialize_rest_parameters: { - code: 2396, - category: 1, - key: "Duplicate identifier 'arguments'. Compiler uses 'arguments' to initialize rest parameters." - }, - Duplicate_identifier_this_Compiler_uses_variable_declaration_this_to_capture_this_reference: { - code: 2399, - category: 1, - key: "Duplicate identifier '_this'. Compiler uses variable declaration '_this' to capture 'this' reference." - }, - Expression_resolves_to_variable_declaration_this_that_compiler_uses_to_capture_this_reference: { - code: 2400, - category: 1, - key: "Expression resolves to variable declaration '_this' that compiler uses to capture 'this' reference." - }, - Duplicate_identifier_super_Compiler_uses_super_to_capture_base_class_reference: { - code: 2401, - category: 1, - key: "Duplicate identifier '_super'. Compiler uses '_super' to capture base class reference." - }, - Expression_resolves_to_super_that_compiler_uses_to_capture_base_class_reference: { - code: 2402, - category: 1, - key: "Expression resolves to '_super' that compiler uses to capture base class reference." - }, - Subsequent_variable_declarations_must_have_the_same_type_Variable_0_must_be_of_type_1_but_here_has_type_2: { - code: 2403, - category: 1, - key: "Subsequent variable declarations must have the same type. Variable '{0}' must be of type '{1}', but here has type '{2}'." - }, - The_left_hand_side_of_a_for_in_statement_cannot_use_a_type_annotation: { - code: 2404, - category: 1, - key: "The left-hand side of a 'for...in' statement cannot use a type annotation." - }, - The_left_hand_side_of_a_for_in_statement_must_be_of_type_string_or_any: { - code: 2405, - category: 1, - key: "The left-hand side of a 'for...in' statement must be of type 'string' or 'any'." - }, - Invalid_left_hand_side_in_for_in_statement: { - code: 2406, - category: 1, - key: "Invalid left-hand side in 'for...in' statement." - }, - The_right_hand_side_of_a_for_in_statement_must_be_of_type_any_an_object_type_or_a_type_parameter: { - code: 2407, - category: 1, - key: "The right-hand side of a 'for...in' statement must be of type 'any', an object type or a type parameter." - }, - Setters_cannot_return_a_value: { - code: 2408, - category: 1, - key: "Setters cannot return a value." - }, - Return_type_of_constructor_signature_must_be_assignable_to_the_instance_type_of_the_class: { - code: 2409, - category: 1, - key: "Return type of constructor signature must be assignable to the instance type of the class" - }, - All_symbols_within_a_with_block_will_be_resolved_to_any: { - code: 2410, - category: 1, - key: "All symbols within a 'with' block will be resolved to 'any'." - }, - Property_0_of_type_1_is_not_assignable_to_string_index_type_2: { - code: 2411, - category: 1, - key: "Property '{0}' of type '{1}' is not assignable to string index type '{2}'." - }, - Property_0_of_type_1_is_not_assignable_to_numeric_index_type_2: { - code: 2412, - category: 1, - key: "Property '{0}' of type '{1}' is not assignable to numeric index type '{2}'." - }, - Numeric_index_type_0_is_not_assignable_to_string_index_type_1: { - code: 2413, - category: 1, - key: "Numeric index type '{0}' is not assignable to string index type '{1}'." - }, - Class_name_cannot_be_0: { - code: 2414, - category: 1, - key: "Class name cannot be '{0}'" - }, - Class_0_incorrectly_extends_base_class_1: { - code: 2415, - category: 1, - key: "Class '{0}' incorrectly extends base class '{1}'." - }, - Class_static_side_0_incorrectly_extends_base_class_static_side_1: { - code: 2417, - category: 1, - key: "Class static side '{0}' incorrectly extends base class static side '{1}'." - }, - Type_name_0_in_extends_clause_does_not_reference_constructor_function_for_0: { - code: 2419, - category: 1, - key: "Type name '{0}' in extends clause does not reference constructor function for '{0}'." - }, - Class_0_incorrectly_implements_interface_1: { - code: 2420, - category: 1, - key: "Class '{0}' incorrectly implements interface '{1}'." - }, - A_class_may_only_implement_another_class_or_interface: { - code: 2422, - category: 1, - key: "A class may only implement another class or interface." - }, - Class_0_defines_instance_member_function_1_but_extended_class_2_defines_it_as_instance_member_accessor: { - code: 2423, - category: 1, - key: "Class '{0}' defines instance member function '{1}', but extended class '{2}' defines it as instance member accessor." - }, - Class_0_defines_instance_member_function_1_but_extended_class_2_defines_it_as_instance_member_property: { - code: 2424, - category: 1, - key: "Class '{0}' defines instance member function '{1}', but extended class '{2}' defines it as instance member property." - }, - Class_0_defines_instance_member_property_1_but_extended_class_2_defines_it_as_instance_member_function: { - code: 2425, - category: 1, - key: "Class '{0}' defines instance member property '{1}', but extended class '{2}' defines it as instance member function." - }, - Class_0_defines_instance_member_accessor_1_but_extended_class_2_defines_it_as_instance_member_function: { - code: 2426, - category: 1, - key: "Class '{0}' defines instance member accessor '{1}', but extended class '{2}' defines it as instance member function." - }, - Interface_name_cannot_be_0: { - code: 2427, - category: 1, - key: "Interface name cannot be '{0}'" - }, - All_declarations_of_an_interface_must_have_identical_type_parameters: { - code: 2428, - category: 1, - key: "All declarations of an interface must have identical type parameters." - }, - Interface_0_incorrectly_extends_interface_1: { - code: 2430, - category: 1, - key: "Interface '{0}' incorrectly extends interface '{1}'." - }, - Enum_name_cannot_be_0: { - code: 2431, - category: 1, - key: "Enum name cannot be '{0}'" - }, - In_an_enum_with_multiple_declarations_only_one_declaration_can_omit_an_initializer_for_its_first_enum_element: { - code: 2432, - category: 1, - key: "In an enum with multiple declarations, only one declaration can omit an initializer for its first enum element." - }, - A_module_declaration_cannot_be_in_a_different_file_from_a_class_or_function_with_which_it_is_merged: { - code: 2433, - category: 1, - key: "A module declaration cannot be in a different file from a class or function with which it is merged" - }, - A_module_declaration_cannot_be_located_prior_to_a_class_or_function_with_which_it_is_merged: { - code: 2434, - category: 1, - key: "A module declaration cannot be located prior to a class or function with which it is merged" - }, - Ambient_external_modules_cannot_be_nested_in_other_modules: { - code: 2435, - category: 1, - key: "Ambient external modules cannot be nested in other modules." - }, - Ambient_external_module_declaration_cannot_specify_relative_module_name: { - code: 2436, - category: 1, - key: "Ambient external module declaration cannot specify relative module name." - }, - Module_0_is_hidden_by_a_local_declaration_with_the_same_name: { - code: 2437, - category: 1, - key: "Module '{0}' is hidden by a local declaration with the same name" - }, - Import_name_cannot_be_0: { - code: 2438, - category: 1, - key: "Import name cannot be '{0}'" - }, - Import_or_export_declaration_in_an_ambient_external_module_declaration_cannot_reference_external_module_through_relative_external_module_name: { - code: 2439, - category: 1, - key: "Import or export declaration in an ambient external module declaration cannot reference external module through relative external module name." - }, - Import_declaration_conflicts_with_local_declaration_of_0: { - code: 2440, - category: 1, - key: "Import declaration conflicts with local declaration of '{0}'" - }, - Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_an_external_module: { - code: 2441, - category: 1, - key: "Duplicate identifier '{0}'. Compiler reserves name '{1}' in top level scope of an external module." - }, - Types_have_separate_declarations_of_a_private_property_0: { - code: 2442, - category: 1, - key: "Types have separate declarations of a private property '{0}'." - }, - Property_0_is_protected_but_type_1_is_not_a_class_derived_from_2: { - code: 2443, - category: 1, - key: "Property '{0}' is protected but type '{1}' is not a class derived from '{2}'." - }, - Property_0_is_protected_in_type_1_but_public_in_type_2: { - code: 2444, - category: 1, - key: "Property '{0}' is protected in type '{1}' but public in type '{2}'." - }, - Property_0_is_protected_and_only_accessible_within_class_1_and_its_subclasses: { - code: 2445, - category: 1, - key: "Property '{0}' is protected and only accessible within class '{1}' and its subclasses." - }, - Property_0_is_protected_and_only_accessible_through_an_instance_of_class_1: { - code: 2446, - category: 1, - key: "Property '{0}' is protected and only accessible through an instance of class '{1}'." - }, - The_0_operator_is_not_allowed_for_boolean_types_Consider_using_1_instead: { - code: 2447, - category: 1, - key: "The '{0}' operator is not allowed for boolean types. Consider using '{1}' instead." - }, - Block_scoped_variable_0_used_before_its_declaration: { - code: 2448, - category: 1, - key: "Block-scoped variable '{0}' used before its declaration." - }, - The_operand_of_an_increment_or_decrement_operator_cannot_be_a_constant: { - code: 2449, - category: 1, - key: "The operand of an increment or decrement operator cannot be a constant." - }, - Left_hand_side_of_assignment_expression_cannot_be_a_constant: { - code: 2450, - category: 1, - key: "Left-hand side of assignment expression cannot be a constant." - }, - Cannot_redeclare_block_scoped_variable_0: { - code: 2451, - category: 1, - key: "Cannot redeclare block-scoped variable '{0}'." - }, - An_enum_member_cannot_have_a_numeric_name: { - code: 2452, - category: 1, - key: "An enum member cannot have a numeric name." - }, - The_type_argument_for_type_parameter_0_cannot_be_inferred_from_the_usage_Consider_specifying_the_type_arguments_explicitly: { - code: 2453, - category: 1, - key: "The type argument for type parameter '{0}' cannot be inferred from the usage. Consider specifying the type arguments explicitly." - }, - Type_argument_candidate_1_is_not_a_valid_type_argument_because_it_is_not_a_supertype_of_candidate_0: { - code: 2455, - category: 1, - key: "Type argument candidate '{1}' is not a valid type argument because it is not a supertype of candidate '{0}'." - }, - Type_alias_0_circularly_references_itself: { - code: 2456, - category: 1, - key: "Type alias '{0}' circularly references itself." - }, - Type_alias_name_cannot_be_0: { - code: 2457, - category: 1, - key: "Type alias name cannot be '{0}'" - }, - An_AMD_module_cannot_have_multiple_name_assignments: { - code: 2458, - category: 1, - key: "An AMD module cannot have multiple name assignments." - }, - Type_0_has_no_property_1_and_no_string_index_signature: { - code: 2459, - category: 1, - key: "Type '{0}' has no property '{1}' and no string index signature." - }, - Type_0_has_no_property_1: { - code: 2460, - category: 1, - key: "Type '{0}' has no property '{1}'." - }, - Type_0_is_not_an_array_type: { - code: 2461, - category: 1, - key: "Type '{0}' is not an array type." - }, - A_rest_element_must_be_last_in_an_array_destructuring_pattern: { - code: 2462, - category: 1, - key: "A rest element must be last in an array destructuring pattern" - }, - A_binding_pattern_parameter_cannot_be_optional_in_an_implementation_signature: { - code: 2463, - category: 1, - key: "A binding pattern parameter cannot be optional in an implementation signature." - }, - A_computed_property_name_must_be_of_type_string_number_symbol_or_any: { - code: 2464, - category: 1, - key: "A computed property name must be of type 'string', 'number', 'symbol', or 'any'." - }, - this_cannot_be_referenced_in_a_computed_property_name: { - code: 2465, - category: 1, - key: "'this' cannot be referenced in a computed property name." - }, - super_cannot_be_referenced_in_a_computed_property_name: { - code: 2466, - category: 1, - key: "'super' cannot be referenced in a computed property name." - }, - A_computed_property_name_cannot_reference_a_type_parameter_from_its_containing_type: { - code: 2467, - category: 1, - key: "A computed property name cannot reference a type parameter from its containing type." - }, - Cannot_find_global_value_0: { - code: 2468, - category: 1, - key: "Cannot find global value '{0}'." - }, - The_0_operator_cannot_be_applied_to_type_symbol: { - code: 2469, - category: 1, - key: "The '{0}' operator cannot be applied to type 'symbol'." - }, - Symbol_reference_does_not_refer_to_the_global_Symbol_constructor_object: { - code: 2470, - category: 1, - key: "'Symbol' reference does not refer to the global Symbol constructor object." - }, - A_computed_property_name_of_the_form_0_must_be_of_type_symbol: { - code: 2471, - category: 1, - key: "A computed property name of the form '{0}' must be of type 'symbol'." - }, - Spread_operator_in_new_expressions_is_only_available_when_targeting_ECMAScript_6_and_higher: { - code: 2472, - category: 1, - key: "Spread operator in 'new' expressions is only available when targeting ECMAScript 6 and higher." - }, - Enum_declarations_must_all_be_const_or_non_const: { - code: 2473, - category: 1, - key: "Enum declarations must all be const or non-const." - }, - In_const_enum_declarations_member_initializer_must_be_constant_expression: { - code: 2474, - category: 1, - key: "In 'const' enum declarations member initializer must be constant expression." - }, - const_enums_can_only_be_used_in_property_or_index_access_expressions_or_the_right_hand_side_of_an_import_declaration_or_export_assignment: { - code: 2475, - category: 1, - key: "'const' enums can only be used in property or index access expressions or the right hand side of an import declaration or export assignment." - }, - A_const_enum_member_can_only_be_accessed_using_a_string_literal: { - code: 2476, - category: 1, - key: "A const enum member can only be accessed using a string literal." - }, - const_enum_member_initializer_was_evaluated_to_a_non_finite_value: { - code: 2477, - category: 1, - key: "'const' enum member initializer was evaluated to a non-finite value." - }, - const_enum_member_initializer_was_evaluated_to_disallowed_value_NaN: { - code: 2478, - category: 1, - key: "'const' enum member initializer was evaluated to disallowed value 'NaN'." - }, - Property_0_does_not_exist_on_const_enum_1: { - code: 2479, - category: 1, - key: "Property '{0}' does not exist on 'const' enum '{1}'." - }, - let_is_not_allowed_to_be_used_as_a_name_in_let_or_const_declarations: { - code: 2480, - category: 1, - key: "'let' is not allowed to be used as a name in 'let' or 'const' declarations." - }, - Cannot_initialize_outer_scoped_variable_0_in_the_same_scope_as_block_scoped_declaration_1: { - code: 2481, - category: 1, - key: "Cannot initialize outer scoped variable '{0}' in the same scope as block scoped declaration '{1}'." - }, - The_left_hand_side_of_a_for_of_statement_cannot_use_a_type_annotation: { - code: 2483, - category: 1, - key: "The left-hand side of a 'for...of' statement cannot use a type annotation." - }, - Export_declaration_conflicts_with_exported_declaration_of_0: { - code: 2484, - category: 1, - key: "Export declaration conflicts with exported declaration of '{0}'" - }, - The_left_hand_side_of_a_for_of_statement_cannot_be_a_previously_defined_constant: { - code: 2485, - category: 1, - key: "The left-hand side of a 'for...of' statement cannot be a previously defined constant." - }, - The_left_hand_side_of_a_for_in_statement_cannot_be_a_previously_defined_constant: { - code: 2486, - category: 1, - key: "The left-hand side of a 'for...in' statement cannot be a previously defined constant." - }, - Invalid_left_hand_side_in_for_of_statement: { - code: 2487, - category: 1, - key: "Invalid left-hand side in 'for...of' statement." - }, - The_right_hand_side_of_a_for_of_statement_must_have_a_Symbol_iterator_method_that_returns_an_iterator: { - code: 2488, - category: 1, - key: "The right-hand side of a 'for...of' statement must have a '[Symbol.iterator]()' method that returns an iterator." - }, - The_iterator_returned_by_the_right_hand_side_of_a_for_of_statement_must_have_a_next_method: { - code: 2489, - category: 1, - key: "The iterator returned by the right-hand side of a 'for...of' statement must have a 'next()' method." - }, - The_type_returned_by_the_next_method_of_an_iterator_must_have_a_value_property: { - code: 2490, - category: 1, - key: "The type returned by the 'next()' method of an iterator must have a 'value' property." - }, - The_left_hand_side_of_a_for_in_statement_cannot_be_a_destructuring_pattern: { - code: 2491, - category: 1, - key: "The left-hand side of a 'for...in' statement cannot be a destructuring pattern." - }, - Cannot_redeclare_identifier_0_in_catch_clause: { - code: 2492, - category: 1, - key: "Cannot redeclare identifier '{0}' in catch clause" - }, - Tuple_type_0_with_length_1_cannot_be_assigned_to_tuple_with_length_2: { - code: 2493, - category: 1, - key: "Tuple type '{0}' with length '{1}' cannot be assigned to tuple with length '{2}'." - }, - Using_a_string_in_a_for_of_statement_is_only_supported_in_ECMAScript_5_and_higher: { - code: 2494, - category: 1, - key: "Using a string in a 'for...of' statement is only supported in ECMAScript 5 and higher." - }, - Type_0_is_not_an_array_type_or_a_string_type: { - code: 2461, - category: 1, - key: "Type '{0}' is not an array type or a string type." - }, - Import_declaration_0_is_using_private_name_1: { - code: 4000, - category: 1, - key: "Import declaration '{0}' is using private name '{1}'." - }, - Type_parameter_0_of_exported_class_has_or_is_using_private_name_1: { - code: 4002, - category: 1, - key: "Type parameter '{0}' of exported class has or is using private name '{1}'." - }, - Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1: { - code: 4004, - category: 1, - key: "Type parameter '{0}' of exported interface has or is using private name '{1}'." - }, - Type_parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1: { - code: 4006, - category: 1, - key: "Type parameter '{0}' of constructor signature from exported interface has or is using private name '{1}'." - }, - Type_parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1: { - code: 4008, - category: 1, - key: "Type parameter '{0}' of call signature from exported interface has or is using private name '{1}'." - }, - Type_parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1: { - code: 4010, - category: 1, - key: "Type parameter '{0}' of public static method from exported class has or is using private name '{1}'." - }, - Type_parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1: { - code: 4012, - category: 1, - key: "Type parameter '{0}' of public method from exported class has or is using private name '{1}'." - }, - Type_parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1: { - code: 4014, - category: 1, - key: "Type parameter '{0}' of method from exported interface has or is using private name '{1}'." - }, - Type_parameter_0_of_exported_function_has_or_is_using_private_name_1: { - code: 4016, - category: 1, - key: "Type parameter '{0}' of exported function has or is using private name '{1}'." - }, - Implements_clause_of_exported_class_0_has_or_is_using_private_name_1: { - code: 4019, - category: 1, - key: "Implements clause of exported class '{0}' has or is using private name '{1}'." - }, - Extends_clause_of_exported_class_0_has_or_is_using_private_name_1: { - code: 4020, - category: 1, - key: "Extends clause of exported class '{0}' has or is using private name '{1}'." - }, - Extends_clause_of_exported_interface_0_has_or_is_using_private_name_1: { - code: 4022, - category: 1, - key: "Extends clause of exported interface '{0}' has or is using private name '{1}'." - }, - Exported_variable_0_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: { - code: 4023, - category: 1, - key: "Exported variable '{0}' has or is using name '{1}' from external module {2} but cannot be named." - }, - Exported_variable_0_has_or_is_using_name_1_from_private_module_2: { - code: 4024, - category: 1, - key: "Exported variable '{0}' has or is using name '{1}' from private module '{2}'." - }, - Exported_variable_0_has_or_is_using_private_name_1: { - code: 4025, - category: 1, - key: "Exported variable '{0}' has or is using private name '{1}'." - }, - Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: { - code: 4026, - category: 1, - key: "Public static property '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named." - }, - Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2: { - code: 4027, - category: 1, - key: "Public static property '{0}' of exported class has or is using name '{1}' from private module '{2}'." - }, - Public_static_property_0_of_exported_class_has_or_is_using_private_name_1: { - code: 4028, - category: 1, - key: "Public static property '{0}' of exported class has or is using private name '{1}'." - }, - Public_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: { - code: 4029, - category: 1, - key: "Public property '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named." - }, - Public_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2: { - code: 4030, - category: 1, - key: "Public property '{0}' of exported class has or is using name '{1}' from private module '{2}'." - }, - Public_property_0_of_exported_class_has_or_is_using_private_name_1: { - code: 4031, - category: 1, - key: "Public property '{0}' of exported class has or is using private name '{1}'." - }, - Property_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2: { - code: 4032, - category: 1, - key: "Property '{0}' of exported interface has or is using name '{1}' from private module '{2}'." - }, - Property_0_of_exported_interface_has_or_is_using_private_name_1: { - code: 4033, - category: 1, - key: "Property '{0}' of exported interface has or is using private name '{1}'." - }, - Parameter_0_of_public_static_property_setter_from_exported_class_has_or_is_using_name_1_from_private_module_2: { - code: 4034, - category: 1, - key: "Parameter '{0}' of public static property setter from exported class has or is using name '{1}' from private module '{2}'." - }, - Parameter_0_of_public_static_property_setter_from_exported_class_has_or_is_using_private_name_1: { - code: 4035, - category: 1, - key: "Parameter '{0}' of public static property setter from exported class has or is using private name '{1}'." - }, - Parameter_0_of_public_property_setter_from_exported_class_has_or_is_using_name_1_from_private_module_2: { - code: 4036, - category: 1, - key: "Parameter '{0}' of public property setter from exported class has or is using name '{1}' from private module '{2}'." - }, - Parameter_0_of_public_property_setter_from_exported_class_has_or_is_using_private_name_1: { - code: 4037, - category: 1, - key: "Parameter '{0}' of public property setter from exported class has or is using private name '{1}'." - }, - Return_type_of_public_static_property_getter_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named: { - code: 4038, - category: 1, - key: "Return type of public static property getter from exported class has or is using name '{0}' from external module {1} but cannot be named." - }, - Return_type_of_public_static_property_getter_from_exported_class_has_or_is_using_name_0_from_private_module_1: { - code: 4039, - category: 1, - key: "Return type of public static property getter from exported class has or is using name '{0}' from private module '{1}'." - }, - Return_type_of_public_static_property_getter_from_exported_class_has_or_is_using_private_name_0: { - code: 4040, - category: 1, - key: "Return type of public static property getter from exported class has or is using private name '{0}'." - }, - Return_type_of_public_property_getter_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named: { - code: 4041, - category: 1, - key: "Return type of public property getter from exported class has or is using name '{0}' from external module {1} but cannot be named." - }, - Return_type_of_public_property_getter_from_exported_class_has_or_is_using_name_0_from_private_module_1: { - code: 4042, - category: 1, - key: "Return type of public property getter from exported class has or is using name '{0}' from private module '{1}'." - }, - Return_type_of_public_property_getter_from_exported_class_has_or_is_using_private_name_0: { - code: 4043, - category: 1, - key: "Return type of public property getter from exported class has or is using private name '{0}'." - }, - Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1: { - code: 4044, - category: 1, - key: "Return type of constructor signature from exported interface has or is using name '{0}' from private module '{1}'." - }, - Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_0: { - code: 4045, - category: 1, - key: "Return type of constructor signature from exported interface has or is using private name '{0}'." - }, - Return_type_of_call_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1: { - code: 4046, - category: 1, - key: "Return type of call signature from exported interface has or is using name '{0}' from private module '{1}'." - }, - Return_type_of_call_signature_from_exported_interface_has_or_is_using_private_name_0: { - code: 4047, - category: 1, - key: "Return type of call signature from exported interface has or is using private name '{0}'." - }, - Return_type_of_index_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1: { - code: 4048, - category: 1, - key: "Return type of index signature from exported interface has or is using name '{0}' from private module '{1}'." - }, - Return_type_of_index_signature_from_exported_interface_has_or_is_using_private_name_0: { - code: 4049, - category: 1, - key: "Return type of index signature from exported interface has or is using private name '{0}'." - }, - Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named: { - code: 4050, - category: 1, - key: "Return type of public static method from exported class has or is using name '{0}' from external module {1} but cannot be named." - }, - Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_private_module_1: { - code: 4051, - category: 1, - key: "Return type of public static method from exported class has or is using name '{0}' from private module '{1}'." - }, - Return_type_of_public_static_method_from_exported_class_has_or_is_using_private_name_0: { - code: 4052, - category: 1, - key: "Return type of public static method from exported class has or is using private name '{0}'." - }, - Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named: { - code: 4053, - category: 1, - key: "Return type of public method from exported class has or is using name '{0}' from external module {1} but cannot be named." - }, - Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_private_module_1: { - code: 4054, - category: 1, - key: "Return type of public method from exported class has or is using name '{0}' from private module '{1}'." - }, - Return_type_of_public_method_from_exported_class_has_or_is_using_private_name_0: { - code: 4055, - category: 1, - key: "Return type of public method from exported class has or is using private name '{0}'." - }, - Return_type_of_method_from_exported_interface_has_or_is_using_name_0_from_private_module_1: { - code: 4056, - category: 1, - key: "Return type of method from exported interface has or is using name '{0}' from private module '{1}'." - }, - Return_type_of_method_from_exported_interface_has_or_is_using_private_name_0: { - code: 4057, - category: 1, - key: "Return type of method from exported interface has or is using private name '{0}'." - }, - Return_type_of_exported_function_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named: { - code: 4058, - category: 1, - key: "Return type of exported function has or is using name '{0}' from external module {1} but cannot be named." - }, - Return_type_of_exported_function_has_or_is_using_name_0_from_private_module_1: { - code: 4059, - category: 1, - key: "Return type of exported function has or is using name '{0}' from private module '{1}'." - }, - Return_type_of_exported_function_has_or_is_using_private_name_0: { - code: 4060, - category: 1, - key: "Return type of exported function has or is using private name '{0}'." - }, - Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: { - code: 4061, - category: 1, - key: "Parameter '{0}' of constructor from exported class has or is using name '{1}' from external module {2} but cannot be named." - }, - Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_private_module_2: { - code: 4062, - category: 1, - key: "Parameter '{0}' of constructor from exported class has or is using name '{1}' from private module '{2}'." - }, - Parameter_0_of_constructor_from_exported_class_has_or_is_using_private_name_1: { - code: 4063, - category: 1, - key: "Parameter '{0}' of constructor from exported class has or is using private name '{1}'." - }, - Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2: { - code: 4064, - category: 1, - key: "Parameter '{0}' of constructor signature from exported interface has or is using name '{1}' from private module '{2}'." - }, - Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1: { - code: 4065, - category: 1, - key: "Parameter '{0}' of constructor signature from exported interface has or is using private name '{1}'." - }, - Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2: { - code: 4066, - category: 1, - key: "Parameter '{0}' of call signature from exported interface has or is using name '{1}' from private module '{2}'." - }, - Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1: { - code: 4067, - category: 1, - key: "Parameter '{0}' of call signature from exported interface has or is using private name '{1}'." - }, - Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: { - code: 4068, - category: 1, - key: "Parameter '{0}' of public static method from exported class has or is using name '{1}' from external module {2} but cannot be named." - }, - Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_private_module_2: { - code: 4069, - category: 1, - key: "Parameter '{0}' of public static method from exported class has or is using name '{1}' from private module '{2}'." - }, - Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1: { - code: 4070, - category: 1, - key: "Parameter '{0}' of public static method from exported class has or is using private name '{1}'." - }, - Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: { - code: 4071, - category: 1, - key: "Parameter '{0}' of public method from exported class has or is using name '{1}' from external module {2} but cannot be named." - }, - Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_private_module_2: { - code: 4072, - category: 1, - key: "Parameter '{0}' of public method from exported class has or is using name '{1}' from private module '{2}'." - }, - Parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1: { - code: 4073, - category: 1, - key: "Parameter '{0}' of public method from exported class has or is using private name '{1}'." - }, - Parameter_0_of_method_from_exported_interface_has_or_is_using_name_1_from_private_module_2: { - code: 4074, - category: 1, - key: "Parameter '{0}' of method from exported interface has or is using name '{1}' from private module '{2}'." - }, - Parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1: { - code: 4075, - category: 1, - key: "Parameter '{0}' of method from exported interface has or is using private name '{1}'." - }, - Parameter_0_of_exported_function_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: { - code: 4076, - category: 1, - key: "Parameter '{0}' of exported function has or is using name '{1}' from external module {2} but cannot be named." - }, - Parameter_0_of_exported_function_has_or_is_using_name_1_from_private_module_2: { - code: 4077, - category: 1, - key: "Parameter '{0}' of exported function has or is using name '{1}' from private module '{2}'." - }, - Parameter_0_of_exported_function_has_or_is_using_private_name_1: { - code: 4078, - category: 1, - key: "Parameter '{0}' of exported function has or is using private name '{1}'." - }, - Exported_type_alias_0_has_or_is_using_private_name_1: { - code: 4081, - category: 1, - key: "Exported type alias '{0}' has or is using private name '{1}'." - }, - Loop_contains_block_scoped_variable_0_referenced_by_a_function_in_the_loop_This_is_only_supported_in_ECMAScript_6_or_higher: { - code: 4091, - category: 1, - key: "Loop contains block-scoped variable '{0}' referenced by a function in the loop. This is only supported in ECMAScript 6 or higher." - }, - The_current_host_does_not_support_the_0_option: { - code: 5001, - category: 1, - key: "The current host does not support the '{0}' option." - }, - Cannot_find_the_common_subdirectory_path_for_the_input_files: { - code: 5009, - category: 1, - key: "Cannot find the common subdirectory path for the input files." - }, - Cannot_read_file_0_Colon_1: { - code: 5012, - category: 1, - key: "Cannot read file '{0}': {1}" - }, - Unsupported_file_encoding: { - code: 5013, - category: 1, - key: "Unsupported file encoding." - }, - Unknown_compiler_option_0: { - code: 5023, - category: 1, - key: "Unknown compiler option '{0}'." - }, - Compiler_option_0_requires_a_value_of_type_1: { - code: 5024, - category: 1, - key: "Compiler option '{0}' requires a value of type {1}." - }, - Could_not_write_file_0_Colon_1: { - code: 5033, - category: 1, - key: "Could not write file '{0}': {1}" - }, - Option_mapRoot_cannot_be_specified_without_specifying_sourcemap_option: { - code: 5038, - category: 1, - key: "Option 'mapRoot' cannot be specified without specifying 'sourcemap' option." - }, - Option_sourceRoot_cannot_be_specified_without_specifying_sourcemap_option: { - code: 5039, - category: 1, - key: "Option 'sourceRoot' cannot be specified without specifying 'sourcemap' option." - }, - Option_noEmit_cannot_be_specified_with_option_out_or_outDir: { - code: 5040, - category: 1, - key: "Option 'noEmit' cannot be specified with option 'out' or 'outDir'." - }, - Option_noEmit_cannot_be_specified_with_option_declaration: { - code: 5041, - category: 1, - key: "Option 'noEmit' cannot be specified with option 'declaration'." - }, - Option_project_cannot_be_mixed_with_source_files_on_a_command_line: { - code: 5042, - category: 1, - key: "Option 'project' cannot be mixed with source files on a command line." - }, - Concatenate_and_emit_output_to_single_file: { - code: 6001, - category: 2, - key: "Concatenate and emit output to single file." - }, - Generates_corresponding_d_ts_file: { - code: 6002, - category: 2, - key: "Generates corresponding '.d.ts' file." - }, - Specifies_the_location_where_debugger_should_locate_map_files_instead_of_generated_locations: { - code: 6003, - category: 2, - key: "Specifies the location where debugger should locate map files instead of generated locations." - }, - Specifies_the_location_where_debugger_should_locate_TypeScript_files_instead_of_source_locations: { - code: 6004, - category: 2, - key: "Specifies the location where debugger should locate TypeScript files instead of source locations." - }, - Watch_input_files: { - code: 6005, - category: 2, - key: "Watch input files." - }, - Redirect_output_structure_to_the_directory: { - code: 6006, - category: 2, - key: "Redirect output structure to the directory." - }, - Do_not_erase_const_enum_declarations_in_generated_code: { - code: 6007, - category: 2, - key: "Do not erase const enum declarations in generated code." - }, - Do_not_emit_outputs_if_any_type_checking_errors_were_reported: { - code: 6008, - category: 2, - key: "Do not emit outputs if any type checking errors were reported." - }, - Do_not_emit_comments_to_output: { - code: 6009, - category: 2, - key: "Do not emit comments to output." - }, - Do_not_emit_outputs: { - code: 6010, - category: 2, - key: "Do not emit outputs." - }, - Specify_ECMAScript_target_version_Colon_ES3_default_ES5_or_ES6_experimental: { - code: 6015, - category: 2, - key: "Specify ECMAScript target version: 'ES3' (default), 'ES5', or 'ES6' (experimental)" - }, - Specify_module_code_generation_Colon_commonjs_or_amd: { - code: 6016, - category: 2, - key: "Specify module code generation: 'commonjs' or 'amd'" - }, - Print_this_message: { - code: 6017, - category: 2, - key: "Print this message." - }, - Print_the_compiler_s_version: { - code: 6019, - category: 2, - key: "Print the compiler's version." - }, - Compile_the_project_in_the_given_directory: { - code: 6020, - category: 2, - key: "Compile the project in the given directory." - }, - Syntax_Colon_0: { - code: 6023, - category: 2, - key: "Syntax: {0}" - }, - options: { - code: 6024, - category: 2, - key: "options" - }, - file: { - code: 6025, - category: 2, - key: "file" - }, - Examples_Colon_0: { - code: 6026, - category: 2, - key: "Examples: {0}" - }, - Options_Colon: { - code: 6027, - category: 2, - key: "Options:" - }, - Version_0: { - code: 6029, - category: 2, - key: "Version {0}" - }, - Insert_command_line_options_and_files_from_a_file: { - code: 6030, - category: 2, - key: "Insert command line options and files from a file." - }, - File_change_detected_Starting_incremental_compilation: { - code: 6032, - category: 2, - key: "File change detected. Starting incremental compilation..." - }, - KIND: { - code: 6034, - category: 2, - key: "KIND" - }, - FILE: { - code: 6035, - category: 2, - key: "FILE" - }, - VERSION: { - code: 6036, - category: 2, - key: "VERSION" - }, - LOCATION: { - code: 6037, - category: 2, - key: "LOCATION" - }, - DIRECTORY: { - code: 6038, - category: 2, - key: "DIRECTORY" - }, - Compilation_complete_Watching_for_file_changes: { - code: 6042, - category: 2, - key: "Compilation complete. Watching for file changes." - }, - Generates_corresponding_map_file: { - code: 6043, - category: 2, - key: "Generates corresponding '.map' file." - }, - Compiler_option_0_expects_an_argument: { - code: 6044, - category: 1, - key: "Compiler option '{0}' expects an argument." - }, - Unterminated_quoted_string_in_response_file_0: { - code: 6045, - category: 1, - key: "Unterminated quoted string in response file '{0}'." - }, - Argument_for_module_option_must_be_commonjs_or_amd: { - code: 6046, - category: 1, - key: "Argument for '--module' option must be 'commonjs' or 'amd'." - }, - Argument_for_target_option_must_be_es3_es5_or_es6: { - code: 6047, - category: 1, - key: "Argument for '--target' option must be 'es3', 'es5', or 'es6'." - }, - Locale_must_be_of_the_form_language_or_language_territory_For_example_0_or_1: { - code: 6048, - category: 1, - key: "Locale must be of the form or -. For example '{0}' or '{1}'." - }, - Unsupported_locale_0: { - code: 6049, - category: 1, - key: "Unsupported locale '{0}'." - }, - Unable_to_open_file_0: { - code: 6050, - category: 1, - key: "Unable to open file '{0}'." - }, - Corrupted_locale_file_0: { - code: 6051, - category: 1, - key: "Corrupted locale file {0}." - }, - Raise_error_on_expressions_and_declarations_with_an_implied_any_type: { - code: 6052, - category: 2, - key: "Raise error on expressions and declarations with an implied 'any' type." - }, - File_0_not_found: { - code: 6053, - category: 1, - key: "File '{0}' not found." - }, - File_0_must_have_extension_ts_or_d_ts: { - code: 6054, - category: 1, - key: "File '{0}' must have extension '.ts' or '.d.ts'." - }, - Suppress_noImplicitAny_errors_for_indexing_objects_lacking_index_signatures: { - code: 6055, - category: 2, - key: "Suppress noImplicitAny errors for indexing objects lacking index signatures." - }, - Do_not_emit_declarations_for_code_that_has_an_internal_annotation: { - code: 6056, - category: 2, - key: "Do not emit declarations for code that has an '@internal' annotation." - }, - Preserve_new_lines_when_emitting_code: { - code: 6057, - category: 2, - key: "Preserve new-lines when emitting code." - }, - Variable_0_implicitly_has_an_1_type: { - code: 7005, - category: 1, - key: "Variable '{0}' implicitly has an '{1}' type." - }, - Parameter_0_implicitly_has_an_1_type: { - code: 7006, - category: 1, - key: "Parameter '{0}' implicitly has an '{1}' type." - }, - Member_0_implicitly_has_an_1_type: { - code: 7008, - category: 1, - key: "Member '{0}' implicitly has an '{1}' type." - }, - new_expression_whose_target_lacks_a_construct_signature_implicitly_has_an_any_type: { - code: 7009, - category: 1, - key: "'new' expression, whose target lacks a construct signature, implicitly has an 'any' type." - }, - _0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type: { - code: 7010, - category: 1, - key: "'{0}', which lacks return-type annotation, implicitly has an '{1}' return type." - }, - Function_expression_which_lacks_return_type_annotation_implicitly_has_an_0_return_type: { - code: 7011, - category: 1, - key: "Function expression, which lacks return-type annotation, implicitly has an '{0}' return type." - }, - Construct_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type: { - code: 7013, - category: 1, - key: "Construct signature, which lacks return-type annotation, implicitly has an 'any' return type." - }, - Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_type_annotation: { - code: 7016, - category: 1, - key: "Property '{0}' implicitly has type 'any', because its 'set' accessor lacks a type annotation." - }, - Index_signature_of_object_type_implicitly_has_an_any_type: { - code: 7017, - category: 1, - key: "Index signature of object type implicitly has an 'any' type." - }, - Object_literal_s_property_0_implicitly_has_an_1_type: { - code: 7018, - category: 1, - key: "Object literal's property '{0}' implicitly has an '{1}' type." - }, - Rest_parameter_0_implicitly_has_an_any_type: { - code: 7019, - category: 1, - key: "Rest parameter '{0}' implicitly has an 'any[]' type." - }, - Call_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type: { - code: 7020, - category: 1, - key: "Call signature, which lacks return-type annotation, implicitly has an 'any' return type." - }, - _0_implicitly_has_type_any_because_it_is_referenced_directly_or_indirectly_in_its_own_type_annotation: { - code: 7021, - category: 1, - key: "'{0}' implicitly has type 'any' because it is referenced directly or indirectly in its own type annotation." - }, - _0_implicitly_has_type_any_because_it_is_does_not_have_a_type_annotation_and_is_referenced_directly_or_indirectly_in_its_own_initializer: { - code: 7022, - category: 1, - key: "'{0}' implicitly has type 'any' because it is does not have a type annotation and is referenced directly or indirectly in its own initializer." - }, - _0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions: { - code: 7023, - category: 1, - key: "'{0}' implicitly has return type 'any' because it does not have a return type annotation and is referenced directly or indirectly in one of its return expressions." - }, - Function_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions: { - code: 7024, - category: 1, - key: "Function implicitly has return type 'any' because it does not have a return type annotation and is referenced directly or indirectly in one of its return expressions." - }, - You_cannot_rename_this_element: { - code: 8000, - category: 1, - key: "You cannot rename this element." - }, - You_cannot_rename_elements_that_are_defined_in_the_standard_TypeScript_library: { - code: 8001, - category: 1, - key: "You cannot rename elements that are defined in the standard TypeScript library." - }, - yield_expressions_are_not_currently_supported: { - code: 9000, - category: 1, - key: "'yield' expressions are not currently supported." - }, - Generators_are_not_currently_supported: { - code: 9001, - category: 1, - key: "Generators are not currently supported." - }, - The_arguments_object_cannot_be_referenced_in_an_arrow_function_Consider_using_a_standard_function_expression: { - code: 9002, - category: 1, - key: "The 'arguments' object cannot be referenced in an arrow function. Consider using a standard function expression." - } + Unterminated_string_literal: { code: 1002, category: 1, key: "Unterminated string literal." }, + Identifier_expected: { code: 1003, category: 1, key: "Identifier expected." }, + _0_expected: { code: 1005, category: 1, key: "'{0}' expected." }, + A_file_cannot_have_a_reference_to_itself: { code: 1006, category: 1, key: "A file cannot have a reference to itself." }, + Trailing_comma_not_allowed: { code: 1009, category: 1, key: "Trailing comma not allowed." }, + Asterisk_Slash_expected: { code: 1010, category: 1, key: "'*/' expected." }, + Unexpected_token: { code: 1012, category: 1, key: "Unexpected token." }, + A_rest_parameter_must_be_last_in_a_parameter_list: { code: 1014, category: 1, key: "A rest parameter must be last in a parameter list." }, + Parameter_cannot_have_question_mark_and_initializer: { code: 1015, category: 1, key: "Parameter cannot have question mark and initializer." }, + A_required_parameter_cannot_follow_an_optional_parameter: { code: 1016, category: 1, key: "A required parameter cannot follow an optional parameter." }, + An_index_signature_cannot_have_a_rest_parameter: { code: 1017, category: 1, key: "An index signature cannot have a rest parameter." }, + An_index_signature_parameter_cannot_have_an_accessibility_modifier: { code: 1018, category: 1, key: "An index signature parameter cannot have an accessibility modifier." }, + An_index_signature_parameter_cannot_have_a_question_mark: { code: 1019, category: 1, key: "An index signature parameter cannot have a question mark." }, + An_index_signature_parameter_cannot_have_an_initializer: { code: 1020, category: 1, key: "An index signature parameter cannot have an initializer." }, + An_index_signature_must_have_a_type_annotation: { code: 1021, category: 1, key: "An index signature must have a type annotation." }, + An_index_signature_parameter_must_have_a_type_annotation: { code: 1022, category: 1, key: "An index signature parameter must have a type annotation." }, + An_index_signature_parameter_type_must_be_string_or_number: { code: 1023, category: 1, key: "An index signature parameter type must be 'string' or 'number'." }, + A_class_or_interface_declaration_can_only_have_one_extends_clause: { code: 1024, category: 1, key: "A class or interface declaration can only have one 'extends' clause." }, + An_extends_clause_must_precede_an_implements_clause: { code: 1025, category: 1, key: "An 'extends' clause must precede an 'implements' clause." }, + A_class_can_only_extend_a_single_class: { code: 1026, category: 1, key: "A class can only extend a single class." }, + A_class_declaration_can_only_have_one_implements_clause: { code: 1027, category: 1, key: "A class declaration can only have one 'implements' clause." }, + Accessibility_modifier_already_seen: { code: 1028, category: 1, key: "Accessibility modifier already seen." }, + _0_modifier_must_precede_1_modifier: { code: 1029, category: 1, key: "'{0}' modifier must precede '{1}' modifier." }, + _0_modifier_already_seen: { code: 1030, category: 1, key: "'{0}' modifier already seen." }, + _0_modifier_cannot_appear_on_a_class_element: { code: 1031, category: 1, key: "'{0}' modifier cannot appear on a class element." }, + An_interface_declaration_cannot_have_an_implements_clause: { code: 1032, category: 1, key: "An interface declaration cannot have an 'implements' clause." }, + super_must_be_followed_by_an_argument_list_or_member_access: { code: 1034, category: 1, key: "'super' must be followed by an argument list or member access." }, + Only_ambient_modules_can_use_quoted_names: { code: 1035, category: 1, key: "Only ambient modules can use quoted names." }, + Statements_are_not_allowed_in_ambient_contexts: { code: 1036, category: 1, key: "Statements are not allowed in ambient contexts." }, + A_declare_modifier_cannot_be_used_in_an_already_ambient_context: { code: 1038, category: 1, key: "A 'declare' modifier cannot be used in an already ambient context." }, + Initializers_are_not_allowed_in_ambient_contexts: { code: 1039, category: 1, key: "Initializers are not allowed in ambient contexts." }, + _0_modifier_cannot_appear_on_a_module_element: { code: 1044, category: 1, key: "'{0}' modifier cannot appear on a module element." }, + A_declare_modifier_cannot_be_used_with_an_interface_declaration: { code: 1045, category: 1, key: "A 'declare' modifier cannot be used with an interface declaration." }, + A_declare_modifier_is_required_for_a_top_level_declaration_in_a_d_ts_file: { code: 1046, category: 1, key: "A 'declare' modifier is required for a top level declaration in a .d.ts file." }, + A_rest_parameter_cannot_be_optional: { code: 1047, category: 1, key: "A rest parameter cannot be optional." }, + A_rest_parameter_cannot_have_an_initializer: { code: 1048, category: 1, key: "A rest parameter cannot have an initializer." }, + A_set_accessor_must_have_exactly_one_parameter: { code: 1049, category: 1, key: "A 'set' accessor must have exactly one parameter." }, + A_set_accessor_cannot_have_an_optional_parameter: { code: 1051, category: 1, key: "A 'set' accessor cannot have an optional parameter." }, + A_set_accessor_parameter_cannot_have_an_initializer: { code: 1052, category: 1, key: "A 'set' accessor parameter cannot have an initializer." }, + A_set_accessor_cannot_have_rest_parameter: { code: 1053, category: 1, key: "A 'set' accessor cannot have rest parameter." }, + A_get_accessor_cannot_have_parameters: { code: 1054, category: 1, key: "A 'get' accessor cannot have parameters." }, + Accessors_are_only_available_when_targeting_ECMAScript_5_and_higher: { code: 1056, category: 1, key: "Accessors are only available when targeting ECMAScript 5 and higher." }, + Enum_member_must_have_initializer: { code: 1061, category: 1, key: "Enum member must have initializer." }, + An_export_assignment_cannot_be_used_in_an_internal_module: { code: 1063, category: 1, key: "An export assignment cannot be used in an internal module." }, + Ambient_enum_elements_can_only_have_integer_literal_initializers: { code: 1066, category: 1, key: "Ambient enum elements can only have integer literal initializers." }, + Unexpected_token_A_constructor_method_accessor_or_property_was_expected: { code: 1068, category: 1, key: "Unexpected token. A constructor, method, accessor, or property was expected." }, + A_declare_modifier_cannot_be_used_with_an_import_declaration: { code: 1079, category: 1, key: "A 'declare' modifier cannot be used with an import declaration." }, + Invalid_reference_directive_syntax: { code: 1084, category: 1, key: "Invalid 'reference' directive syntax." }, + Octal_literals_are_not_available_when_targeting_ECMAScript_5_and_higher: { code: 1085, category: 1, key: "Octal literals are not available when targeting ECMAScript 5 and higher." }, + An_accessor_cannot_be_declared_in_an_ambient_context: { code: 1086, category: 1, key: "An accessor cannot be declared in an ambient context." }, + _0_modifier_cannot_appear_on_a_constructor_declaration: { code: 1089, category: 1, key: "'{0}' modifier cannot appear on a constructor declaration." }, + _0_modifier_cannot_appear_on_a_parameter: { code: 1090, category: 1, key: "'{0}' modifier cannot appear on a parameter." }, + Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement: { code: 1091, category: 1, key: "Only a single variable declaration is allowed in a 'for...in' statement." }, + Type_parameters_cannot_appear_on_a_constructor_declaration: { code: 1092, category: 1, key: "Type parameters cannot appear on a constructor declaration." }, + Type_annotation_cannot_appear_on_a_constructor_declaration: { code: 1093, category: 1, key: "Type annotation cannot appear on a constructor declaration." }, + An_accessor_cannot_have_type_parameters: { code: 1094, category: 1, key: "An accessor cannot have type parameters." }, + A_set_accessor_cannot_have_a_return_type_annotation: { code: 1095, category: 1, key: "A 'set' accessor cannot have a return type annotation." }, + An_index_signature_must_have_exactly_one_parameter: { code: 1096, category: 1, key: "An index signature must have exactly one parameter." }, + _0_list_cannot_be_empty: { code: 1097, category: 1, key: "'{0}' list cannot be empty." }, + Type_parameter_list_cannot_be_empty: { code: 1098, category: 1, key: "Type parameter list cannot be empty." }, + Type_argument_list_cannot_be_empty: { code: 1099, category: 1, key: "Type argument list cannot be empty." }, + Invalid_use_of_0_in_strict_mode: { code: 1100, category: 1, key: "Invalid use of '{0}' in strict mode." }, + with_statements_are_not_allowed_in_strict_mode: { code: 1101, category: 1, key: "'with' statements are not allowed in strict mode." }, + delete_cannot_be_called_on_an_identifier_in_strict_mode: { code: 1102, category: 1, key: "'delete' cannot be called on an identifier in strict mode." }, + A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement: { code: 1104, category: 1, key: "A 'continue' statement can only be used within an enclosing iteration statement." }, + A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement: { code: 1105, category: 1, key: "A 'break' statement can only be used within an enclosing iteration or switch statement." }, + Jump_target_cannot_cross_function_boundary: { code: 1107, category: 1, key: "Jump target cannot cross function boundary." }, + A_return_statement_can_only_be_used_within_a_function_body: { code: 1108, category: 1, key: "A 'return' statement can only be used within a function body." }, + Expression_expected: { code: 1109, category: 1, key: "Expression expected." }, + Type_expected: { code: 1110, category: 1, key: "Type expected." }, + A_class_member_cannot_be_declared_optional: { code: 1112, category: 1, key: "A class member cannot be declared optional." }, + A_default_clause_cannot_appear_more_than_once_in_a_switch_statement: { code: 1113, category: 1, key: "A 'default' clause cannot appear more than once in a 'switch' statement." }, + Duplicate_label_0: { code: 1114, category: 1, key: "Duplicate label '{0}'" }, + A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement: { code: 1115, category: 1, key: "A 'continue' statement can only jump to a label of an enclosing iteration statement." }, + A_break_statement_can_only_jump_to_a_label_of_an_enclosing_statement: { code: 1116, category: 1, key: "A 'break' statement can only jump to a label of an enclosing statement." }, + An_object_literal_cannot_have_multiple_properties_with_the_same_name_in_strict_mode: { code: 1117, category: 1, key: "An object literal cannot have multiple properties with the same name in strict mode." }, + An_object_literal_cannot_have_multiple_get_Slashset_accessors_with_the_same_name: { code: 1118, category: 1, key: "An object literal cannot have multiple get/set accessors with the same name." }, + An_object_literal_cannot_have_property_and_accessor_with_the_same_name: { code: 1119, category: 1, key: "An object literal cannot have property and accessor with the same name." }, + An_export_assignment_cannot_have_modifiers: { code: 1120, category: 1, key: "An export assignment cannot have modifiers." }, + Octal_literals_are_not_allowed_in_strict_mode: { code: 1121, category: 1, key: "Octal literals are not allowed in strict mode." }, + A_tuple_type_element_list_cannot_be_empty: { code: 1122, category: 1, key: "A tuple type element list cannot be empty." }, + Variable_declaration_list_cannot_be_empty: { code: 1123, category: 1, key: "Variable declaration list cannot be empty." }, + Digit_expected: { code: 1124, category: 1, key: "Digit expected." }, + Hexadecimal_digit_expected: { code: 1125, category: 1, key: "Hexadecimal digit expected." }, + Unexpected_end_of_text: { code: 1126, category: 1, key: "Unexpected end of text." }, + Invalid_character: { code: 1127, category: 1, key: "Invalid character." }, + Declaration_or_statement_expected: { code: 1128, category: 1, key: "Declaration or statement expected." }, + Statement_expected: { code: 1129, category: 1, key: "Statement expected." }, + case_or_default_expected: { code: 1130, category: 1, key: "'case' or 'default' expected." }, + Property_or_signature_expected: { code: 1131, category: 1, key: "Property or signature expected." }, + Enum_member_expected: { code: 1132, category: 1, key: "Enum member expected." }, + Type_reference_expected: { code: 1133, category: 1, key: "Type reference expected." }, + Variable_declaration_expected: { code: 1134, category: 1, key: "Variable declaration expected." }, + Argument_expression_expected: { code: 1135, category: 1, key: "Argument expression expected." }, + Property_assignment_expected: { code: 1136, category: 1, key: "Property assignment expected." }, + Expression_or_comma_expected: { code: 1137, category: 1, key: "Expression or comma expected." }, + Parameter_declaration_expected: { code: 1138, category: 1, key: "Parameter declaration expected." }, + Type_parameter_declaration_expected: { code: 1139, category: 1, key: "Type parameter declaration expected." }, + Type_argument_expected: { code: 1140, category: 1, key: "Type argument expected." }, + String_literal_expected: { code: 1141, category: 1, key: "String literal expected." }, + Line_break_not_permitted_here: { code: 1142, category: 1, key: "Line break not permitted here." }, + or_expected: { code: 1144, category: 1, key: "'{' or ';' expected." }, + Modifiers_not_permitted_on_index_signature_members: { code: 1145, category: 1, key: "Modifiers not permitted on index signature members." }, + Declaration_expected: { code: 1146, category: 1, key: "Declaration expected." }, + Import_declarations_in_an_internal_module_cannot_reference_an_external_module: { code: 1147, category: 1, key: "Import declarations in an internal module cannot reference an external module." }, + Cannot_compile_external_modules_unless_the_module_flag_is_provided: { code: 1148, category: 1, key: "Cannot compile external modules unless the '--module' flag is provided." }, + File_name_0_differs_from_already_included_file_name_1_only_in_casing: { code: 1149, category: 1, key: "File name '{0}' differs from already included file name '{1}' only in casing" }, + new_T_cannot_be_used_to_create_an_array_Use_new_Array_T_instead: { code: 1150, category: 1, key: "'new T[]' cannot be used to create an array. Use 'new Array()' instead." }, + var_let_or_const_expected: { code: 1152, category: 1, key: "'var', 'let' or 'const' expected." }, + let_declarations_are_only_available_when_targeting_ECMAScript_6_and_higher: { code: 1153, category: 1, key: "'let' declarations are only available when targeting ECMAScript 6 and higher." }, + const_declarations_are_only_available_when_targeting_ECMAScript_6_and_higher: { code: 1154, category: 1, key: "'const' declarations are only available when targeting ECMAScript 6 and higher." }, + const_declarations_must_be_initialized: { code: 1155, category: 1, key: "'const' declarations must be initialized" }, + const_declarations_can_only_be_declared_inside_a_block: { code: 1156, category: 1, key: "'const' declarations can only be declared inside a block." }, + let_declarations_can_only_be_declared_inside_a_block: { code: 1157, category: 1, key: "'let' declarations can only be declared inside a block." }, + Unterminated_template_literal: { code: 1160, category: 1, key: "Unterminated template literal." }, + Unterminated_regular_expression_literal: { code: 1161, category: 1, key: "Unterminated regular expression literal." }, + An_object_member_cannot_be_declared_optional: { code: 1162, category: 1, key: "An object member cannot be declared optional." }, + yield_expression_must_be_contained_within_a_generator_declaration: { code: 1163, category: 1, key: "'yield' expression must be contained_within a generator declaration." }, + Computed_property_names_are_not_allowed_in_enums: { code: 1164, category: 1, key: "Computed property names are not allowed in enums." }, + A_computed_property_name_in_an_ambient_context_must_directly_refer_to_a_built_in_symbol: { code: 1165, category: 1, key: "A computed property name in an ambient context must directly refer to a built-in symbol." }, + A_computed_property_name_in_a_class_property_declaration_must_directly_refer_to_a_built_in_symbol: { code: 1166, category: 1, key: "A computed property name in a class property declaration must directly refer to a built-in symbol." }, + Computed_property_names_are_only_available_when_targeting_ECMAScript_6_and_higher: { code: 1167, category: 1, key: "Computed property names are only available when targeting ECMAScript 6 and higher." }, + A_computed_property_name_in_a_method_overload_must_directly_refer_to_a_built_in_symbol: { code: 1168, category: 1, key: "A computed property name in a method overload must directly refer to a built-in symbol." }, + A_computed_property_name_in_an_interface_must_directly_refer_to_a_built_in_symbol: { code: 1169, category: 1, key: "A computed property name in an interface must directly refer to a built-in symbol." }, + A_computed_property_name_in_a_type_literal_must_directly_refer_to_a_built_in_symbol: { code: 1170, category: 1, key: "A computed property name in a type literal must directly refer to a built-in symbol." }, + A_comma_expression_is_not_allowed_in_a_computed_property_name: { code: 1171, category: 1, key: "A comma expression is not allowed in a computed property name." }, + extends_clause_already_seen: { code: 1172, category: 1, key: "'extends' clause already seen." }, + extends_clause_must_precede_implements_clause: { code: 1173, category: 1, key: "'extends' clause must precede 'implements' clause." }, + Classes_can_only_extend_a_single_class: { code: 1174, category: 1, key: "Classes can only extend a single class." }, + implements_clause_already_seen: { code: 1175, category: 1, key: "'implements' clause already seen." }, + Interface_declaration_cannot_have_implements_clause: { code: 1176, category: 1, key: "Interface declaration cannot have 'implements' clause." }, + Binary_digit_expected: { code: 1177, category: 1, key: "Binary digit expected." }, + Octal_digit_expected: { code: 1178, category: 1, key: "Octal digit expected." }, + Unexpected_token_expected: { code: 1179, category: 1, key: "Unexpected token. '{' expected." }, + Property_destructuring_pattern_expected: { code: 1180, category: 1, key: "Property destructuring pattern expected." }, + Array_element_destructuring_pattern_expected: { code: 1181, category: 1, key: "Array element destructuring pattern expected." }, + A_destructuring_declaration_must_have_an_initializer: { code: 1182, category: 1, key: "A destructuring declaration must have an initializer." }, + Destructuring_declarations_are_not_allowed_in_ambient_contexts: { code: 1183, category: 1, key: "Destructuring declarations are not allowed in ambient contexts." }, + An_implementation_cannot_be_declared_in_ambient_contexts: { code: 1184, category: 1, key: "An implementation cannot be declared in ambient contexts." }, + Modifiers_cannot_appear_here: { code: 1184, category: 1, key: "Modifiers cannot appear here." }, + Merge_conflict_marker_encountered: { code: 1185, category: 1, key: "Merge conflict marker encountered." }, + A_rest_element_cannot_have_an_initializer: { code: 1186, category: 1, key: "A rest element cannot have an initializer." }, + A_parameter_property_may_not_be_a_binding_pattern: { code: 1187, category: 1, key: "A parameter property may not be a binding pattern." }, + Only_a_single_variable_declaration_is_allowed_in_a_for_of_statement: { code: 1188, category: 1, key: "Only a single variable declaration is allowed in a 'for...of' statement." }, + The_variable_declaration_of_a_for_in_statement_cannot_have_an_initializer: { code: 1189, category: 1, key: "The variable declaration of a 'for...in' statement cannot have an initializer." }, + The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer: { code: 1190, category: 1, key: "The variable declaration of a 'for...of' statement cannot have an initializer." }, + An_import_declaration_cannot_have_modifiers: { code: 1191, category: 1, key: "An import declaration cannot have modifiers." }, + External_module_0_has_no_default_export_or_export_assignment: { code: 1192, category: 1, key: "External module '{0}' has no default export or export assignment." }, + An_export_declaration_cannot_have_modifiers: { code: 1193, category: 1, key: "An export declaration cannot have modifiers." }, + Export_declarations_are_not_permitted_in_an_internal_module: { code: 1194, category: 1, key: "Export declarations are not permitted in an internal module." }, + Catch_clause_variable_name_must_be_an_identifier: { code: 1195, category: 1, key: "Catch clause variable name must be an identifier." }, + Catch_clause_variable_cannot_have_a_type_annotation: { code: 1196, category: 1, key: "Catch clause variable cannot have a type annotation." }, + Catch_clause_variable_cannot_have_an_initializer: { code: 1197, category: 1, key: "Catch clause variable cannot have an initializer." }, + An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive: { code: 1198, category: 1, key: "An extended Unicode escape value must be between 0x0 and 0x10FFFF inclusive." }, + Unterminated_Unicode_escape_sequence: { code: 1199, category: 1, key: "Unterminated Unicode escape sequence." }, + Duplicate_identifier_0: { code: 2300, category: 1, key: "Duplicate identifier '{0}'." }, + Initializer_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor: { code: 2301, category: 1, key: "Initializer of instance member variable '{0}' cannot reference identifier '{1}' declared in the constructor." }, + Static_members_cannot_reference_class_type_parameters: { code: 2302, category: 1, key: "Static members cannot reference class type parameters." }, + Circular_definition_of_import_alias_0: { code: 2303, category: 1, key: "Circular definition of import alias '{0}'." }, + Cannot_find_name_0: { code: 2304, category: 1, key: "Cannot find name '{0}'." }, + Module_0_has_no_exported_member_1: { code: 2305, category: 1, key: "Module '{0}' has no exported member '{1}'." }, + File_0_is_not_an_external_module: { code: 2306, category: 1, key: "File '{0}' is not an external module." }, + Cannot_find_external_module_0: { code: 2307, category: 1, key: "Cannot find external module '{0}'." }, + A_module_cannot_have_more_than_one_export_assignment: { code: 2308, category: 1, key: "A module cannot have more than one export assignment." }, + An_export_assignment_cannot_be_used_in_a_module_with_other_exported_elements: { code: 2309, category: 1, key: "An export assignment cannot be used in a module with other exported elements." }, + Type_0_recursively_references_itself_as_a_base_type: { code: 2310, category: 1, key: "Type '{0}' recursively references itself as a base type." }, + A_class_may_only_extend_another_class: { code: 2311, category: 1, key: "A class may only extend another class." }, + An_interface_may_only_extend_a_class_or_another_interface: { code: 2312, category: 1, key: "An interface may only extend a class or another interface." }, + Constraint_of_a_type_parameter_cannot_reference_any_type_parameter_from_the_same_type_parameter_list: { code: 2313, category: 1, key: "Constraint of a type parameter cannot reference any type parameter from the same type parameter list." }, + Generic_type_0_requires_1_type_argument_s: { code: 2314, category: 1, key: "Generic type '{0}' requires {1} type argument(s)." }, + Type_0_is_not_generic: { code: 2315, category: 1, key: "Type '{0}' is not generic." }, + Global_type_0_must_be_a_class_or_interface_type: { code: 2316, category: 1, key: "Global type '{0}' must be a class or interface type." }, + Global_type_0_must_have_1_type_parameter_s: { code: 2317, category: 1, key: "Global type '{0}' must have {1} type parameter(s)." }, + Cannot_find_global_type_0: { code: 2318, category: 1, key: "Cannot find global type '{0}'." }, + Named_property_0_of_types_1_and_2_are_not_identical: { code: 2319, category: 1, key: "Named property '{0}' of types '{1}' and '{2}' are not identical." }, + Interface_0_cannot_simultaneously_extend_types_1_and_2: { code: 2320, category: 1, key: "Interface '{0}' cannot simultaneously extend types '{1}' and '{2}'." }, + Excessive_stack_depth_comparing_types_0_and_1: { code: 2321, category: 1, key: "Excessive stack depth comparing types '{0}' and '{1}'." }, + Type_0_is_not_assignable_to_type_1: { code: 2322, category: 1, key: "Type '{0}' is not assignable to type '{1}'." }, + Property_0_is_missing_in_type_1: { code: 2324, category: 1, key: "Property '{0}' is missing in type '{1}'." }, + Property_0_is_private_in_type_1_but_not_in_type_2: { code: 2325, category: 1, key: "Property '{0}' is private in type '{1}' but not in type '{2}'." }, + Types_of_property_0_are_incompatible: { code: 2326, category: 1, key: "Types of property '{0}' are incompatible." }, + Property_0_is_optional_in_type_1_but_required_in_type_2: { code: 2327, category: 1, key: "Property '{0}' is optional in type '{1}' but required in type '{2}'." }, + Types_of_parameters_0_and_1_are_incompatible: { code: 2328, category: 1, key: "Types of parameters '{0}' and '{1}' are incompatible." }, + Index_signature_is_missing_in_type_0: { code: 2329, category: 1, key: "Index signature is missing in type '{0}'." }, + Index_signatures_are_incompatible: { code: 2330, category: 1, key: "Index signatures are incompatible." }, + this_cannot_be_referenced_in_a_module_body: { code: 2331, category: 1, key: "'this' cannot be referenced in a module body." }, + this_cannot_be_referenced_in_current_location: { code: 2332, category: 1, key: "'this' cannot be referenced in current location." }, + this_cannot_be_referenced_in_constructor_arguments: { code: 2333, category: 1, key: "'this' cannot be referenced in constructor arguments." }, + this_cannot_be_referenced_in_a_static_property_initializer: { code: 2334, category: 1, key: "'this' cannot be referenced in a static property initializer." }, + super_can_only_be_referenced_in_a_derived_class: { code: 2335, category: 1, key: "'super' can only be referenced in a derived class." }, + super_cannot_be_referenced_in_constructor_arguments: { code: 2336, category: 1, key: "'super' cannot be referenced in constructor arguments." }, + Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors: { code: 2337, category: 1, key: "Super calls are not permitted outside constructors or in nested functions inside constructors" }, + super_property_access_is_permitted_only_in_a_constructor_member_function_or_member_accessor_of_a_derived_class: { code: 2338, category: 1, key: "'super' property access is permitted only in a constructor, member function, or member accessor of a derived class" }, + Property_0_does_not_exist_on_type_1: { code: 2339, category: 1, key: "Property '{0}' does not exist on type '{1}'." }, + Only_public_and_protected_methods_of_the_base_class_are_accessible_via_the_super_keyword: { code: 2340, category: 1, key: "Only public and protected methods of the base class are accessible via the 'super' keyword" }, + Property_0_is_private_and_only_accessible_within_class_1: { code: 2341, category: 1, key: "Property '{0}' is private and only accessible within class '{1}'." }, + An_index_expression_argument_must_be_of_type_string_number_symbol_or_any: { code: 2342, category: 1, key: "An index expression argument must be of type 'string', 'number', 'symbol, or 'any'." }, + Type_0_does_not_satisfy_the_constraint_1: { code: 2344, category: 1, key: "Type '{0}' does not satisfy the constraint '{1}'." }, + Argument_of_type_0_is_not_assignable_to_parameter_of_type_1: { code: 2345, category: 1, key: "Argument of type '{0}' is not assignable to parameter of type '{1}'." }, + Supplied_parameters_do_not_match_any_signature_of_call_target: { code: 2346, category: 1, key: "Supplied parameters do not match any signature of call target." }, + Untyped_function_calls_may_not_accept_type_arguments: { code: 2347, category: 1, key: "Untyped function calls may not accept type arguments." }, + Value_of_type_0_is_not_callable_Did_you_mean_to_include_new: { code: 2348, category: 1, key: "Value of type '{0}' is not callable. Did you mean to include 'new'?" }, + Cannot_invoke_an_expression_whose_type_lacks_a_call_signature: { code: 2349, category: 1, key: "Cannot invoke an expression whose type lacks a call signature." }, + Only_a_void_function_can_be_called_with_the_new_keyword: { code: 2350, category: 1, key: "Only a void function can be called with the 'new' keyword." }, + Cannot_use_new_with_an_expression_whose_type_lacks_a_call_or_construct_signature: { code: 2351, category: 1, key: "Cannot use 'new' with an expression whose type lacks a call or construct signature." }, + Neither_type_0_nor_type_1_is_assignable_to_the_other: { code: 2352, category: 1, key: "Neither type '{0}' nor type '{1}' is assignable to the other." }, + No_best_common_type_exists_among_return_expressions: { code: 2354, category: 1, key: "No best common type exists among return expressions." }, + A_function_whose_declared_type_is_neither_void_nor_any_must_return_a_value_or_consist_of_a_single_throw_statement: { code: 2355, category: 1, key: "A function whose declared type is neither 'void' nor 'any' must return a value or consist of a single 'throw' statement." }, + An_arithmetic_operand_must_be_of_type_any_number_or_an_enum_type: { code: 2356, category: 1, key: "An arithmetic operand must be of type 'any', 'number' or an enum type." }, + The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_property_or_indexer: { code: 2357, category: 1, key: "The operand of an increment or decrement operator must be a variable, property or indexer." }, + The_left_hand_side_of_an_instanceof_expression_must_be_of_type_any_an_object_type_or_a_type_parameter: { code: 2358, category: 1, key: "The left-hand side of an 'instanceof' expression must be of type 'any', an object type or a type parameter." }, + The_right_hand_side_of_an_instanceof_expression_must_be_of_type_any_or_of_a_type_assignable_to_the_Function_interface_type: { code: 2359, category: 1, key: "The right-hand side of an 'instanceof' expression must be of type 'any' or of a type assignable to the 'Function' interface type." }, + The_left_hand_side_of_an_in_expression_must_be_of_type_any_string_number_or_symbol: { code: 2360, category: 1, key: "The left-hand side of an 'in' expression must be of type 'any', 'string', 'number', or 'symbol'." }, + The_right_hand_side_of_an_in_expression_must_be_of_type_any_an_object_type_or_a_type_parameter: { code: 2361, category: 1, key: "The right-hand side of an 'in' expression must be of type 'any', an object type or a type parameter" }, + The_left_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_or_an_enum_type: { code: 2362, category: 1, key: "The left-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type." }, + The_right_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_or_an_enum_type: { code: 2363, category: 1, key: "The right-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type." }, + Invalid_left_hand_side_of_assignment_expression: { code: 2364, category: 1, key: "Invalid left-hand side of assignment expression." }, + Operator_0_cannot_be_applied_to_types_1_and_2: { code: 2365, category: 1, key: "Operator '{0}' cannot be applied to types '{1}' and '{2}'." }, + Type_parameter_name_cannot_be_0: { code: 2368, category: 1, key: "Type parameter name cannot be '{0}'" }, + A_parameter_property_is_only_allowed_in_a_constructor_implementation: { code: 2369, category: 1, key: "A parameter property is only allowed in a constructor implementation." }, + A_rest_parameter_must_be_of_an_array_type: { code: 2370, category: 1, key: "A rest parameter must be of an array type." }, + A_parameter_initializer_is_only_allowed_in_a_function_or_constructor_implementation: { code: 2371, category: 1, key: "A parameter initializer is only allowed in a function or constructor implementation." }, + Parameter_0_cannot_be_referenced_in_its_initializer: { code: 2372, category: 1, key: "Parameter '{0}' cannot be referenced in its initializer." }, + Initializer_of_parameter_0_cannot_reference_identifier_1_declared_after_it: { code: 2373, category: 1, key: "Initializer of parameter '{0}' cannot reference identifier '{1}' declared after it." }, + Duplicate_string_index_signature: { code: 2374, category: 1, key: "Duplicate string index signature." }, + Duplicate_number_index_signature: { code: 2375, category: 1, key: "Duplicate number index signature." }, + A_super_call_must_be_the_first_statement_in_the_constructor_when_a_class_contains_initialized_properties_or_has_parameter_properties: { code: 2376, category: 1, key: "A 'super' call must be the first statement in the constructor when a class contains initialized properties or has parameter properties." }, + Constructors_for_derived_classes_must_contain_a_super_call: { code: 2377, category: 1, key: "Constructors for derived classes must contain a 'super' call." }, + A_get_accessor_must_return_a_value_or_consist_of_a_single_throw_statement: { code: 2378, category: 1, key: "A 'get' accessor must return a value or consist of a single 'throw' statement." }, + Getter_and_setter_accessors_do_not_agree_in_visibility: { code: 2379, category: 1, key: "Getter and setter accessors do not agree in visibility." }, + get_and_set_accessor_must_have_the_same_type: { code: 2380, category: 1, key: "'get' and 'set' accessor must have the same type." }, + A_signature_with_an_implementation_cannot_use_a_string_literal_type: { code: 2381, category: 1, key: "A signature with an implementation cannot use a string literal type." }, + Specialized_overload_signature_is_not_assignable_to_any_non_specialized_signature: { code: 2382, category: 1, key: "Specialized overload signature is not assignable to any non-specialized signature." }, + Overload_signatures_must_all_be_exported_or_not_exported: { code: 2383, category: 1, key: "Overload signatures must all be exported or not exported." }, + Overload_signatures_must_all_be_ambient_or_non_ambient: { code: 2384, category: 1, key: "Overload signatures must all be ambient or non-ambient." }, + Overload_signatures_must_all_be_public_private_or_protected: { code: 2385, category: 1, key: "Overload signatures must all be public, private or protected." }, + Overload_signatures_must_all_be_optional_or_required: { code: 2386, category: 1, key: "Overload signatures must all be optional or required." }, + Function_overload_must_be_static: { code: 2387, category: 1, key: "Function overload must be static." }, + Function_overload_must_not_be_static: { code: 2388, category: 1, key: "Function overload must not be static." }, + Function_implementation_name_must_be_0: { code: 2389, category: 1, key: "Function implementation name must be '{0}'." }, + Constructor_implementation_is_missing: { code: 2390, category: 1, key: "Constructor implementation is missing." }, + Function_implementation_is_missing_or_not_immediately_following_the_declaration: { code: 2391, category: 1, key: "Function implementation is missing or not immediately following the declaration." }, + Multiple_constructor_implementations_are_not_allowed: { code: 2392, category: 1, key: "Multiple constructor implementations are not allowed." }, + Duplicate_function_implementation: { code: 2393, category: 1, key: "Duplicate function implementation." }, + Overload_signature_is_not_compatible_with_function_implementation: { code: 2394, category: 1, key: "Overload signature is not compatible with function implementation." }, + Individual_declarations_in_merged_declaration_0_must_be_all_exported_or_all_local: { code: 2395, category: 1, key: "Individual declarations in merged declaration {0} must be all exported or all local." }, + Duplicate_identifier_arguments_Compiler_uses_arguments_to_initialize_rest_parameters: { code: 2396, category: 1, key: "Duplicate identifier 'arguments'. Compiler uses 'arguments' to initialize rest parameters." }, + Duplicate_identifier_this_Compiler_uses_variable_declaration_this_to_capture_this_reference: { code: 2399, category: 1, key: "Duplicate identifier '_this'. Compiler uses variable declaration '_this' to capture 'this' reference." }, + Expression_resolves_to_variable_declaration_this_that_compiler_uses_to_capture_this_reference: { code: 2400, category: 1, key: "Expression resolves to variable declaration '_this' that compiler uses to capture 'this' reference." }, + Duplicate_identifier_super_Compiler_uses_super_to_capture_base_class_reference: { code: 2401, category: 1, key: "Duplicate identifier '_super'. Compiler uses '_super' to capture base class reference." }, + Expression_resolves_to_super_that_compiler_uses_to_capture_base_class_reference: { code: 2402, category: 1, key: "Expression resolves to '_super' that compiler uses to capture base class reference." }, + Subsequent_variable_declarations_must_have_the_same_type_Variable_0_must_be_of_type_1_but_here_has_type_2: { code: 2403, category: 1, key: "Subsequent variable declarations must have the same type. Variable '{0}' must be of type '{1}', but here has type '{2}'." }, + The_left_hand_side_of_a_for_in_statement_cannot_use_a_type_annotation: { code: 2404, category: 1, key: "The left-hand side of a 'for...in' statement cannot use a type annotation." }, + The_left_hand_side_of_a_for_in_statement_must_be_of_type_string_or_any: { code: 2405, category: 1, key: "The left-hand side of a 'for...in' statement must be of type 'string' or 'any'." }, + Invalid_left_hand_side_in_for_in_statement: { code: 2406, category: 1, key: "Invalid left-hand side in 'for...in' statement." }, + The_right_hand_side_of_a_for_in_statement_must_be_of_type_any_an_object_type_or_a_type_parameter: { code: 2407, category: 1, key: "The right-hand side of a 'for...in' statement must be of type 'any', an object type or a type parameter." }, + Setters_cannot_return_a_value: { code: 2408, category: 1, key: "Setters cannot return a value." }, + Return_type_of_constructor_signature_must_be_assignable_to_the_instance_type_of_the_class: { code: 2409, category: 1, key: "Return type of constructor signature must be assignable to the instance type of the class" }, + All_symbols_within_a_with_block_will_be_resolved_to_any: { code: 2410, category: 1, key: "All symbols within a 'with' block will be resolved to 'any'." }, + Property_0_of_type_1_is_not_assignable_to_string_index_type_2: { code: 2411, category: 1, key: "Property '{0}' of type '{1}' is not assignable to string index type '{2}'." }, + Property_0_of_type_1_is_not_assignable_to_numeric_index_type_2: { code: 2412, category: 1, key: "Property '{0}' of type '{1}' is not assignable to numeric index type '{2}'." }, + Numeric_index_type_0_is_not_assignable_to_string_index_type_1: { code: 2413, category: 1, key: "Numeric index type '{0}' is not assignable to string index type '{1}'." }, + Class_name_cannot_be_0: { code: 2414, category: 1, key: "Class name cannot be '{0}'" }, + Class_0_incorrectly_extends_base_class_1: { code: 2415, category: 1, key: "Class '{0}' incorrectly extends base class '{1}'." }, + Class_static_side_0_incorrectly_extends_base_class_static_side_1: { code: 2417, category: 1, key: "Class static side '{0}' incorrectly extends base class static side '{1}'." }, + Type_name_0_in_extends_clause_does_not_reference_constructor_function_for_0: { code: 2419, category: 1, key: "Type name '{0}' in extends clause does not reference constructor function for '{0}'." }, + Class_0_incorrectly_implements_interface_1: { code: 2420, category: 1, key: "Class '{0}' incorrectly implements interface '{1}'." }, + A_class_may_only_implement_another_class_or_interface: { code: 2422, category: 1, key: "A class may only implement another class or interface." }, + Class_0_defines_instance_member_function_1_but_extended_class_2_defines_it_as_instance_member_accessor: { code: 2423, category: 1, key: "Class '{0}' defines instance member function '{1}', but extended class '{2}' defines it as instance member accessor." }, + Class_0_defines_instance_member_function_1_but_extended_class_2_defines_it_as_instance_member_property: { code: 2424, category: 1, key: "Class '{0}' defines instance member function '{1}', but extended class '{2}' defines it as instance member property." }, + Class_0_defines_instance_member_property_1_but_extended_class_2_defines_it_as_instance_member_function: { code: 2425, category: 1, key: "Class '{0}' defines instance member property '{1}', but extended class '{2}' defines it as instance member function." }, + Class_0_defines_instance_member_accessor_1_but_extended_class_2_defines_it_as_instance_member_function: { code: 2426, category: 1, key: "Class '{0}' defines instance member accessor '{1}', but extended class '{2}' defines it as instance member function." }, + Interface_name_cannot_be_0: { code: 2427, category: 1, key: "Interface name cannot be '{0}'" }, + All_declarations_of_an_interface_must_have_identical_type_parameters: { code: 2428, category: 1, key: "All declarations of an interface must have identical type parameters." }, + Interface_0_incorrectly_extends_interface_1: { code: 2430, category: 1, key: "Interface '{0}' incorrectly extends interface '{1}'." }, + Enum_name_cannot_be_0: { code: 2431, category: 1, key: "Enum name cannot be '{0}'" }, + In_an_enum_with_multiple_declarations_only_one_declaration_can_omit_an_initializer_for_its_first_enum_element: { code: 2432, category: 1, key: "In an enum with multiple declarations, only one declaration can omit an initializer for its first enum element." }, + A_module_declaration_cannot_be_in_a_different_file_from_a_class_or_function_with_which_it_is_merged: { code: 2433, category: 1, key: "A module declaration cannot be in a different file from a class or function with which it is merged" }, + A_module_declaration_cannot_be_located_prior_to_a_class_or_function_with_which_it_is_merged: { code: 2434, category: 1, key: "A module declaration cannot be located prior to a class or function with which it is merged" }, + Ambient_external_modules_cannot_be_nested_in_other_modules: { code: 2435, category: 1, key: "Ambient external modules cannot be nested in other modules." }, + Ambient_external_module_declaration_cannot_specify_relative_module_name: { code: 2436, category: 1, key: "Ambient external module declaration cannot specify relative module name." }, + Module_0_is_hidden_by_a_local_declaration_with_the_same_name: { code: 2437, category: 1, key: "Module '{0}' is hidden by a local declaration with the same name" }, + Import_name_cannot_be_0: { code: 2438, category: 1, key: "Import name cannot be '{0}'" }, + Import_or_export_declaration_in_an_ambient_external_module_declaration_cannot_reference_external_module_through_relative_external_module_name: { code: 2439, category: 1, key: "Import or export declaration in an ambient external module declaration cannot reference external module through relative external module name." }, + Import_declaration_conflicts_with_local_declaration_of_0: { code: 2440, category: 1, key: "Import declaration conflicts with local declaration of '{0}'" }, + Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_an_external_module: { code: 2441, category: 1, key: "Duplicate identifier '{0}'. Compiler reserves name '{1}' in top level scope of an external module." }, + Types_have_separate_declarations_of_a_private_property_0: { code: 2442, category: 1, key: "Types have separate declarations of a private property '{0}'." }, + Property_0_is_protected_but_type_1_is_not_a_class_derived_from_2: { code: 2443, category: 1, key: "Property '{0}' is protected but type '{1}' is not a class derived from '{2}'." }, + Property_0_is_protected_in_type_1_but_public_in_type_2: { code: 2444, category: 1, key: "Property '{0}' is protected in type '{1}' but public in type '{2}'." }, + Property_0_is_protected_and_only_accessible_within_class_1_and_its_subclasses: { code: 2445, category: 1, key: "Property '{0}' is protected and only accessible within class '{1}' and its subclasses." }, + Property_0_is_protected_and_only_accessible_through_an_instance_of_class_1: { code: 2446, category: 1, key: "Property '{0}' is protected and only accessible through an instance of class '{1}'." }, + The_0_operator_is_not_allowed_for_boolean_types_Consider_using_1_instead: { code: 2447, category: 1, key: "The '{0}' operator is not allowed for boolean types. Consider using '{1}' instead." }, + Block_scoped_variable_0_used_before_its_declaration: { code: 2448, category: 1, key: "Block-scoped variable '{0}' used before its declaration." }, + The_operand_of_an_increment_or_decrement_operator_cannot_be_a_constant: { code: 2449, category: 1, key: "The operand of an increment or decrement operator cannot be a constant." }, + Left_hand_side_of_assignment_expression_cannot_be_a_constant: { code: 2450, category: 1, key: "Left-hand side of assignment expression cannot be a constant." }, + Cannot_redeclare_block_scoped_variable_0: { code: 2451, category: 1, key: "Cannot redeclare block-scoped variable '{0}'." }, + An_enum_member_cannot_have_a_numeric_name: { code: 2452, category: 1, key: "An enum member cannot have a numeric name." }, + The_type_argument_for_type_parameter_0_cannot_be_inferred_from_the_usage_Consider_specifying_the_type_arguments_explicitly: { code: 2453, category: 1, key: "The type argument for type parameter '{0}' cannot be inferred from the usage. Consider specifying the type arguments explicitly." }, + Type_argument_candidate_1_is_not_a_valid_type_argument_because_it_is_not_a_supertype_of_candidate_0: { code: 2455, category: 1, key: "Type argument candidate '{1}' is not a valid type argument because it is not a supertype of candidate '{0}'." }, + Type_alias_0_circularly_references_itself: { code: 2456, category: 1, key: "Type alias '{0}' circularly references itself." }, + Type_alias_name_cannot_be_0: { code: 2457, category: 1, key: "Type alias name cannot be '{0}'" }, + An_AMD_module_cannot_have_multiple_name_assignments: { code: 2458, category: 1, key: "An AMD module cannot have multiple name assignments." }, + Type_0_has_no_property_1_and_no_string_index_signature: { code: 2459, category: 1, key: "Type '{0}' has no property '{1}' and no string index signature." }, + Type_0_has_no_property_1: { code: 2460, category: 1, key: "Type '{0}' has no property '{1}'." }, + Type_0_is_not_an_array_type: { code: 2461, category: 1, key: "Type '{0}' is not an array type." }, + A_rest_element_must_be_last_in_an_array_destructuring_pattern: { code: 2462, category: 1, key: "A rest element must be last in an array destructuring pattern" }, + A_binding_pattern_parameter_cannot_be_optional_in_an_implementation_signature: { code: 2463, category: 1, key: "A binding pattern parameter cannot be optional in an implementation signature." }, + A_computed_property_name_must_be_of_type_string_number_symbol_or_any: { code: 2464, category: 1, key: "A computed property name must be of type 'string', 'number', 'symbol', or 'any'." }, + this_cannot_be_referenced_in_a_computed_property_name: { code: 2465, category: 1, key: "'this' cannot be referenced in a computed property name." }, + super_cannot_be_referenced_in_a_computed_property_name: { code: 2466, category: 1, key: "'super' cannot be referenced in a computed property name." }, + A_computed_property_name_cannot_reference_a_type_parameter_from_its_containing_type: { code: 2467, category: 1, key: "A computed property name cannot reference a type parameter from its containing type." }, + Cannot_find_global_value_0: { code: 2468, category: 1, key: "Cannot find global value '{0}'." }, + The_0_operator_cannot_be_applied_to_type_symbol: { code: 2469, category: 1, key: "The '{0}' operator cannot be applied to type 'symbol'." }, + Symbol_reference_does_not_refer_to_the_global_Symbol_constructor_object: { code: 2470, category: 1, key: "'Symbol' reference does not refer to the global Symbol constructor object." }, + A_computed_property_name_of_the_form_0_must_be_of_type_symbol: { code: 2471, category: 1, key: "A computed property name of the form '{0}' must be of type 'symbol'." }, + Spread_operator_in_new_expressions_is_only_available_when_targeting_ECMAScript_6_and_higher: { code: 2472, category: 1, key: "Spread operator in 'new' expressions is only available when targeting ECMAScript 6 and higher." }, + Enum_declarations_must_all_be_const_or_non_const: { code: 2473, category: 1, key: "Enum declarations must all be const or non-const." }, + In_const_enum_declarations_member_initializer_must_be_constant_expression: { code: 2474, category: 1, key: "In 'const' enum declarations member initializer must be constant expression." }, + const_enums_can_only_be_used_in_property_or_index_access_expressions_or_the_right_hand_side_of_an_import_declaration_or_export_assignment: { code: 2475, category: 1, key: "'const' enums can only be used in property or index access expressions or the right hand side of an import declaration or export assignment." }, + A_const_enum_member_can_only_be_accessed_using_a_string_literal: { code: 2476, category: 1, key: "A const enum member can only be accessed using a string literal." }, + const_enum_member_initializer_was_evaluated_to_a_non_finite_value: { code: 2477, category: 1, key: "'const' enum member initializer was evaluated to a non-finite value." }, + const_enum_member_initializer_was_evaluated_to_disallowed_value_NaN: { code: 2478, category: 1, key: "'const' enum member initializer was evaluated to disallowed value 'NaN'." }, + Property_0_does_not_exist_on_const_enum_1: { code: 2479, category: 1, key: "Property '{0}' does not exist on 'const' enum '{1}'." }, + let_is_not_allowed_to_be_used_as_a_name_in_let_or_const_declarations: { code: 2480, category: 1, key: "'let' is not allowed to be used as a name in 'let' or 'const' declarations." }, + Cannot_initialize_outer_scoped_variable_0_in_the_same_scope_as_block_scoped_declaration_1: { code: 2481, category: 1, key: "Cannot initialize outer scoped variable '{0}' in the same scope as block scoped declaration '{1}'." }, + The_left_hand_side_of_a_for_of_statement_cannot_use_a_type_annotation: { code: 2483, category: 1, key: "The left-hand side of a 'for...of' statement cannot use a type annotation." }, + Export_declaration_conflicts_with_exported_declaration_of_0: { code: 2484, category: 1, key: "Export declaration conflicts with exported declaration of '{0}'" }, + The_left_hand_side_of_a_for_of_statement_cannot_be_a_previously_defined_constant: { code: 2485, category: 1, key: "The left-hand side of a 'for...of' statement cannot be a previously defined constant." }, + The_left_hand_side_of_a_for_in_statement_cannot_be_a_previously_defined_constant: { code: 2486, category: 1, key: "The left-hand side of a 'for...in' statement cannot be a previously defined constant." }, + Invalid_left_hand_side_in_for_of_statement: { code: 2487, category: 1, key: "Invalid left-hand side in 'for...of' statement." }, + The_right_hand_side_of_a_for_of_statement_must_have_a_Symbol_iterator_method_that_returns_an_iterator: { code: 2488, category: 1, key: "The right-hand side of a 'for...of' statement must have a '[Symbol.iterator]()' method that returns an iterator." }, + The_iterator_returned_by_the_right_hand_side_of_a_for_of_statement_must_have_a_next_method: { code: 2489, category: 1, key: "The iterator returned by the right-hand side of a 'for...of' statement must have a 'next()' method." }, + The_type_returned_by_the_next_method_of_an_iterator_must_have_a_value_property: { code: 2490, category: 1, key: "The type returned by the 'next()' method of an iterator must have a 'value' property." }, + The_left_hand_side_of_a_for_in_statement_cannot_be_a_destructuring_pattern: { code: 2491, category: 1, key: "The left-hand side of a 'for...in' statement cannot be a destructuring pattern." }, + Cannot_redeclare_identifier_0_in_catch_clause: { code: 2492, category: 1, key: "Cannot redeclare identifier '{0}' in catch clause" }, + Tuple_type_0_with_length_1_cannot_be_assigned_to_tuple_with_length_2: { code: 2493, category: 1, key: "Tuple type '{0}' with length '{1}' cannot be assigned to tuple with length '{2}'." }, + Using_a_string_in_a_for_of_statement_is_only_supported_in_ECMAScript_5_and_higher: { code: 2494, category: 1, key: "Using a string in a 'for...of' statement is only supported in ECMAScript 5 and higher." }, + Type_0_is_not_an_array_type_or_a_string_type: { code: 2461, category: 1, key: "Type '{0}' is not an array type or a string type." }, + Import_declaration_0_is_using_private_name_1: { code: 4000, category: 1, key: "Import declaration '{0}' is using private name '{1}'." }, + Type_parameter_0_of_exported_class_has_or_is_using_private_name_1: { code: 4002, category: 1, key: "Type parameter '{0}' of exported class has or is using private name '{1}'." }, + Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1: { code: 4004, category: 1, key: "Type parameter '{0}' of exported interface has or is using private name '{1}'." }, + Type_parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1: { code: 4006, category: 1, key: "Type parameter '{0}' of constructor signature from exported interface has or is using private name '{1}'." }, + Type_parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1: { code: 4008, category: 1, key: "Type parameter '{0}' of call signature from exported interface has or is using private name '{1}'." }, + Type_parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1: { code: 4010, category: 1, key: "Type parameter '{0}' of public static method from exported class has or is using private name '{1}'." }, + Type_parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1: { code: 4012, category: 1, key: "Type parameter '{0}' of public method from exported class has or is using private name '{1}'." }, + Type_parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1: { code: 4014, category: 1, key: "Type parameter '{0}' of method from exported interface has or is using private name '{1}'." }, + Type_parameter_0_of_exported_function_has_or_is_using_private_name_1: { code: 4016, category: 1, key: "Type parameter '{0}' of exported function has or is using private name '{1}'." }, + Implements_clause_of_exported_class_0_has_or_is_using_private_name_1: { code: 4019, category: 1, key: "Implements clause of exported class '{0}' has or is using private name '{1}'." }, + Extends_clause_of_exported_class_0_has_or_is_using_private_name_1: { code: 4020, category: 1, key: "Extends clause of exported class '{0}' has or is using private name '{1}'." }, + Extends_clause_of_exported_interface_0_has_or_is_using_private_name_1: { code: 4022, category: 1, key: "Extends clause of exported interface '{0}' has or is using private name '{1}'." }, + Exported_variable_0_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: { code: 4023, category: 1, key: "Exported variable '{0}' has or is using name '{1}' from external module {2} but cannot be named." }, + Exported_variable_0_has_or_is_using_name_1_from_private_module_2: { code: 4024, category: 1, key: "Exported variable '{0}' has or is using name '{1}' from private module '{2}'." }, + Exported_variable_0_has_or_is_using_private_name_1: { code: 4025, category: 1, key: "Exported variable '{0}' has or is using private name '{1}'." }, + Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: { code: 4026, category: 1, key: "Public static property '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named." }, + Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2: { code: 4027, category: 1, key: "Public static property '{0}' of exported class has or is using name '{1}' from private module '{2}'." }, + Public_static_property_0_of_exported_class_has_or_is_using_private_name_1: { code: 4028, category: 1, key: "Public static property '{0}' of exported class has or is using private name '{1}'." }, + Public_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: { code: 4029, category: 1, key: "Public property '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named." }, + Public_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2: { code: 4030, category: 1, key: "Public property '{0}' of exported class has or is using name '{1}' from private module '{2}'." }, + Public_property_0_of_exported_class_has_or_is_using_private_name_1: { code: 4031, category: 1, key: "Public property '{0}' of exported class has or is using private name '{1}'." }, + Property_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2: { code: 4032, category: 1, key: "Property '{0}' of exported interface has or is using name '{1}' from private module '{2}'." }, + Property_0_of_exported_interface_has_or_is_using_private_name_1: { code: 4033, category: 1, key: "Property '{0}' of exported interface has or is using private name '{1}'." }, + Parameter_0_of_public_static_property_setter_from_exported_class_has_or_is_using_name_1_from_private_module_2: { code: 4034, category: 1, key: "Parameter '{0}' of public static property setter from exported class has or is using name '{1}' from private module '{2}'." }, + Parameter_0_of_public_static_property_setter_from_exported_class_has_or_is_using_private_name_1: { code: 4035, category: 1, key: "Parameter '{0}' of public static property setter from exported class has or is using private name '{1}'." }, + Parameter_0_of_public_property_setter_from_exported_class_has_or_is_using_name_1_from_private_module_2: { code: 4036, category: 1, key: "Parameter '{0}' of public property setter from exported class has or is using name '{1}' from private module '{2}'." }, + Parameter_0_of_public_property_setter_from_exported_class_has_or_is_using_private_name_1: { code: 4037, category: 1, key: "Parameter '{0}' of public property setter from exported class has or is using private name '{1}'." }, + Return_type_of_public_static_property_getter_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named: { code: 4038, category: 1, key: "Return type of public static property getter from exported class has or is using name '{0}' from external module {1} but cannot be named." }, + Return_type_of_public_static_property_getter_from_exported_class_has_or_is_using_name_0_from_private_module_1: { code: 4039, category: 1, key: "Return type of public static property getter from exported class has or is using name '{0}' from private module '{1}'." }, + Return_type_of_public_static_property_getter_from_exported_class_has_or_is_using_private_name_0: { code: 4040, category: 1, key: "Return type of public static property getter from exported class has or is using private name '{0}'." }, + Return_type_of_public_property_getter_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named: { code: 4041, category: 1, key: "Return type of public property getter from exported class has or is using name '{0}' from external module {1} but cannot be named." }, + Return_type_of_public_property_getter_from_exported_class_has_or_is_using_name_0_from_private_module_1: { code: 4042, category: 1, key: "Return type of public property getter from exported class has or is using name '{0}' from private module '{1}'." }, + Return_type_of_public_property_getter_from_exported_class_has_or_is_using_private_name_0: { code: 4043, category: 1, key: "Return type of public property getter from exported class has or is using private name '{0}'." }, + Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1: { code: 4044, category: 1, key: "Return type of constructor signature from exported interface has or is using name '{0}' from private module '{1}'." }, + Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_0: { code: 4045, category: 1, key: "Return type of constructor signature from exported interface has or is using private name '{0}'." }, + Return_type_of_call_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1: { code: 4046, category: 1, key: "Return type of call signature from exported interface has or is using name '{0}' from private module '{1}'." }, + Return_type_of_call_signature_from_exported_interface_has_or_is_using_private_name_0: { code: 4047, category: 1, key: "Return type of call signature from exported interface has or is using private name '{0}'." }, + Return_type_of_index_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1: { code: 4048, category: 1, key: "Return type of index signature from exported interface has or is using name '{0}' from private module '{1}'." }, + Return_type_of_index_signature_from_exported_interface_has_or_is_using_private_name_0: { code: 4049, category: 1, key: "Return type of index signature from exported interface has or is using private name '{0}'." }, + Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named: { code: 4050, category: 1, key: "Return type of public static method from exported class has or is using name '{0}' from external module {1} but cannot be named." }, + Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_private_module_1: { code: 4051, category: 1, key: "Return type of public static method from exported class has or is using name '{0}' from private module '{1}'." }, + Return_type_of_public_static_method_from_exported_class_has_or_is_using_private_name_0: { code: 4052, category: 1, key: "Return type of public static method from exported class has or is using private name '{0}'." }, + Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named: { code: 4053, category: 1, key: "Return type of public method from exported class has or is using name '{0}' from external module {1} but cannot be named." }, + Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_private_module_1: { code: 4054, category: 1, key: "Return type of public method from exported class has or is using name '{0}' from private module '{1}'." }, + Return_type_of_public_method_from_exported_class_has_or_is_using_private_name_0: { code: 4055, category: 1, key: "Return type of public method from exported class has or is using private name '{0}'." }, + Return_type_of_method_from_exported_interface_has_or_is_using_name_0_from_private_module_1: { code: 4056, category: 1, key: "Return type of method from exported interface has or is using name '{0}' from private module '{1}'." }, + Return_type_of_method_from_exported_interface_has_or_is_using_private_name_0: { code: 4057, category: 1, key: "Return type of method from exported interface has or is using private name '{0}'." }, + Return_type_of_exported_function_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named: { code: 4058, category: 1, key: "Return type of exported function has or is using name '{0}' from external module {1} but cannot be named." }, + Return_type_of_exported_function_has_or_is_using_name_0_from_private_module_1: { code: 4059, category: 1, key: "Return type of exported function has or is using name '{0}' from private module '{1}'." }, + Return_type_of_exported_function_has_or_is_using_private_name_0: { code: 4060, category: 1, key: "Return type of exported function has or is using private name '{0}'." }, + Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: { code: 4061, category: 1, key: "Parameter '{0}' of constructor from exported class has or is using name '{1}' from external module {2} but cannot be named." }, + Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_private_module_2: { code: 4062, category: 1, key: "Parameter '{0}' of constructor from exported class has or is using name '{1}' from private module '{2}'." }, + Parameter_0_of_constructor_from_exported_class_has_or_is_using_private_name_1: { code: 4063, category: 1, key: "Parameter '{0}' of constructor from exported class has or is using private name '{1}'." }, + Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2: { code: 4064, category: 1, key: "Parameter '{0}' of constructor signature from exported interface has or is using name '{1}' from private module '{2}'." }, + Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1: { code: 4065, category: 1, key: "Parameter '{0}' of constructor signature from exported interface has or is using private name '{1}'." }, + Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2: { code: 4066, category: 1, key: "Parameter '{0}' of call signature from exported interface has or is using name '{1}' from private module '{2}'." }, + Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1: { code: 4067, category: 1, key: "Parameter '{0}' of call signature from exported interface has or is using private name '{1}'." }, + Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: { code: 4068, category: 1, key: "Parameter '{0}' of public static method from exported class has or is using name '{1}' from external module {2} but cannot be named." }, + Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_private_module_2: { code: 4069, category: 1, key: "Parameter '{0}' of public static method from exported class has or is using name '{1}' from private module '{2}'." }, + Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1: { code: 4070, category: 1, key: "Parameter '{0}' of public static method from exported class has or is using private name '{1}'." }, + Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: { code: 4071, category: 1, key: "Parameter '{0}' of public method from exported class has or is using name '{1}' from external module {2} but cannot be named." }, + Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_private_module_2: { code: 4072, category: 1, key: "Parameter '{0}' of public method from exported class has or is using name '{1}' from private module '{2}'." }, + Parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1: { code: 4073, category: 1, key: "Parameter '{0}' of public method from exported class has or is using private name '{1}'." }, + Parameter_0_of_method_from_exported_interface_has_or_is_using_name_1_from_private_module_2: { code: 4074, category: 1, key: "Parameter '{0}' of method from exported interface has or is using name '{1}' from private module '{2}'." }, + Parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1: { code: 4075, category: 1, key: "Parameter '{0}' of method from exported interface has or is using private name '{1}'." }, + Parameter_0_of_exported_function_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: { code: 4076, category: 1, key: "Parameter '{0}' of exported function has or is using name '{1}' from external module {2} but cannot be named." }, + Parameter_0_of_exported_function_has_or_is_using_name_1_from_private_module_2: { code: 4077, category: 1, key: "Parameter '{0}' of exported function has or is using name '{1}' from private module '{2}'." }, + Parameter_0_of_exported_function_has_or_is_using_private_name_1: { code: 4078, category: 1, key: "Parameter '{0}' of exported function has or is using private name '{1}'." }, + Exported_type_alias_0_has_or_is_using_private_name_1: { code: 4081, category: 1, key: "Exported type alias '{0}' has or is using private name '{1}'." }, + Loop_contains_block_scoped_variable_0_referenced_by_a_function_in_the_loop_This_is_only_supported_in_ECMAScript_6_or_higher: { code: 4091, category: 1, key: "Loop contains block-scoped variable '{0}' referenced by a function in the loop. This is only supported in ECMAScript 6 or higher." }, + The_current_host_does_not_support_the_0_option: { code: 5001, category: 1, key: "The current host does not support the '{0}' option." }, + Cannot_find_the_common_subdirectory_path_for_the_input_files: { code: 5009, category: 1, key: "Cannot find the common subdirectory path for the input files." }, + Cannot_read_file_0_Colon_1: { code: 5012, category: 1, key: "Cannot read file '{0}': {1}" }, + Unsupported_file_encoding: { code: 5013, category: 1, key: "Unsupported file encoding." }, + Unknown_compiler_option_0: { code: 5023, category: 1, key: "Unknown compiler option '{0}'." }, + Compiler_option_0_requires_a_value_of_type_1: { code: 5024, category: 1, key: "Compiler option '{0}' requires a value of type {1}." }, + Could_not_write_file_0_Colon_1: { code: 5033, category: 1, key: "Could not write file '{0}': {1}" }, + Option_mapRoot_cannot_be_specified_without_specifying_sourcemap_option: { code: 5038, category: 1, key: "Option 'mapRoot' cannot be specified without specifying 'sourcemap' option." }, + Option_sourceRoot_cannot_be_specified_without_specifying_sourcemap_option: { code: 5039, category: 1, key: "Option 'sourceRoot' cannot be specified without specifying 'sourcemap' option." }, + Option_noEmit_cannot_be_specified_with_option_out_or_outDir: { code: 5040, category: 1, key: "Option 'noEmit' cannot be specified with option 'out' or 'outDir'." }, + Option_noEmit_cannot_be_specified_with_option_declaration: { code: 5041, category: 1, key: "Option 'noEmit' cannot be specified with option 'declaration'." }, + Option_project_cannot_be_mixed_with_source_files_on_a_command_line: { code: 5042, category: 1, key: "Option 'project' cannot be mixed with source files on a command line." }, + Concatenate_and_emit_output_to_single_file: { code: 6001, category: 2, key: "Concatenate and emit output to single file." }, + Generates_corresponding_d_ts_file: { code: 6002, category: 2, key: "Generates corresponding '.d.ts' file." }, + Specifies_the_location_where_debugger_should_locate_map_files_instead_of_generated_locations: { code: 6003, category: 2, key: "Specifies the location where debugger should locate map files instead of generated locations." }, + Specifies_the_location_where_debugger_should_locate_TypeScript_files_instead_of_source_locations: { code: 6004, category: 2, key: "Specifies the location where debugger should locate TypeScript files instead of source locations." }, + Watch_input_files: { code: 6005, category: 2, key: "Watch input files." }, + Redirect_output_structure_to_the_directory: { code: 6006, category: 2, key: "Redirect output structure to the directory." }, + Do_not_erase_const_enum_declarations_in_generated_code: { code: 6007, category: 2, key: "Do not erase const enum declarations in generated code." }, + Do_not_emit_outputs_if_any_type_checking_errors_were_reported: { code: 6008, category: 2, key: "Do not emit outputs if any type checking errors were reported." }, + Do_not_emit_comments_to_output: { code: 6009, category: 2, key: "Do not emit comments to output." }, + Do_not_emit_outputs: { code: 6010, category: 2, key: "Do not emit outputs." }, + Specify_ECMAScript_target_version_Colon_ES3_default_ES5_or_ES6_experimental: { code: 6015, category: 2, key: "Specify ECMAScript target version: 'ES3' (default), 'ES5', or 'ES6' (experimental)" }, + Specify_module_code_generation_Colon_commonjs_or_amd: { code: 6016, category: 2, key: "Specify module code generation: 'commonjs' or 'amd'" }, + Print_this_message: { code: 6017, category: 2, key: "Print this message." }, + Print_the_compiler_s_version: { code: 6019, category: 2, key: "Print the compiler's version." }, + Compile_the_project_in_the_given_directory: { code: 6020, category: 2, key: "Compile the project in the given directory." }, + Syntax_Colon_0: { code: 6023, category: 2, key: "Syntax: {0}" }, + options: { code: 6024, category: 2, key: "options" }, + file: { code: 6025, category: 2, key: "file" }, + Examples_Colon_0: { code: 6026, category: 2, key: "Examples: {0}" }, + Options_Colon: { code: 6027, category: 2, key: "Options:" }, + Version_0: { code: 6029, category: 2, key: "Version {0}" }, + Insert_command_line_options_and_files_from_a_file: { code: 6030, category: 2, key: "Insert command line options and files from a file." }, + File_change_detected_Starting_incremental_compilation: { code: 6032, category: 2, key: "File change detected. Starting incremental compilation..." }, + KIND: { code: 6034, category: 2, key: "KIND" }, + FILE: { code: 6035, category: 2, key: "FILE" }, + VERSION: { code: 6036, category: 2, key: "VERSION" }, + LOCATION: { code: 6037, category: 2, key: "LOCATION" }, + DIRECTORY: { code: 6038, category: 2, key: "DIRECTORY" }, + Compilation_complete_Watching_for_file_changes: { code: 6042, category: 2, key: "Compilation complete. Watching for file changes." }, + Generates_corresponding_map_file: { code: 6043, category: 2, key: "Generates corresponding '.map' file." }, + Compiler_option_0_expects_an_argument: { code: 6044, category: 1, key: "Compiler option '{0}' expects an argument." }, + Unterminated_quoted_string_in_response_file_0: { code: 6045, category: 1, key: "Unterminated quoted string in response file '{0}'." }, + Argument_for_module_option_must_be_commonjs_or_amd: { code: 6046, category: 1, key: "Argument for '--module' option must be 'commonjs' or 'amd'." }, + Argument_for_target_option_must_be_es3_es5_or_es6: { code: 6047, category: 1, key: "Argument for '--target' option must be 'es3', 'es5', or 'es6'." }, + Locale_must_be_of_the_form_language_or_language_territory_For_example_0_or_1: { code: 6048, category: 1, key: "Locale must be of the form or -. For example '{0}' or '{1}'." }, + Unsupported_locale_0: { code: 6049, category: 1, key: "Unsupported locale '{0}'." }, + Unable_to_open_file_0: { code: 6050, category: 1, key: "Unable to open file '{0}'." }, + Corrupted_locale_file_0: { code: 6051, category: 1, key: "Corrupted locale file {0}." }, + Raise_error_on_expressions_and_declarations_with_an_implied_any_type: { code: 6052, category: 2, key: "Raise error on expressions and declarations with an implied 'any' type." }, + File_0_not_found: { code: 6053, category: 1, key: "File '{0}' not found." }, + File_0_must_have_extension_ts_or_d_ts: { code: 6054, category: 1, key: "File '{0}' must have extension '.ts' or '.d.ts'." }, + Suppress_noImplicitAny_errors_for_indexing_objects_lacking_index_signatures: { code: 6055, category: 2, key: "Suppress noImplicitAny errors for indexing objects lacking index signatures." }, + Do_not_emit_declarations_for_code_that_has_an_internal_annotation: { code: 6056, category: 2, key: "Do not emit declarations for code that has an '@internal' annotation." }, + Preserve_new_lines_when_emitting_code: { code: 6057, category: 2, key: "Preserve new-lines when emitting code." }, + Variable_0_implicitly_has_an_1_type: { code: 7005, category: 1, key: "Variable '{0}' implicitly has an '{1}' type." }, + Parameter_0_implicitly_has_an_1_type: { code: 7006, category: 1, key: "Parameter '{0}' implicitly has an '{1}' type." }, + Member_0_implicitly_has_an_1_type: { code: 7008, category: 1, key: "Member '{0}' implicitly has an '{1}' type." }, + new_expression_whose_target_lacks_a_construct_signature_implicitly_has_an_any_type: { code: 7009, category: 1, key: "'new' expression, whose target lacks a construct signature, implicitly has an 'any' type." }, + _0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type: { code: 7010, category: 1, key: "'{0}', which lacks return-type annotation, implicitly has an '{1}' return type." }, + Function_expression_which_lacks_return_type_annotation_implicitly_has_an_0_return_type: { code: 7011, category: 1, key: "Function expression, which lacks return-type annotation, implicitly has an '{0}' return type." }, + Construct_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type: { code: 7013, category: 1, key: "Construct signature, which lacks return-type annotation, implicitly has an 'any' return type." }, + Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_type_annotation: { code: 7016, category: 1, key: "Property '{0}' implicitly has type 'any', because its 'set' accessor lacks a type annotation." }, + Index_signature_of_object_type_implicitly_has_an_any_type: { code: 7017, category: 1, key: "Index signature of object type implicitly has an 'any' type." }, + Object_literal_s_property_0_implicitly_has_an_1_type: { code: 7018, category: 1, key: "Object literal's property '{0}' implicitly has an '{1}' type." }, + Rest_parameter_0_implicitly_has_an_any_type: { code: 7019, category: 1, key: "Rest parameter '{0}' implicitly has an 'any[]' type." }, + Call_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type: { code: 7020, category: 1, key: "Call signature, which lacks return-type annotation, implicitly has an 'any' return type." }, + _0_implicitly_has_type_any_because_it_is_referenced_directly_or_indirectly_in_its_own_type_annotation: { code: 7021, category: 1, key: "'{0}' implicitly has type 'any' because it is referenced directly or indirectly in its own type annotation." }, + _0_implicitly_has_type_any_because_it_is_does_not_have_a_type_annotation_and_is_referenced_directly_or_indirectly_in_its_own_initializer: { code: 7022, category: 1, key: "'{0}' implicitly has type 'any' because it is does not have a type annotation and is referenced directly or indirectly in its own initializer." }, + _0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions: { code: 7023, category: 1, key: "'{0}' implicitly has return type 'any' because it does not have a return type annotation and is referenced directly or indirectly in one of its return expressions." }, + Function_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions: { code: 7024, category: 1, key: "Function implicitly has return type 'any' because it does not have a return type annotation and is referenced directly or indirectly in one of its return expressions." }, + You_cannot_rename_this_element: { code: 8000, category: 1, key: "You cannot rename this element." }, + You_cannot_rename_elements_that_are_defined_in_the_standard_TypeScript_library: { code: 8001, category: 1, key: "You cannot rename elements that are defined in the standard TypeScript library." }, + yield_expressions_are_not_currently_supported: { code: 9000, category: 1, key: "'yield' expressions are not currently supported." }, + Generators_are_not_currently_supported: { code: 9001, category: 1, key: "Generators are not currently supported." }, + The_arguments_object_cannot_be_referenced_in_an_arrow_function_Consider_using_a_standard_function_expression: { code: 9002, category: 1, key: "The 'arguments' object cannot be referenced in an arrow function. Consider using a standard function expression." } }; })(ts || (ts = {})); var ts; @@ -4013,2806 +2067,10 @@ var ts; "|=": 62, "^=": 63 }; - var unicodeES3IdentifierStart = [ - 170, - 170, - 181, - 181, - 186, - 186, - 192, - 214, - 216, - 246, - 248, - 543, - 546, - 563, - 592, - 685, - 688, - 696, - 699, - 705, - 720, - 721, - 736, - 740, - 750, - 750, - 890, - 890, - 902, - 902, - 904, - 906, - 908, - 908, - 910, - 929, - 931, - 974, - 976, - 983, - 986, - 1011, - 1024, - 1153, - 1164, - 1220, - 1223, - 1224, - 1227, - 1228, - 1232, - 1269, - 1272, - 1273, - 1329, - 1366, - 1369, - 1369, - 1377, - 1415, - 1488, - 1514, - 1520, - 1522, - 1569, - 1594, - 1600, - 1610, - 1649, - 1747, - 1749, - 1749, - 1765, - 1766, - 1786, - 1788, - 1808, - 1808, - 1810, - 1836, - 1920, - 1957, - 2309, - 2361, - 2365, - 2365, - 2384, - 2384, - 2392, - 2401, - 2437, - 2444, - 2447, - 2448, - 2451, - 2472, - 2474, - 2480, - 2482, - 2482, - 2486, - 2489, - 2524, - 2525, - 2527, - 2529, - 2544, - 2545, - 2565, - 2570, - 2575, - 2576, - 2579, - 2600, - 2602, - 2608, - 2610, - 2611, - 2613, - 2614, - 2616, - 2617, - 2649, - 2652, - 2654, - 2654, - 2674, - 2676, - 2693, - 2699, - 2701, - 2701, - 2703, - 2705, - 2707, - 2728, - 2730, - 2736, - 2738, - 2739, - 2741, - 2745, - 2749, - 2749, - 2768, - 2768, - 2784, - 2784, - 2821, - 2828, - 2831, - 2832, - 2835, - 2856, - 2858, - 2864, - 2866, - 2867, - 2870, - 2873, - 2877, - 2877, - 2908, - 2909, - 2911, - 2913, - 2949, - 2954, - 2958, - 2960, - 2962, - 2965, - 2969, - 2970, - 2972, - 2972, - 2974, - 2975, - 2979, - 2980, - 2984, - 2986, - 2990, - 2997, - 2999, - 3001, - 3077, - 3084, - 3086, - 3088, - 3090, - 3112, - 3114, - 3123, - 3125, - 3129, - 3168, - 3169, - 3205, - 3212, - 3214, - 3216, - 3218, - 3240, - 3242, - 3251, - 3253, - 3257, - 3294, - 3294, - 3296, - 3297, - 3333, - 3340, - 3342, - 3344, - 3346, - 3368, - 3370, - 3385, - 3424, - 3425, - 3461, - 3478, - 3482, - 3505, - 3507, - 3515, - 3517, - 3517, - 3520, - 3526, - 3585, - 3632, - 3634, - 3635, - 3648, - 3654, - 3713, - 3714, - 3716, - 3716, - 3719, - 3720, - 3722, - 3722, - 3725, - 3725, - 3732, - 3735, - 3737, - 3743, - 3745, - 3747, - 3749, - 3749, - 3751, - 3751, - 3754, - 3755, - 3757, - 3760, - 3762, - 3763, - 3773, - 3773, - 3776, - 3780, - 3782, - 3782, - 3804, - 3805, - 3840, - 3840, - 3904, - 3911, - 3913, - 3946, - 3976, - 3979, - 4096, - 4129, - 4131, - 4135, - 4137, - 4138, - 4176, - 4181, - 4256, - 4293, - 4304, - 4342, - 4352, - 4441, - 4447, - 4514, - 4520, - 4601, - 4608, - 4614, - 4616, - 4678, - 4680, - 4680, - 4682, - 4685, - 4688, - 4694, - 4696, - 4696, - 4698, - 4701, - 4704, - 4742, - 4744, - 4744, - 4746, - 4749, - 4752, - 4782, - 4784, - 4784, - 4786, - 4789, - 4792, - 4798, - 4800, - 4800, - 4802, - 4805, - 4808, - 4814, - 4816, - 4822, - 4824, - 4846, - 4848, - 4878, - 4880, - 4880, - 4882, - 4885, - 4888, - 4894, - 4896, - 4934, - 4936, - 4954, - 5024, - 5108, - 5121, - 5740, - 5743, - 5750, - 5761, - 5786, - 5792, - 5866, - 6016, - 6067, - 6176, - 6263, - 6272, - 6312, - 7680, - 7835, - 7840, - 7929, - 7936, - 7957, - 7960, - 7965, - 7968, - 8005, - 8008, - 8013, - 8016, - 8023, - 8025, - 8025, - 8027, - 8027, - 8029, - 8029, - 8031, - 8061, - 8064, - 8116, - 8118, - 8124, - 8126, - 8126, - 8130, - 8132, - 8134, - 8140, - 8144, - 8147, - 8150, - 8155, - 8160, - 8172, - 8178, - 8180, - 8182, - 8188, - 8319, - 8319, - 8450, - 8450, - 8455, - 8455, - 8458, - 8467, - 8469, - 8469, - 8473, - 8477, - 8484, - 8484, - 8486, - 8486, - 8488, - 8488, - 8490, - 8493, - 8495, - 8497, - 8499, - 8505, - 8544, - 8579, - 12293, - 12295, - 12321, - 12329, - 12337, - 12341, - 12344, - 12346, - 12353, - 12436, - 12445, - 12446, - 12449, - 12538, - 12540, - 12542, - 12549, - 12588, - 12593, - 12686, - 12704, - 12727, - 13312, - 19893, - 19968, - 40869, - 40960, - 42124, - 44032, - 55203, - 63744, - 64045, - 64256, - 64262, - 64275, - 64279, - 64285, - 64285, - 64287, - 64296, - 64298, - 64310, - 64312, - 64316, - 64318, - 64318, - 64320, - 64321, - 64323, - 64324, - 64326, - 64433, - 64467, - 64829, - 64848, - 64911, - 64914, - 64967, - 65008, - 65019, - 65136, - 65138, - 65140, - 65140, - 65142, - 65276, - 65313, - 65338, - 65345, - 65370, - 65382, - 65470, - 65474, - 65479, - 65482, - 65487, - 65490, - 65495, - 65498, - 65500, - ]; - var unicodeES3IdentifierPart = [ - 170, - 170, - 181, - 181, - 186, - 186, - 192, - 214, - 216, - 246, - 248, - 543, - 546, - 563, - 592, - 685, - 688, - 696, - 699, - 705, - 720, - 721, - 736, - 740, - 750, - 750, - 768, - 846, - 864, - 866, - 890, - 890, - 902, - 902, - 904, - 906, - 908, - 908, - 910, - 929, - 931, - 974, - 976, - 983, - 986, - 1011, - 1024, - 1153, - 1155, - 1158, - 1164, - 1220, - 1223, - 1224, - 1227, - 1228, - 1232, - 1269, - 1272, - 1273, - 1329, - 1366, - 1369, - 1369, - 1377, - 1415, - 1425, - 1441, - 1443, - 1465, - 1467, - 1469, - 1471, - 1471, - 1473, - 1474, - 1476, - 1476, - 1488, - 1514, - 1520, - 1522, - 1569, - 1594, - 1600, - 1621, - 1632, - 1641, - 1648, - 1747, - 1749, - 1756, - 1759, - 1768, - 1770, - 1773, - 1776, - 1788, - 1808, - 1836, - 1840, - 1866, - 1920, - 1968, - 2305, - 2307, - 2309, - 2361, - 2364, - 2381, - 2384, - 2388, - 2392, - 2403, - 2406, - 2415, - 2433, - 2435, - 2437, - 2444, - 2447, - 2448, - 2451, - 2472, - 2474, - 2480, - 2482, - 2482, - 2486, - 2489, - 2492, - 2492, - 2494, - 2500, - 2503, - 2504, - 2507, - 2509, - 2519, - 2519, - 2524, - 2525, - 2527, - 2531, - 2534, - 2545, - 2562, - 2562, - 2565, - 2570, - 2575, - 2576, - 2579, - 2600, - 2602, - 2608, - 2610, - 2611, - 2613, - 2614, - 2616, - 2617, - 2620, - 2620, - 2622, - 2626, - 2631, - 2632, - 2635, - 2637, - 2649, - 2652, - 2654, - 2654, - 2662, - 2676, - 2689, - 2691, - 2693, - 2699, - 2701, - 2701, - 2703, - 2705, - 2707, - 2728, - 2730, - 2736, - 2738, - 2739, - 2741, - 2745, - 2748, - 2757, - 2759, - 2761, - 2763, - 2765, - 2768, - 2768, - 2784, - 2784, - 2790, - 2799, - 2817, - 2819, - 2821, - 2828, - 2831, - 2832, - 2835, - 2856, - 2858, - 2864, - 2866, - 2867, - 2870, - 2873, - 2876, - 2883, - 2887, - 2888, - 2891, - 2893, - 2902, - 2903, - 2908, - 2909, - 2911, - 2913, - 2918, - 2927, - 2946, - 2947, - 2949, - 2954, - 2958, - 2960, - 2962, - 2965, - 2969, - 2970, - 2972, - 2972, - 2974, - 2975, - 2979, - 2980, - 2984, - 2986, - 2990, - 2997, - 2999, - 3001, - 3006, - 3010, - 3014, - 3016, - 3018, - 3021, - 3031, - 3031, - 3047, - 3055, - 3073, - 3075, - 3077, - 3084, - 3086, - 3088, - 3090, - 3112, - 3114, - 3123, - 3125, - 3129, - 3134, - 3140, - 3142, - 3144, - 3146, - 3149, - 3157, - 3158, - 3168, - 3169, - 3174, - 3183, - 3202, - 3203, - 3205, - 3212, - 3214, - 3216, - 3218, - 3240, - 3242, - 3251, - 3253, - 3257, - 3262, - 3268, - 3270, - 3272, - 3274, - 3277, - 3285, - 3286, - 3294, - 3294, - 3296, - 3297, - 3302, - 3311, - 3330, - 3331, - 3333, - 3340, - 3342, - 3344, - 3346, - 3368, - 3370, - 3385, - 3390, - 3395, - 3398, - 3400, - 3402, - 3405, - 3415, - 3415, - 3424, - 3425, - 3430, - 3439, - 3458, - 3459, - 3461, - 3478, - 3482, - 3505, - 3507, - 3515, - 3517, - 3517, - 3520, - 3526, - 3530, - 3530, - 3535, - 3540, - 3542, - 3542, - 3544, - 3551, - 3570, - 3571, - 3585, - 3642, - 3648, - 3662, - 3664, - 3673, - 3713, - 3714, - 3716, - 3716, - 3719, - 3720, - 3722, - 3722, - 3725, - 3725, - 3732, - 3735, - 3737, - 3743, - 3745, - 3747, - 3749, - 3749, - 3751, - 3751, - 3754, - 3755, - 3757, - 3769, - 3771, - 3773, - 3776, - 3780, - 3782, - 3782, - 3784, - 3789, - 3792, - 3801, - 3804, - 3805, - 3840, - 3840, - 3864, - 3865, - 3872, - 3881, - 3893, - 3893, - 3895, - 3895, - 3897, - 3897, - 3902, - 3911, - 3913, - 3946, - 3953, - 3972, - 3974, - 3979, - 3984, - 3991, - 3993, - 4028, - 4038, - 4038, - 4096, - 4129, - 4131, - 4135, - 4137, - 4138, - 4140, - 4146, - 4150, - 4153, - 4160, - 4169, - 4176, - 4185, - 4256, - 4293, - 4304, - 4342, - 4352, - 4441, - 4447, - 4514, - 4520, - 4601, - 4608, - 4614, - 4616, - 4678, - 4680, - 4680, - 4682, - 4685, - 4688, - 4694, - 4696, - 4696, - 4698, - 4701, - 4704, - 4742, - 4744, - 4744, - 4746, - 4749, - 4752, - 4782, - 4784, - 4784, - 4786, - 4789, - 4792, - 4798, - 4800, - 4800, - 4802, - 4805, - 4808, - 4814, - 4816, - 4822, - 4824, - 4846, - 4848, - 4878, - 4880, - 4880, - 4882, - 4885, - 4888, - 4894, - 4896, - 4934, - 4936, - 4954, - 4969, - 4977, - 5024, - 5108, - 5121, - 5740, - 5743, - 5750, - 5761, - 5786, - 5792, - 5866, - 6016, - 6099, - 6112, - 6121, - 6160, - 6169, - 6176, - 6263, - 6272, - 6313, - 7680, - 7835, - 7840, - 7929, - 7936, - 7957, - 7960, - 7965, - 7968, - 8005, - 8008, - 8013, - 8016, - 8023, - 8025, - 8025, - 8027, - 8027, - 8029, - 8029, - 8031, - 8061, - 8064, - 8116, - 8118, - 8124, - 8126, - 8126, - 8130, - 8132, - 8134, - 8140, - 8144, - 8147, - 8150, - 8155, - 8160, - 8172, - 8178, - 8180, - 8182, - 8188, - 8255, - 8256, - 8319, - 8319, - 8400, - 8412, - 8417, - 8417, - 8450, - 8450, - 8455, - 8455, - 8458, - 8467, - 8469, - 8469, - 8473, - 8477, - 8484, - 8484, - 8486, - 8486, - 8488, - 8488, - 8490, - 8493, - 8495, - 8497, - 8499, - 8505, - 8544, - 8579, - 12293, - 12295, - 12321, - 12335, - 12337, - 12341, - 12344, - 12346, - 12353, - 12436, - 12441, - 12442, - 12445, - 12446, - 12449, - 12542, - 12549, - 12588, - 12593, - 12686, - 12704, - 12727, - 13312, - 19893, - 19968, - 40869, - 40960, - 42124, - 44032, - 55203, - 63744, - 64045, - 64256, - 64262, - 64275, - 64279, - 64285, - 64296, - 64298, - 64310, - 64312, - 64316, - 64318, - 64318, - 64320, - 64321, - 64323, - 64324, - 64326, - 64433, - 64467, - 64829, - 64848, - 64911, - 64914, - 64967, - 65008, - 65019, - 65056, - 65059, - 65075, - 65076, - 65101, - 65103, - 65136, - 65138, - 65140, - 65140, - 65142, - 65276, - 65296, - 65305, - 65313, - 65338, - 65343, - 65343, - 65345, - 65370, - 65381, - 65470, - 65474, - 65479, - 65482, - 65487, - 65490, - 65495, - 65498, - 65500, - ]; - var unicodeES5IdentifierStart = [ - 170, - 170, - 181, - 181, - 186, - 186, - 192, - 214, - 216, - 246, - 248, - 705, - 710, - 721, - 736, - 740, - 748, - 748, - 750, - 750, - 880, - 884, - 886, - 887, - 890, - 893, - 902, - 902, - 904, - 906, - 908, - 908, - 910, - 929, - 931, - 1013, - 1015, - 1153, - 1162, - 1319, - 1329, - 1366, - 1369, - 1369, - 1377, - 1415, - 1488, - 1514, - 1520, - 1522, - 1568, - 1610, - 1646, - 1647, - 1649, - 1747, - 1749, - 1749, - 1765, - 1766, - 1774, - 1775, - 1786, - 1788, - 1791, - 1791, - 1808, - 1808, - 1810, - 1839, - 1869, - 1957, - 1969, - 1969, - 1994, - 2026, - 2036, - 2037, - 2042, - 2042, - 2048, - 2069, - 2074, - 2074, - 2084, - 2084, - 2088, - 2088, - 2112, - 2136, - 2208, - 2208, - 2210, - 2220, - 2308, - 2361, - 2365, - 2365, - 2384, - 2384, - 2392, - 2401, - 2417, - 2423, - 2425, - 2431, - 2437, - 2444, - 2447, - 2448, - 2451, - 2472, - 2474, - 2480, - 2482, - 2482, - 2486, - 2489, - 2493, - 2493, - 2510, - 2510, - 2524, - 2525, - 2527, - 2529, - 2544, - 2545, - 2565, - 2570, - 2575, - 2576, - 2579, - 2600, - 2602, - 2608, - 2610, - 2611, - 2613, - 2614, - 2616, - 2617, - 2649, - 2652, - 2654, - 2654, - 2674, - 2676, - 2693, - 2701, - 2703, - 2705, - 2707, - 2728, - 2730, - 2736, - 2738, - 2739, - 2741, - 2745, - 2749, - 2749, - 2768, - 2768, - 2784, - 2785, - 2821, - 2828, - 2831, - 2832, - 2835, - 2856, - 2858, - 2864, - 2866, - 2867, - 2869, - 2873, - 2877, - 2877, - 2908, - 2909, - 2911, - 2913, - 2929, - 2929, - 2947, - 2947, - 2949, - 2954, - 2958, - 2960, - 2962, - 2965, - 2969, - 2970, - 2972, - 2972, - 2974, - 2975, - 2979, - 2980, - 2984, - 2986, - 2990, - 3001, - 3024, - 3024, - 3077, - 3084, - 3086, - 3088, - 3090, - 3112, - 3114, - 3123, - 3125, - 3129, - 3133, - 3133, - 3160, - 3161, - 3168, - 3169, - 3205, - 3212, - 3214, - 3216, - 3218, - 3240, - 3242, - 3251, - 3253, - 3257, - 3261, - 3261, - 3294, - 3294, - 3296, - 3297, - 3313, - 3314, - 3333, - 3340, - 3342, - 3344, - 3346, - 3386, - 3389, - 3389, - 3406, - 3406, - 3424, - 3425, - 3450, - 3455, - 3461, - 3478, - 3482, - 3505, - 3507, - 3515, - 3517, - 3517, - 3520, - 3526, - 3585, - 3632, - 3634, - 3635, - 3648, - 3654, - 3713, - 3714, - 3716, - 3716, - 3719, - 3720, - 3722, - 3722, - 3725, - 3725, - 3732, - 3735, - 3737, - 3743, - 3745, - 3747, - 3749, - 3749, - 3751, - 3751, - 3754, - 3755, - 3757, - 3760, - 3762, - 3763, - 3773, - 3773, - 3776, - 3780, - 3782, - 3782, - 3804, - 3807, - 3840, - 3840, - 3904, - 3911, - 3913, - 3948, - 3976, - 3980, - 4096, - 4138, - 4159, - 4159, - 4176, - 4181, - 4186, - 4189, - 4193, - 4193, - 4197, - 4198, - 4206, - 4208, - 4213, - 4225, - 4238, - 4238, - 4256, - 4293, - 4295, - 4295, - 4301, - 4301, - 4304, - 4346, - 4348, - 4680, - 4682, - 4685, - 4688, - 4694, - 4696, - 4696, - 4698, - 4701, - 4704, - 4744, - 4746, - 4749, - 4752, - 4784, - 4786, - 4789, - 4792, - 4798, - 4800, - 4800, - 4802, - 4805, - 4808, - 4822, - 4824, - 4880, - 4882, - 4885, - 4888, - 4954, - 4992, - 5007, - 5024, - 5108, - 5121, - 5740, - 5743, - 5759, - 5761, - 5786, - 5792, - 5866, - 5870, - 5872, - 5888, - 5900, - 5902, - 5905, - 5920, - 5937, - 5952, - 5969, - 5984, - 5996, - 5998, - 6000, - 6016, - 6067, - 6103, - 6103, - 6108, - 6108, - 6176, - 6263, - 6272, - 6312, - 6314, - 6314, - 6320, - 6389, - 6400, - 6428, - 6480, - 6509, - 6512, - 6516, - 6528, - 6571, - 6593, - 6599, - 6656, - 6678, - 6688, - 6740, - 6823, - 6823, - 6917, - 6963, - 6981, - 6987, - 7043, - 7072, - 7086, - 7087, - 7098, - 7141, - 7168, - 7203, - 7245, - 7247, - 7258, - 7293, - 7401, - 7404, - 7406, - 7409, - 7413, - 7414, - 7424, - 7615, - 7680, - 7957, - 7960, - 7965, - 7968, - 8005, - 8008, - 8013, - 8016, - 8023, - 8025, - 8025, - 8027, - 8027, - 8029, - 8029, - 8031, - 8061, - 8064, - 8116, - 8118, - 8124, - 8126, - 8126, - 8130, - 8132, - 8134, - 8140, - 8144, - 8147, - 8150, - 8155, - 8160, - 8172, - 8178, - 8180, - 8182, - 8188, - 8305, - 8305, - 8319, - 8319, - 8336, - 8348, - 8450, - 8450, - 8455, - 8455, - 8458, - 8467, - 8469, - 8469, - 8473, - 8477, - 8484, - 8484, - 8486, - 8486, - 8488, - 8488, - 8490, - 8493, - 8495, - 8505, - 8508, - 8511, - 8517, - 8521, - 8526, - 8526, - 8544, - 8584, - 11264, - 11310, - 11312, - 11358, - 11360, - 11492, - 11499, - 11502, - 11506, - 11507, - 11520, - 11557, - 11559, - 11559, - 11565, - 11565, - 11568, - 11623, - 11631, - 11631, - 11648, - 11670, - 11680, - 11686, - 11688, - 11694, - 11696, - 11702, - 11704, - 11710, - 11712, - 11718, - 11720, - 11726, - 11728, - 11734, - 11736, - 11742, - 11823, - 11823, - 12293, - 12295, - 12321, - 12329, - 12337, - 12341, - 12344, - 12348, - 12353, - 12438, - 12445, - 12447, - 12449, - 12538, - 12540, - 12543, - 12549, - 12589, - 12593, - 12686, - 12704, - 12730, - 12784, - 12799, - 13312, - 19893, - 19968, - 40908, - 40960, - 42124, - 42192, - 42237, - 42240, - 42508, - 42512, - 42527, - 42538, - 42539, - 42560, - 42606, - 42623, - 42647, - 42656, - 42735, - 42775, - 42783, - 42786, - 42888, - 42891, - 42894, - 42896, - 42899, - 42912, - 42922, - 43000, - 43009, - 43011, - 43013, - 43015, - 43018, - 43020, - 43042, - 43072, - 43123, - 43138, - 43187, - 43250, - 43255, - 43259, - 43259, - 43274, - 43301, - 43312, - 43334, - 43360, - 43388, - 43396, - 43442, - 43471, - 43471, - 43520, - 43560, - 43584, - 43586, - 43588, - 43595, - 43616, - 43638, - 43642, - 43642, - 43648, - 43695, - 43697, - 43697, - 43701, - 43702, - 43705, - 43709, - 43712, - 43712, - 43714, - 43714, - 43739, - 43741, - 43744, - 43754, - 43762, - 43764, - 43777, - 43782, - 43785, - 43790, - 43793, - 43798, - 43808, - 43814, - 43816, - 43822, - 43968, - 44002, - 44032, - 55203, - 55216, - 55238, - 55243, - 55291, - 63744, - 64109, - 64112, - 64217, - 64256, - 64262, - 64275, - 64279, - 64285, - 64285, - 64287, - 64296, - 64298, - 64310, - 64312, - 64316, - 64318, - 64318, - 64320, - 64321, - 64323, - 64324, - 64326, - 64433, - 64467, - 64829, - 64848, - 64911, - 64914, - 64967, - 65008, - 65019, - 65136, - 65140, - 65142, - 65276, - 65313, - 65338, - 65345, - 65370, - 65382, - 65470, - 65474, - 65479, - 65482, - 65487, - 65490, - 65495, - 65498, - 65500, - ]; - var unicodeES5IdentifierPart = [ - 170, - 170, - 181, - 181, - 186, - 186, - 192, - 214, - 216, - 246, - 248, - 705, - 710, - 721, - 736, - 740, - 748, - 748, - 750, - 750, - 768, - 884, - 886, - 887, - 890, - 893, - 902, - 902, - 904, - 906, - 908, - 908, - 910, - 929, - 931, - 1013, - 1015, - 1153, - 1155, - 1159, - 1162, - 1319, - 1329, - 1366, - 1369, - 1369, - 1377, - 1415, - 1425, - 1469, - 1471, - 1471, - 1473, - 1474, - 1476, - 1477, - 1479, - 1479, - 1488, - 1514, - 1520, - 1522, - 1552, - 1562, - 1568, - 1641, - 1646, - 1747, - 1749, - 1756, - 1759, - 1768, - 1770, - 1788, - 1791, - 1791, - 1808, - 1866, - 1869, - 1969, - 1984, - 2037, - 2042, - 2042, - 2048, - 2093, - 2112, - 2139, - 2208, - 2208, - 2210, - 2220, - 2276, - 2302, - 2304, - 2403, - 2406, - 2415, - 2417, - 2423, - 2425, - 2431, - 2433, - 2435, - 2437, - 2444, - 2447, - 2448, - 2451, - 2472, - 2474, - 2480, - 2482, - 2482, - 2486, - 2489, - 2492, - 2500, - 2503, - 2504, - 2507, - 2510, - 2519, - 2519, - 2524, - 2525, - 2527, - 2531, - 2534, - 2545, - 2561, - 2563, - 2565, - 2570, - 2575, - 2576, - 2579, - 2600, - 2602, - 2608, - 2610, - 2611, - 2613, - 2614, - 2616, - 2617, - 2620, - 2620, - 2622, - 2626, - 2631, - 2632, - 2635, - 2637, - 2641, - 2641, - 2649, - 2652, - 2654, - 2654, - 2662, - 2677, - 2689, - 2691, - 2693, - 2701, - 2703, - 2705, - 2707, - 2728, - 2730, - 2736, - 2738, - 2739, - 2741, - 2745, - 2748, - 2757, - 2759, - 2761, - 2763, - 2765, - 2768, - 2768, - 2784, - 2787, - 2790, - 2799, - 2817, - 2819, - 2821, - 2828, - 2831, - 2832, - 2835, - 2856, - 2858, - 2864, - 2866, - 2867, - 2869, - 2873, - 2876, - 2884, - 2887, - 2888, - 2891, - 2893, - 2902, - 2903, - 2908, - 2909, - 2911, - 2915, - 2918, - 2927, - 2929, - 2929, - 2946, - 2947, - 2949, - 2954, - 2958, - 2960, - 2962, - 2965, - 2969, - 2970, - 2972, - 2972, - 2974, - 2975, - 2979, - 2980, - 2984, - 2986, - 2990, - 3001, - 3006, - 3010, - 3014, - 3016, - 3018, - 3021, - 3024, - 3024, - 3031, - 3031, - 3046, - 3055, - 3073, - 3075, - 3077, - 3084, - 3086, - 3088, - 3090, - 3112, - 3114, - 3123, - 3125, - 3129, - 3133, - 3140, - 3142, - 3144, - 3146, - 3149, - 3157, - 3158, - 3160, - 3161, - 3168, - 3171, - 3174, - 3183, - 3202, - 3203, - 3205, - 3212, - 3214, - 3216, - 3218, - 3240, - 3242, - 3251, - 3253, - 3257, - 3260, - 3268, - 3270, - 3272, - 3274, - 3277, - 3285, - 3286, - 3294, - 3294, - 3296, - 3299, - 3302, - 3311, - 3313, - 3314, - 3330, - 3331, - 3333, - 3340, - 3342, - 3344, - 3346, - 3386, - 3389, - 3396, - 3398, - 3400, - 3402, - 3406, - 3415, - 3415, - 3424, - 3427, - 3430, - 3439, - 3450, - 3455, - 3458, - 3459, - 3461, - 3478, - 3482, - 3505, - 3507, - 3515, - 3517, - 3517, - 3520, - 3526, - 3530, - 3530, - 3535, - 3540, - 3542, - 3542, - 3544, - 3551, - 3570, - 3571, - 3585, - 3642, - 3648, - 3662, - 3664, - 3673, - 3713, - 3714, - 3716, - 3716, - 3719, - 3720, - 3722, - 3722, - 3725, - 3725, - 3732, - 3735, - 3737, - 3743, - 3745, - 3747, - 3749, - 3749, - 3751, - 3751, - 3754, - 3755, - 3757, - 3769, - 3771, - 3773, - 3776, - 3780, - 3782, - 3782, - 3784, - 3789, - 3792, - 3801, - 3804, - 3807, - 3840, - 3840, - 3864, - 3865, - 3872, - 3881, - 3893, - 3893, - 3895, - 3895, - 3897, - 3897, - 3902, - 3911, - 3913, - 3948, - 3953, - 3972, - 3974, - 3991, - 3993, - 4028, - 4038, - 4038, - 4096, - 4169, - 4176, - 4253, - 4256, - 4293, - 4295, - 4295, - 4301, - 4301, - 4304, - 4346, - 4348, - 4680, - 4682, - 4685, - 4688, - 4694, - 4696, - 4696, - 4698, - 4701, - 4704, - 4744, - 4746, - 4749, - 4752, - 4784, - 4786, - 4789, - 4792, - 4798, - 4800, - 4800, - 4802, - 4805, - 4808, - 4822, - 4824, - 4880, - 4882, - 4885, - 4888, - 4954, - 4957, - 4959, - 4992, - 5007, - 5024, - 5108, - 5121, - 5740, - 5743, - 5759, - 5761, - 5786, - 5792, - 5866, - 5870, - 5872, - 5888, - 5900, - 5902, - 5908, - 5920, - 5940, - 5952, - 5971, - 5984, - 5996, - 5998, - 6000, - 6002, - 6003, - 6016, - 6099, - 6103, - 6103, - 6108, - 6109, - 6112, - 6121, - 6155, - 6157, - 6160, - 6169, - 6176, - 6263, - 6272, - 6314, - 6320, - 6389, - 6400, - 6428, - 6432, - 6443, - 6448, - 6459, - 6470, - 6509, - 6512, - 6516, - 6528, - 6571, - 6576, - 6601, - 6608, - 6617, - 6656, - 6683, - 6688, - 6750, - 6752, - 6780, - 6783, - 6793, - 6800, - 6809, - 6823, - 6823, - 6912, - 6987, - 6992, - 7001, - 7019, - 7027, - 7040, - 7155, - 7168, - 7223, - 7232, - 7241, - 7245, - 7293, - 7376, - 7378, - 7380, - 7414, - 7424, - 7654, - 7676, - 7957, - 7960, - 7965, - 7968, - 8005, - 8008, - 8013, - 8016, - 8023, - 8025, - 8025, - 8027, - 8027, - 8029, - 8029, - 8031, - 8061, - 8064, - 8116, - 8118, - 8124, - 8126, - 8126, - 8130, - 8132, - 8134, - 8140, - 8144, - 8147, - 8150, - 8155, - 8160, - 8172, - 8178, - 8180, - 8182, - 8188, - 8204, - 8205, - 8255, - 8256, - 8276, - 8276, - 8305, - 8305, - 8319, - 8319, - 8336, - 8348, - 8400, - 8412, - 8417, - 8417, - 8421, - 8432, - 8450, - 8450, - 8455, - 8455, - 8458, - 8467, - 8469, - 8469, - 8473, - 8477, - 8484, - 8484, - 8486, - 8486, - 8488, - 8488, - 8490, - 8493, - 8495, - 8505, - 8508, - 8511, - 8517, - 8521, - 8526, - 8526, - 8544, - 8584, - 11264, - 11310, - 11312, - 11358, - 11360, - 11492, - 11499, - 11507, - 11520, - 11557, - 11559, - 11559, - 11565, - 11565, - 11568, - 11623, - 11631, - 11631, - 11647, - 11670, - 11680, - 11686, - 11688, - 11694, - 11696, - 11702, - 11704, - 11710, - 11712, - 11718, - 11720, - 11726, - 11728, - 11734, - 11736, - 11742, - 11744, - 11775, - 11823, - 11823, - 12293, - 12295, - 12321, - 12335, - 12337, - 12341, - 12344, - 12348, - 12353, - 12438, - 12441, - 12442, - 12445, - 12447, - 12449, - 12538, - 12540, - 12543, - 12549, - 12589, - 12593, - 12686, - 12704, - 12730, - 12784, - 12799, - 13312, - 19893, - 19968, - 40908, - 40960, - 42124, - 42192, - 42237, - 42240, - 42508, - 42512, - 42539, - 42560, - 42607, - 42612, - 42621, - 42623, - 42647, - 42655, - 42737, - 42775, - 42783, - 42786, - 42888, - 42891, - 42894, - 42896, - 42899, - 42912, - 42922, - 43000, - 43047, - 43072, - 43123, - 43136, - 43204, - 43216, - 43225, - 43232, - 43255, - 43259, - 43259, - 43264, - 43309, - 43312, - 43347, - 43360, - 43388, - 43392, - 43456, - 43471, - 43481, - 43520, - 43574, - 43584, - 43597, - 43600, - 43609, - 43616, - 43638, - 43642, - 43643, - 43648, - 43714, - 43739, - 43741, - 43744, - 43759, - 43762, - 43766, - 43777, - 43782, - 43785, - 43790, - 43793, - 43798, - 43808, - 43814, - 43816, - 43822, - 43968, - 44010, - 44012, - 44013, - 44016, - 44025, - 44032, - 55203, - 55216, - 55238, - 55243, - 55291, - 63744, - 64109, - 64112, - 64217, - 64256, - 64262, - 64275, - 64279, - 64285, - 64296, - 64298, - 64310, - 64312, - 64316, - 64318, - 64318, - 64320, - 64321, - 64323, - 64324, - 64326, - 64433, - 64467, - 64829, - 64848, - 64911, - 64914, - 64967, - 65008, - 65019, - 65024, - 65039, - 65056, - 65062, - 65075, - 65076, - 65101, - 65103, - 65136, - 65140, - 65142, - 65276, - 65296, - 65305, - 65313, - 65338, - 65343, - 65343, - 65345, - 65370, - 65382, - 65470, - 65474, - 65479, - 65482, - 65487, - 65490, - 65495, - 65498, - 65500, - ]; + var unicodeES3IdentifierStart = [170, 170, 181, 181, 186, 186, 192, 214, 216, 246, 248, 543, 546, 563, 592, 685, 688, 696, 699, 705, 720, 721, 736, 740, 750, 750, 890, 890, 902, 902, 904, 906, 908, 908, 910, 929, 931, 974, 976, 983, 986, 1011, 1024, 1153, 1164, 1220, 1223, 1224, 1227, 1228, 1232, 1269, 1272, 1273, 1329, 1366, 1369, 1369, 1377, 1415, 1488, 1514, 1520, 1522, 1569, 1594, 1600, 1610, 1649, 1747, 1749, 1749, 1765, 1766, 1786, 1788, 1808, 1808, 1810, 1836, 1920, 1957, 2309, 2361, 2365, 2365, 2384, 2384, 2392, 2401, 2437, 2444, 2447, 2448, 2451, 2472, 2474, 2480, 2482, 2482, 2486, 2489, 2524, 2525, 2527, 2529, 2544, 2545, 2565, 2570, 2575, 2576, 2579, 2600, 2602, 2608, 2610, 2611, 2613, 2614, 2616, 2617, 2649, 2652, 2654, 2654, 2674, 2676, 2693, 2699, 2701, 2701, 2703, 2705, 2707, 2728, 2730, 2736, 2738, 2739, 2741, 2745, 2749, 2749, 2768, 2768, 2784, 2784, 2821, 2828, 2831, 2832, 2835, 2856, 2858, 2864, 2866, 2867, 2870, 2873, 2877, 2877, 2908, 2909, 2911, 2913, 2949, 2954, 2958, 2960, 2962, 2965, 2969, 2970, 2972, 2972, 2974, 2975, 2979, 2980, 2984, 2986, 2990, 2997, 2999, 3001, 3077, 3084, 3086, 3088, 3090, 3112, 3114, 3123, 3125, 3129, 3168, 3169, 3205, 3212, 3214, 3216, 3218, 3240, 3242, 3251, 3253, 3257, 3294, 3294, 3296, 3297, 3333, 3340, 3342, 3344, 3346, 3368, 3370, 3385, 3424, 3425, 3461, 3478, 3482, 3505, 3507, 3515, 3517, 3517, 3520, 3526, 3585, 3632, 3634, 3635, 3648, 3654, 3713, 3714, 3716, 3716, 3719, 3720, 3722, 3722, 3725, 3725, 3732, 3735, 3737, 3743, 3745, 3747, 3749, 3749, 3751, 3751, 3754, 3755, 3757, 3760, 3762, 3763, 3773, 3773, 3776, 3780, 3782, 3782, 3804, 3805, 3840, 3840, 3904, 3911, 3913, 3946, 3976, 3979, 4096, 4129, 4131, 4135, 4137, 4138, 4176, 4181, 4256, 4293, 4304, 4342, 4352, 4441, 4447, 4514, 4520, 4601, 4608, 4614, 4616, 4678, 4680, 4680, 4682, 4685, 4688, 4694, 4696, 4696, 4698, 4701, 4704, 4742, 4744, 4744, 4746, 4749, 4752, 4782, 4784, 4784, 4786, 4789, 4792, 4798, 4800, 4800, 4802, 4805, 4808, 4814, 4816, 4822, 4824, 4846, 4848, 4878, 4880, 4880, 4882, 4885, 4888, 4894, 4896, 4934, 4936, 4954, 5024, 5108, 5121, 5740, 5743, 5750, 5761, 5786, 5792, 5866, 6016, 6067, 6176, 6263, 6272, 6312, 7680, 7835, 7840, 7929, 7936, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8023, 8025, 8025, 8027, 8027, 8029, 8029, 8031, 8061, 8064, 8116, 8118, 8124, 8126, 8126, 8130, 8132, 8134, 8140, 8144, 8147, 8150, 8155, 8160, 8172, 8178, 8180, 8182, 8188, 8319, 8319, 8450, 8450, 8455, 8455, 8458, 8467, 8469, 8469, 8473, 8477, 8484, 8484, 8486, 8486, 8488, 8488, 8490, 8493, 8495, 8497, 8499, 8505, 8544, 8579, 12293, 12295, 12321, 12329, 12337, 12341, 12344, 12346, 12353, 12436, 12445, 12446, 12449, 12538, 12540, 12542, 12549, 12588, 12593, 12686, 12704, 12727, 13312, 19893, 19968, 40869, 40960, 42124, 44032, 55203, 63744, 64045, 64256, 64262, 64275, 64279, 64285, 64285, 64287, 64296, 64298, 64310, 64312, 64316, 64318, 64318, 64320, 64321, 64323, 64324, 64326, 64433, 64467, 64829, 64848, 64911, 64914, 64967, 65008, 65019, 65136, 65138, 65140, 65140, 65142, 65276, 65313, 65338, 65345, 65370, 65382, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500,]; + var unicodeES3IdentifierPart = [170, 170, 181, 181, 186, 186, 192, 214, 216, 246, 248, 543, 546, 563, 592, 685, 688, 696, 699, 705, 720, 721, 736, 740, 750, 750, 768, 846, 864, 866, 890, 890, 902, 902, 904, 906, 908, 908, 910, 929, 931, 974, 976, 983, 986, 1011, 1024, 1153, 1155, 1158, 1164, 1220, 1223, 1224, 1227, 1228, 1232, 1269, 1272, 1273, 1329, 1366, 1369, 1369, 1377, 1415, 1425, 1441, 1443, 1465, 1467, 1469, 1471, 1471, 1473, 1474, 1476, 1476, 1488, 1514, 1520, 1522, 1569, 1594, 1600, 1621, 1632, 1641, 1648, 1747, 1749, 1756, 1759, 1768, 1770, 1773, 1776, 1788, 1808, 1836, 1840, 1866, 1920, 1968, 2305, 2307, 2309, 2361, 2364, 2381, 2384, 2388, 2392, 2403, 2406, 2415, 2433, 2435, 2437, 2444, 2447, 2448, 2451, 2472, 2474, 2480, 2482, 2482, 2486, 2489, 2492, 2492, 2494, 2500, 2503, 2504, 2507, 2509, 2519, 2519, 2524, 2525, 2527, 2531, 2534, 2545, 2562, 2562, 2565, 2570, 2575, 2576, 2579, 2600, 2602, 2608, 2610, 2611, 2613, 2614, 2616, 2617, 2620, 2620, 2622, 2626, 2631, 2632, 2635, 2637, 2649, 2652, 2654, 2654, 2662, 2676, 2689, 2691, 2693, 2699, 2701, 2701, 2703, 2705, 2707, 2728, 2730, 2736, 2738, 2739, 2741, 2745, 2748, 2757, 2759, 2761, 2763, 2765, 2768, 2768, 2784, 2784, 2790, 2799, 2817, 2819, 2821, 2828, 2831, 2832, 2835, 2856, 2858, 2864, 2866, 2867, 2870, 2873, 2876, 2883, 2887, 2888, 2891, 2893, 2902, 2903, 2908, 2909, 2911, 2913, 2918, 2927, 2946, 2947, 2949, 2954, 2958, 2960, 2962, 2965, 2969, 2970, 2972, 2972, 2974, 2975, 2979, 2980, 2984, 2986, 2990, 2997, 2999, 3001, 3006, 3010, 3014, 3016, 3018, 3021, 3031, 3031, 3047, 3055, 3073, 3075, 3077, 3084, 3086, 3088, 3090, 3112, 3114, 3123, 3125, 3129, 3134, 3140, 3142, 3144, 3146, 3149, 3157, 3158, 3168, 3169, 3174, 3183, 3202, 3203, 3205, 3212, 3214, 3216, 3218, 3240, 3242, 3251, 3253, 3257, 3262, 3268, 3270, 3272, 3274, 3277, 3285, 3286, 3294, 3294, 3296, 3297, 3302, 3311, 3330, 3331, 3333, 3340, 3342, 3344, 3346, 3368, 3370, 3385, 3390, 3395, 3398, 3400, 3402, 3405, 3415, 3415, 3424, 3425, 3430, 3439, 3458, 3459, 3461, 3478, 3482, 3505, 3507, 3515, 3517, 3517, 3520, 3526, 3530, 3530, 3535, 3540, 3542, 3542, 3544, 3551, 3570, 3571, 3585, 3642, 3648, 3662, 3664, 3673, 3713, 3714, 3716, 3716, 3719, 3720, 3722, 3722, 3725, 3725, 3732, 3735, 3737, 3743, 3745, 3747, 3749, 3749, 3751, 3751, 3754, 3755, 3757, 3769, 3771, 3773, 3776, 3780, 3782, 3782, 3784, 3789, 3792, 3801, 3804, 3805, 3840, 3840, 3864, 3865, 3872, 3881, 3893, 3893, 3895, 3895, 3897, 3897, 3902, 3911, 3913, 3946, 3953, 3972, 3974, 3979, 3984, 3991, 3993, 4028, 4038, 4038, 4096, 4129, 4131, 4135, 4137, 4138, 4140, 4146, 4150, 4153, 4160, 4169, 4176, 4185, 4256, 4293, 4304, 4342, 4352, 4441, 4447, 4514, 4520, 4601, 4608, 4614, 4616, 4678, 4680, 4680, 4682, 4685, 4688, 4694, 4696, 4696, 4698, 4701, 4704, 4742, 4744, 4744, 4746, 4749, 4752, 4782, 4784, 4784, 4786, 4789, 4792, 4798, 4800, 4800, 4802, 4805, 4808, 4814, 4816, 4822, 4824, 4846, 4848, 4878, 4880, 4880, 4882, 4885, 4888, 4894, 4896, 4934, 4936, 4954, 4969, 4977, 5024, 5108, 5121, 5740, 5743, 5750, 5761, 5786, 5792, 5866, 6016, 6099, 6112, 6121, 6160, 6169, 6176, 6263, 6272, 6313, 7680, 7835, 7840, 7929, 7936, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8023, 8025, 8025, 8027, 8027, 8029, 8029, 8031, 8061, 8064, 8116, 8118, 8124, 8126, 8126, 8130, 8132, 8134, 8140, 8144, 8147, 8150, 8155, 8160, 8172, 8178, 8180, 8182, 8188, 8255, 8256, 8319, 8319, 8400, 8412, 8417, 8417, 8450, 8450, 8455, 8455, 8458, 8467, 8469, 8469, 8473, 8477, 8484, 8484, 8486, 8486, 8488, 8488, 8490, 8493, 8495, 8497, 8499, 8505, 8544, 8579, 12293, 12295, 12321, 12335, 12337, 12341, 12344, 12346, 12353, 12436, 12441, 12442, 12445, 12446, 12449, 12542, 12549, 12588, 12593, 12686, 12704, 12727, 13312, 19893, 19968, 40869, 40960, 42124, 44032, 55203, 63744, 64045, 64256, 64262, 64275, 64279, 64285, 64296, 64298, 64310, 64312, 64316, 64318, 64318, 64320, 64321, 64323, 64324, 64326, 64433, 64467, 64829, 64848, 64911, 64914, 64967, 65008, 65019, 65056, 65059, 65075, 65076, 65101, 65103, 65136, 65138, 65140, 65140, 65142, 65276, 65296, 65305, 65313, 65338, 65343, 65343, 65345, 65370, 65381, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500,]; + var unicodeES5IdentifierStart = [170, 170, 181, 181, 186, 186, 192, 214, 216, 246, 248, 705, 710, 721, 736, 740, 748, 748, 750, 750, 880, 884, 886, 887, 890, 893, 902, 902, 904, 906, 908, 908, 910, 929, 931, 1013, 1015, 1153, 1162, 1319, 1329, 1366, 1369, 1369, 1377, 1415, 1488, 1514, 1520, 1522, 1568, 1610, 1646, 1647, 1649, 1747, 1749, 1749, 1765, 1766, 1774, 1775, 1786, 1788, 1791, 1791, 1808, 1808, 1810, 1839, 1869, 1957, 1969, 1969, 1994, 2026, 2036, 2037, 2042, 2042, 2048, 2069, 2074, 2074, 2084, 2084, 2088, 2088, 2112, 2136, 2208, 2208, 2210, 2220, 2308, 2361, 2365, 2365, 2384, 2384, 2392, 2401, 2417, 2423, 2425, 2431, 2437, 2444, 2447, 2448, 2451, 2472, 2474, 2480, 2482, 2482, 2486, 2489, 2493, 2493, 2510, 2510, 2524, 2525, 2527, 2529, 2544, 2545, 2565, 2570, 2575, 2576, 2579, 2600, 2602, 2608, 2610, 2611, 2613, 2614, 2616, 2617, 2649, 2652, 2654, 2654, 2674, 2676, 2693, 2701, 2703, 2705, 2707, 2728, 2730, 2736, 2738, 2739, 2741, 2745, 2749, 2749, 2768, 2768, 2784, 2785, 2821, 2828, 2831, 2832, 2835, 2856, 2858, 2864, 2866, 2867, 2869, 2873, 2877, 2877, 2908, 2909, 2911, 2913, 2929, 2929, 2947, 2947, 2949, 2954, 2958, 2960, 2962, 2965, 2969, 2970, 2972, 2972, 2974, 2975, 2979, 2980, 2984, 2986, 2990, 3001, 3024, 3024, 3077, 3084, 3086, 3088, 3090, 3112, 3114, 3123, 3125, 3129, 3133, 3133, 3160, 3161, 3168, 3169, 3205, 3212, 3214, 3216, 3218, 3240, 3242, 3251, 3253, 3257, 3261, 3261, 3294, 3294, 3296, 3297, 3313, 3314, 3333, 3340, 3342, 3344, 3346, 3386, 3389, 3389, 3406, 3406, 3424, 3425, 3450, 3455, 3461, 3478, 3482, 3505, 3507, 3515, 3517, 3517, 3520, 3526, 3585, 3632, 3634, 3635, 3648, 3654, 3713, 3714, 3716, 3716, 3719, 3720, 3722, 3722, 3725, 3725, 3732, 3735, 3737, 3743, 3745, 3747, 3749, 3749, 3751, 3751, 3754, 3755, 3757, 3760, 3762, 3763, 3773, 3773, 3776, 3780, 3782, 3782, 3804, 3807, 3840, 3840, 3904, 3911, 3913, 3948, 3976, 3980, 4096, 4138, 4159, 4159, 4176, 4181, 4186, 4189, 4193, 4193, 4197, 4198, 4206, 4208, 4213, 4225, 4238, 4238, 4256, 4293, 4295, 4295, 4301, 4301, 4304, 4346, 4348, 4680, 4682, 4685, 4688, 4694, 4696, 4696, 4698, 4701, 4704, 4744, 4746, 4749, 4752, 4784, 4786, 4789, 4792, 4798, 4800, 4800, 4802, 4805, 4808, 4822, 4824, 4880, 4882, 4885, 4888, 4954, 4992, 5007, 5024, 5108, 5121, 5740, 5743, 5759, 5761, 5786, 5792, 5866, 5870, 5872, 5888, 5900, 5902, 5905, 5920, 5937, 5952, 5969, 5984, 5996, 5998, 6000, 6016, 6067, 6103, 6103, 6108, 6108, 6176, 6263, 6272, 6312, 6314, 6314, 6320, 6389, 6400, 6428, 6480, 6509, 6512, 6516, 6528, 6571, 6593, 6599, 6656, 6678, 6688, 6740, 6823, 6823, 6917, 6963, 6981, 6987, 7043, 7072, 7086, 7087, 7098, 7141, 7168, 7203, 7245, 7247, 7258, 7293, 7401, 7404, 7406, 7409, 7413, 7414, 7424, 7615, 7680, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8023, 8025, 8025, 8027, 8027, 8029, 8029, 8031, 8061, 8064, 8116, 8118, 8124, 8126, 8126, 8130, 8132, 8134, 8140, 8144, 8147, 8150, 8155, 8160, 8172, 8178, 8180, 8182, 8188, 8305, 8305, 8319, 8319, 8336, 8348, 8450, 8450, 8455, 8455, 8458, 8467, 8469, 8469, 8473, 8477, 8484, 8484, 8486, 8486, 8488, 8488, 8490, 8493, 8495, 8505, 8508, 8511, 8517, 8521, 8526, 8526, 8544, 8584, 11264, 11310, 11312, 11358, 11360, 11492, 11499, 11502, 11506, 11507, 11520, 11557, 11559, 11559, 11565, 11565, 11568, 11623, 11631, 11631, 11648, 11670, 11680, 11686, 11688, 11694, 11696, 11702, 11704, 11710, 11712, 11718, 11720, 11726, 11728, 11734, 11736, 11742, 11823, 11823, 12293, 12295, 12321, 12329, 12337, 12341, 12344, 12348, 12353, 12438, 12445, 12447, 12449, 12538, 12540, 12543, 12549, 12589, 12593, 12686, 12704, 12730, 12784, 12799, 13312, 19893, 19968, 40908, 40960, 42124, 42192, 42237, 42240, 42508, 42512, 42527, 42538, 42539, 42560, 42606, 42623, 42647, 42656, 42735, 42775, 42783, 42786, 42888, 42891, 42894, 42896, 42899, 42912, 42922, 43000, 43009, 43011, 43013, 43015, 43018, 43020, 43042, 43072, 43123, 43138, 43187, 43250, 43255, 43259, 43259, 43274, 43301, 43312, 43334, 43360, 43388, 43396, 43442, 43471, 43471, 43520, 43560, 43584, 43586, 43588, 43595, 43616, 43638, 43642, 43642, 43648, 43695, 43697, 43697, 43701, 43702, 43705, 43709, 43712, 43712, 43714, 43714, 43739, 43741, 43744, 43754, 43762, 43764, 43777, 43782, 43785, 43790, 43793, 43798, 43808, 43814, 43816, 43822, 43968, 44002, 44032, 55203, 55216, 55238, 55243, 55291, 63744, 64109, 64112, 64217, 64256, 64262, 64275, 64279, 64285, 64285, 64287, 64296, 64298, 64310, 64312, 64316, 64318, 64318, 64320, 64321, 64323, 64324, 64326, 64433, 64467, 64829, 64848, 64911, 64914, 64967, 65008, 65019, 65136, 65140, 65142, 65276, 65313, 65338, 65345, 65370, 65382, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500,]; + var unicodeES5IdentifierPart = [170, 170, 181, 181, 186, 186, 192, 214, 216, 246, 248, 705, 710, 721, 736, 740, 748, 748, 750, 750, 768, 884, 886, 887, 890, 893, 902, 902, 904, 906, 908, 908, 910, 929, 931, 1013, 1015, 1153, 1155, 1159, 1162, 1319, 1329, 1366, 1369, 1369, 1377, 1415, 1425, 1469, 1471, 1471, 1473, 1474, 1476, 1477, 1479, 1479, 1488, 1514, 1520, 1522, 1552, 1562, 1568, 1641, 1646, 1747, 1749, 1756, 1759, 1768, 1770, 1788, 1791, 1791, 1808, 1866, 1869, 1969, 1984, 2037, 2042, 2042, 2048, 2093, 2112, 2139, 2208, 2208, 2210, 2220, 2276, 2302, 2304, 2403, 2406, 2415, 2417, 2423, 2425, 2431, 2433, 2435, 2437, 2444, 2447, 2448, 2451, 2472, 2474, 2480, 2482, 2482, 2486, 2489, 2492, 2500, 2503, 2504, 2507, 2510, 2519, 2519, 2524, 2525, 2527, 2531, 2534, 2545, 2561, 2563, 2565, 2570, 2575, 2576, 2579, 2600, 2602, 2608, 2610, 2611, 2613, 2614, 2616, 2617, 2620, 2620, 2622, 2626, 2631, 2632, 2635, 2637, 2641, 2641, 2649, 2652, 2654, 2654, 2662, 2677, 2689, 2691, 2693, 2701, 2703, 2705, 2707, 2728, 2730, 2736, 2738, 2739, 2741, 2745, 2748, 2757, 2759, 2761, 2763, 2765, 2768, 2768, 2784, 2787, 2790, 2799, 2817, 2819, 2821, 2828, 2831, 2832, 2835, 2856, 2858, 2864, 2866, 2867, 2869, 2873, 2876, 2884, 2887, 2888, 2891, 2893, 2902, 2903, 2908, 2909, 2911, 2915, 2918, 2927, 2929, 2929, 2946, 2947, 2949, 2954, 2958, 2960, 2962, 2965, 2969, 2970, 2972, 2972, 2974, 2975, 2979, 2980, 2984, 2986, 2990, 3001, 3006, 3010, 3014, 3016, 3018, 3021, 3024, 3024, 3031, 3031, 3046, 3055, 3073, 3075, 3077, 3084, 3086, 3088, 3090, 3112, 3114, 3123, 3125, 3129, 3133, 3140, 3142, 3144, 3146, 3149, 3157, 3158, 3160, 3161, 3168, 3171, 3174, 3183, 3202, 3203, 3205, 3212, 3214, 3216, 3218, 3240, 3242, 3251, 3253, 3257, 3260, 3268, 3270, 3272, 3274, 3277, 3285, 3286, 3294, 3294, 3296, 3299, 3302, 3311, 3313, 3314, 3330, 3331, 3333, 3340, 3342, 3344, 3346, 3386, 3389, 3396, 3398, 3400, 3402, 3406, 3415, 3415, 3424, 3427, 3430, 3439, 3450, 3455, 3458, 3459, 3461, 3478, 3482, 3505, 3507, 3515, 3517, 3517, 3520, 3526, 3530, 3530, 3535, 3540, 3542, 3542, 3544, 3551, 3570, 3571, 3585, 3642, 3648, 3662, 3664, 3673, 3713, 3714, 3716, 3716, 3719, 3720, 3722, 3722, 3725, 3725, 3732, 3735, 3737, 3743, 3745, 3747, 3749, 3749, 3751, 3751, 3754, 3755, 3757, 3769, 3771, 3773, 3776, 3780, 3782, 3782, 3784, 3789, 3792, 3801, 3804, 3807, 3840, 3840, 3864, 3865, 3872, 3881, 3893, 3893, 3895, 3895, 3897, 3897, 3902, 3911, 3913, 3948, 3953, 3972, 3974, 3991, 3993, 4028, 4038, 4038, 4096, 4169, 4176, 4253, 4256, 4293, 4295, 4295, 4301, 4301, 4304, 4346, 4348, 4680, 4682, 4685, 4688, 4694, 4696, 4696, 4698, 4701, 4704, 4744, 4746, 4749, 4752, 4784, 4786, 4789, 4792, 4798, 4800, 4800, 4802, 4805, 4808, 4822, 4824, 4880, 4882, 4885, 4888, 4954, 4957, 4959, 4992, 5007, 5024, 5108, 5121, 5740, 5743, 5759, 5761, 5786, 5792, 5866, 5870, 5872, 5888, 5900, 5902, 5908, 5920, 5940, 5952, 5971, 5984, 5996, 5998, 6000, 6002, 6003, 6016, 6099, 6103, 6103, 6108, 6109, 6112, 6121, 6155, 6157, 6160, 6169, 6176, 6263, 6272, 6314, 6320, 6389, 6400, 6428, 6432, 6443, 6448, 6459, 6470, 6509, 6512, 6516, 6528, 6571, 6576, 6601, 6608, 6617, 6656, 6683, 6688, 6750, 6752, 6780, 6783, 6793, 6800, 6809, 6823, 6823, 6912, 6987, 6992, 7001, 7019, 7027, 7040, 7155, 7168, 7223, 7232, 7241, 7245, 7293, 7376, 7378, 7380, 7414, 7424, 7654, 7676, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8023, 8025, 8025, 8027, 8027, 8029, 8029, 8031, 8061, 8064, 8116, 8118, 8124, 8126, 8126, 8130, 8132, 8134, 8140, 8144, 8147, 8150, 8155, 8160, 8172, 8178, 8180, 8182, 8188, 8204, 8205, 8255, 8256, 8276, 8276, 8305, 8305, 8319, 8319, 8336, 8348, 8400, 8412, 8417, 8417, 8421, 8432, 8450, 8450, 8455, 8455, 8458, 8467, 8469, 8469, 8473, 8477, 8484, 8484, 8486, 8486, 8488, 8488, 8490, 8493, 8495, 8505, 8508, 8511, 8517, 8521, 8526, 8526, 8544, 8584, 11264, 11310, 11312, 11358, 11360, 11492, 11499, 11507, 11520, 11557, 11559, 11559, 11565, 11565, 11568, 11623, 11631, 11631, 11647, 11670, 11680, 11686, 11688, 11694, 11696, 11702, 11704, 11710, 11712, 11718, 11720, 11726, 11728, 11734, 11736, 11742, 11744, 11775, 11823, 11823, 12293, 12295, 12321, 12335, 12337, 12341, 12344, 12348, 12353, 12438, 12441, 12442, 12445, 12447, 12449, 12538, 12540, 12543, 12549, 12589, 12593, 12686, 12704, 12730, 12784, 12799, 13312, 19893, 19968, 40908, 40960, 42124, 42192, 42237, 42240, 42508, 42512, 42539, 42560, 42607, 42612, 42621, 42623, 42647, 42655, 42737, 42775, 42783, 42786, 42888, 42891, 42894, 42896, 42899, 42912, 42922, 43000, 43047, 43072, 43123, 43136, 43204, 43216, 43225, 43232, 43255, 43259, 43259, 43264, 43309, 43312, 43347, 43360, 43388, 43392, 43456, 43471, 43481, 43520, 43574, 43584, 43597, 43600, 43609, 43616, 43638, 43642, 43643, 43648, 43714, 43739, 43741, 43744, 43759, 43762, 43766, 43777, 43782, 43785, 43790, 43793, 43798, 43808, 43814, 43816, 43822, 43968, 44010, 44012, 44013, 44016, 44025, 44032, 55203, 55216, 55238, 55243, 55291, 63744, 64109, 64112, 64217, 64256, 64262, 64275, 64279, 64285, 64296, 64298, 64310, 64312, 64316, 64318, 64318, 64320, 64321, 64323, 64324, 64326, 64433, 64467, 64829, 64848, 64911, 64914, 64967, 65008, 65019, 65024, 65039, 65056, 65062, 65075, 65076, 65101, 65103, 65136, 65140, 65142, 65276, 65296, 65305, 65313, 65338, 65343, 65343, 65345, 65370, 65382, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500,]; function lookupInUnicodeMap(code, map) { if (code < map[0]) { return false; @@ -6836,17 +2094,21 @@ var ts; return false; } function isUnicodeIdentifierStart(code, languageVersion) { - return languageVersion >= 1 ? lookupInUnicodeMap(code, unicodeES5IdentifierStart) : lookupInUnicodeMap(code, unicodeES3IdentifierStart); + return languageVersion >= 1 ? + lookupInUnicodeMap(code, unicodeES5IdentifierStart) : + lookupInUnicodeMap(code, unicodeES3IdentifierStart); } ts.isUnicodeIdentifierStart = isUnicodeIdentifierStart; function isUnicodeIdentifierPart(code, languageVersion) { - return languageVersion >= 1 ? lookupInUnicodeMap(code, unicodeES5IdentifierPart) : lookupInUnicodeMap(code, unicodeES3IdentifierPart); + return languageVersion >= 1 ? + lookupInUnicodeMap(code, unicodeES5IdentifierPart) : + lookupInUnicodeMap(code, unicodeES3IdentifierPart); } function makeReverseMap(source) { var result = []; - for (var name in source) { - if (source.hasOwnProperty(name)) { - result[source[name]] = name; + for (var _name in source) { + if (source.hasOwnProperty(_name)) { + result[source[_name]] = _name; } } return result; @@ -6913,7 +2175,9 @@ var ts; ts.getLineAndCharacterOfPosition = getLineAndCharacterOfPosition; var hasOwnProperty = Object.prototype.hasOwnProperty; function isWhiteSpace(ch) { - return ch === 32 || ch === 9 || ch === 11 || ch === 12 || ch === 160 || ch === 5760 || ch >= 8192 && ch <= 8203 || ch === 8239 || ch === 8287 || ch === 12288 || ch === 65279; + return ch === 32 || ch === 9 || ch === 11 || ch === 12 || + ch === 160 || ch === 5760 || ch >= 8192 && ch <= 8203 || + ch === 8239 || ch === 8287 || ch === 12288 || ch === 65279; } ts.isWhiteSpace = isWhiteSpace; function isLineBreak(ch) { @@ -7000,7 +2264,8 @@ var ts; return false; } } - return ch === 61 || text.charCodeAt(pos + mergeConflictMarkerLength) === 32; + return ch === 61 || + text.charCodeAt(pos + mergeConflictMarkerLength) === 32; } } return false; @@ -7019,8 +2284,8 @@ var ts; else { ts.Debug.assert(ch === 61); while (pos < len) { - var ch = text.charCodeAt(pos); - if (ch === 62 && isConflictMarkerTrivia(text, pos)) { + var _ch = text.charCodeAt(pos); + if (_ch === 62 && isConflictMarkerTrivia(text, pos)) { break; } pos++; @@ -7080,11 +2345,7 @@ var ts; if (collecting) { if (!result) result = []; - result.push({ - pos: startPos, - end: pos, - hasTrailingNewLine: hasTrailingNewLine - }); + result.push({ pos: startPos, end: pos, hasTrailingNewLine: hasTrailingNewLine }); } continue; } @@ -7111,11 +2372,15 @@ var ts; } ts.getTrailingCommentRanges = getTrailingCommentRanges; function isIdentifierStart(ch, languageVersion) { - return ch >= 65 && ch <= 90 || ch >= 97 && ch <= 122 || ch === 36 || ch === 95 || ch > 127 && isUnicodeIdentifierStart(ch, languageVersion); + return ch >= 65 && ch <= 90 || ch >= 97 && ch <= 122 || + ch === 36 || ch === 95 || + ch > 127 && isUnicodeIdentifierStart(ch, languageVersion); } ts.isIdentifierStart = isIdentifierStart; function isIdentifierPart(ch, languageVersion) { - return ch >= 65 && ch <= 90 || ch >= 97 && ch <= 122 || ch >= 48 && ch <= 57 || ch === 36 || ch === 95 || ch > 127 && isUnicodeIdentifierPart(ch, languageVersion); + return ch >= 65 && ch <= 90 || ch >= 97 && ch <= 122 || + ch >= 48 && ch <= 57 || ch === 36 || ch === 95 || + ch > 127 && isUnicodeIdentifierPart(ch, languageVersion); } ts.isIdentifierPart = isIdentifierPart; function createScanner(languageVersion, skipTrivia, text, onError) { @@ -7134,10 +2399,14 @@ var ts; } } function isIdentifierStart(ch) { - return ch >= 65 && ch <= 90 || ch >= 97 && ch <= 122 || ch === 36 || ch === 95 || ch > 127 && isUnicodeIdentifierStart(ch, languageVersion); + return ch >= 65 && ch <= 90 || ch >= 97 && ch <= 122 || + ch === 36 || ch === 95 || + ch > 127 && isUnicodeIdentifierStart(ch, languageVersion); } function isIdentifierPart(ch) { - return ch >= 65 && ch <= 90 || ch >= 97 && ch <= 122 || ch >= 48 && ch <= 57 || ch === 36 || ch === 95 || ch > 127 && isUnicodeIdentifierPart(ch, languageVersion); + return ch >= 65 && ch <= 90 || ch >= 97 && ch <= 122 || + ch >= 48 && ch <= 57 || ch === 36 || ch === 95 || + ch > 127 && isUnicodeIdentifierPart(ch, languageVersion); } function scanNumber() { var start = pos; @@ -7414,8 +2683,8 @@ var ts; return result; } function getIdentifierToken() { - var len = tokenValue.length; - if (len >= 2 && len <= 11) { + var _len = tokenValue.length; + if (_len >= 2 && _len <= 11) { var ch = tokenValue.charCodeAt(0); if (ch >= 97 && ch <= 122 && hasOwnProperty.call(textToToken, tokenValue)) { return token = textToToken[tokenValue]; @@ -7567,13 +2836,13 @@ var ts; pos += 2; var commentClosed = false; while (pos < len) { - var ch = text.charCodeAt(pos); - if (ch === 42 && text.charCodeAt(pos + 1) === 47) { + var _ch = text.charCodeAt(pos); + if (_ch === 42 && text.charCodeAt(pos + 1) === 47) { pos += 2; commentClosed = true; break; } - if (isLineBreak(ch)) { + if (isLineBreak(_ch)) { precedingLineBreak = true; } pos++; @@ -7606,22 +2875,22 @@ var ts; } else if (pos + 2 < len && (text.charCodeAt(pos + 1) === 66 || text.charCodeAt(pos + 1) === 98)) { pos += 2; - var value = scanBinaryOrOctalDigits(2); - if (value < 0) { + var _value = scanBinaryOrOctalDigits(2); + if (_value < 0) { error(ts.Diagnostics.Binary_digit_expected); - value = 0; + _value = 0; } - tokenValue = "" + value; + tokenValue = "" + _value; return token = 7; } else if (pos + 2 < len && (text.charCodeAt(pos + 1) === 79 || text.charCodeAt(pos + 1) === 111)) { pos += 2; - var value = scanBinaryOrOctalDigits(8); - if (value < 0) { + var _value_1 = scanBinaryOrOctalDigits(8); + if (_value_1 < 0) { error(ts.Diagnostics.Octal_digit_expected); - value = 0; + _value_1 = 0; } - tokenValue = "" + value; + tokenValue = "" + _value_1; return token = 7; } if (pos + 1 < len && isOctalDigit(text.charCodeAt(pos + 1))) { @@ -7720,10 +2989,10 @@ var ts; case 126: return pos++, token = 47; case 92: - var ch = peekUnicodeEscape(); - if (ch >= 0 && isIdentifierStart(ch)) { + var cookedChar = peekUnicodeEscape(); + if (cookedChar >= 0 && isIdentifierStart(cookedChar)) { pos += 6; - tokenValue = String.fromCharCode(ch) + scanIdentifierParts(); + tokenValue = String.fromCharCode(cookedChar) + scanIdentifierParts(); return token = getIdentifierToken(); } error(ts.Diagnostics.Invalid_character); @@ -7860,39 +3129,17 @@ var ts; } setText(text); return { - getStartPos: function () { - return startPos; - }, - getTextPos: function () { - return pos; - }, - getToken: function () { - return token; - }, - getTokenPos: function () { - return tokenPos; - }, - getTokenText: function () { - return text.substring(tokenPos, pos); - }, - getTokenValue: function () { - return tokenValue; - }, - hasExtendedUnicodeEscape: function () { - return hasExtendedUnicodeEscape; - }, - hasPrecedingLineBreak: function () { - return precedingLineBreak; - }, - isIdentifier: function () { - return token === 64 || token > 100; - }, - isReservedWord: function () { - return token >= 65 && token <= 100; - }, - isUnterminated: function () { - return tokenIsUnterminated; - }, + getStartPos: function () { return startPos; }, + getTextPos: function () { return pos; }, + getToken: function () { return token; }, + getTokenPos: function () { return tokenPos; }, + getTokenText: function () { return text.substring(tokenPos, pos); }, + getTokenValue: function () { return tokenValue; }, + hasExtendedUnicodeEscape: function () { return hasExtendedUnicodeEscape; }, + hasPrecedingLineBreak: function () { return precedingLineBreak; }, + isIdentifier: function () { return token === 64 || token > 100; }, + isReservedWord: function () { return token >= 65 && token <= 100; }, + isUnterminated: function () { return tokenIsUnterminated; }, reScanGreaterToken: reScanGreaterToken, reScanSlashToken: reScanSlashToken, reScanTemplateToken: reScanTemplateToken, @@ -7909,8 +3156,8 @@ var ts; (function (ts) { function getDeclarationOfKind(symbol, kind) { var declarations = symbol.declarations; - for (var i = 0; i < declarations.length; i++) { - var declaration = declarations[i]; + for (var _i = 0, _n = declarations.length; _i < _n; _i++) { + var declaration = declarations[_i]; if (declaration.kind === kind) { return declaration; } @@ -7922,13 +3169,9 @@ var ts; function getSingleLineStringWriter() { if (stringWriters.length == 0) { var str = ""; - var writeText = function (text) { - return str += text; - }; + var writeText = function (text) { return str += text; }; return { - string: function () { - return str; - }, + string: function () { return str; }, writeKeyword: writeText, writeOperator: writeText, writePunctuation: writeText, @@ -7936,18 +3179,11 @@ var ts; writeStringLiteral: writeText, writeParameter: writeText, writeSymbol: writeText, - writeLine: function () { - return str += " "; - }, - increaseIndent: function () { - }, - decreaseIndent: function () { - }, - clear: function () { - return str = ""; - }, - trackSymbol: function () { - } + writeLine: function () { return str += " "; }, + increaseIndent: function () { }, + decreaseIndent: function () { }, + clear: function () { return str = ""; }, + trackSymbol: function () { } }; } return stringWriters.pop(); @@ -7969,7 +3205,8 @@ var ts; ts.containsParseError = containsParseError; function aggregateChildData(node) { if (!(node.parserContextFlags & 64)) { - var thisNodeOrAnySubNodesHasError = ((node.parserContextFlags & 16) !== 0) || ts.forEachChild(node, containsParseError); + var thisNodeOrAnySubNodesHasError = ((node.parserContextFlags & 16) !== 0) || + ts.forEachChild(node, containsParseError); if (thisNodeOrAnySubNodesHasError) { node.parserContextFlags |= 32; } @@ -8048,7 +3285,8 @@ var ts; } ts.makeIdentifierFromModuleName = makeIdentifierFromModuleName; function isBlockOrCatchScoped(declaration) { - return (getCombinedNodeFlags(declaration) & 12288) !== 0 || isCatchClauseVariableDeclaration(declaration); + return (getCombinedNodeFlags(declaration) & 12288) !== 0 || + isCatchClauseVariableDeclaration(declaration); } ts.isBlockOrCatchScoped = isBlockOrCatchScoped; function getEnclosingBlockScopeContainer(node) { @@ -8076,7 +3314,10 @@ var ts; } ts.getEnclosingBlockScopeContainer = getEnclosingBlockScopeContainer; function isCatchClauseVariableDeclaration(declaration) { - return declaration && declaration.kind === 193 && declaration.parent && declaration.parent.kind === 217; + return declaration && + declaration.kind === 193 && + declaration.parent && + declaration.parent.kind === 217; } ts.isCatchClauseVariableDeclaration = isCatchClauseVariableDeclaration; function declarationNameToString(name) { @@ -8128,7 +3369,9 @@ var ts; if (errorNode === undefined) { return getSpanOfTokenAtPosition(sourceFile, node.pos); } - var pos = nodeIsMissing(errorNode) ? errorNode.pos : ts.skipTrivia(sourceFile.text, errorNode.pos); + var pos = nodeIsMissing(errorNode) + ? errorNode.pos + : ts.skipTrivia(sourceFile.text, errorNode.pos); return createTextSpanFromBounds(pos, errorNode.end); } ts.getErrorSpanForNode = getErrorSpanForNode; @@ -8191,7 +3434,9 @@ var ts; function getJsDocComments(node, sourceFileOfNode) { return ts.filter(getLeadingCommentRangesOfNode(node, sourceFileOfNode), isJsDocComment); function isJsDocComment(comment) { - return sourceFileOfNode.text.charCodeAt(comment.pos + 1) === 42 && sourceFileOfNode.text.charCodeAt(comment.pos + 2) === 42 && sourceFileOfNode.text.charCodeAt(comment.pos + 3) !== 47; + return sourceFileOfNode.text.charCodeAt(comment.pos + 1) === 42 && + sourceFileOfNode.text.charCodeAt(comment.pos + 2) === 42 && + sourceFileOfNode.text.charCodeAt(comment.pos + 3) !== 47; } } ts.getJsDocComments = getJsDocComments; @@ -8394,8 +3639,8 @@ var ts; } case 7: case 8: - var parent = node.parent; - switch (parent.kind) { + var _parent = node.parent; + switch (_parent.kind) { case 193: case 128: case 130: @@ -8403,7 +3648,7 @@ var ts; case 220: case 218: case 150: - return parent.initializer === node; + return _parent.initializer === node; case 177: case 178: case 179: @@ -8414,22 +3659,25 @@ var ts; case 214: case 190: case 188: - return parent.expression === node; + return _parent.expression === node; case 181: - var forStatement = parent; - return (forStatement.initializer === node && forStatement.initializer.kind !== 194) || forStatement.condition === node || forStatement.iterator === node; + var forStatement = _parent; + return (forStatement.initializer === node && forStatement.initializer.kind !== 194) || + forStatement.condition === node || + forStatement.iterator === node; case 182: case 183: - var forInStatement = parent; - return (forInStatement.initializer === node && forInStatement.initializer.kind !== 194) || forInStatement.expression === node; + var forInStatement = _parent; + return (forInStatement.initializer === node && forInStatement.initializer.kind !== 194) || + forInStatement.expression === node; case 158: - return node === parent.expression; + return node === _parent.expression; case 173: - return node === parent.expression; + return node === _parent.expression; case 126: - return node === parent.expression; + return node === _parent.expression; default: - if (isExpression(parent)) { + if (isExpression(_parent)) { return true; } } @@ -8439,7 +3687,8 @@ var ts; ts.isExpression = isExpression; function isInstantiatedModule(node, preserveConstEnums) { var moduleState = ts.getModuleInstanceState(node); - return moduleState === 1 || (preserveConstEnums && moduleState === 2); + return moduleState === 1 || + (preserveConstEnums && moduleState === 2); } ts.isInstantiatedModule = isInstantiatedModule; function isExternalModuleImportEqualsDeclaration(node) { @@ -8587,14 +3836,14 @@ var ts; if (name.kind !== 64 && name.kind !== 8 && name.kind !== 7) { return false; } - var parent = name.parent; - if (parent.kind === 208 || parent.kind === 212) { - if (parent.propertyName) { + var _parent = name.parent; + if (_parent.kind === 208 || _parent.kind === 212) { + if (_parent.propertyName) { return true; } } - if (isDeclaration(parent)) { - return parent.name === name; + if (isDeclaration(_parent)) { + return _parent.name === name; } return false; } @@ -8616,9 +3865,10 @@ var ts; ts.getInterfaceBaseTypeNodes = getInterfaceBaseTypeNodes; function getHeritageClause(clauses, kind) { if (clauses) { - for (var i = 0, n = clauses.length; i < n; i++) { - if (clauses[i].token === kind) { - return clauses[i]; + for (var _i = 0, _n = clauses.length; _i < _n; _i++) { + var clause = clauses[_i]; + if (clause.token === kind) { + return clause; } } } @@ -8686,7 +3936,9 @@ var ts; } ts.isTrivia = isTrivia; function hasDynamicName(declaration) { - return declaration.name && declaration.name.kind === 126 && !isWellKnownSymbolSyntactically(declaration.name.expression); + return declaration.name && + declaration.name.kind === 126 && + !isWellKnownSymbolSyntactically(declaration.name.expression); } ts.hasDynamicName = hasDynamicName; function isWellKnownSymbolSyntactically(node) { @@ -8790,10 +4042,7 @@ var ts; if (length < 0) { throw new Error("length < 0"); } - return { - start: start, - length: length - }; + return { start: start, length: length }; } ts.createTextSpan = createTextSpan; function createTextSpanFromBounds(start, end) { @@ -8812,10 +4061,7 @@ var ts; if (newLength < 0) { throw new Error("newLength < 0"); } - return { - span: span, - newLength: newLength - }; + return { span: span, newLength: newLength }; } ts.createTextChangeRange = createTextChangeRange; ts.unchangedTextChangeRange = createTextChangeRange(createTextSpan(0, 0), 0); @@ -8863,7 +4109,7 @@ var ts; ts.createSynthesizedNode = createSynthesizedNode; function generateUniqueName(baseName, isExistingName) { if (baseName.charCodeAt(0) !== 95) { - var baseName = "_" + baseName; + baseName = "_" + baseName; if (!isExistingName(baseName)) { return baseName; } @@ -8873,9 +4119,9 @@ var ts; } var i = 1; while (true) { - var name = baseName + i; - if (!isExistingName(name)) { - return name; + var _name = baseName + i; + if (!isExistingName(_name)) { + return _name; } i++; } @@ -8976,9 +4222,9 @@ var ts; } var nonAsciiCharacters = /[^\u0000-\u007F]/g; function escapeNonAsciiCharacters(s) { - return nonAsciiCharacters.test(s) ? s.replace(nonAsciiCharacters, function (c) { - return get16BitUnicodeEscapeSequence(c.charCodeAt(0)); - }) : s; + return nonAsciiCharacters.test(s) ? + s.replace(nonAsciiCharacters, function (c) { return get16BitUnicodeEscapeSequence(c.charCodeAt(0)); }) : + s; } ts.escapeNonAsciiCharacters = escapeNonAsciiCharacters; })(ts || (ts = {})); @@ -9006,8 +4252,9 @@ var ts; } function visitEachNode(cbNode, nodes) { if (nodes) { - for (var i = 0, len = nodes.length; i < len; i++) { - var result = cbNode(nodes[i]); + for (var _i = 0, _n = nodes.length; _i < _n; _i++) { + var node = nodes[_i]; + var result = cbNode(node); if (result) { return result; } @@ -9022,9 +4269,12 @@ var ts; var cbNodes = cbNodeArray || cbNode; switch (node.kind) { case 125: - return visitNode(cbNode, node.left) || visitNode(cbNode, node.right); + return visitNode(cbNode, node.left) || + visitNode(cbNode, node.right); case 127: - return visitNode(cbNode, node.name) || visitNode(cbNode, node.constraint) || visitNode(cbNode, node.expression); + return visitNode(cbNode, node.name) || + visitNode(cbNode, node.constraint) || + visitNode(cbNode, node.expression); case 128: case 130: case 129: @@ -9032,13 +4282,22 @@ var ts; case 219: case 193: case 150: - return visitNodes(cbNodes, node.modifiers) || visitNode(cbNode, node.propertyName) || visitNode(cbNode, node.dotDotDotToken) || visitNode(cbNode, node.name) || visitNode(cbNode, node.questionToken) || visitNode(cbNode, node.type) || visitNode(cbNode, node.initializer); + return visitNodes(cbNodes, node.modifiers) || + visitNode(cbNode, node.propertyName) || + visitNode(cbNode, node.dotDotDotToken) || + visitNode(cbNode, node.name) || + visitNode(cbNode, node.questionToken) || + visitNode(cbNode, node.type) || + visitNode(cbNode, node.initializer); case 140: case 141: case 136: case 137: case 138: - return visitNodes(cbNodes, node.modifiers) || visitNodes(cbNodes, node.typeParameters) || visitNodes(cbNodes, node.parameters) || visitNode(cbNode, node.type); + return visitNodes(cbNodes, node.modifiers) || + visitNodes(cbNodes, node.typeParameters) || + visitNodes(cbNodes, node.parameters) || + visitNode(cbNode, node.type); case 132: case 131: case 133: @@ -9047,9 +4306,17 @@ var ts; case 160: case 195: case 161: - return visitNodes(cbNodes, node.modifiers) || visitNode(cbNode, node.asteriskToken) || visitNode(cbNode, node.name) || visitNode(cbNode, node.questionToken) || visitNodes(cbNodes, node.typeParameters) || visitNodes(cbNodes, node.parameters) || visitNode(cbNode, node.type) || visitNode(cbNode, node.body); + return visitNodes(cbNodes, node.modifiers) || + visitNode(cbNode, node.asteriskToken) || + visitNode(cbNode, node.name) || + visitNode(cbNode, node.questionToken) || + visitNodes(cbNodes, node.typeParameters) || + visitNodes(cbNodes, node.parameters) || + visitNode(cbNode, node.type) || + visitNode(cbNode, node.body); case 139: - return visitNode(cbNode, node.typeName) || visitNodes(cbNodes, node.typeArguments); + return visitNode(cbNode, node.typeName) || + visitNodes(cbNodes, node.typeArguments); case 142: return visitNode(cbNode, node.exprName); case 143: @@ -9070,16 +4337,23 @@ var ts; case 152: return visitNodes(cbNodes, node.properties); case 153: - return visitNode(cbNode, node.expression) || visitNode(cbNode, node.dotToken) || visitNode(cbNode, node.name); + return visitNode(cbNode, node.expression) || + visitNode(cbNode, node.dotToken) || + visitNode(cbNode, node.name); case 154: - return visitNode(cbNode, node.expression) || visitNode(cbNode, node.argumentExpression); + return visitNode(cbNode, node.expression) || + visitNode(cbNode, node.argumentExpression); case 155: case 156: - return visitNode(cbNode, node.expression) || visitNodes(cbNodes, node.typeArguments) || visitNodes(cbNodes, node.arguments); + return visitNode(cbNode, node.expression) || + visitNodes(cbNodes, node.typeArguments) || + visitNodes(cbNodes, node.arguments); case 157: - return visitNode(cbNode, node.tag) || visitNode(cbNode, node.template); + return visitNode(cbNode, node.tag) || + visitNode(cbNode, node.template); case 158: - return visitNode(cbNode, node.type) || visitNode(cbNode, node.expression); + return visitNode(cbNode, node.type) || + visitNode(cbNode, node.expression); case 159: return visitNode(cbNode, node.expression); case 162: @@ -9091,91 +4365,142 @@ var ts; case 165: return visitNode(cbNode, node.operand); case 170: - return visitNode(cbNode, node.asteriskToken) || visitNode(cbNode, node.expression); + return visitNode(cbNode, node.asteriskToken) || + visitNode(cbNode, node.expression); case 166: return visitNode(cbNode, node.operand); case 167: - return visitNode(cbNode, node.left) || visitNode(cbNode, node.operatorToken) || visitNode(cbNode, node.right); + return visitNode(cbNode, node.left) || + visitNode(cbNode, node.operatorToken) || + visitNode(cbNode, node.right); case 168: - return visitNode(cbNode, node.condition) || visitNode(cbNode, node.questionToken) || visitNode(cbNode, node.whenTrue) || visitNode(cbNode, node.colonToken) || visitNode(cbNode, node.whenFalse); + return visitNode(cbNode, node.condition) || + visitNode(cbNode, node.questionToken) || + visitNode(cbNode, node.whenTrue) || + visitNode(cbNode, node.colonToken) || + visitNode(cbNode, node.whenFalse); case 171: return visitNode(cbNode, node.expression); case 174: case 201: return visitNodes(cbNodes, node.statements); case 221: - return visitNodes(cbNodes, node.statements) || visitNode(cbNode, node.endOfFileToken); + return visitNodes(cbNodes, node.statements) || + visitNode(cbNode, node.endOfFileToken); case 175: - return visitNodes(cbNodes, node.modifiers) || visitNode(cbNode, node.declarationList); + return visitNodes(cbNodes, node.modifiers) || + visitNode(cbNode, node.declarationList); case 194: return visitNodes(cbNodes, node.declarations); case 177: return visitNode(cbNode, node.expression); case 178: - return visitNode(cbNode, node.expression) || visitNode(cbNode, node.thenStatement) || visitNode(cbNode, node.elseStatement); + return visitNode(cbNode, node.expression) || + visitNode(cbNode, node.thenStatement) || + visitNode(cbNode, node.elseStatement); case 179: - return visitNode(cbNode, node.statement) || visitNode(cbNode, node.expression); + return visitNode(cbNode, node.statement) || + visitNode(cbNode, node.expression); case 180: - return visitNode(cbNode, node.expression) || visitNode(cbNode, node.statement); + return visitNode(cbNode, node.expression) || + visitNode(cbNode, node.statement); case 181: - return visitNode(cbNode, node.initializer) || visitNode(cbNode, node.condition) || visitNode(cbNode, node.iterator) || visitNode(cbNode, node.statement); + return visitNode(cbNode, node.initializer) || + visitNode(cbNode, node.condition) || + visitNode(cbNode, node.iterator) || + visitNode(cbNode, node.statement); case 182: - return visitNode(cbNode, node.initializer) || visitNode(cbNode, node.expression) || visitNode(cbNode, node.statement); + return visitNode(cbNode, node.initializer) || + visitNode(cbNode, node.expression) || + visitNode(cbNode, node.statement); case 183: - return visitNode(cbNode, node.initializer) || visitNode(cbNode, node.expression) || visitNode(cbNode, node.statement); + return visitNode(cbNode, node.initializer) || + visitNode(cbNode, node.expression) || + visitNode(cbNode, node.statement); case 184: case 185: return visitNode(cbNode, node.label); case 186: return visitNode(cbNode, node.expression); case 187: - return visitNode(cbNode, node.expression) || visitNode(cbNode, node.statement); + return visitNode(cbNode, node.expression) || + visitNode(cbNode, node.statement); case 188: - return visitNode(cbNode, node.expression) || visitNode(cbNode, node.caseBlock); + return visitNode(cbNode, node.expression) || + visitNode(cbNode, node.caseBlock); case 202: return visitNodes(cbNodes, node.clauses); case 214: - return visitNode(cbNode, node.expression) || visitNodes(cbNodes, node.statements); + return visitNode(cbNode, node.expression) || + visitNodes(cbNodes, node.statements); case 215: return visitNodes(cbNodes, node.statements); case 189: - return visitNode(cbNode, node.label) || visitNode(cbNode, node.statement); + return visitNode(cbNode, node.label) || + visitNode(cbNode, node.statement); case 190: return visitNode(cbNode, node.expression); case 191: - return visitNode(cbNode, node.tryBlock) || visitNode(cbNode, node.catchClause) || visitNode(cbNode, node.finallyBlock); + return visitNode(cbNode, node.tryBlock) || + visitNode(cbNode, node.catchClause) || + visitNode(cbNode, node.finallyBlock); case 217: - return visitNode(cbNode, node.variableDeclaration) || visitNode(cbNode, node.block); + return visitNode(cbNode, node.variableDeclaration) || + visitNode(cbNode, node.block); case 196: - return visitNodes(cbNodes, node.modifiers) || visitNode(cbNode, node.name) || visitNodes(cbNodes, node.typeParameters) || visitNodes(cbNodes, node.heritageClauses) || visitNodes(cbNodes, node.members); + return visitNodes(cbNodes, node.modifiers) || + visitNode(cbNode, node.name) || + visitNodes(cbNodes, node.typeParameters) || + visitNodes(cbNodes, node.heritageClauses) || + visitNodes(cbNodes, node.members); case 197: - return visitNodes(cbNodes, node.modifiers) || visitNode(cbNode, node.name) || visitNodes(cbNodes, node.typeParameters) || visitNodes(cbNodes, node.heritageClauses) || visitNodes(cbNodes, node.members); + return visitNodes(cbNodes, node.modifiers) || + visitNode(cbNode, node.name) || + visitNodes(cbNodes, node.typeParameters) || + visitNodes(cbNodes, node.heritageClauses) || + visitNodes(cbNodes, node.members); case 198: - return visitNodes(cbNodes, node.modifiers) || visitNode(cbNode, node.name) || visitNode(cbNode, node.type); + return visitNodes(cbNodes, node.modifiers) || + visitNode(cbNode, node.name) || + visitNode(cbNode, node.type); case 199: - return visitNodes(cbNodes, node.modifiers) || visitNode(cbNode, node.name) || visitNodes(cbNodes, node.members); + return visitNodes(cbNodes, node.modifiers) || + visitNode(cbNode, node.name) || + visitNodes(cbNodes, node.members); case 220: - return visitNode(cbNode, node.name) || visitNode(cbNode, node.initializer); + return visitNode(cbNode, node.name) || + visitNode(cbNode, node.initializer); case 200: - return visitNodes(cbNodes, node.modifiers) || visitNode(cbNode, node.name) || visitNode(cbNode, node.body); + return visitNodes(cbNodes, node.modifiers) || + visitNode(cbNode, node.name) || + visitNode(cbNode, node.body); case 203: - return visitNodes(cbNodes, node.modifiers) || visitNode(cbNode, node.name) || visitNode(cbNode, node.moduleReference); + return visitNodes(cbNodes, node.modifiers) || + visitNode(cbNode, node.name) || + visitNode(cbNode, node.moduleReference); case 204: - return visitNodes(cbNodes, node.modifiers) || visitNode(cbNode, node.importClause) || visitNode(cbNode, node.moduleSpecifier); + return visitNodes(cbNodes, node.modifiers) || + visitNode(cbNode, node.importClause) || + visitNode(cbNode, node.moduleSpecifier); case 205: - return visitNode(cbNode, node.name) || visitNode(cbNode, node.namedBindings); + return visitNode(cbNode, node.name) || + visitNode(cbNode, node.namedBindings); case 206: return visitNode(cbNode, node.name); case 207: case 211: return visitNodes(cbNodes, node.elements); case 210: - return visitNodes(cbNodes, node.modifiers) || visitNode(cbNode, node.exportClause) || visitNode(cbNode, node.moduleSpecifier); + return visitNodes(cbNodes, node.modifiers) || + visitNode(cbNode, node.exportClause) || + visitNode(cbNode, node.moduleSpecifier); case 208: case 212: - return visitNode(cbNode, node.propertyName) || visitNode(cbNode, node.name); + return visitNode(cbNode, node.propertyName) || + visitNode(cbNode, node.name); case 209: - return visitNodes(cbNodes, node.modifiers) || visitNode(cbNode, node.expression); + return visitNodes(cbNodes, node.modifiers) || + visitNode(cbNode, node.expression); case 169: return visitNode(cbNode, node.head) || visitNodes(cbNodes, node.templateSpans); case 173: @@ -9222,84 +4547,55 @@ var ts; })(Tristate || (Tristate = {})); function parsingContextErrors(context) { switch (context) { - case 0: - return ts.Diagnostics.Declaration_or_statement_expected; - case 1: - return ts.Diagnostics.Declaration_or_statement_expected; - case 2: - return ts.Diagnostics.Statement_expected; - case 3: - return ts.Diagnostics.case_or_default_expected; - case 4: - return ts.Diagnostics.Statement_expected; - case 5: - return ts.Diagnostics.Property_or_signature_expected; - case 6: - return ts.Diagnostics.Unexpected_token_A_constructor_method_accessor_or_property_was_expected; - case 7: - return ts.Diagnostics.Enum_member_expected; - case 8: - return ts.Diagnostics.Type_reference_expected; - case 9: - return ts.Diagnostics.Variable_declaration_expected; - case 10: - return ts.Diagnostics.Property_destructuring_pattern_expected; - case 11: - return ts.Diagnostics.Array_element_destructuring_pattern_expected; - case 12: - return ts.Diagnostics.Argument_expression_expected; - case 13: - return ts.Diagnostics.Property_assignment_expected; - case 14: - return ts.Diagnostics.Expression_or_comma_expected; - case 15: - return ts.Diagnostics.Parameter_declaration_expected; - case 16: - return ts.Diagnostics.Type_parameter_declaration_expected; - case 17: - return ts.Diagnostics.Type_argument_expected; - case 18: - return ts.Diagnostics.Type_expected; - case 19: - return ts.Diagnostics.Unexpected_token_expected; - case 20: - return ts.Diagnostics.Identifier_expected; + case 0: return ts.Diagnostics.Declaration_or_statement_expected; + case 1: return ts.Diagnostics.Declaration_or_statement_expected; + case 2: return ts.Diagnostics.Statement_expected; + case 3: return ts.Diagnostics.case_or_default_expected; + case 4: return ts.Diagnostics.Statement_expected; + case 5: return ts.Diagnostics.Property_or_signature_expected; + case 6: return ts.Diagnostics.Unexpected_token_A_constructor_method_accessor_or_property_was_expected; + case 7: return ts.Diagnostics.Enum_member_expected; + case 8: return ts.Diagnostics.Type_reference_expected; + case 9: return ts.Diagnostics.Variable_declaration_expected; + case 10: return ts.Diagnostics.Property_destructuring_pattern_expected; + case 11: return ts.Diagnostics.Array_element_destructuring_pattern_expected; + case 12: return ts.Diagnostics.Argument_expression_expected; + case 13: return ts.Diagnostics.Property_assignment_expected; + case 14: return ts.Diagnostics.Expression_or_comma_expected; + case 15: return ts.Diagnostics.Parameter_declaration_expected; + case 16: return ts.Diagnostics.Type_parameter_declaration_expected; + case 17: return ts.Diagnostics.Type_argument_expected; + case 18: return ts.Diagnostics.Type_expected; + case 19: return ts.Diagnostics.Unexpected_token_expected; + case 20: return ts.Diagnostics.Identifier_expected; } } ; function modifierToFlag(token) { switch (token) { - case 109: - return 128; - case 108: - return 16; - case 107: - return 64; - case 106: - return 32; - case 77: - return 1; - case 114: - return 2; - case 69: - return 8192; - case 72: - return 256; + case 109: return 128; + case 108: return 16; + case 107: return 64; + case 106: return 32; + case 77: return 1; + case 114: return 2; + case 69: return 8192; + case 72: return 256; } return 0; } ts.modifierToFlag = modifierToFlag; function fixupParentReferences(sourceFile) { - var parent = sourceFile; + var _parent = sourceFile; forEachChild(sourceFile, visitNode); return; function visitNode(n) { - if (n.parent !== parent) { - n.parent = parent; - var saveParent = parent; - parent = n; + if (n.parent !== _parent) { + n.parent = _parent; + var saveParent = _parent; + _parent = n; forEachChild(n, visitNode); - parent = saveParent; + _parent = saveParent; } } } @@ -9337,8 +4633,9 @@ var ts; array._children = undefined; array.pos += delta; array.end += delta; - for (var i = 0, n = array.length; i < n; i++) { - visitNode(array[i]); + for (var _i = 0, _n = array.length; _i < _n; _i++) { + var node = array[_i]; + visitNode(node); } } } @@ -9400,8 +4697,9 @@ var ts; array.intersectsChange = true; array._children = undefined; adjustIntersectingElement(array, changeStart, changeRangeOldEnd, changeRangeNewEnd, delta); - for (var i = 0, n = array.length; i < n; i++) { - visitNode(array[i]); + for (var _i = 0, _n = array.length; _i < _n; _i++) { + var node = array[_i]; + visitNode(node); } return; } @@ -9515,7 +4813,8 @@ var ts; } ts.updateSourceFile = updateSourceFile; function isEvalOrArgumentsIdentifier(node) { - return node.kind === 64 && (node.text === "eval" || node.text === "arguments"); + return node.kind === 64 && + (node.text === "eval" || node.text === "arguments"); } ts.isEvalOrArgumentsIdentifier = isEvalOrArgumentsIdentifier; function isUseStrictPrologueDirective(sourceFile, node) { @@ -9697,8 +4996,8 @@ var ts; } function parseErrorAtCurrentToken(message, arg0) { var start = scanner.getTokenPos(); - var length = scanner.getTextPos() - start; - parseErrorAtPosition(start, length, message, arg0); + var _length = scanner.getTextPos() - start; + parseErrorAtPosition(start, _length, message, arg0); } function parseErrorAtPosition(start, length, message, arg0) { var lastError = ts.lastOrUndefined(sourceFile.parseDiagnostics); @@ -9737,7 +5036,9 @@ var ts; var saveParseDiagnosticsLength = sourceFile.parseDiagnostics.length; var saveParseErrorBeforeNextFinishedNode = parseErrorBeforeNextFinishedNode; var saveContextFlags = contextFlags; - var result = isLookAhead ? scanner.lookAhead(callback) : scanner.tryScan(callback); + var result = isLookAhead + ? scanner.lookAhead(callback) + : scanner.tryScan(callback); ts.Debug.assert(saveContextFlags === contextFlags); if (!result || isLookAhead) { token = saveToken; @@ -9788,7 +5089,8 @@ var ts; return undefined; } function parseExpectedToken(t, reportAtCurrentPosition, diagnosticMessage, arg0) { - return parseOptionalToken(t) || createMissingNode(t, reportAtCurrentPosition, diagnosticMessage, arg0); + return parseOptionalToken(t) || + createMissingNode(t, reportAtCurrentPosition, diagnosticMessage, arg0); } function parseTokenNode() { var node = createNode(token); @@ -9865,7 +5167,9 @@ var ts; return createIdentifier(isIdentifierOrKeyword()); } function isLiteralPropertyName() { - return isIdentifierOrKeyword() || token === 8 || token === 7; + return isIdentifierOrKeyword() || + token === 8 || + token === 7; } function parsePropertyName() { if (token === 8 || token === 7) { @@ -9918,7 +5222,10 @@ var ts; return canFollowModifier(); } function canFollowModifier() { - return token === 18 || token === 14 || token === 35 || isLiteralPropertyName(); + return token === 18 + || token === 14 + || token === 35 + || isLiteralPropertyName(); } function nextTokenIsClassOrFunction() { nextToken(); @@ -9976,7 +5283,8 @@ var ts; return isIdentifier(); } function isNotHeritageClauseTypeName() { - if (token === 102 || token === 78) { + if (token === 102 || + token === 78) { return lookAhead(nextTokenIsIdentifier); } return false; @@ -10357,7 +5665,9 @@ var ts; var tokenPos = scanner.getTokenPos(); nextToken(); finishNode(node); - if (node.kind === 7 && sourceText.charCodeAt(tokenPos) === 48 && ts.isOctalDigit(sourceText.charCodeAt(tokenPos + 1))) { + if (node.kind === 7 + && sourceText.charCodeAt(tokenPos) === 48 + && ts.isOctalDigit(sourceText.charCodeAt(tokenPos + 1))) { node.flags |= 16384; } return node; @@ -10396,7 +5706,9 @@ var ts; } function parseParameterType() { if (parseOptional(51)) { - return token === 8 ? parseLiteralNode(true) : parseType(); + return token === 8 + ? parseLiteralNode(true) + : parseType(); } return undefined; } @@ -10511,11 +5823,11 @@ var ts; } function parsePropertyOrMethodSignature() { var fullStart = scanner.getStartPos(); - var name = parsePropertyName(); + var _name = parsePropertyName(); var questionToken = parseOptionalToken(50); if (token === 16 || token === 24) { var method = createNode(131, fullStart); - method.name = name; + method.name = _name; method.questionToken = questionToken; fillSignature(51, false, false, method); parseTypeMemberSemicolon(); @@ -10523,7 +5835,7 @@ var ts; } else { var property = createNode(129, fullStart); - property.name = name; + property.name = _name; property.questionToken = questionToken; property.type = parseTypeAnnotation(); parseTypeMemberSemicolon(); @@ -10554,7 +5866,11 @@ var ts; } function isTypeMemberWithLiteralPropertyName() { nextToken(); - return token === 16 || token === 24 || token === 50 || token === 51 || canParseSemicolon(); + return token === 16 || + token === 24 || + token === 50 || + token === 51 || + canParseSemicolon(); } function parseTypeMember() { switch (token) { @@ -10562,7 +5878,9 @@ var ts; case 24: return parseSignatureMember(136); case 18: - return isIndexSignature() ? parseIndexSignatureDeclaration(undefined) : parsePropertyOrMethodSignature(); + return isIndexSignature() + ? parseIndexSignatureDeclaration(undefined) + : parsePropertyOrMethodSignature(); case 87: if (lookAhead(isStartOfConstructSignature)) { return parseSignatureMember(137); @@ -10584,7 +5902,9 @@ var ts; } function parseIndexSignatureWithModifiers() { var modifiers = parseModifiers(); - return isIndexSignature() ? parseIndexSignatureDeclaration(modifiers) : undefined; + return isIndexSignature() + ? parseIndexSignatureDeclaration(modifiers) + : undefined; } function isStartOfConstructSignature() { nextToken(); @@ -10690,9 +6010,7 @@ var ts; function parseUnionTypeOrHigher() { var type = parseArrayTypeOrHigher(); if (token === 44) { - var types = [ - type - ]; + var types = [type]; types.pos = type.pos; while (parseOptional(44)) { types.push(parseArrayTypeOrHigher()); @@ -10717,7 +6035,9 @@ var ts; } if (isIdentifier() || ts.isModifier(token)) { nextToken(); - if (token === 51 || token === 23 || token === 50 || token === 52 || isIdentifier() || ts.isModifier(token)) { + if (token === 51 || token === 23 || + token === 50 || token === 52 || + isIdentifier() || ts.isModifier(token)) { return true; } if (token === 17) { @@ -10842,10 +6162,16 @@ var ts; nextToken(); return !scanner.hasPrecedingLineBreak() && isIdentifier(); } + function nextTokenIsIdentifierOrStartOfDestructuringOnTheSameLine() { + nextToken(); + return !scanner.hasPrecedingLineBreak() && + (isIdentifier() || token === 14 || token === 18); + } function parseYieldExpression() { var node = createNode(170); nextToken(); - if (!scanner.hasPrecedingLineBreak() && (token === 35 || isStartOfExpression())) { + if (!scanner.hasPrecedingLineBreak() && + (token === 35 || isStartOfExpression())) { node.asteriskToken = parseOptionalToken(35); node.expression = parseAssignmentExpressionOrHigher(); return finishNode(node); @@ -10860,9 +6186,7 @@ var ts; var parameter = createNode(128, identifier.pos); parameter.name = identifier; finishNode(parameter); - node.parameters = [ - parameter - ]; + node.parameters = [parameter]; node.parameters.pos = parameter.pos; node.parameters.end = parameter.end; parseExpected(32); @@ -10874,7 +6198,9 @@ var ts; if (triState === 0) { return undefined; } - var arrowFunction = triState === 1 ? parseParenthesizedArrowFunctionExpressionHead(true) : tryParse(parsePossibleParenthesizedArrowFunctionExpressionHead); + var arrowFunction = triState === 1 + ? parseParenthesizedArrowFunctionExpressionHead(true) + : tryParse(parsePossibleParenthesizedArrowFunctionExpressionHead); if (!arrowFunction) { return undefined; } @@ -11096,7 +6422,9 @@ var ts; return expression; } function parseLeftHandSideExpressionOrHigher() { - var expression = token === 90 ? parseSuperExpression() : parseMemberExpressionOrHigher(); + var expression = token === 90 + ? parseSuperExpression() + : parseMemberExpressionOrHigher(); return parseCallExpressionRest(expression); } function parseMemberExpressionOrHigher() { @@ -11150,7 +6478,9 @@ var ts; if (token === 10 || token === 11) { var tagExpression = createNode(157, expression.pos); tagExpression.tag = expression; - tagExpression.template = token === 10 ? parseLiteralNode() : parseTemplateExpression(); + tagExpression.template = token === 10 + ? parseLiteralNode() + : parseTemplateExpression(); expression = finishNode(tagExpression); continue; } @@ -11173,10 +6503,10 @@ var ts; continue; } else if (token === 16) { - var callExpr = createNode(155, expression.pos); - callExpr.expression = expression; - callExpr.arguments = parseArgumentList(); - expression = finishNode(callExpr); + var _callExpr = createNode(155, expression.pos); + _callExpr.expression = expression; + _callExpr.arguments = parseArgumentList(); + expression = finishNode(_callExpr); continue; } return expression; @@ -11196,7 +6526,9 @@ var ts; if (!parseExpected(25)) { return undefined; } - return typeArguments && canFollowTypeArgumentsInExpression() ? typeArguments : undefined; + return typeArguments && canFollowTypeArgumentsInExpression() + ? typeArguments + : undefined; } function canFollowTypeArgumentsInExpression() { switch (token) { @@ -11271,7 +6603,9 @@ var ts; return finishNode(node); } function parseArgumentOrArrayLiteralElement() { - return token === 21 ? parseSpreadElement() : token === 23 ? createNode(172) : parseAssignmentExpressionOrHigher(); + return token === 21 ? parseSpreadElement() : + token === 23 ? createNode(172) : + parseAssignmentExpressionOrHigher(); } function parseArgumentExpression() { return allowInAnd(parseArgumentOrArrayLiteralElement); @@ -11826,15 +7160,15 @@ var ts; } function parsePropertyOrMethodDeclaration(fullStart, modifiers) { var asteriskToken = parseOptionalToken(35); - var name = parsePropertyName(); + var _name = parsePropertyName(); var questionToken = parseOptionalToken(50); if (asteriskToken || token === 16 || token === 24) { - return parseMethodDeclaration(fullStart, modifiers, asteriskToken, name, questionToken, ts.Diagnostics.or_expected); + return parseMethodDeclaration(fullStart, modifiers, asteriskToken, _name, questionToken, ts.Diagnostics.or_expected); } else { var property = createNode(130, fullStart); setModifiers(property, modifiers); - property.name = name; + property.name = _name; property.questionToken = questionToken; property.type = parseTypeAnnotation(); property.initializer = allowInAnd(parseNonParameterInitializer); @@ -11921,7 +7255,11 @@ var ts; if (isIndexSignature()) { return parseIndexSignatureDeclaration(modifiers); } - if (isIdentifierOrKeyword() || token === 8 || token === 7 || token === 35 || token === 18) { + if (isIdentifierOrKeyword() || + token === 8 || + token === 7 || + token === 35 || + token === 18) { return parsePropertyOrMethodDeclaration(fullStart, modifiers); } ts.Debug.fail("Should not have attempted to parse class member declaration."); @@ -11934,7 +7272,9 @@ var ts; node.typeParameters = parseTypeParameters(); node.heritageClauses = parseHeritageClauses(true); if (parseExpected(14)) { - node.members = inGeneratorParameterContext() ? doOutsideOfYieldContext(parseClassMembers) : parseClassMembers(); + node.members = inGeneratorParameterContext() + ? doOutsideOfYieldContext(parseClassMembers) + : parseClassMembers(); parseExpected(15); } else { @@ -11944,7 +7284,9 @@ var ts; } function parseHeritageClauses(isClassHeritageClause) { if (isHeritageClause()) { - return isClassHeritageClause && inGeneratorParameterContext() ? doOutsideOfYieldContext(parseHeritageClausesWorker) : parseHeritageClausesWorker(); + return isClassHeritageClause && inGeneratorParameterContext() + ? doOutsideOfYieldContext(parseHeritageClausesWorker) + : parseHeritageClausesWorker(); } return undefined; } @@ -12023,7 +7365,9 @@ var ts; setModifiers(node, modifiers); node.flags |= flags; node.name = parseIdentifier(); - node.body = parseOptional(20) ? parseInternalModuleTail(getNodePos(), undefined, 1) : parseModuleBlock(); + node.body = parseOptional(20) + ? parseInternalModuleTail(getNodePos(), undefined, 1) + : parseModuleBlock(); return finishNode(node); } function parseAmbientExternalModuleDeclaration(fullStart, modifiers) { @@ -12035,17 +7379,21 @@ var ts; } function parseModuleDeclaration(fullStart, modifiers) { parseExpected(116); - return token === 8 ? parseAmbientExternalModuleDeclaration(fullStart, modifiers) : parseInternalModuleTail(fullStart, modifiers, modifiers ? modifiers.flags : 0); + return token === 8 + ? parseAmbientExternalModuleDeclaration(fullStart, modifiers) + : parseInternalModuleTail(fullStart, modifiers, modifiers ? modifiers.flags : 0); } function isExternalModuleReference() { - return token === 117 && lookAhead(nextTokenIsOpenParen); + return token === 117 && + lookAhead(nextTokenIsOpenParen); } function nextTokenIsOpenParen() { return nextToken() === 16; } function nextTokenIsCommaOrFromKeyword() { nextToken(); - return token === 23 || token === 123; + return token === 23 || + token === 123; } function parseImportDeclarationOrImportEqualsDeclaration(fullStart, modifiers) { parseExpected(84); @@ -12065,7 +7413,9 @@ var ts; } var importDeclaration = createNode(204, fullStart); setModifiers(importDeclaration, modifiers); - if (identifier || token === 35 || token === 14) { + if (identifier || + token === 35 || + token === 14) { importDeclaration.importClause = parseImportClause(identifier, afterImportPos); parseExpected(123); } @@ -12078,13 +7428,16 @@ var ts; if (identifier) { importClause.name = identifier; } - if (!importClause.name || parseOptional(23)) { + if (!importClause.name || + parseOptional(23)) { importClause.namedBindings = token === 35 ? parseNamespaceImport() : parseNamedImportsOrExports(207); } return finishNode(importClause); } function parseModuleReference() { - return isExternalModuleReference() ? parseExternalModuleReference() : parseEntityName(false); + return isExternalModuleReference() + ? parseExternalModuleReference() + : parseEntityName(false); } function parseExternalModuleReference() { var node = createNode(213); @@ -12172,7 +7525,7 @@ var ts; return finishNode(node); } function isLetDeclaration() { - return inStrictModeContext() || lookAhead(nextTokenIsIdentifierOnSameLine); + return inStrictModeContext() || lookAhead(nextTokenIsIdentifierOrStartOfDestructuringOnTheSameLine); } function isDeclarationStart() { switch (token) { @@ -12214,11 +7567,13 @@ var ts; } function nextTokenCanFollowImportKeyword() { nextToken(); - return isIdentifierOrKeyword() || token === 8 || token === 35 || token === 14; + return isIdentifierOrKeyword() || token === 8 || + token === 35 || token === 14; } function nextTokenCanFollowExportKeyword() { nextToken(); - return token === 52 || token === 35 || token === 14 || token === 72 || isDeclarationStart(); + return token === 52 || token === 35 || + token === 14 || token === 72 || isDeclarationStart(); } function nextTokenIsDeclarationStart() { nextToken(); @@ -12272,7 +7627,9 @@ var ts; return parseSourceElementOrModuleElement(); } function parseSourceElementOrModuleElement() { - return isDeclarationStart() ? parseDeclaration() : parseStatement(); + return isDeclarationStart() + ? parseDeclaration() + : parseStatement(); } function processReferenceComments(sourceFile) { var triviaScanner = ts.createScanner(sourceFile.languageVersion, false, sourceText); @@ -12287,10 +7644,7 @@ var ts; if (kind !== 2) { break; } - var range = { - pos: triviaScanner.getTokenPos(), - end: triviaScanner.getTextPos() - }; + var range = { pos: triviaScanner.getTokenPos(), end: triviaScanner.getTextPos() }; var comment = sourceText.substring(range.pos, range.end); var referencePathMatchResult = ts.getFileReferenceFromReferencePath(comment, range); if (referencePathMatchResult) { @@ -12321,10 +7675,7 @@ var ts; var pathMatchResult = pathRegex.exec(comment); var nameMatchResult = nameRegex.exec(comment); if (pathMatchResult) { - var amdDependency = { - path: pathMatchResult[2], - name: nameMatchResult ? nameMatchResult[2] : undefined - }; + var amdDependency = { path: pathMatchResult[2], name: nameMatchResult ? nameMatchResult[2] : undefined }; amdDependencies.push(amdDependency); } } @@ -12336,7 +7687,13 @@ var ts; } function setExternalModuleIndicator(sourceFile) { sourceFile.externalModuleIndicator = ts.forEach(sourceFile.statements, function (node) { - return node.flags & 1 || node.kind === 203 && node.moduleReference.kind === 213 || node.kind === 204 || node.kind === 209 || node.kind === 210 ? node : undefined; + return node.flags & 1 + || node.kind === 203 && node.moduleReference.kind === 213 + || node.kind === 204 + || node.kind === 209 + || node.kind === 210 + ? node + : undefined; }); } } @@ -12424,7 +7781,7 @@ var ts; } ts.bindSourceFile = bindSourceFile; function bindSourceFileWorker(file) { - var parent; + var _parent; var container; var blockScopeContainer; var lastContainer; @@ -12497,19 +7854,22 @@ var ts; } function declareSymbol(symbols, parent, node, includes, excludes) { ts.Debug.assert(!ts.hasDynamicName(node)); - var name = node.flags & 256 && parent ? "default" : getDeclarationName(node); - if (name !== undefined) { - var symbol = ts.hasProperty(symbols, name) ? symbols[name] : (symbols[name] = createSymbol(0, name)); + var _name = node.flags & 256 && parent ? "default" : getDeclarationName(node); + var symbol; + if (_name !== undefined) { + symbol = ts.hasProperty(symbols, _name) ? symbols[_name] : (symbols[_name] = createSymbol(0, _name)); if (symbol.flags & excludes) { if (node.name) { node.name.parent = node; } - var message = symbol.flags & 2 ? ts.Diagnostics.Cannot_redeclare_block_scoped_variable_0 : ts.Diagnostics.Duplicate_identifier_0; + var message = symbol.flags & 2 + ? ts.Diagnostics.Cannot_redeclare_block_scoped_variable_0 + : ts.Diagnostics.Duplicate_identifier_0; ts.forEach(symbol.declarations, function (declaration) { file.bindDiagnostics.push(ts.createDiagnosticForNode(declaration.name || declaration, message, getDisplayName(declaration))); }); file.bindDiagnostics.push(ts.createDiagnosticForNode(node.name || node, message, getDisplayName(node))); - symbol = createSymbol(0, name); + symbol = createSymbol(0, _name); } } else { @@ -12550,7 +7910,9 @@ var ts; } else { if (hasExportModifier || isAmbientContext(container)) { - var exportKind = (symbolKind & 107455 ? 1048576 : 0) | (symbolKind & 793056 ? 2097152 : 0) | (symbolKind & 1536 ? 4194304 : 0); + var exportKind = (symbolKind & 107455 ? 1048576 : 0) | + (symbolKind & 793056 ? 2097152 : 0) | + (symbolKind & 1536 ? 4194304 : 0); var local = declareSymbol(container.locals, undefined, node, exportKind, symbolExcludes); local.exportSymbol = declareSymbol(container.symbol.exports, container.symbol, node, symbolKind, symbolExcludes); node.localSymbol = local; @@ -12564,10 +7926,10 @@ var ts; if (symbolKind & 255504) { node.locals = {}; } - var saveParent = parent; + var saveParent = _parent; var saveContainer = container; var savedBlockScopeContainer = blockScopeContainer; - parent = node; + _parent = node; if (symbolKind & 262128) { container = node; if (lastContainer) { @@ -12580,7 +7942,7 @@ var ts; } ts.forEachChild(node, bind); container = saveContainer; - parent = saveParent; + _parent = saveParent; blockScopeContainer = savedBlockScopeContainer; } function bindDeclaration(node, symbolKind, symbolExcludes, isBlockScopeContainer) { @@ -12683,7 +8045,7 @@ var ts; return "__" + ts.indexOf(node.parent.parameters, node); } function bind(node) { - node.parent = parent; + node.parent = _parent; switch (node.kind) { case 127: bindDeclaration(node, 262144, 530912, false); @@ -12817,10 +8179,10 @@ var ts; bindChildren(node, 0, true); break; default: - var saveParent = parent; - parent = node; + var saveParent = _parent; + _parent = node; ts.forEachChild(node, bind); - parent = saveParent; + _parent = saveParent; } } function bindParameter(node) { @@ -12830,7 +8192,9 @@ var ts; else { bindDeclaration(node, 1, 107455, false); } - if (node.flags & 112 && node.parent.kind === 133 && node.parent.parent.kind === 196) { + if (node.flags & 112 && + node.parent.kind === 133 && + node.parent.parent.kind === 196) { var classDeclaration = node.parent.parent; declareSymbol(classDeclaration.symbol.members, classDeclaration.symbol, node, 4, 107455); } @@ -12861,25 +8225,15 @@ var ts; var compilerOptions = host.getCompilerOptions(); var languageVersion = compilerOptions.target || 0; var emitResolver = createResolver(); + var undefinedSymbol = createSymbol(4 | 67108864, "undefined"); + var argumentsSymbol = createSymbol(4 | 67108864, "arguments"); var checker = { - getNodeCount: function () { - return ts.sum(host.getSourceFiles(), "nodeCount"); - }, - getIdentifierCount: function () { - return ts.sum(host.getSourceFiles(), "identifierCount"); - }, - getSymbolCount: function () { - return ts.sum(host.getSourceFiles(), "symbolCount"); - }, - getTypeCount: function () { - return typeCount; - }, - isUndefinedSymbol: function (symbol) { - return symbol === undefinedSymbol; - }, - isArgumentsSymbol: function (symbol) { - return symbol === argumentsSymbol; - }, + getNodeCount: function () { return ts.sum(host.getSourceFiles(), "nodeCount"); }, + getIdentifierCount: function () { return ts.sum(host.getSourceFiles(), "identifierCount"); }, + getSymbolCount: function () { return ts.sum(host.getSourceFiles(), "symbolCount"); }, + getTypeCount: function () { return typeCount; }, + isUndefinedSymbol: function (symbol) { return symbol === undefinedSymbol; }, + isArgumentsSymbol: function (symbol) { return symbol === argumentsSymbol; }, getDiagnostics: getDiagnostics, getGlobalDiagnostics: getGlobalDiagnostics, getTypeOfSymbolAtLocation: getTypeOfSymbolAtLocation, @@ -12909,8 +8263,6 @@ var ts; getEmitResolver: getEmitResolver, getExportsOfExternalModule: getExportsOfExternalModule }; - var undefinedSymbol = createSymbol(4 | 67108864, "undefined"); - var argumentsSymbol = createSymbol(4 | 67108864, "arguments"); var unknownSymbol = createSymbol(4 | 67108864, "unknown"); var resolvingSymbol = createSymbol(67108864, "__resolving__"); var anyType = createIntrinsicType(1, "any"); @@ -12975,7 +8327,9 @@ var ts; return emitResolver; } function error(location, message, arg0, arg1, arg2) { - var diagnostic = location ? ts.createDiagnosticForNode(location, message, arg0, arg1, arg2) : ts.createCompilerDiagnostic(message, arg0, arg1, arg2); + var diagnostic = location + ? ts.createDiagnosticForNode(location, message, arg0, arg1, arg2) + : ts.createCompilerDiagnostic(message, arg0, arg1, arg2); diagnostics.add(diagnostic); } function createSymbol(flags, name) { @@ -13061,7 +8415,8 @@ var ts; recordMergedSymbol(target, source); } else { - var message = target.flags & 2 || source.flags & 2 ? ts.Diagnostics.Cannot_redeclare_block_scoped_variable_0 : ts.Diagnostics.Duplicate_identifier_0; + var message = target.flags & 2 || source.flags & 2 + ? ts.Diagnostics.Cannot_redeclare_block_scoped_variable_0 : ts.Diagnostics.Duplicate_identifier_0; ts.forEach(source.declarations, function (node) { error(node.name ? node.name : node, message, symbolToString(source)); }); @@ -13248,18 +8603,18 @@ var ts; } function checkResolvedBlockScopedVariable(result, errorLocation) { ts.Debug.assert((result.flags & 2) !== 0); - var declaration = ts.forEach(result.declarations, function (d) { - return ts.isBlockOrCatchScoped(d) ? d : undefined; - }); + var declaration = ts.forEach(result.declarations, function (d) { return ts.isBlockOrCatchScoped(d) ? d : undefined; }); ts.Debug.assert(declaration !== undefined, "Block-scoped variable declaration is undefined"); var isUsedBeforeDeclaration = !isDefinedBefore(declaration, errorLocation); if (!isUsedBeforeDeclaration) { var variableDeclaration = ts.getAncestor(declaration, 193); var container = ts.getEnclosingBlockScopeContainer(variableDeclaration); - if (variableDeclaration.parent.parent.kind === 175 || variableDeclaration.parent.parent.kind === 181) { + if (variableDeclaration.parent.parent.kind === 175 || + variableDeclaration.parent.parent.kind === 181) { isUsedBeforeDeclaration = isSameScopeDescendentOf(errorLocation, variableDeclaration, container); } - else if (variableDeclaration.parent.parent.kind === 183 || variableDeclaration.parent.parent.kind === 182) { + else if (variableDeclaration.parent.parent.kind === 183 || + variableDeclaration.parent.parent.kind === 182) { var expression = variableDeclaration.parent.parent.expression; isUsedBeforeDeclaration = isSameScopeDescendentOf(errorLocation, expression, container); } @@ -13280,12 +8635,15 @@ var ts; return false; } function isAliasSymbolDeclaration(node) { - return node.kind === 203 || node.kind === 205 && !!node.name || node.kind === 206 || node.kind === 208 || node.kind === 212 || node.kind === 209; + return node.kind === 203 || + node.kind === 205 && !!node.name || + node.kind === 206 || + node.kind === 208 || + node.kind === 212 || + node.kind === 209; } function getDeclarationOfAliasSymbol(symbol) { - return ts.forEach(symbol.declarations, function (d) { - return isAliasSymbolDeclaration(d) ? d : undefined; - }); + return ts.forEach(symbol.declarations, function (d) { return isAliasSymbolDeclaration(d) ? d : undefined; }); } function getTargetOfImportEqualsDeclaration(node) { if (node.moduleReference.kind === 213) { @@ -13311,11 +8669,11 @@ var ts; function getExternalModuleMember(node, specifier) { var moduleSymbol = resolveExternalModuleName(node, node.moduleSpecifier); if (moduleSymbol) { - var name = specifier.propertyName || specifier.name; - if (name.text) { - var symbol = getSymbol(getExportsOfSymbol(moduleSymbol), name.text, 107455 | 793056 | 1536); + var _name = specifier.propertyName || specifier.name; + if (_name.text) { + var symbol = getSymbol(getExportsOfSymbol(moduleSymbol), _name.text, 107455 | 793056 | 1536); if (!symbol) { - error(name, ts.Diagnostics.Module_0_has_no_exported_member_1, getFullyQualifiedName(moduleSymbol), ts.declarationNameToString(name)); + error(_name, ts.Diagnostics.Module_0_has_no_exported_member_1, getFullyQualifiedName(moduleSymbol), ts.declarationNameToString(_name)); return; } return symbol.flags & (107455 | 793056 | 1536) ? symbol : resolveAlias(symbol); @@ -13326,7 +8684,9 @@ var ts; return getExternalModuleMember(node.parent.parent.parent, node); } function getTargetOfExportSpecifier(node) { - return node.parent.parent.moduleSpecifier ? getExternalModuleMember(node.parent.parent, node) : resolveEntityName(node.propertyName || node.name, 107455 | 793056 | 1536); + return node.parent.parent.moduleSpecifier ? + getExternalModuleMember(node.parent.parent, node) : + resolveEntityName(node.propertyName || node.name, 107455 | 793056 | 1536); } function getTargetOfExportAssignment(node) { return resolveEntityName(node.expression, 107455 | 793056 | 1536); @@ -13412,8 +8772,9 @@ var ts; if (ts.getFullWidth(name) === 0) { return undefined; } + var symbol; if (name.kind === 64) { - var symbol = resolveName(name, name.text, meaning, ts.Diagnostics.Cannot_find_name_0, name); + symbol = resolveName(name, name.text, meaning, ts.Diagnostics.Cannot_find_name_0, name); if (!symbol) { return undefined; } @@ -13424,7 +8785,7 @@ var ts; return undefined; } var right = name.right; - var symbol = getSymbol(getExportsOfSymbol(namespace), right.text, meaning); + symbol = getSymbol(getExportsOfSymbol(namespace), right.text, meaning); if (!symbol) { error(right, ts.Diagnostics.Module_0_has_no_exported_member_1, getFullyQualifiedName(namespace), ts.declarationNameToString(right)); return undefined; @@ -13452,14 +8813,17 @@ var ts; return symbol; } } + var sourceFile; while (true) { var fileName = ts.normalizePath(ts.combinePaths(searchPath, moduleName)); - var sourceFile = host.getSourceFile(fileName + ".ts") || host.getSourceFile(fileName + ".d.ts"); - if (sourceFile || isRelative) + sourceFile = host.getSourceFile(fileName + ".ts") || host.getSourceFile(fileName + ".d.ts"); + if (sourceFile || isRelative) { break; + } var parentPath = ts.getDirectoryPath(searchPath); - if (parentPath === searchPath) + if (parentPath === searchPath) { break; + } searchPath = parentPath; } if (sourceFile) { @@ -13541,7 +8905,9 @@ var ts; return getMergedSymbol(symbol.parent); } function getExportSymbolOfValueSymbolIfExported(symbol) { - return symbol && (symbol.flags & 1048576) !== 0 ? getMergedSymbol(symbol.exportSymbol) : symbol; + return symbol && (symbol.flags & 1048576) !== 0 + ? getMergedSymbol(symbol.exportSymbol) + : symbol; } function symbolIsValue(symbol) { if (symbol.flags & 16777216) { @@ -13557,8 +8923,8 @@ var ts; } function findConstructorDeclaration(node) { var members = node.members; - for (var i = 0; i < members.length; i++) { - var member = members[i]; + for (var _i = 0, _n = members.length; _i < _n; _i++) { + var member = members[_i]; if (member.kind === 133 && ts.nodeIsPresent(member.body)) { return member; } @@ -13580,7 +8946,10 @@ var ts; return type; } function isReservedMemberName(name) { - return name.charCodeAt(0) === 95 && name.charCodeAt(1) === 95 && name.charCodeAt(2) !== 95 && name.charCodeAt(2) !== 64; + return name.charCodeAt(0) === 95 && + name.charCodeAt(1) === 95 && + name.charCodeAt(2) !== 95 && + name.charCodeAt(2) !== 64; } function getNamedMembers(members) { var result; @@ -13614,25 +8983,25 @@ var ts; } function forEachSymbolTableInScope(enclosingDeclaration, callback) { var result; - for (var location = enclosingDeclaration; location; location = location.parent) { - if (location.locals && !isGlobalSourceFile(location)) { - if (result = callback(location.locals)) { + for (var _location = enclosingDeclaration; _location; _location = _location.parent) { + if (_location.locals && !isGlobalSourceFile(_location)) { + if (result = callback(_location.locals)) { return result; } } - switch (location.kind) { + switch (_location.kind) { case 221: - if (!ts.isExternalModule(location)) { + if (!ts.isExternalModule(_location)) { break; } case 200: - if (result = callback(getSymbolOfNode(location).exports)) { + if (result = callback(getSymbolOfNode(_location).exports)) { return result; } break; case 196: case 197: - if (result = callback(getSymbolOfNode(location).members)) { + if (result = callback(getSymbolOfNode(_location).members)) { return result; } break; @@ -13654,28 +9023,24 @@ var ts; } function isAccessible(symbolFromSymbolTable, resolvedAliasSymbol) { if (symbol === (resolvedAliasSymbol || symbolFromSymbolTable)) { - return !ts.forEach(symbolFromSymbolTable.declarations, hasExternalModuleSymbol) && canQualifySymbol(symbolFromSymbolTable, meaning); + return !ts.forEach(symbolFromSymbolTable.declarations, hasExternalModuleSymbol) && + canQualifySymbol(symbolFromSymbolTable, meaning); } } if (isAccessible(ts.lookUp(symbols, symbol.name))) { - return [ - symbol - ]; + return [symbol]; } return ts.forEachValue(symbols, function (symbolFromSymbolTable) { if (symbolFromSymbolTable.flags & 8388608) { - if (!useOnlyExternalAliasing || ts.forEach(symbolFromSymbolTable.declarations, ts.isExternalModuleImportEqualsDeclaration)) { + if (!useOnlyExternalAliasing || + ts.forEach(symbolFromSymbolTable.declarations, ts.isExternalModuleImportEqualsDeclaration)) { var resolvedImportedSymbol = resolveAlias(symbolFromSymbolTable); if (isAccessible(symbolFromSymbolTable, resolveAlias(symbolFromSymbolTable))) { - return [ - symbolFromSymbolTable - ]; + return [symbolFromSymbolTable]; } var accessibleSymbolsFromExports = resolvedImportedSymbol.exports ? getAccessibleSymbolChainFromSymbolTable(resolvedImportedSymbol.exports) : undefined; if (accessibleSymbolsFromExports && canQualifySymbol(symbolFromSymbolTable, getQualifiedLeftMeaning(meaning))) { - return [ - symbolFromSymbolTable - ].concat(accessibleSymbolsFromExports); + return [symbolFromSymbolTable].concat(accessibleSymbolsFromExports); } } } @@ -13740,9 +9105,7 @@ var ts; errorSymbolName: symbolToString(initialSymbol, enclosingDeclaration, meaning) }; } - return { - accessibility: 0 - }; + return { accessibility: 0 }; function getExternalModuleContainer(declaration) { for (; declaration; declaration = declaration.parent) { if (hasExternalModuleSymbol(declaration)) { @@ -13752,22 +9115,20 @@ var ts; } } function hasExternalModuleSymbol(declaration) { - return (declaration.kind === 200 && declaration.name.kind === 8) || (declaration.kind === 221 && ts.isExternalModule(declaration)); + return (declaration.kind === 200 && declaration.name.kind === 8) || + (declaration.kind === 221 && ts.isExternalModule(declaration)); } function hasVisibleDeclarations(symbol) { var aliasesToMakeVisible; - if (ts.forEach(symbol.declarations, function (declaration) { - return !getIsDeclarationVisible(declaration); - })) { + if (ts.forEach(symbol.declarations, function (declaration) { return !getIsDeclarationVisible(declaration); })) { return undefined; } - return { - accessibility: 0, - aliasesToMakeVisible: aliasesToMakeVisible - }; + return { accessibility: 0, aliasesToMakeVisible: aliasesToMakeVisible }; function getIsDeclarationVisible(declaration) { if (!isDeclarationVisible(declaration)) { - if (declaration.kind === 203 && !(declaration.flags & 1) && isDeclarationVisible(declaration.parent)) { + if (declaration.kind === 203 && + !(declaration.flags & 1) && + isDeclarationVisible(declaration.parent)) { getNodeLinks(declaration).isVisible = true; if (aliasesToMakeVisible) { if (!ts.contains(aliasesToMakeVisible, declaration)) { @@ -13775,9 +9136,7 @@ var ts; } } else { - aliasesToMakeVisible = [ - declaration - ]; + aliasesToMakeVisible = [declaration]; } return true; } @@ -13791,7 +9150,8 @@ var ts; if (entityName.parent.kind === 142) { meaning = 107455 | 1048576; } - else if (entityName.kind === 125 || entityName.parent.kind === 203) { + else if (entityName.kind === 125 || + entityName.parent.kind === 203) { meaning = 1536; } else { @@ -13877,12 +9237,14 @@ var ts; function walkSymbol(symbol, meaning) { if (symbol) { var accessibleSymbolChain = getAccessibleSymbolChain(symbol, enclosingDeclaration, meaning, !!(flags & 2)); - if (!accessibleSymbolChain || needsQualification(accessibleSymbolChain[0], enclosingDeclaration, accessibleSymbolChain.length === 1 ? meaning : getQualifiedLeftMeaning(meaning))) { + if (!accessibleSymbolChain || + needsQualification(accessibleSymbolChain[0], enclosingDeclaration, accessibleSymbolChain.length === 1 ? meaning : getQualifiedLeftMeaning(meaning))) { walkSymbol(getParentOfSymbol(accessibleSymbolChain ? accessibleSymbolChain[0] : symbol), getQualifiedLeftMeaning(meaning)); } if (accessibleSymbolChain) { - for (var i = 0, n = accessibleSymbolChain.length; i < n; i++) { - appendParentTypeArgumentsAndSymbolName(accessibleSymbolChain[i]); + for (var _i = 0, _n = accessibleSymbolChain.length; _i < _n; _i++) { + var accessibleSymbol = accessibleSymbolChain[_i]; + appendParentTypeArgumentsAndSymbolName(accessibleSymbol); } } else { @@ -13909,7 +9271,8 @@ var ts; return writeType(type, globalFlags); function writeType(type, flags) { if (type.flags & 1048703) { - writer.writeKeyword(!(globalFlags & 16) && (type.flags & 1) ? "any" : type.intrinsicName); + writer.writeKeyword(!(globalFlags & 16) && + (type.flags & 1) ? "any" : type.intrinsicName); } else if (type.flags & 4096) { writeTypeReference(type, flags); @@ -14002,14 +9365,16 @@ var ts; } function shouldWriteTypeOfFunctionSymbol() { if (type.symbol) { - var isStaticMethodSymbol = !!(type.symbol.flags & 8192 && ts.forEach(type.symbol.declarations, function (declaration) { - return declaration.flags & 128; - })); - var isNonLocalFunctionSymbol = !!(type.symbol.flags & 16) && (type.symbol.parent || ts.forEach(type.symbol.declarations, function (declaration) { - return declaration.parent.kind === 221 || declaration.parent.kind === 201; - })); + var isStaticMethodSymbol = !!(type.symbol.flags & 8192 && + ts.forEach(type.symbol.declarations, function (declaration) { return declaration.flags & 128; })); + var isNonLocalFunctionSymbol = !!(type.symbol.flags & 16) && + (type.symbol.parent || + ts.forEach(type.symbol.declarations, function (declaration) { + return declaration.parent.kind === 221 || declaration.parent.kind === 201; + })); if (isStaticMethodSymbol || isNonLocalFunctionSymbol) { - return !!(flags & 2) || (typeStack && ts.contains(typeStack, type)); + return !!(flags & 2) || + (typeStack && ts.contains(typeStack, type)); } } } @@ -14061,15 +9426,17 @@ var ts; writePunctuation(writer, 14); writer.writeLine(); writer.increaseIndent(); - for (var i = 0; i < resolved.callSignatures.length; i++) { - buildSignatureDisplay(resolved.callSignatures[i], writer, enclosingDeclaration, globalFlagsToPass, typeStack); + for (var _i = 0, _a = resolved.callSignatures, _n = _a.length; _i < _n; _i++) { + var signature = _a[_i]; + buildSignatureDisplay(signature, writer, enclosingDeclaration, globalFlagsToPass, typeStack); writePunctuation(writer, 22); writer.writeLine(); } - for (var i = 0; i < resolved.constructSignatures.length; i++) { + for (var _b = 0, _c = resolved.constructSignatures, _d = _c.length; _b < _d; _b++) { + var _signature = _c[_b]; writeKeyword(writer, 87); writeSpace(writer); - buildSignatureDisplay(resolved.constructSignatures[i], writer, enclosingDeclaration, globalFlagsToPass, typeStack); + buildSignatureDisplay(_signature, writer, enclosingDeclaration, globalFlagsToPass, typeStack); writePunctuation(writer, 22); writer.writeLine(); } @@ -14099,17 +9466,18 @@ var ts; writePunctuation(writer, 22); writer.writeLine(); } - for (var i = 0; i < resolved.properties.length; i++) { - var p = resolved.properties[i]; + for (var _e = 0, _f = resolved.properties, _g = _f.length; _e < _g; _e++) { + var p = _f[_e]; var t = getTypeOfSymbol(p); if (p.flags & (16 | 8192) && !getPropertiesOfObjectType(t).length) { var signatures = getSignaturesOfType(t, 0); - for (var j = 0; j < signatures.length; j++) { + for (var _h = 0, _j = signatures.length; _h < _j; _h++) { + var _signature_1 = signatures[_h]; buildSymbolDisplay(p, writer); if (p.flags & 536870912) { writePunctuation(writer, 50); } - buildSignatureDisplay(signatures[j], writer, enclosingDeclaration, globalFlagsToPass, typeStack); + buildSignatureDisplay(_signature_1, writer, enclosingDeclaration, globalFlagsToPass, typeStack); writePunctuation(writer, 22); writer.writeLine(); } @@ -14247,10 +9615,11 @@ var ts; } function isUsedInExportAssignment(node) { var externalModule = getContainingExternalModule(node); + var exportAssignmentSymbol; + var resolvedExportSymbol; if (externalModule) { var externalModuleSymbol = getSymbolOfNode(externalModule); - var exportAssignmentSymbol = getExportAssignmentSymbol(externalModuleSymbol); - var resolvedExportSymbol; + exportAssignmentSymbol = getExportAssignmentSymbol(externalModuleSymbol); var symbolOfNode = getSymbolOfNode(node); if (isSymbolUsedInExportAssignment(symbolOfNode)) { return true; @@ -14290,11 +9659,12 @@ var ts; case 195: case 199: case 203: - var parent = getDeclarationContainer(node); - if (!(ts.getCombinedNodeFlags(node) & 1) && !(node.kind !== 203 && parent.kind !== 221 && ts.isInAmbientContext(parent))) { - return isGlobalSourceFile(parent) || isUsedInExportAssignment(node); + var _parent = getDeclarationContainer(node); + if (!(ts.getCombinedNodeFlags(node) & 1) && + !(node.kind !== 203 && _parent.kind !== 221 && ts.isInAmbientContext(_parent))) { + return isGlobalSourceFile(_parent) || isUsedInExportAssignment(node); } - return isDeclarationVisible(parent); + return isDeclarationVisible(_parent); case 130: case 129: case 134: @@ -14346,9 +9716,7 @@ var ts; } function getTypeOfPrototypeProperty(prototype) { var classType = getDeclaredTypeOfSymbol(prototype.parent); - return classType.typeParameters ? createTypeReference(classType, ts.map(classType.typeParameters, function (_) { - return anyType; - })) : classType; + return classType.typeParameters ? createTypeReference(classType, ts.map(classType.typeParameters, function (_) { return anyType; })) : classType; } function getTypeOfPropertyOfType(type, name) { var prop = getPropertyOfType(type, name); @@ -14366,11 +9734,14 @@ var ts; } return parentType; } + var type; if (pattern.kind === 148) { - var name = declaration.propertyName || declaration.name; - var type = getTypeOfPropertyOfType(parentType, name.text) || isNumericLiteralName(name.text) && getIndexTypeOfType(parentType, 1) || getIndexTypeOfType(parentType, 0); + var _name = declaration.propertyName || declaration.name; + type = getTypeOfPropertyOfType(parentType, _name.text) || + isNumericLiteralName(_name.text) && getIndexTypeOfType(parentType, 1) || + getIndexTypeOfType(parentType, 0); if (!type) { - error(name, ts.Diagnostics.Type_0_has_no_property_1_and_no_string_index_signature, typeToString(parentType), ts.declarationNameToString(name)); + error(_name, ts.Diagnostics.Type_0_has_no_property_1_and_no_string_index_signature, typeToString(parentType), ts.declarationNameToString(_name)); return unknownType; } } @@ -14381,7 +9752,7 @@ var ts; } if (!declaration.dotDotDotToken) { var propName = "" + ts.indexOf(pattern.elements, declaration); - var type = isTupleLikeType(parentType) ? getTypeOfPropertyOfType(parentType, propName) : getIndexTypeOfType(parentType, 1); + type = isTupleLikeType(parentType) ? getTypeOfPropertyOfType(parentType, propName) : getIndexTypeOfType(parentType, 1); if (!type) { if (isTupleType(parentType)) { error(declaration, ts.Diagnostics.Tuple_type_0_with_length_1_cannot_be_assigned_to_tuple_with_length_2, typeToString(parentType), parentType.elementTypes.length, pattern.elements.length); @@ -14393,7 +9764,7 @@ var ts; } } else { - var type = createArrayType(getIndexTypeOfType(parentType, 1)); + type = createArrayType(getIndexTypeOfType(parentType, 1)); } } return type; @@ -14445,8 +9816,8 @@ var ts; var members = {}; ts.forEach(pattern.elements, function (e) { var flags = 4 | 67108864 | (e.initializer ? 536870912 : 0); - var name = e.propertyName || e.name; - var symbol = createSymbol(flags, name.text); + var _name = e.propertyName || e.name; + var symbol = createSymbol(flags, _name.text); symbol.type = getTypeFromBindingElement(e); members[symbol.name] = symbol; }); @@ -14464,7 +9835,9 @@ var ts; return !elementTypes.length ? anyArrayType : hasSpreadElement ? createArrayType(getUnionType(elementTypes)) : createTupleType(elementTypes); } function getTypeFromBindingPattern(pattern) { - return pattern.kind === 148 ? getTypeFromObjectBindingPattern(pattern) : getTypeFromArrayBindingPattern(pattern); + return pattern.kind === 148 + ? getTypeFromObjectBindingPattern(pattern) + : getTypeFromArrayBindingPattern(pattern); } function getWidenedTypeForVariableLikeDeclaration(declaration, reportErrors) { var type = getTypeForVariableLikeDeclaration(declaration); @@ -14508,7 +9881,9 @@ var ts; else if (links.type === resolvingType) { links.type = anyType; if (compilerOptions.noImplicitAny) { - var diagnostic = symbol.valueDeclaration.type ? ts.Diagnostics._0_implicitly_has_type_any_because_it_is_referenced_directly_or_indirectly_in_its_own_type_annotation : ts.Diagnostics._0_implicitly_has_type_any_because_it_is_does_not_have_a_type_annotation_and_is_referenced_directly_or_indirectly_in_its_own_initializer; + var diagnostic = symbol.valueDeclaration.type ? + ts.Diagnostics._0_implicitly_has_type_any_because_it_is_referenced_directly_or_indirectly_in_its_own_type_annotation : + ts.Diagnostics._0_implicitly_has_type_any_because_it_is_does_not_have_a_type_annotation_and_is_referenced_directly_or_indirectly_in_its_own_initializer; error(symbol.valueDeclaration, diagnostic, symbolToString(symbol)); } } @@ -14569,8 +9944,8 @@ var ts; else if (links.type === resolvingType) { links.type = anyType; if (compilerOptions.noImplicitAny) { - var getter = ts.getDeclarationOfKind(symbol, 134); - error(getter, ts.Diagnostics._0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions, symbolToString(symbol)); + var _getter = ts.getDeclarationOfKind(symbol, 134); + error(_getter, ts.Diagnostics._0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions, symbolToString(symbol)); } } } @@ -14642,9 +10017,7 @@ var ts; ts.forEach(declaration.typeParameters, function (node) { var tp = getDeclaredTypeOfTypeParameter(getSymbolOfNode(node)); if (!result) { - result = [ - tp - ]; + result = [tp]; } else if (!ts.contains(result, tp)) { result.push(tp); @@ -14749,8 +10122,8 @@ var ts; } else if (links.declaredType === resolvingType) { links.declaredType = unknownType; - var declaration = ts.getDeclarationOfKind(symbol, 198); - error(declaration.name, ts.Diagnostics.Type_alias_0_circularly_references_itself, symbolToString(symbol)); + var _declaration = ts.getDeclarationOfKind(symbol, 198); + error(_declaration.name, ts.Diagnostics.Type_alias_0_circularly_references_itself, symbolToString(symbol)); } return links.declaredType; } @@ -14806,23 +10179,23 @@ var ts; } function createSymbolTable(symbols) { var result = {}; - for (var i = 0; i < symbols.length; i++) { - var symbol = symbols[i]; + for (var _i = 0, _n = symbols.length; _i < _n; _i++) { + var symbol = symbols[_i]; result[symbol.name] = symbol; } return result; } function createInstantiatedSymbolTable(symbols, mapper) { var result = {}; - for (var i = 0; i < symbols.length; i++) { - var symbol = symbols[i]; + for (var _i = 0, _n = symbols.length; _i < _n; _i++) { + var symbol = symbols[_i]; result[symbol.name] = instantiateSymbol(symbol, mapper); } return result; } function addInheritedMembers(symbols, baseSymbols) { - for (var i = 0; i < baseSymbols.length; i++) { - var s = baseSymbols[i]; + for (var _i = 0, _n = baseSymbols.length; _i < _n; _i++) { + var s = baseSymbols[_i]; if (!ts.hasProperty(symbols, s.name)) { symbols[s.name] = s; } @@ -14830,8 +10203,9 @@ var ts; } function addInheritedSignatures(signatures, baseSignatures) { if (baseSignatures) { - for (var i = 0; i < baseSignatures.length; i++) { - signatures.push(baseSignatures[i]); + for (var _i = 0, _n = baseSignatures.length; _i < _n; _i++) { + var signature = baseSignatures[_i]; + signatures.push(signature); } } } @@ -14890,15 +10264,14 @@ var ts; var baseType = classType.baseTypes[0]; var baseSignatures = getSignaturesOfType(getTypeOfSymbol(baseType.symbol), 1); return ts.map(baseSignatures, function (baseSignature) { - var signature = baseType.flags & 4096 ? getSignatureInstantiation(baseSignature, baseType.typeArguments) : cloneSignature(baseSignature); + var signature = baseType.flags & 4096 ? + getSignatureInstantiation(baseSignature, baseType.typeArguments) : cloneSignature(baseSignature); signature.typeParameters = classType.typeParameters; signature.resolvedReturnType = classType; return signature; }); } - return [ - createSignature(undefined, classType.typeParameters, emptyArray, classType, 0, false, false) - ]; + return [createSignature(undefined, classType.typeParameters, emptyArray, classType, 0, false, false)]; } function createTupleTypeMemberSymbols(memberTypes) { var members = {}; @@ -14927,17 +10300,16 @@ var ts; return true; } function getUnionSignatures(types, kind) { - var signatureLists = ts.map(types, function (t) { - return getSignaturesOfType(t, kind); - }); + var signatureLists = ts.map(types, function (t) { return getSignaturesOfType(t, kind); }); var signatures = signatureLists[0]; - for (var i = 0; i < signatures.length; i++) { - if (signatures[i].typeParameters) { + for (var _i = 0, _n = signatures.length; _i < _n; _i++) { + var signature = signatures[_i]; + if (signature.typeParameters) { return emptyArray; } } - for (var i = 1; i < signatureLists.length; i++) { - if (!signatureListsIdentical(signatures, signatureLists[i])) { + for (var _i_1 = 1; _i_1 < signatureLists.length; _i_1++) { + if (!signatureListsIdentical(signatures, signatureLists[_i_1])) { return emptyArray; } } @@ -14945,16 +10317,15 @@ var ts; for (var i = 0; i < result.length; i++) { var s = result[i]; s.resolvedReturnType = undefined; - s.unionSignatures = ts.map(signatureLists, function (signatures) { - return signatures[i]; - }); + s.unionSignatures = ts.map(signatureLists, function (signatures) { return signatures[i]; }); } return result; } function getUnionIndexType(types, kind) { var indexTypes = []; - for (var i = 0; i < types.length; i++) { - var indexType = getIndexTypeOfType(types[i], kind); + for (var _i = 0, _n = types.length; _i < _n; _i++) { + var type = types[_i]; + var indexType = getIndexTypeOfType(type, kind); if (!indexType) { return undefined; } @@ -14971,17 +10342,22 @@ var ts; } function resolveAnonymousTypeMembers(type) { var symbol = type.symbol; + var members; + var callSignatures; + var constructSignatures; + var stringIndexType; + var numberIndexType; if (symbol.flags & 2048) { - var members = symbol.members; - var callSignatures = getSignaturesOfSymbol(members["__call"]); - var constructSignatures = getSignaturesOfSymbol(members["__new"]); - var stringIndexType = getIndexTypeOfSymbol(symbol, 0); - var numberIndexType = getIndexTypeOfSymbol(symbol, 1); + members = symbol.members; + callSignatures = getSignaturesOfSymbol(members["__call"]); + constructSignatures = getSignaturesOfSymbol(members["__new"]); + stringIndexType = getIndexTypeOfSymbol(symbol, 0); + numberIndexType = getIndexTypeOfSymbol(symbol, 1); } else { - var members = emptySymbols; - var callSignatures = emptyArray; - var constructSignatures = emptyArray; + members = emptySymbols; + callSignatures = emptyArray; + constructSignatures = emptyArray; if (symbol.flags & 1952) { members = getExportsOfSymbol(symbol); } @@ -14999,8 +10375,8 @@ var ts; addInheritedMembers(members, getPropertiesOfObjectType(getTypeOfSymbol(classType.baseTypes[0].symbol))); } } - var stringIndexType = undefined; - var numberIndexType = (symbol.flags & 384) ? stringType : undefined; + stringIndexType = undefined; + numberIndexType = (symbol.flags & 384) ? stringType : undefined; } setObjectTypeMembers(type, members, callSignatures, constructSignatures, stringIndexType, numberIndexType); } @@ -15083,17 +10459,16 @@ var ts; function createUnionProperty(unionType, name) { var types = unionType.types; var props; - for (var i = 0; i < types.length; i++) { - var type = getApparentType(types[i]); + for (var _i = 0, _n = types.length; _i < _n; _i++) { + var current = types[_i]; + var type = getApparentType(current); if (type !== unknownType) { var prop = getPropertyOfType(type, name); if (!prop) { return undefined; } if (!props) { - props = [ - prop - ]; + props = [prop]; } else { props.push(prop); @@ -15102,12 +10477,12 @@ var ts; } var propTypes = []; var declarations = []; - for (var i = 0; i < props.length; i++) { - var prop = props[i]; - if (prop.declarations) { - declarations.push.apply(declarations, prop.declarations); + for (var _a = 0, _b = props.length; _a < _b; _a++) { + var _prop = props[_a]; + if (_prop.declarations) { + declarations.push.apply(declarations, _prop.declarations); } - propTypes.push(getTypeOfSymbol(prop)); + propTypes.push(getTypeOfSymbol(_prop)); } var result = createSymbol(4 | 67108864 | 268435456, name); result.unionType = unionType; @@ -15144,9 +10519,9 @@ var ts; } } if (resolved === anyFunctionType || resolved.callSignatures.length || resolved.constructSignatures.length) { - var symbol = getPropertyOfObjectType(globalFunctionType, name); - if (symbol) - return symbol; + var _symbol = getPropertyOfObjectType(globalFunctionType, name); + if (_symbol) + return _symbol; } return getPropertyOfObjectType(globalObjectType, name); } @@ -15193,7 +10568,8 @@ var ts; var links = getNodeLinks(declaration); if (!links.resolvedSignature) { var classType = declaration.kind === 133 ? getDeclaredTypeOfClass(declaration.parent.symbol) : undefined; - var typeParameters = classType ? classType.typeParameters : declaration.typeParameters ? getTypeParametersFromDeclaration(declaration.typeParameters) : undefined; + var typeParameters = classType ? classType.typeParameters : + declaration.typeParameters ? getTypeParametersFromDeclaration(declaration.typeParameters) : undefined; var parameters = []; var hasStringLiterals = false; var minArgumentCount = -1; @@ -15266,14 +10642,15 @@ var ts; function getReturnTypeOfSignature(signature) { if (!signature.resolvedReturnType) { signature.resolvedReturnType = resolvingType; + var type; if (signature.target) { - var type = instantiateType(getReturnTypeOfSignature(signature.target), signature.mapper); + type = instantiateType(getReturnTypeOfSignature(signature.target), signature.mapper); } else if (signature.unionSignatures) { - var type = getUnionType(ts.map(signature.unionSignatures, getReturnTypeOfSignature)); + type = getUnionType(ts.map(signature.unionSignatures, getReturnTypeOfSignature)); } else { - var type = getReturnTypeFromBody(signature.declaration); + type = getReturnTypeFromBody(signature.declaration); } if (signature.resolvedReturnType === resolvingType) { signature.resolvedReturnType = type; @@ -15324,12 +10701,8 @@ var ts; var type = createObjectType(32768 | 65536); type.members = emptySymbols; type.properties = emptyArray; - type.callSignatures = !isConstructor ? [ - signature - ] : emptyArray; - type.constructSignatures = isConstructor ? [ - signature - ] : emptyArray; + type.callSignatures = !isConstructor ? [signature] : emptyArray; + type.constructSignatures = isConstructor ? [signature] : emptyArray; signature.isolatedSignatureType = type; } return signature.isolatedSignatureType; @@ -15342,8 +10715,9 @@ var ts; var indexSymbol = getIndexSymbol(symbol); if (indexSymbol) { var len = indexSymbol.declarations.length; - for (var i = 0; i < len; i++) { - var node = indexSymbol.declarations[i]; + for (var _i = 0, _a = indexSymbol.declarations, _n = _a.length; _i < _n; _i++) { + var decl = _a[_i]; + var node = decl; if (node.parameters.length === 1) { var parameter = node.parameters[0]; if (parameter && parameter.type && parameter.type.kind === syntaxKind) { @@ -15356,7 +10730,9 @@ var ts; } function getIndexTypeOfSymbol(symbol, kind) { var declaration = getIndexDeclarationOfSymbol(symbol, kind); - return declaration ? declaration.type ? getTypeFromTypeNode(declaration.type) : anyType : undefined; + return declaration + ? declaration.type ? getTypeFromTypeNode(declaration.type) : anyType + : undefined; } function getConstraintOfTypeParameter(type) { if (!type.constraint) { @@ -15379,8 +10755,9 @@ var ts; default: var result = ""; for (var i = 0; i < types.length; i++) { - if (i > 0) + if (i > 0) { result += ","; + } result += types[i].id; } return result; @@ -15388,8 +10765,9 @@ var ts; } function getWideningFlagsOfTypes(types) { var result = 0; - for (var i = 0; i < types.length; i++) { - result |= types[i].flags; + for (var _i = 0, _n = types.length; _i < _n; _i++) { + var type = types[_i]; + result |= type.flags; } return result & 786432; } @@ -15410,9 +10788,7 @@ var ts; return links.isIllegalTypeReferenceInConstraint; } var currentNode = typeReferenceNode; - while (!ts.forEach(typeParameterSymbol.declarations, function (d) { - return d.parent === currentNode.parent; - })) { + while (!ts.forEach(typeParameterSymbol.declarations, function (d) { return d.parent === currentNode.parent; })) { currentNode = currentNode.parent; } links.isIllegalTypeReferenceInConstraint = currentNode.kind === 127; @@ -15426,9 +10802,7 @@ var ts; if (links.isIllegalTypeReferenceInConstraint === undefined) { var symbol = resolveName(typeParameter, n.typeName.text, 793056, undefined, undefined); if (symbol && (symbol.flags & 262144)) { - links.isIllegalTypeReferenceInConstraint = ts.forEach(symbol.declarations, function (d) { - return d.parent == typeParameter.parent; - }); + links.isIllegalTypeReferenceInConstraint = ts.forEach(symbol.declarations, function (d) { return d.parent == typeParameter.parent; }); } } if (links.isIllegalTypeReferenceInConstraint) { @@ -15446,8 +10820,8 @@ var ts; var links = getNodeLinks(node); if (!links.resolvedType) { var symbol = resolveEntityName(node.typeName, 793056); + var type; if (symbol) { - var type; if ((symbol.flags & 262144) && isTypeParameterReferenceIllegalInConstraint(node, symbol)) { type = unknownType; } @@ -15485,8 +10859,8 @@ var ts; function getTypeOfGlobalSymbol(symbol, arity) { function getTypeDeclaration(symbol) { var declarations = symbol.declarations; - for (var i = 0; i < declarations.length; i++) { - var declaration = declarations[i]; + for (var _i = 0, _n = declarations.length; _i < _n; _i++) { + var declaration = declarations[_i]; switch (declaration.kind) { case 196: case 197: @@ -15527,9 +10901,7 @@ var ts; } function createArrayType(elementType) { var arrayType = globalArrayType || getDeclaredTypeOfSymbol(globalArraySymbol); - return arrayType !== emptyObjectType ? createTypeReference(arrayType, [ - elementType - ]) : emptyObjectType; + return arrayType !== emptyObjectType ? createTypeReference(arrayType, [elementType]) : emptyObjectType; } function getTypeFromArrayTypeNode(node) { var links = getNodeLinks(node); @@ -15570,13 +10942,15 @@ var ts; } } function addTypesToSortedSet(sortedTypes, types) { - for (var i = 0, len = types.length; i < len; i++) { - addTypeToSortedSet(sortedTypes, types[i]); + for (var _i = 0, _n = types.length; _i < _n; _i++) { + var type = types[_i]; + addTypeToSortedSet(sortedTypes, type); } } function isSubtypeOfAny(candidate, types) { - for (var i = 0, len = types.length; i < len; i++) { - if (candidate !== types[i] && isTypeSubtypeOf(candidate, types[i])) { + for (var _i = 0, _n = types.length; _i < _n; _i++) { + var type = types[_i]; + if (candidate !== type && isTypeSubtypeOf(candidate, type)) { return true; } } @@ -15592,8 +10966,9 @@ var ts; } } function containsAnyType(types) { - for (var i = 0; i < types.length; i++) { - if (types[i].flags & 1) { + for (var _i = 0, _n = types.length; _i < _n; _i++) { + var type = types[_i]; + if (type.flags & 1) { return true; } } @@ -15707,59 +11082,51 @@ var ts; function instantiateList(items, mapper, instantiator) { if (items && items.length) { var result = []; - for (var i = 0; i < items.length; i++) { - result.push(instantiator(items[i], mapper)); + for (var _i = 0, _n = items.length; _i < _n; _i++) { + var v = items[_i]; + result.push(instantiator(v, mapper)); } return result; } return items; } function createUnaryTypeMapper(source, target) { - return function (t) { - return t === source ? target : t; - }; + return function (t) { return t === source ? target : t; }; } function createBinaryTypeMapper(source1, target1, source2, target2) { - return function (t) { - return t === source1 ? target1 : t === source2 ? target2 : t; - }; + return function (t) { return t === source1 ? target1 : t === source2 ? target2 : t; }; } function createTypeMapper(sources, targets) { switch (sources.length) { - case 1: - return createUnaryTypeMapper(sources[0], targets[0]); - case 2: - return createBinaryTypeMapper(sources[0], targets[0], sources[1], targets[1]); + case 1: return createUnaryTypeMapper(sources[0], targets[0]); + case 2: return createBinaryTypeMapper(sources[0], targets[0], sources[1], targets[1]); } return function (t) { for (var i = 0; i < sources.length; i++) { - if (t === sources[i]) + if (t === sources[i]) { return targets[i]; + } } return t; }; } function createUnaryTypeEraser(source) { - return function (t) { - return t === source ? anyType : t; - }; + return function (t) { return t === source ? anyType : t; }; } function createBinaryTypeEraser(source1, source2) { - return function (t) { - return t === source1 || t === source2 ? anyType : t; - }; + return function (t) { return t === source1 || t === source2 ? anyType : t; }; } function createTypeEraser(sources) { switch (sources.length) { - case 1: - return createUnaryTypeEraser(sources[0]); - case 2: - return createBinaryTypeEraser(sources[0], sources[1]); + case 1: return createUnaryTypeEraser(sources[0]); + case 2: return createBinaryTypeEraser(sources[0], sources[1]); } return function (t) { - for (var i = 0; i < sources.length; i++) { - if (t === sources[i]) + for (var _i = 0, _n = sources.length; _i < _n; _i++) { + var source = sources[_i]; + if (t === source) { return anyType; + } } return t; }; @@ -15778,9 +11145,7 @@ var ts; return type; } function combineTypeMappers(mapper1, mapper2) { - return function (t) { - return mapper2(mapper1(t)); - }; + return function (t) { return mapper2(mapper1(t)); }; } function instantiateTypeParameter(typeParameter, mapper) { var result = createType(512); @@ -15795,8 +11160,9 @@ var ts; return result; } function instantiateSignature(signature, mapper, eraseTypeParameters) { + var freshTypeParameters; if (signature.typeParameters && !eraseTypeParameters) { - var freshTypeParameters = instantiateList(signature.typeParameters, mapper, instantiateTypeParameter); + freshTypeParameters = instantiateList(signature.typeParameters, mapper, instantiateTypeParameter); mapper = combineTypeMappers(createTypeMapper(signature.typeParameters, freshTypeParameters), mapper); } var result = createSignature(signature.declaration, freshTypeParameters, instantiateList(signature.parameters, mapper, instantiateSymbol), signature.resolvedReturnType ? instantiateType(signature.resolvedReturnType, mapper) : undefined, signature.minArgumentCount, signature.hasRestParameter, signature.hasStringLiterals); @@ -15840,7 +11206,8 @@ var ts; return mapper(type); } if (type.flags & 32768) { - return type.symbol && type.symbol.flags & (16 | 8192 | 2048 | 4096) ? instantiateAnonymousType(type, mapper) : type; + return type.symbol && type.symbol.flags & (16 | 8192 | 2048 | 4096) ? + instantiateAnonymousType(type, mapper) : type; } if (type.flags & 4096) { return createTypeReference(type.target, instantiateList(type.typeArguments, mapper, instantiateType)); @@ -15865,9 +11232,11 @@ var ts; case 151: return ts.forEach(node.elements, isContextSensitive); case 168: - return isContextSensitive(node.whenTrue) || isContextSensitive(node.whenFalse); + return isContextSensitive(node.whenTrue) || + isContextSensitive(node.whenFalse); case 167: - return node.operatorToken.kind === 49 && (isContextSensitive(node.left) || isContextSensitive(node.right)); + return node.operatorToken.kind === 49 && + (isContextSensitive(node.left) || isContextSensitive(node.right)); case 218: return isContextSensitive(node.initializer); case 132: @@ -15879,9 +11248,7 @@ var ts; return false; } function isContextSensitiveFunctionLikeDeclaration(node) { - return !node.typeParameters && node.parameters.length && !ts.forEach(node.parameters, function (p) { - return p.type; - }); + return !node.typeParameters && node.parameters.length && !ts.forEach(node.parameters, function (p) { return p.type; }); } function getTypeWithoutConstructors(type) { if (type.flags & 48128) { @@ -15952,7 +11319,7 @@ var ts; } function isRelatedTo(source, target, reportErrors, headMessage, elaborateErrors) { if (elaborateErrors === void 0) { elaborateErrors = false; } - var result; + var _result; if (source === target) return -1; if (relation !== identityRelation) { @@ -15976,53 +11343,54 @@ var ts; if (source.flags & 16384 || target.flags & 16384) { if (relation === identityRelation) { if (source.flags & 16384 && target.flags & 16384) { - if (result = unionTypeRelatedToUnionType(source, target)) { - if (result &= unionTypeRelatedToUnionType(target, source)) { - return result; + if (_result = unionTypeRelatedToUnionType(source, target)) { + if (_result &= unionTypeRelatedToUnionType(target, source)) { + return _result; } } } else if (source.flags & 16384) { - if (result = unionTypeRelatedToType(source, target, reportErrors)) { - return result; + if (_result = unionTypeRelatedToType(source, target, reportErrors)) { + return _result; } } else { - if (result = unionTypeRelatedToType(target, source, reportErrors)) { - return result; + if (_result = unionTypeRelatedToType(target, source, reportErrors)) { + return _result; } } } else { if (source.flags & 16384) { - if (result = unionTypeRelatedToType(source, target, reportErrors)) { - return result; + if (_result = unionTypeRelatedToType(source, target, reportErrors)) { + return _result; } } else { - if (result = typeRelatedToUnionType(source, target, reportErrors)) { - return result; + if (_result = typeRelatedToUnionType(source, target, reportErrors)) { + return _result; } } } } else if (source.flags & 512 && target.flags & 512) { - if (result = typeParameterRelatedTo(source, target, reportErrors)) { - return result; + if (_result = typeParameterRelatedTo(source, target, reportErrors)) { + return _result; } } else { var saveErrorInfo = errorInfo; if (source.flags & 4096 && target.flags & 4096 && source.target === target.target) { - if (result = typesRelatedTo(source.typeArguments, target.typeArguments, reportErrors)) { - return result; + if (_result = typesRelatedTo(source.typeArguments, target.typeArguments, reportErrors)) { + return _result; } } var reportStructuralErrors = reportErrors && errorInfo === saveErrorInfo; var sourceOrApparentType = relation === identityRelation ? source : getApparentType(source); - if (sourceOrApparentType.flags & 48128 && target.flags & 48128 && (result = objectTypeRelatedTo(sourceOrApparentType, target, reportStructuralErrors, elaborateErrors))) { + if (sourceOrApparentType.flags & 48128 && target.flags & 48128 && + (_result = objectTypeRelatedTo(sourceOrApparentType, target, reportStructuralErrors, elaborateErrors))) { errorInfo = saveErrorInfo; - return result; + return _result; } } if (reportErrors) { @@ -16038,16 +11406,17 @@ var ts; return 0; } function unionTypeRelatedToUnionType(source, target) { - var result = -1; + var _result = -1; var sourceTypes = source.types; - for (var i = 0, len = sourceTypes.length; i < len; i++) { - var related = typeRelatedToUnionType(sourceTypes[i], target, false); + for (var _i = 0, _n = sourceTypes.length; _i < _n; _i++) { + var sourceType = sourceTypes[_i]; + var related = typeRelatedToUnionType(sourceType, target, false); if (!related) { return 0; } - result &= related; + _result &= related; } - return result; + return _result; } function typeRelatedToUnionType(source, target, reportErrors) { var targetTypes = target.types; @@ -16060,27 +11429,28 @@ var ts; return 0; } function unionTypeRelatedToType(source, target, reportErrors) { - var result = -1; + var _result = -1; var sourceTypes = source.types; - for (var i = 0, len = sourceTypes.length; i < len; i++) { - var related = isRelatedTo(sourceTypes[i], target, reportErrors); + for (var _i = 0, _n = sourceTypes.length; _i < _n; _i++) { + var sourceType = sourceTypes[_i]; + var related = isRelatedTo(sourceType, target, reportErrors); if (!related) { return 0; } - result &= related; + _result &= related; } - return result; + return _result; } function typesRelatedTo(sources, targets, reportErrors) { - var result = -1; + var _result = -1; for (var i = 0, len = sources.length; i < len; i++) { var related = isRelatedTo(sources[i], targets[i], reportErrors); if (!related) { return 0; } - result &= related; + _result &= related; } - return result; + return _result; } function typeParameterRelatedTo(source, target, reportErrors) { if (relation === identityRelation) { @@ -16146,19 +11516,20 @@ var ts; expandingFlags |= 1; if (!(expandingFlags & 2) && isDeeplyNestedGeneric(target, targetStack)) expandingFlags |= 2; + var _result; if (expandingFlags === 3) { - var result = 1; + _result = 1; } else { - var result = propertiesRelatedTo(source, target, reportErrors); - if (result) { - result &= signaturesRelatedTo(source, target, 0, reportErrors); - if (result) { - result &= signaturesRelatedTo(source, target, 1, reportErrors); - if (result) { - result &= stringIndexTypesRelatedTo(source, target, reportErrors); - if (result) { - result &= numberIndexTypesRelatedTo(source, target, reportErrors); + _result = propertiesRelatedTo(source, target, reportErrors); + if (_result) { + _result &= signaturesRelatedTo(source, target, 0, reportErrors); + if (_result) { + _result &= signaturesRelatedTo(source, target, 1, reportErrors); + if (_result) { + _result &= stringIndexTypesRelatedTo(source, target, reportErrors); + if (_result) { + _result &= numberIndexTypesRelatedTo(source, target, reportErrors); } } } @@ -16166,23 +11537,23 @@ var ts; } expandingFlags = saveExpandingFlags; depth--; - if (result) { + if (_result) { var maybeCache = maybeStack[depth]; - var destinationCache = (result === -1 || depth === 0) ? relation : maybeStack[depth - 1]; + var destinationCache = (_result === -1 || depth === 0) ? relation : maybeStack[depth - 1]; ts.copyMap(maybeCache, destinationCache); } else { relation[id] = reportErrors ? 3 : 2; } - return result; + return _result; } function isDeeplyNestedGeneric(type, stack) { if (type.flags & 4096 && depth >= 10) { - var target = type.target; + var _target = type.target; var count = 0; for (var i = 0; i < depth; i++) { var t = stack[i]; - if (t.flags & 4096 && t.target === target) { + if (t.flags & 4096 && t.target === _target) { count++; if (count >= 10) return true; @@ -16195,11 +11566,11 @@ var ts; if (relation === identityRelation) { return propertiesIdenticalTo(source, target); } - var result = -1; + var _result = -1; var properties = getPropertiesOfObjectType(target); var requireOptionalProperties = relation === subtypeRelation && !(source.flags & 131072); - for (var i = 0; i < properties.length; i++) { - var targetProp = properties[i]; + for (var _i = 0, _n = properties.length; _i < _n; _i++) { + var targetProp = properties[_i]; var sourceProp = getPropertyOfType(source, targetProp.name); if (sourceProp !== targetProp) { if (!sourceProp) { @@ -16250,7 +11621,7 @@ var ts; } return 0; } - result &= related; + _result &= related; if (sourceProp.flags & 536870912 && !(targetProp.flags & 536870912)) { if (reportErrors) { reportError(ts.Diagnostics.Property_0_is_optional_in_type_1_but_required_in_type_2, symbolToString(targetProp), typeToString(source), typeToString(target)); @@ -16260,7 +11631,7 @@ var ts; } } } - return result; + return _result; } function propertiesIdenticalTo(source, target) { var sourceProperties = getPropertiesOfObjectType(source); @@ -16268,9 +11639,9 @@ var ts; if (sourceProperties.length !== targetProperties.length) { return 0; } - var result = -1; - for (var i = 0, len = sourceProperties.length; i < len; ++i) { - var sourceProp = sourceProperties[i]; + var _result = -1; + for (var _i = 0, _n = sourceProperties.length; _i < _n; _i++) { + var sourceProp = sourceProperties[_i]; var targetProp = getPropertyOfObjectType(target, sourceProp.name); if (!targetProp) { return 0; @@ -16279,9 +11650,9 @@ var ts; if (!related) { return 0; } - result &= related; + _result &= related; } - return result; + return _result; } function signaturesRelatedTo(source, target, kind, reportErrors) { if (relation === identityRelation) { @@ -16292,18 +11663,18 @@ var ts; } var sourceSignatures = getSignaturesOfType(source, kind); var targetSignatures = getSignaturesOfType(target, kind); - var result = -1; + var _result = -1; var saveErrorInfo = errorInfo; - outer: for (var i = 0; i < targetSignatures.length; i++) { - var t = targetSignatures[i]; + outer: for (var _i = 0, _n = targetSignatures.length; _i < _n; _i++) { + var t = targetSignatures[_i]; if (!t.hasStringLiterals || target.flags & 65536) { var localErrors = reportErrors; - for (var j = 0; j < sourceSignatures.length; j++) { - var s = sourceSignatures[j]; + for (var _a = 0, _b = sourceSignatures.length; _a < _b; _a++) { + var s = sourceSignatures[_a]; if (!s.hasStringLiterals || source.flags & 65536) { var related = signatureRelatedTo(s, t, localErrors); if (related) { - result &= related; + _result &= related; errorInfo = saveErrorInfo; continue outer; } @@ -16313,7 +11684,7 @@ var ts; return 0; } } - return result; + return _result; } function signatureRelatedTo(source, target, reportErrors) { if (source === target) { @@ -16343,14 +11714,14 @@ var ts; } source = getErasedSignature(source); target = getErasedSignature(target); - var result = -1; + var _result = -1; for (var i = 0; i < checkCount; i++) { - var s = i < sourceMax ? getTypeOfSymbol(source.parameters[i]) : getRestTypeOfSignature(source); - var t = i < targetMax ? getTypeOfSymbol(target.parameters[i]) : getRestTypeOfSignature(target); + var _s = i < sourceMax ? getTypeOfSymbol(source.parameters[i]) : getRestTypeOfSignature(source); + var _t = i < targetMax ? getTypeOfSymbol(target.parameters[i]) : getRestTypeOfSignature(target); var saveErrorInfo = errorInfo; - var related = isRelatedTo(s, t, reportErrors); + var related = isRelatedTo(_s, _t, reportErrors); if (!related) { - related = isRelatedTo(t, s, false); + related = isRelatedTo(_t, _s, false); if (!related) { if (reportErrors) { reportError(ts.Diagnostics.Types_of_parameters_0_and_1_are_incompatible, source.parameters[i < sourceMax ? i : sourceMax].name, target.parameters[i < targetMax ? i : targetMax].name); @@ -16359,13 +11730,13 @@ var ts; } errorInfo = saveErrorInfo; } - result &= related; + _result &= related; } var t = getReturnTypeOfSignature(target); if (t === voidType) - return result; + return _result; var s = getReturnTypeOfSignature(source); - return result & isRelatedTo(s, t, reportErrors); + return _result & isRelatedTo(s, t, reportErrors); } function signaturesIdenticalTo(source, target, kind) { var sourceSignatures = getSignaturesOfType(source, kind); @@ -16373,15 +11744,15 @@ var ts; if (sourceSignatures.length !== targetSignatures.length) { return 0; } - var result = -1; + var _result = -1; for (var i = 0, len = sourceSignatures.length; i < len; ++i) { var related = compareSignatures(sourceSignatures[i], targetSignatures[i], true, isRelatedTo); if (!related) { return 0; } - result &= related; + _result &= related; } - return result; + return _result; } function stringIndexTypesRelatedTo(source, target, reportErrors) { if (relation === identityRelation) { @@ -16421,11 +11792,12 @@ var ts; } return 0; } + var related; if (sourceStringType && sourceNumberType) { - var related = isRelatedTo(sourceStringType, targetType, false) || isRelatedTo(sourceNumberType, targetType, reportErrors); + related = isRelatedTo(sourceStringType, targetType, false) || isRelatedTo(sourceNumberType, targetType, reportErrors); } else { - var related = isRelatedTo(sourceStringType || sourceNumberType, targetType, reportErrors); + related = isRelatedTo(sourceStringType || sourceNumberType, targetType, reportErrors); } if (!related) { if (reportErrors) { @@ -16477,7 +11849,9 @@ var ts; if (source === target) { return -1; } - if (source.parameters.length !== target.parameters.length || source.minArgumentCount !== target.minArgumentCount || source.hasRestParameter !== target.hasRestParameter) { + if (source.parameters.length !== target.parameters.length || + source.minArgumentCount !== target.minArgumentCount || + source.hasRestParameter !== target.hasRestParameter) { return 0; } var result = -1; @@ -16498,14 +11872,14 @@ var ts; } source = getErasedSignature(source); target = getErasedSignature(target); - for (var i = 0, len = source.parameters.length; i < len; i++) { - var s = source.hasRestParameter && i === len - 1 ? getRestTypeOfSignature(source) : getTypeOfSymbol(source.parameters[i]); - var t = target.hasRestParameter && i === len - 1 ? getRestTypeOfSignature(target) : getTypeOfSymbol(target.parameters[i]); - var related = compareTypes(s, t); - if (!related) { + for (var _i = 0, _len = source.parameters.length; _i < _len; _i++) { + var s = source.hasRestParameter && _i === _len - 1 ? getRestTypeOfSignature(source) : getTypeOfSymbol(source.parameters[_i]); + var t = target.hasRestParameter && _i === _len - 1 ? getRestTypeOfSignature(target) : getTypeOfSymbol(target.parameters[_i]); + var _related = compareTypes(s, t); + if (!_related) { return 0; } - result &= related; + result &= _related; } if (compareReturnTypes) { result &= compareTypes(getReturnTypeOfSignature(source), getReturnTypeOfSignature(target)); @@ -16513,16 +11887,15 @@ var ts; return result; } function isSupertypeOfEach(candidate, types) { - for (var i = 0, len = types.length; i < len; i++) { - if (candidate !== types[i] && !isTypeSubtypeOf(types[i], candidate)) + for (var _i = 0, _n = types.length; _i < _n; _i++) { + var type = types[_i]; + if (candidate !== type && !isTypeSubtypeOf(type, candidate)) return false; } return true; } function getCommonSupertype(types) { - return ts.forEach(types, function (t) { - return isSupertypeOfEach(t, types) ? t : undefined; - }); + return ts.forEach(types, function (t) { return isSupertypeOfEach(t, types) ? t : undefined; }); } function reportNoCommonSupertypeError(types, errorLocation, errorMessageChainHead) { var bestSupertype; @@ -16619,29 +11992,32 @@ var ts; return reportWideningErrorsInType(type.typeArguments[0]); } if (type.flags & 131072) { - var errorReported = false; + var _errorReported = false; ts.forEach(getPropertiesOfObjectType(type), function (p) { var t = getTypeOfSymbol(p); if (t.flags & 262144) { if (!reportWideningErrorsInType(t)) { error(p.valueDeclaration, ts.Diagnostics.Object_literal_s_property_0_implicitly_has_an_1_type, p.name, typeToString(getWidenedType(t))); } - errorReported = true; + _errorReported = true; } }); - return errorReported; + return _errorReported; } return false; } function reportImplicitAnyError(declaration, type) { var typeAsString = typeToString(getWidenedType(type)); + var diagnostic; switch (declaration.kind) { case 130: case 129: - var diagnostic = ts.Diagnostics.Member_0_implicitly_has_an_1_type; + diagnostic = ts.Diagnostics.Member_0_implicitly_has_an_1_type; break; case 128: - var diagnostic = declaration.dotDotDotToken ? ts.Diagnostics.Rest_parameter_0_implicitly_has_an_any_type : ts.Diagnostics.Parameter_0_implicitly_has_an_1_type; + diagnostic = declaration.dotDotDotToken ? + ts.Diagnostics.Rest_parameter_0_implicitly_has_an_any_type : + ts.Diagnostics.Parameter_0_implicitly_has_an_1_type; break; case 195: case 132: @@ -16654,10 +12030,10 @@ var ts; error(declaration, ts.Diagnostics.Function_expression_which_lacks_return_type_annotation_implicitly_has_an_0_return_type, typeAsString); return; } - var diagnostic = ts.Diagnostics._0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type; + diagnostic = ts.Diagnostics._0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type; break; default: - var diagnostic = ts.Diagnostics.Variable_0_implicitly_has_an_1_type; + diagnostic = ts.Diagnostics.Variable_0_implicitly_has_an_1_type; } error(declaration, diagnostic, ts.declarationNameToString(declaration.name), typeAsString); } @@ -16696,11 +12072,9 @@ var ts; } function createInferenceContext(typeParameters, inferUnionTypes) { var inferences = []; - for (var i = 0; i < typeParameters.length; i++) { - inferences.push({ - primary: undefined, - secondary: undefined - }); + for (var _i = 0, _n = typeParameters.length; _i < _n; _i++) { + var unused = typeParameters[_i]; + inferences.push({ primary: undefined, secondary: undefined }); } return { typeParameters: typeParameters, @@ -16718,19 +12092,21 @@ var ts; inferFromTypes(source, target); function isInProcess(source, target) { for (var i = 0; i < depth; i++) { - if (source === sourceStack[i] && target === targetStack[i]) + if (source === sourceStack[i] && target === targetStack[i]) { return true; + } } return false; } function isWithinDepthLimit(type, stack) { if (depth >= 5) { - var target = type.target; + var _target = type.target; var count = 0; for (var i = 0; i < depth; i++) { var t = stack[i]; - if (t.flags & 4096 && t.target === target) + if (t.flags & 4096 && t.target === _target) { count++; + } } return count < 5; } @@ -16745,7 +12121,9 @@ var ts; for (var i = 0; i < typeParameters.length; i++) { if (target === typeParameters[i]) { var inferences = context.inferences[i]; - var candidates = inferiority ? inferences.secondary || (inferences.secondary = []) : inferences.primary || (inferences.primary = []); + var candidates = inferiority ? + inferences.secondary || (inferences.secondary = []) : + inferences.primary || (inferences.primary = []); if (!ts.contains(candidates, source)) candidates.push(source); break; @@ -16755,16 +12133,16 @@ var ts; else if (source.flags & 4096 && target.flags & 4096 && source.target === target.target) { var sourceTypes = source.typeArguments; var targetTypes = target.typeArguments; - for (var i = 0; i < sourceTypes.length; i++) { - inferFromTypes(sourceTypes[i], targetTypes[i]); + for (var _i = 0; _i < sourceTypes.length; _i++) { + inferFromTypes(sourceTypes[_i], targetTypes[_i]); } } else if (target.flags & 16384) { - var targetTypes = target.types; + var _targetTypes = target.types; var typeParameterCount = 0; var typeParameter; - for (var i = 0; i < targetTypes.length; i++) { - var t = targetTypes[i]; + for (var _a = 0, _n = _targetTypes.length; _a < _n; _a++) { + var t = _targetTypes[_a]; if (t.flags & 512 && ts.contains(context.typeParameters, t)) { typeParameter = t; typeParameterCount++; @@ -16780,12 +12158,14 @@ var ts; } } else if (source.flags & 16384) { - var sourceTypes = source.types; - for (var i = 0; i < sourceTypes.length; i++) { - inferFromTypes(sourceTypes[i], target); + var _sourceTypes = source.types; + for (var _b = 0, _c = _sourceTypes.length; _b < _c; _b++) { + var sourceType = _sourceTypes[_b]; + inferFromTypes(sourceType, target); } } - else if (source.flags & 48128 && (target.flags & (4096 | 8192) || (target.flags & 32768) && target.symbol && target.symbol.flags & (8192 | 2048))) { + else if (source.flags & 48128 && (target.flags & (4096 | 8192) || + (target.flags & 32768) && target.symbol && target.symbol.flags & (8192 | 2048))) { if (!isInProcess(source, target) && isWithinDepthLimit(source, sourceStack) && isWithinDepthLimit(target, targetStack)) { if (depth === 0) { sourceStack = []; @@ -16806,8 +12186,8 @@ var ts; } function inferFromProperties(source, target) { var properties = getPropertiesOfObjectType(target); - for (var i = 0; i < properties.length; i++) { - var targetProp = properties[i]; + for (var _i = 0, _n = properties.length; _i < _n; _i++) { + var targetProp = properties[_i]; var sourceProp = getPropertyOfObjectType(source, targetProp.name); if (sourceProp) { inferFromTypes(getTypeOfSymbol(sourceProp), getTypeOfSymbol(targetProp)); @@ -16895,12 +12275,8 @@ var ts; function removeTypesFromUnionType(type, typeKind, isOfTypeKind, allowEmptyUnionResult) { if (type.flags & 16384) { var types = type.types; - if (ts.forEach(types, function (t) { - return !!(t.flags & typeKind) === isOfTypeKind; - })) { - var narrowedType = getUnionType(ts.filter(types, function (t) { - return !(t.flags & typeKind) === isOfTypeKind; - })); + if (ts.forEach(types, function (t) { return !!(t.flags & typeKind) === isOfTypeKind; })) { + var narrowedType = getUnionType(ts.filter(types, function (t) { return !(t.flags & typeKind) === isOfTypeKind; })); if (allowEmptyUnionResult || narrowedType !== emptyObjectType) { return narrowedType; } @@ -16993,14 +12369,13 @@ var ts; } function resolveLocation(node) { var containerNodes = []; - for (var parent = node.parent; parent; parent = parent.parent) { - if ((ts.isExpression(parent) || ts.isObjectLiteralMethod(node)) && isContextSensitive(parent)) { - containerNodes.unshift(parent); + for (var _parent = node.parent; _parent; _parent = _parent.parent) { + if ((ts.isExpression(_parent) || ts.isObjectLiteralMethod(node)) && + isContextSensitive(_parent)) { + containerNodes.unshift(_parent); } } - ts.forEach(containerNodes, function (node) { - getTypeOfNode(node); - }); + ts.forEach(containerNodes, function (node) { getTypeOfNode(node); }); } function getSymbolAtLocation(node) { resolveLocation(node); @@ -17129,9 +12504,7 @@ var ts; return targetType; } if (type.flags & 16384) { - return getUnionType(ts.filter(type.types, function (t) { - return isTypeSubtypeOf(t, targetType); - })); + return getUnionType(ts.filter(type.types, function (t) { return isTypeSubtypeOf(t, targetType); })); } return type; } @@ -17187,7 +12560,9 @@ var ts; return false; } function checkBlockScopedBindingCapturedInLoop(node, symbol) { - if (languageVersion >= 2 || (symbol.flags & 2) === 0 || symbol.valueDeclaration.parent.kind === 217) { + if (languageVersion >= 2 || + (symbol.flags & 2) === 0 || + symbol.valueDeclaration.parent.kind === 217) { return; } var container = symbol.valueDeclaration; @@ -17283,21 +12658,33 @@ var ts; var container = ts.getSuperContainer(node, true); if (container) { var canUseSuperExpression = false; + var needToCaptureLexicalThis; if (isCallExpression) { canUseSuperExpression = container.kind === 133; } else { - var needToCaptureLexicalThis = false; + needToCaptureLexicalThis = false; while (container && container.kind === 161) { container = ts.getSuperContainer(container, true); needToCaptureLexicalThis = true; } if (container && container.parent && container.parent.kind === 196) { if (container.flags & 128) { - canUseSuperExpression = container.kind === 132 || container.kind === 131 || container.kind === 134 || container.kind === 135; + canUseSuperExpression = + container.kind === 132 || + container.kind === 131 || + container.kind === 134 || + container.kind === 135; } else { - canUseSuperExpression = container.kind === 132 || container.kind === 131 || container.kind === 134 || container.kind === 135 || container.kind === 130 || container.kind === 129 || container.kind === 133; + canUseSuperExpression = + container.kind === 132 || + container.kind === 131 || + container.kind === 134 || + container.kind === 135 || + container.kind === 130 || + container.kind === 129 || + container.kind === 133; } } } @@ -17344,7 +12731,8 @@ var ts; if (indexOfParameter < len) { return getTypeAtPosition(contextualSignature, indexOfParameter); } - if (indexOfParameter === (func.parameters.length - 1) && funcHasRestParameters && contextualSignature.hasRestParameter && func.parameters.length >= contextualSignature.parameters.length) { + if (indexOfParameter === (func.parameters.length - 1) && + funcHasRestParameters && contextualSignature.hasRestParameter && func.parameters.length >= contextualSignature.parameters.length) { return getTypeOfSymbol(contextualSignature.parameters[contextualSignature.parameters.length - 1]); } } @@ -17422,17 +12810,15 @@ var ts; var types = type.types; var mappedType; var mappedTypes; - for (var i = 0; i < types.length; i++) { - var t = mapper(types[i]); + for (var _i = 0, _n = types.length; _i < _n; _i++) { + var current = types[_i]; + var t = mapper(current); if (t) { if (!mappedType) { mappedType = t; } else if (!mappedTypes) { - mappedTypes = [ - mappedType, - t - ]; + mappedTypes = [mappedType, t]; } else { mappedTypes.push(t); @@ -17448,17 +12834,13 @@ var ts; }); } function getIndexTypeOfContextualType(type, kind) { - return applyToContextualType(type, function (t) { - return getIndexTypeOfObjectOrUnionType(t, kind); - }); + return applyToContextualType(type, function (t) { return getIndexTypeOfObjectOrUnionType(t, kind); }); } function contextualTypeIsTupleLikeType(type) { return !!(type.flags & 16384 ? ts.forEach(type.types, isTupleLikeType) : isTupleLikeType(type)); } function contextualTypeHasIndexSignature(type, kind) { - return !!(type.flags & 16384 ? ts.forEach(type.types, function (t) { - return getIndexTypeOfObjectOrUnionType(t, kind); - }) : getIndexTypeOfObjectOrUnionType(type, kind)); + return !!(type.flags & 16384 ? ts.forEach(type.types, function (t) { return getIndexTypeOfObjectOrUnionType(t, kind); }) : getIndexTypeOfObjectOrUnionType(type, kind)); } function getContextualTypeForObjectLiteralMethod(node) { ts.Debug.assert(ts.isObjectLiteralMethod(node)); @@ -17478,7 +12860,8 @@ var ts; return propertyType; } } - return isNumericName(element.name) && getIndexTypeOfContextualType(type, 1) || getIndexTypeOfContextualType(type, 0); + return isNumericName(element.name) && getIndexTypeOfContextualType(type, 1) || + getIndexTypeOfContextualType(type, 0); } return undefined; } @@ -17487,7 +12870,9 @@ var ts; var type = getContextualType(arrayLiteral); if (type) { var index = ts.indexOf(arrayLiteral.elements, node); - return getTypeOfPropertyOfContextualType(type, "" + index) || getIndexTypeOfContextualType(type, 1) || (languageVersion >= 2 ? checkIteratedType(type, undefined) : undefined); + return getTypeOfPropertyOfContextualType(type, "" + index) + || getIndexTypeOfContextualType(type, 1) + || (languageVersion >= 2 ? checkIteratedType(type, undefined) : undefined); } return undefined; } @@ -17502,8 +12887,8 @@ var ts; if (node.contextualType) { return node.contextualType; } - var parent = node.parent; - switch (parent.kind) { + var _parent = node.parent; + switch (_parent.kind) { case 193: case 128: case 130: @@ -17515,22 +12900,22 @@ var ts; return getContextualTypeForReturnExpression(node); case 155: case 156: - return getContextualTypeForArgument(parent, node); + return getContextualTypeForArgument(_parent, node); case 158: - return getTypeFromTypeNode(parent.type); + return getTypeFromTypeNode(_parent.type); case 167: return getContextualTypeForBinaryOperand(node); case 218: - return getContextualTypeForObjectLiteralElement(parent); + return getContextualTypeForObjectLiteralElement(_parent); case 151: return getContextualTypeForElementExpression(node); case 168: return getContextualTypeForConditionalOperand(node); case 173: - ts.Debug.assert(parent.parent.kind === 169); - return getContextualTypeForSubstitutionExpression(parent.parent, node); + ts.Debug.assert(_parent.parent.kind === 169); + return getContextualTypeForSubstitutionExpression(_parent.parent, node); case 159: - return getContextualType(parent); + return getContextualType(_parent); } return undefined; } @@ -17551,7 +12936,9 @@ var ts; } function getContextualSignature(node) { ts.Debug.assert(node.kind !== 132 || ts.isObjectLiteralMethod(node)); - var type = ts.isObjectLiteralMethod(node) ? getContextualTypeForObjectLiteralMethod(node) : getContextualType(node); + var type = ts.isObjectLiteralMethod(node) + ? getContextualTypeForObjectLiteralMethod(node) + : getContextualType(node); if (!type) { return undefined; } @@ -17560,16 +12947,16 @@ var ts; } var signatureList; var types = type.types; - for (var i = 0; i < types.length; i++) { - if (signatureList && getSignaturesOfObjectOrUnionType(types[i], 0).length > 1) { + for (var _i = 0, _n = types.length; _i < _n; _i++) { + var current = types[_i]; + if (signatureList && + getSignaturesOfObjectOrUnionType(current, 0).length > 1) { return undefined; } - var signature = getNonGenericSignature(types[i]); + var signature = getNonGenericSignature(current); if (signature) { if (!signatureList) { - signatureList = [ - signature - ]; + signatureList = [signature]; } else if (!compareSignatures(signatureList[0], signature, false, compareTypes)) { return undefined; @@ -17591,15 +12978,15 @@ var ts; return mapper && mapper !== identityMapper; } function isAssignmentTarget(node) { - var parent = node.parent; - if (parent.kind === 167 && parent.operatorToken.kind === 52 && parent.left === node) { + var _parent = node.parent; + if (_parent.kind === 167 && _parent.operatorToken.kind === 52 && _parent.left === node) { return true; } - if (parent.kind === 218) { - return isAssignmentTarget(parent.parent); + if (_parent.kind === 218) { + return isAssignmentTarget(_parent.parent); } - if (parent.kind === 151) { - return isAssignmentTarget(parent); + if (_parent.kind === 151) { + return isAssignmentTarget(_parent); } return false; } @@ -17664,19 +13051,24 @@ var ts; var propertiesArray = []; var contextualType = getContextualType(node); var typeFlags; - for (var i = 0; i < node.properties.length; i++) { - var memberDecl = node.properties[i]; + for (var _i = 0, _a = node.properties, _n = _a.length; _i < _n; _i++) { + var memberDecl = _a[_i]; var member = memberDecl.symbol; - if (memberDecl.kind === 218 || memberDecl.kind === 219 || ts.isObjectLiteralMethod(memberDecl)) { + if (memberDecl.kind === 218 || + memberDecl.kind === 219 || + ts.isObjectLiteralMethod(memberDecl)) { + var type = void 0; if (memberDecl.kind === 218) { - var type = checkPropertyAssignment(memberDecl, contextualMapper); + type = checkPropertyAssignment(memberDecl, contextualMapper); } else if (memberDecl.kind === 132) { - var type = checkObjectLiteralMethod(memberDecl, contextualMapper); + type = checkObjectLiteralMethod(memberDecl, contextualMapper); } else { ts.Debug.assert(memberDecl.kind === 219); - var type = memberDecl.name.kind === 126 ? unknownType : checkExpression(memberDecl.name, contextualMapper); + type = memberDecl.name.kind === 126 + ? unknownType + : checkExpression(memberDecl.name, contextualMapper); } typeFlags |= type.flags; var prop = createSymbol(4 | 67108864 | member.flags, member.name); @@ -17709,15 +13101,15 @@ var ts; for (var i = 0; i < propertiesArray.length; i++) { var propertyDecl = node.properties[i]; if (kind === 0 || isNumericName(propertyDecl.name)) { - var type = getTypeOfSymbol(propertiesArray[i]); - if (!ts.contains(propTypes, type)) { - propTypes.push(type); + var _type = getTypeOfSymbol(propertiesArray[i]); + if (!ts.contains(propTypes, _type)) { + propTypes.push(_type); } } } - var result = propTypes.length ? getUnionType(propTypes) : undefinedType; - typeFlags |= result.flags; - return result; + var _result = propTypes.length ? getUnionType(propTypes) : undefinedType; + typeFlags |= _result.flags; + return _result; } return undefined; } @@ -17792,7 +13184,9 @@ var ts; return anyType; } function isValidPropertyAccess(node, propertyName) { - var left = node.kind === 153 ? node.expression : node.left; + var left = node.kind === 153 + ? node.expression + : node.left; var type = checkExpressionOrQualifiedName(left); if (type !== unknownType && type !== anyType) { var prop = getPropertyOfType(getWidenedType(type), propertyName); @@ -17818,9 +13212,9 @@ var ts; grammarErrorAtPos(sourceFile, start, end - start, ts.Diagnostics.new_T_cannot_be_used_to_create_an_array_Use_new_Array_T_instead); } else { - var start = node.end - "]".length; - var end = node.end; - grammarErrorAtPos(sourceFile, start, end - start, ts.Diagnostics.Expression_expected); + var _start = node.end - "]".length; + var _end = node.end; + grammarErrorAtPos(sourceFile, _start, _end - _start, ts.Diagnostics.Expression_expected); } } var objectType = getApparentType(checkExpression(node.expression)); @@ -17829,20 +13223,21 @@ var ts; return unknownType; } var isConstEnum = isConstEnumObjectType(objectType); - if (isConstEnum && (!node.argumentExpression || node.argumentExpression.kind !== 8)) { + if (isConstEnum && + (!node.argumentExpression || node.argumentExpression.kind !== 8)) { error(node.argumentExpression, ts.Diagnostics.A_const_enum_member_can_only_be_accessed_using_a_string_literal); return unknownType; } if (node.argumentExpression) { - var name = getPropertyNameForIndexedAccess(node.argumentExpression, indexType); - if (name !== undefined) { - var prop = getPropertyOfType(objectType, name); + var _name = getPropertyNameForIndexedAccess(node.argumentExpression, indexType); + if (_name !== undefined) { + var prop = getPropertyOfType(objectType, _name); if (prop) { getNodeLinks(node).resolvedSymbol = prop; return getTypeOfSymbol(prop); } else if (isConstEnum) { - error(node.argumentExpression, ts.Diagnostics.Property_0_does_not_exist_on_const_enum_1, name, symbolToString(objectType.symbol)); + error(node.argumentExpression, ts.Diagnostics.Property_0_does_not_exist_on_const_enum_1, _name, symbolToString(objectType.symbol)); return unknownType; } } @@ -17929,22 +13324,22 @@ var ts; var specializedIndex = -1; var spliceIndex; ts.Debug.assert(!result.length); - for (var i = 0; i < signatures.length; i++) { - var signature = signatures[i]; + for (var _i = 0, _n = signatures.length; _i < _n; _i++) { + var signature = signatures[_i]; var symbol = signature.declaration && getSymbolOfNode(signature.declaration); - var parent = signature.declaration && signature.declaration.parent; + var _parent = signature.declaration && signature.declaration.parent; if (!lastSymbol || symbol === lastSymbol) { - if (lastParent && parent === lastParent) { + if (lastParent && _parent === lastParent) { index++; } else { - lastParent = parent; + lastParent = _parent; index = cutoffIndex; } } else { index = cutoffIndex = result.length; - lastParent = parent; + lastParent = _parent; } lastSymbol = symbol; if (signature.hasStringLiterals) { @@ -17996,7 +13391,8 @@ var ts; callIsIncomplete = callExpression.arguments.end === callExpression.end; typeArguments = callExpression.typeArguments; } - var hasRightNumberOfTypeArgs = !typeArguments || (signature.typeParameters && typeArguments.length === signature.typeParameters.length); + var hasRightNumberOfTypeArgs = !typeArguments || + (signature.typeParameters && typeArguments.length === signature.typeParameters.length); if (!hasRightNumberOfTypeArgs) { return false; } @@ -18013,7 +13409,8 @@ var ts; function getSingleCallSignature(type) { if (type.flags & 48128) { var resolved = resolveObjectOrUnionTypeMembers(type); - if (resolved.callSignatures.length === 1 && resolved.constructSignatures.length === 0 && resolved.properties.length === 0 && !resolved.stringIndexType && !resolved.numberIndexType) { + if (resolved.callSignatures.length === 1 && resolved.constructSignatures.length === 0 && + resolved.properties.length === 0 && !resolved.stringIndexType && !resolved.numberIndexType) { return resolved.callSignatures[0]; } } @@ -18034,30 +13431,31 @@ var ts; var arg = args[i]; if (arg.kind !== 172) { var paramType = getTypeAtPosition(signature, arg.kind === 171 ? -1 : i); + var argType = void 0; if (i === 0 && args[i].parent.kind === 157) { - var argType = globalTemplateStringsArrayType; + argType = globalTemplateStringsArrayType; } else { var mapper = excludeArgument && excludeArgument[i] !== undefined ? identityMapper : inferenceMapper; - var argType = checkExpressionWithContextualType(arg, paramType, mapper); + argType = checkExpressionWithContextualType(arg, paramType, mapper); } inferTypes(context, argType, paramType); } } if (excludeArgument) { - for (var i = 0; i < args.length; i++) { - if (excludeArgument[i] === false) { - var arg = args[i]; - var paramType = getTypeAtPosition(signature, arg.kind === 171 ? -1 : i); - inferTypes(context, checkExpressionWithContextualType(arg, paramType, inferenceMapper), paramType); + for (var _i = 0; _i < args.length; _i++) { + if (excludeArgument[_i] === false) { + var _arg = args[_i]; + var _paramType = getTypeAtPosition(signature, _arg.kind === 171 ? -1 : _i); + inferTypes(context, checkExpressionWithContextualType(_arg, _paramType, inferenceMapper), _paramType); } } } var inferredTypes = getInferredTypes(context); context.failedTypeParameterIndex = ts.indexOf(inferredTypes, inferenceFailureType); - for (var i = 0; i < inferredTypes.length; i++) { - if (inferredTypes[i] === inferenceFailureType) { - inferredTypes[i] = unknownType; + for (var _i_1 = 0; _i_1 < inferredTypes.length; _i_1++) { + if (inferredTypes[_i_1] === inferenceFailureType) { + inferredTypes[_i_1] = unknownType; } } return context; @@ -18083,7 +13481,9 @@ var ts; var arg = args[i]; if (arg.kind !== 172) { var paramType = getTypeAtPosition(signature, arg.kind === 171 ? -1 : i); - var argType = i === 0 && node.kind === 157 ? globalTemplateStringsArrayType : arg.kind === 8 && !reportErrors ? getStringLiteralType(arg) : checkExpressionWithContextualType(arg, paramType, excludeArgument && excludeArgument[i] ? identityMapper : undefined); + var argType = i === 0 && node.kind === 157 ? globalTemplateStringsArrayType : + arg.kind === 8 && !reportErrors ? getStringLiteralType(arg) : + checkExpressionWithContextualType(arg, paramType, excludeArgument && excludeArgument[i] ? identityMapper : undefined); if (!checkTypeRelatedTo(argType, paramType, relation, reportErrors ? arg : undefined, ts.Diagnostics.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1)) { return false; } @@ -18095,9 +13495,7 @@ var ts; var args; if (node.kind === 157) { var template = node.template; - args = [ - template - ]; + args = [template]; if (template.kind === 169) { ts.forEach(template.templateSpans, function (span) { args.push(span.expression); @@ -18179,50 +13577,53 @@ var ts; error(node, ts.Diagnostics.Supplied_parameters_do_not_match_any_signature_of_call_target); } if (!produceDiagnostics) { - for (var i = 0, n = candidates.length; i < n; i++) { - if (hasCorrectArity(node, args, candidates[i])) { - return candidates[i]; + for (var _i = 0, _n = candidates.length; _i < _n; _i++) { + var candidate = candidates[_i]; + if (hasCorrectArity(node, args, candidate)) { + return candidate; } } } return resolveErrorCall(node); function chooseOverload(candidates, relation) { - for (var i = 0; i < candidates.length; i++) { - if (!hasCorrectArity(node, args, candidates[i])) { + for (var _a = 0, _b = candidates.length; _a < _b; _a++) { + var current = candidates[_a]; + if (!hasCorrectArity(node, args, current)) { continue; } - var originalCandidate = candidates[i]; - var inferenceResult; + var originalCandidate = current; + var inferenceResult = void 0; + var _candidate = void 0; + var typeArgumentsAreValid = void 0; while (true) { - var candidate = originalCandidate; - if (candidate.typeParameters) { - var typeArgumentTypes; - var typeArgumentsAreValid; + _candidate = originalCandidate; + if (_candidate.typeParameters) { + var typeArgumentTypes = void 0; if (typeArguments) { - typeArgumentTypes = new Array(candidate.typeParameters.length); - typeArgumentsAreValid = checkTypeArguments(candidate, typeArguments, typeArgumentTypes, false); + typeArgumentTypes = new Array(_candidate.typeParameters.length); + typeArgumentsAreValid = checkTypeArguments(_candidate, typeArguments, typeArgumentTypes, false); } else { - inferenceResult = inferTypeArguments(candidate, args, excludeArgument); + inferenceResult = inferTypeArguments(_candidate, args, excludeArgument); typeArgumentsAreValid = inferenceResult.failedTypeParameterIndex < 0; typeArgumentTypes = inferenceResult.inferredTypes; } if (!typeArgumentsAreValid) { break; } - candidate = getSignatureInstantiation(candidate, typeArgumentTypes); + _candidate = getSignatureInstantiation(_candidate, typeArgumentTypes); } - if (!checkApplicableSignature(node, args, candidate, relation, excludeArgument, false)) { + if (!checkApplicableSignature(node, args, _candidate, relation, excludeArgument, false)) { break; } var index = excludeArgument ? ts.indexOf(excludeArgument, true) : -1; if (index < 0) { - return candidate; + return _candidate; } excludeArgument[index] = false; } if (originalCandidate.typeParameters) { - var instantiatedCandidate = candidate; + var instantiatedCandidate = _candidate; if (typeArgumentsAreValid) { candidateForArgumentError = instantiatedCandidate; } @@ -18234,7 +13635,7 @@ var ts; } } else { - ts.Debug.assert(originalCandidate === candidate); + ts.Debug.assert(originalCandidate === _candidate); candidateForArgumentError = originalCandidate; } } @@ -18349,7 +13750,10 @@ var ts; } if (node.kind === 156) { var declaration = signature.declaration; - if (declaration && declaration.kind !== 133 && declaration.kind !== 137 && declaration.kind !== 141) { + if (declaration && + declaration.kind !== 133 && + declaration.kind !== 137 && + declaration.kind !== 141) { if (compilerOptions.noImplicitAny) { error(node, ts.Diagnostics.new_expression_whose_target_lacks_a_construct_signature_implicitly_has_an_any_type); } @@ -18374,9 +13778,13 @@ var ts; } function getTypeAtPosition(signature, pos) { if (pos >= 0) { - return signature.hasRestParameter ? pos < signature.parameters.length - 1 ? getTypeOfSymbol(signature.parameters[pos]) : getRestTypeOfSignature(signature) : pos < signature.parameters.length ? getTypeOfSymbol(signature.parameters[pos]) : anyType; + return signature.hasRestParameter ? + pos < signature.parameters.length - 1 ? getTypeOfSymbol(signature.parameters[pos]) : getRestTypeOfSignature(signature) : + pos < signature.parameters.length ? getTypeOfSymbol(signature.parameters[pos]) : anyType; } - return signature.hasRestParameter ? getTypeOfSymbol(signature.parameters[signature.parameters.length - 1]) : anyArrayType; + return signature.hasRestParameter ? + getTypeOfSymbol(signature.parameters[signature.parameters.length - 1]) : + anyArrayType; } function assignContextualParameterTypes(signature, context, mapper) { var len = signature.parameters.length - (signature.hasRestParameter ? 1 : 0); @@ -18386,9 +13794,9 @@ var ts; links.type = instantiateType(getTypeAtPosition(context, i), mapper); } if (signature.hasRestParameter && context.hasRestParameter && signature.parameters.length >= context.parameters.length) { - var parameter = signature.parameters[signature.parameters.length - 1]; - var links = getSymbolLinks(parameter); - links.type = instantiateType(getTypeOfSymbol(context.parameters[context.parameters.length - 1]), mapper); + var _parameter = signature.parameters[signature.parameters.length - 1]; + var _links = getSymbolLinks(_parameter); + _links.type = instantiateType(getTypeOfSymbol(context.parameters[context.parameters.length - 1]), mapper); } } function getReturnTypeFromBody(func, contextualMapper) { @@ -18396,15 +13804,16 @@ var ts; if (!func.body) { return unknownType; } + var type; if (func.body.kind !== 174) { - var type = checkExpressionCached(func.body, contextualMapper); + type = checkExpressionCached(func.body, contextualMapper); } else { var types = checkAndAggregateReturnExpressionTypes(func.body, contextualMapper); if (types.length === 0) { return voidType; } - var type = contextualSignature ? getUnionType(types) : getCommonSupertype(types); + type = contextualSignature ? getUnionType(types) : getCommonSupertype(types); if (!type) { error(func, ts.Diagnostics.No_best_common_type_exists_among_return_expressions); return unknownType; @@ -18524,12 +13933,14 @@ var ts; } function isReferenceOrErrorExpression(n) { switch (n.kind) { - case 64: + case 64: { var symbol = findSymbol(n); return !symbol || symbol === unknownSymbol || symbol === argumentsSymbol || (symbol.flags & 3) !== 0; - case 153: - var symbol = findSymbol(n); - return !symbol || symbol === unknownSymbol || (symbol.flags & ~8) !== 0; + } + case 153: { + var _symbol = findSymbol(n); + return !_symbol || _symbol === unknownSymbol || (_symbol.flags & ~8) !== 0; + } case 154: return true; case 159: @@ -18541,18 +13952,20 @@ var ts; function isConstVariableReference(n) { switch (n.kind) { case 64: - case 153: + case 153: { var symbol = findSymbol(n); return symbol && (symbol.flags & 3) !== 0 && (getDeclarationFlagsFromSymbol(symbol) & 8192) !== 0; - case 154: + } + case 154: { var index = n.argumentExpression; - var symbol = findSymbol(n.expression); - if (symbol && index && index.kind === 8) { - var name = index.text; - var prop = getPropertyOfType(getTypeOfSymbol(symbol), name); + var _symbol = findSymbol(n.expression); + if (_symbol && index && index.kind === 8) { + var _name = index.text; + var prop = getPropertyOfType(getTypeOfSymbol(_symbol), _name); return prop && (prop.flags & 3) !== 0 && (getDeclarationFlagsFromSymbol(prop) & 8192) !== 0; } return false; + } case 159: return isConstVariableReference(n.expression); default: @@ -18624,8 +14037,9 @@ var ts; } if (type.flags & 16384) { var types = type.types; - for (var i = 0; i < types.length; i++) { - if (types[i].flags & kind) { + for (var _i = 0, _n = types.length; _i < _n; _i++) { + var current = types[_i]; + if (current.flags & kind) { return true; } } @@ -18639,8 +14053,9 @@ var ts; } if (type.flags & 16384) { var types = type.types; - for (var i = 0; i < types.length; i++) { - if (!(types[i].flags & kind)) { + for (var _i = 0, _n = types.length; _i < _n; _i++) { + var current = types[_i]; + if (!(current.flags & kind)) { return false; } } @@ -18674,16 +14089,19 @@ var ts; } function checkObjectLiteralAssignment(node, sourceType, contextualMapper) { var properties = node.properties; - for (var i = 0; i < properties.length; i++) { - var p = properties[i]; + for (var _i = 0, _n = properties.length; _i < _n; _i++) { + var p = properties[_i]; if (p.kind === 218 || p.kind === 219) { - var name = p.name; - var type = sourceType.flags & 1 ? sourceType : getTypeOfPropertyOfType(sourceType, name.text) || isNumericLiteralName(name.text) && getIndexTypeOfType(sourceType, 1) || getIndexTypeOfType(sourceType, 0); + var _name = p.name; + var type = sourceType.flags & 1 ? sourceType : + getTypeOfPropertyOfType(sourceType, _name.text) || + isNumericLiteralName(_name.text) && getIndexTypeOfType(sourceType, 1) || + getIndexTypeOfType(sourceType, 0); if (type) { - checkDestructuringAssignment(p.initializer || name, type); + checkDestructuringAssignment(p.initializer || _name, type); } else { - error(name, ts.Diagnostics.Type_0_has_no_property_1_and_no_string_index_signature, typeToString(sourceType), ts.declarationNameToString(name)); + error(_name, ts.Diagnostics.Type_0_has_no_property_1_and_no_string_index_signature, typeToString(sourceType), ts.declarationNameToString(_name)); } } else { @@ -18703,7 +14121,9 @@ var ts; if (e.kind !== 172) { if (e.kind !== 171) { var propName = "" + i; - var type = sourceType.flags & 1 ? sourceType : isTupleLikeType(sourceType) ? getTypeOfPropertyOfType(sourceType, propName) : getIndexTypeOfType(sourceType, 1); + var type = sourceType.flags & 1 ? sourceType : + isTupleLikeType(sourceType) ? getTypeOfPropertyOfType(sourceType, propName) : + getIndexTypeOfType(sourceType, 1); if (type) { checkDestructuringAssignment(e, type, contextualMapper); } @@ -18784,7 +14204,9 @@ var ts; if (rightType.flags & (32 | 64)) rightType = leftType; var suggestedOperator; - if ((leftType.flags & 8) && (rightType.flags & 8) && (suggestedOperator = getSuggestedBooleanOperator(node.operatorToken.kind)) !== undefined) { + if ((leftType.flags & 8) && + (rightType.flags & 8) && + (suggestedOperator = getSuggestedBooleanOperator(node.operatorToken.kind)) !== undefined) { error(node, ts.Diagnostics.The_0_operator_is_not_allowed_for_boolean_types_Consider_using_1_instead, ts.tokenToString(node.operatorToken.kind), ts.tokenToString(suggestedOperator)); } else { @@ -18846,10 +14268,7 @@ var ts; case 48: return rightType; case 49: - return getUnionType([ - leftType, - rightType - ]); + return getUnionType([leftType, rightType]); case 52: checkAssignmentOperator(rightType); return rightType; @@ -18857,7 +14276,9 @@ var ts; return rightType; } function checkForDisallowedESSymbolOperand(operator) { - var offendingSymbolOperand = someConstituentTypeHasKind(leftType, 1048576) ? node.left : someConstituentTypeHasKind(rightType, 1048576) ? node.right : undefined; + var offendingSymbolOperand = someConstituentTypeHasKind(leftType, 1048576) ? node.left : + someConstituentTypeHasKind(rightType, 1048576) ? node.right : + undefined; if (offendingSymbolOperand) { error(offendingSymbolOperand, ts.Diagnostics.The_0_operator_cannot_be_applied_to_type_symbol, ts.tokenToString(operator)); return false; @@ -18903,10 +14324,7 @@ var ts; checkExpression(node.condition); var type1 = checkExpression(node.whenTrue, contextualMapper); var type2 = checkExpression(node.whenFalse, contextualMapper); - return getUnionType([ - type1, - type2 - ]); + return getUnionType([type1, type2]); } function checkTemplateExpression(node) { ts.forEach(node.templateSpans, function (templateSpan) { @@ -18970,7 +14388,9 @@ var ts; type = instantiateTypeWithSingleGenericCallSignature(node, uninstantiatedType, contextualMapper); } if (isConstEnumObjectType(type)) { - var ok = (node.parent.kind === 153 && node.parent.expression === node) || (node.parent.kind === 154 && node.parent.expression === node) || ((node.kind === 64 || node.kind === 125) && isInRightSideOfImportOrExportAssignment(node)); + var ok = (node.parent.kind === 153 && node.parent.expression === node) || + (node.parent.kind === 154 && node.parent.expression === node) || + ((node.kind === 64 || node.kind === 125) && isInRightSideOfImportOrExportAssignment(node)); if (!ok) { error(node, ts.Diagnostics.const_enums_can_only_be_used_in_property_or_index_access_expressions_or_the_right_hand_side_of_an_import_declaration_or_export_assignment); } @@ -19080,7 +14500,9 @@ var ts; if (node.kind === 138) { checkGrammarIndexSignature(node); } - else if (node.kind === 140 || node.kind === 195 || node.kind === 141 || node.kind === 136 || node.kind === 133 || node.kind === 137) { + else if (node.kind === 140 || node.kind === 195 || node.kind === 141 || + node.kind === 136 || node.kind === 133 || + node.kind === 137) { checkGrammarFunctionLikeDeclaration(node); } checkTypeParameters(node.typeParameters); @@ -19114,8 +14536,9 @@ var ts; if (indexSymbol) { var seenNumericIndexer = false; var seenStringIndexer = false; - for (var i = 0, len = indexSymbol.declarations.length; i < len; ++i) { - var declaration = indexSymbol.declarations[i]; + for (var _i = 0, _a = indexSymbol.declarations, _n = _a.length; _i < _n; _i++) { + var decl = _a[_i]; + var declaration = decl; if (declaration.parameters.length === 1 && declaration.parameters[0].type) { switch (declaration.parameters[0].type.kind) { case 120: @@ -19173,10 +14596,8 @@ var ts; case 160: case 195: case 161: - case 152: - return false; - default: - return ts.forEachChild(n, containsSuperCall); + case 152: return false; + default: return ts.forEachChild(n, containsSuperCall); } } function markThisReferencesAsErrors(n) { @@ -19188,13 +14609,14 @@ var ts; } } function isInstancePropertyWithInitializer(n) { - return n.kind === 130 && !(n.flags & 128) && !!n.initializer; + return n.kind === 130 && + !(n.flags & 128) && + !!n.initializer; } if (ts.getClassBaseTypeNode(node.parent)) { if (containsSuperCall(node.body)) { - var superCallShouldBeFirst = ts.forEach(node.parent.members, isInstancePropertyWithInitializer) || ts.forEach(node.parameters, function (p) { - return p.flags & (16 | 32 | 64); - }); + var superCallShouldBeFirst = ts.forEach(node.parent.members, isInstancePropertyWithInitializer) || + ts.forEach(node.parameters, function (p) { return p.flags & (16 | 32 | 64); }); if (superCallShouldBeFirst) { var statements = node.body.statements; if (!statements.length || statements[0].kind !== 177 || !isSuperCallExpression(statements[0].expression)) { @@ -19303,8 +14725,8 @@ var ts; else { signaturesToCheck = getSignaturesOfSymbol(getSymbolOfNode(signatureDeclarationNode)); } - for (var i = 0; i < signaturesToCheck.length; i++) { - var otherSignature = signaturesToCheck[i]; + for (var _i = 0, _n = signaturesToCheck.length; _i < _n; _i++) { + var otherSignature = signaturesToCheck[_i]; if (!otherSignature.hasStringLiterals && isSignatureAssignableTo(signature, otherSignature)) { return; } @@ -19384,16 +14806,16 @@ var ts; }); if (subsequentNode) { if (subsequentNode.kind === node.kind) { - var errorNode = subsequentNode.name || subsequentNode; + var _errorNode = subsequentNode.name || subsequentNode; if (node.name && subsequentNode.name && node.name.text === subsequentNode.name.text) { ts.Debug.assert(node.kind === 132 || node.kind === 131); ts.Debug.assert((node.flags & 128) !== (subsequentNode.flags & 128)); var diagnostic = node.flags & 128 ? ts.Diagnostics.Function_overload_must_be_static : ts.Diagnostics.Function_overload_must_not_be_static; - error(errorNode, diagnostic); + error(_errorNode, diagnostic); return; } else if (ts.nodeIsPresent(subsequentNode.body)) { - error(errorNode, ts.Diagnostics.Function_implementation_name_must_be_0, ts.declarationNameToString(node.name)); + error(_errorNode, ts.Diagnostics.Function_implementation_name_must_be_0, ts.declarationNameToString(node.name)); return; } } @@ -19409,8 +14831,9 @@ var ts; var isExportSymbolInsideModule = symbol.parent && symbol.parent.flags & 1536; var duplicateFunctionDeclaration = false; var multipleConstructorImplementation = false; - for (var i = 0; i < declarations.length; i++) { - var node = declarations[i]; + for (var _i = 0, _n = declarations.length; _i < _n; _i++) { + var current = declarations[_i]; + var node = current; var inAmbientContext = ts.isInAmbientContext(node); var inAmbientContextOrInterface = node.parent.kind === 197 || node.parent.kind === 143 || inAmbientContext; if (inAmbientContextOrInterface) { @@ -19467,9 +14890,10 @@ var ts; var signatures = getSignaturesOfSymbol(symbol); var bodySignature = getSignatureFromDeclaration(bodyDeclaration); if (!bodySignature.hasStringLiterals) { - for (var i = 0, len = signatures.length; i < len; ++i) { - if (!signatures[i].hasStringLiterals && !isSignatureAssignableTo(bodySignature, signatures[i])) { - error(signatures[i].declaration, ts.Diagnostics.Overload_signature_is_not_compatible_with_function_implementation); + for (var _a = 0, _b = signatures.length; _a < _b; _a++) { + var signature = signatures[_a]; + if (!signature.hasStringLiterals && !isSignatureAssignableTo(bodySignature, signature)) { + error(signature.declaration, ts.Diagnostics.Overload_signature_is_not_compatible_with_function_implementation); break; } } @@ -19481,7 +14905,6 @@ var ts; if (!produceDiagnostics) { return; } - var symbol; var symbol = node.localSymbol; if (!symbol) { symbol = getSymbolOfNode(node); @@ -19516,16 +14939,16 @@ var ts; case 197: return 2097152; case 200: - return d.name.kind === 8 || ts.getModuleInstanceState(d) !== 0 ? 4194304 | 1048576 : 4194304; + return d.name.kind === 8 || ts.getModuleInstanceState(d) !== 0 + ? 4194304 | 1048576 + : 4194304; case 196: case 199: return 2097152 | 1048576; case 203: var result = 0; var target = resolveAlias(getSymbolOfNode(d)); - ts.forEach(target.declarations, function (d) { - result |= getDeclarationSpaces(d); - }); + ts.forEach(target.declarations, function (d) { result |= getDeclarationSpaces(d); }); return result; default: return 1048576; @@ -19534,7 +14957,10 @@ var ts; } function checkFunctionDeclaration(node) { if (produceDiagnostics) { - checkFunctionLikeDeclaration(node) || checkGrammarDisallowedModifiersInBlockOrObjectLiteralExpression(node) || checkGrammarFunctionName(node.name) || checkGrammarForGenerator(node); + checkFunctionLikeDeclaration(node) || + checkGrammarDisallowedModifiersInBlockOrObjectLiteralExpression(node) || + checkGrammarFunctionName(node.name) || + checkGrammarForGenerator(node); checkCollisionWithCapturedSuperVariable(node, node.name); checkCollisionWithCapturedThisVariable(node, node.name); checkCollisionWithRequireExportsInGeneratedCode(node, node.name); @@ -19589,7 +15015,12 @@ var ts; if (!(identifier && identifier.text === name)) { return false; } - if (node.kind === 130 || node.kind === 129 || node.kind === 132 || node.kind === 131 || node.kind === 134 || node.kind === 135) { + if (node.kind === 130 || + node.kind === 129 || + node.kind === 132 || + node.kind === 131 || + node.kind === 134 || + node.kind === 135) { return false; } if (ts.isInAmbientContext(node)) { @@ -19610,8 +15041,8 @@ var ts; var current = node; while (current) { if (getNodeCheckFlags(current) & 4) { - var isDeclaration = node.kind !== 64; - if (isDeclaration) { + var _isDeclaration = node.kind !== 64; + if (_isDeclaration) { error(node.name, ts.Diagnostics.Duplicate_identifier_this_Compiler_uses_variable_declaration_this_to_capture_this_reference); } else { @@ -19631,8 +15062,8 @@ var ts; return; } if (ts.getClassBaseTypeNode(enclosingClass)) { - var isDeclaration = node.kind !== 64; - if (isDeclaration) { + var _isDeclaration = node.kind !== 64; + if (_isDeclaration) { error(node, ts.Diagnostics.Duplicate_identifier_super_Compiler_uses_super_to_capture_base_class_reference); } else { @@ -19647,8 +15078,8 @@ var ts; if (node.kind === 200 && ts.getModuleInstanceState(node) !== 1) { return; } - var parent = getDeclarationContainer(node); - if (parent.kind === 221 && ts.isExternalModule(parent)) { + var _parent = getDeclarationContainer(node); + if (_parent.kind === 221 && ts.isExternalModule(_parent)) { error(name, ts.Diagnostics.Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_an_external_module, ts.declarationNameToString(name), ts.declarationNameToString(name)); } } @@ -19657,14 +15088,20 @@ var ts; var symbol = getSymbolOfNode(node); if (symbol.flags & 1) { var localDeclarationSymbol = resolveName(node, node.name.text, 3, undefined, undefined); - if (localDeclarationSymbol && localDeclarationSymbol !== symbol && localDeclarationSymbol.flags & 2) { + if (localDeclarationSymbol && + localDeclarationSymbol !== symbol && + localDeclarationSymbol.flags & 2) { if (getDeclarationFlagsFromSymbol(localDeclarationSymbol) & 12288) { var varDeclList = ts.getAncestor(localDeclarationSymbol.valueDeclaration, 194); - var container = varDeclList.parent.kind === 175 && varDeclList.parent.parent; - var namesShareScope = container && (container.kind === 174 && ts.isFunctionLike(container.parent) || (container.kind === 201 && container.kind === 200) || container.kind === 221); + var container = varDeclList.parent.kind === 175 && + varDeclList.parent.parent; + var namesShareScope = container && + (container.kind === 174 && ts.isFunctionLike(container.parent) || + (container.kind === 201 && container.kind === 200) || + container.kind === 221); if (!namesShareScope) { - var name = symbolToString(localDeclarationSymbol); - error(node, ts.Diagnostics.Cannot_initialize_outer_scoped_variable_0_in_the_same_scope_as_block_scoped_declaration_1, name, name); + var _name = symbolToString(localDeclarationSymbol); + error(node, ts.Diagnostics.Cannot_initialize_outer_scoped_variable_0_in_the_same_scope_as_block_scoped_declaration_1, _name, _name); } } } @@ -19678,10 +15115,11 @@ var ts; return node.kind === 128; } function checkParameterInitializer(node) { - if (getRootDeclaration(node).kind === 128) { - var func = ts.getContainingFunction(node); - visit(node.initializer); + if (getRootDeclaration(node).kind !== 128) { + return; } + var func = ts.getContainingFunction(node); + visit(node.initializer); function visit(n) { if (n.kind === 64) { var referencedSymbol = getNodeLinks(n).resolvedSymbol; @@ -19877,15 +15315,17 @@ var ts; } function checkRightHandSideOfForOf(rhsExpression) { var expressionType = getTypeOfExpression(rhsExpression); - return languageVersion >= 2 ? checkIteratedType(expressionType, rhsExpression) : checkElementTypeOfArrayOrString(expressionType, rhsExpression); + return languageVersion >= 2 + ? checkIteratedType(expressionType, rhsExpression) + : checkElementTypeOfArrayOrString(expressionType, rhsExpression); } function checkIteratedType(iterable, expressionForError) { ts.Debug.assert(languageVersion >= 2); var iteratedType = getIteratedType(iterable, expressionForError); if (expressionForError && iteratedType) { - var completeIterableType = globalIterableType !== emptyObjectType ? createTypeReference(globalIterableType, [ - iteratedType - ]) : emptyObjectType; + var completeIterableType = globalIterableType !== emptyObjectType + ? createTypeReference(globalIterableType, [iteratedType]) + : emptyObjectType; checkTypeAssignableTo(iterable, completeIterableType, expressionForError); } return iteratedType; @@ -19949,7 +15389,9 @@ var ts; } if (!isArrayLikeType(arrayType)) { if (!reportedError) { - var diagnostic = hasStringConstituent ? ts.Diagnostics.Type_0_is_not_an_array_type : ts.Diagnostics.Type_0_is_not_an_array_type_or_a_string_type; + var diagnostic = hasStringConstituent + ? ts.Diagnostics.Type_0_is_not_an_array_type + : ts.Diagnostics.Type_0_is_not_an_array_type_or_a_string_type; error(expressionForError, diagnostic, typeToString(arrayType)); } return hasStringConstituent ? stringType : unknownType; @@ -19959,10 +15401,7 @@ var ts; if (arrayElementType.flags & 258) { return stringType; } - return getUnionType([ - arrayElementType, - stringType - ]); + return getUnionType([arrayElementType, stringType]); } return arrayElementType; } @@ -20110,8 +15549,8 @@ var ts; }); if (type.flags & 1024 && type.symbol.valueDeclaration.kind === 196) { var classDeclaration = type.symbol.valueDeclaration; - for (var i = 0; i < classDeclaration.members.length; i++) { - var member = classDeclaration.members[i]; + for (var _i = 0, _a = classDeclaration.members, _n = _a.length; _i < _n; _i++) { + var member = _a[_i]; if (!(member.flags & 128) && ts.hasDynamicName(member)) { var propType = getTypeOfSymbol(member.symbol); checkIndexConstraintForProperty(member.symbol, propType, type, declaredStringIndexer, stringIndexType, 0); @@ -20124,9 +15563,7 @@ var ts; if (stringIndexType && numberIndexType) { errorNode = declaredNumberIndexer || declaredStringIndexer; if (!errorNode && (type.flags & 2048)) { - var someBaseTypeHasBothIndexers = ts.forEach(type.baseTypes, function (base) { - return getIndexTypeOfType(base, 0) && getIndexTypeOfType(base, 1); - }); + var someBaseTypeHasBothIndexers = ts.forEach(type.baseTypes, function (base) { return getIndexTypeOfType(base, 0) && getIndexTypeOfType(base, 1); }); errorNode = someBaseTypeHasBothIndexers ? undefined : type.symbol.declarations[0]; } } @@ -20140,22 +15577,22 @@ var ts; if (indexKind === 1 && !isNumericName(prop.valueDeclaration.name)) { return; } - var errorNode; + var _errorNode; if (prop.valueDeclaration.name.kind === 126 || prop.parent === containingType.symbol) { - errorNode = prop.valueDeclaration; + _errorNode = prop.valueDeclaration; } else if (indexDeclaration) { - errorNode = indexDeclaration; + _errorNode = indexDeclaration; } else if (containingType.flags & 2048) { - var someBaseClassHasBothPropertyAndIndexer = ts.forEach(containingType.baseTypes, function (base) { - return getPropertyOfObjectType(base, prop.name) && getIndexTypeOfType(base, indexKind); - }); - errorNode = someBaseClassHasBothPropertyAndIndexer ? undefined : containingType.symbol.declarations[0]; + var someBaseClassHasBothPropertyAndIndexer = ts.forEach(containingType.baseTypes, function (base) { return getPropertyOfObjectType(base, prop.name) && getIndexTypeOfType(base, indexKind); }); + _errorNode = someBaseClassHasBothPropertyAndIndexer ? undefined : containingType.symbol.declarations[0]; } - if (errorNode && !isTypeAssignableTo(propertyType, indexType)) { - var errorMessage = indexKind === 0 ? ts.Diagnostics.Property_0_of_type_1_is_not_assignable_to_string_index_type_2 : ts.Diagnostics.Property_0_of_type_1_is_not_assignable_to_numeric_index_type_2; - error(errorNode, errorMessage, symbolToString(prop), typeToString(propertyType), typeToString(indexType)); + if (_errorNode && !isTypeAssignableTo(propertyType, indexType)) { + var errorMessage = indexKind === 0 + ? ts.Diagnostics.Property_0_of_type_1_is_not_assignable_to_string_index_type_2 + : ts.Diagnostics.Property_0_of_type_1_is_not_assignable_to_numeric_index_type_2; + error(_errorNode, errorMessage, symbolToString(prop), typeToString(propertyType), typeToString(indexType)); } } } @@ -20172,7 +15609,7 @@ var ts; } function checkTypeParameters(typeParameterDeclarations) { if (typeParameterDeclarations) { - for (var i = 0; i < typeParameterDeclarations.length; i++) { + for (var i = 0, n = typeParameterDeclarations.length; i < n; i++) { var node = typeParameterDeclarations[i]; checkTypeParameter(node); if (produceDiagnostics) { @@ -20244,8 +15681,9 @@ var ts; } function checkKindsOfPropertyMemberOverrides(type, baseType) { var baseProperties = getPropertiesOfObjectType(baseType); - for (var i = 0, len = baseProperties.length; i < len; ++i) { - var base = getTargetSymbol(baseProperties[i]); + for (var _i = 0, _n = baseProperties.length; _i < _n; _i++) { + var baseProperty = baseProperties[_i]; + var base = getTargetSymbol(baseProperty); if (base.flags & 134217728) { continue; } @@ -20262,7 +15700,7 @@ var ts; if ((base.flags & derived.flags & 8192) || ((base.flags & 98308) && (derived.flags & 98308))) { continue; } - var errorMessage; + var errorMessage = void 0; if (base.flags & 8192) { if (derived.flags & 98304) { errorMessage = ts.Diagnostics.Class_0_defines_instance_member_function_1_but_extended_class_2_defines_it_as_instance_member_accessor; @@ -20318,23 +15756,15 @@ var ts; return true; } var seen = {}; - ts.forEach(type.declaredProperties, function (p) { - seen[p.name] = { - prop: p, - containingType: type - }; - }); + ts.forEach(type.declaredProperties, function (p) { seen[p.name] = { prop: p, containingType: type }; }); var ok = true; - for (var i = 0, len = type.baseTypes.length; i < len; ++i) { - var base = type.baseTypes[i]; + for (var _i = 0, _a = type.baseTypes, _n = _a.length; _i < _n; _i++) { + var base = _a[_i]; var properties = getPropertiesOfObjectType(base); - for (var j = 0, proplen = properties.length; j < proplen; ++j) { - var prop = properties[j]; + for (var _b = 0, _c = properties.length; _b < _c; _b++) { + var prop = properties[_b]; if (!ts.hasProperty(seen, prop.name)) { - seen[prop.name] = { - prop: prop, - containingType: base - }; + seen[prop.name] = { prop: prop, containingType: base }; } else { var existing = seen[prop.name]; @@ -20387,8 +15817,8 @@ var ts; checkSourceElement(node.type); } function computeEnumMemberValues(node) { - var nodeLinks = getNodeLinks(node); - if (!(nodeLinks.flags & 128)) { + var _nodeLinks = getNodeLinks(node); + if (!(_nodeLinks.flags & 128)) { var enumSymbol = getSymbolOfNode(node); var enumType = getDeclaredTypeOfSymbol(enumSymbol); var autoValue = 0; @@ -20425,7 +15855,7 @@ var ts; getNodeLinks(member).enumMemberValue = autoValue++; } }); - nodeLinks.flags |= 128; + _nodeLinks.flags |= 128; } function getConstantValueForEnumMemberInitializer(initializer, enumIsConst) { return evalConstant(initializer); @@ -20437,12 +15867,9 @@ var ts; return undefined; } switch (e.operator) { - case 33: - return value; - case 34: - return -value; - case 47: - return enumIsConst ? ~value : undefined; + case 33: return value; + case 34: return -value; + case 47: return enumIsConst ? ~value : undefined; } return undefined; case 167: @@ -20458,28 +15885,17 @@ var ts; return undefined; } switch (e.operatorToken.kind) { - case 44: - return left | right; - case 43: - return left & right; - case 41: - return left >> right; - case 42: - return left >>> right; - case 40: - return left << right; - case 45: - return left ^ right; - case 35: - return left * right; - case 36: - return left / right; - case 33: - return left + right; - case 34: - return left - right; - case 37: - return left % right; + case 44: return left | right; + case 43: return left & right; + case 41: return left >> right; + case 42: return left >>> right; + case 40: return left << right; + case 45: return left ^ right; + case 35: return left * right; + case 36: return left / right; + case 33: return left + right; + case 34: return left - right; + case 37: return left % right; } return undefined; case 7: @@ -20494,32 +15910,33 @@ var ts; } var member = initializer.parent; var currentType = getTypeOfSymbol(getSymbolOfNode(member.parent)); - var enumType; + var _enumType; var propertyName; if (e.kind === 64) { - enumType = currentType; + _enumType = currentType; propertyName = e.text; } else { if (e.kind === 154) { - if (e.argumentExpression === undefined || e.argumentExpression.kind !== 8) { + if (e.argumentExpression === undefined || + e.argumentExpression.kind !== 8) { return undefined; } - var enumType = getTypeOfNode(e.expression); + _enumType = getTypeOfNode(e.expression); propertyName = e.argumentExpression.text; } else { - var enumType = getTypeOfNode(e.expression); + _enumType = getTypeOfNode(e.expression); propertyName = e.name.text; } - if (enumType !== currentType) { + if (_enumType !== currentType) { return undefined; } } if (propertyName === undefined) { return undefined; } - var property = getPropertyOfObjectType(enumType, propertyName); + var property = getPropertyOfObjectType(_enumType, propertyName); if (!property || !(property.flags & 8)) { return undefined; } @@ -20579,8 +15996,8 @@ var ts; } function getFirstNonAmbientClassOrFunctionDeclaration(symbol) { var declarations = symbol.declarations; - for (var i = 0; i < declarations.length; i++) { - var declaration = declarations[i]; + for (var _i = 0, _n = declarations.length; _i < _n; _i++) { + var declaration = declarations[_i]; if ((declaration.kind === 196 || (declaration.kind === 195 && ts.nodeIsPresent(declaration.body))) && !ts.isInAmbientContext(declaration)) { return declaration; } @@ -20598,7 +16015,10 @@ var ts; checkCollisionWithRequireExportsInGeneratedCode(node, node.name); checkExportsOnMergedDeclarations(node); var symbol = getSymbolOfNode(node); - if (symbol.flags & 512 && symbol.declarations.length > 1 && !ts.isInAmbientContext(node) && ts.isInstantiatedModule(node, compilerOptions.preserveConstEnums)) { + if (symbol.flags & 512 + && symbol.declarations.length > 1 + && !ts.isInAmbientContext(node) + && ts.isInstantiatedModule(node, compilerOptions.preserveConstEnums)) { var classOrFunc = getFirstNonAmbientClassOrFunctionDeclaration(symbol); if (classOrFunc) { if (ts.getSourceFileOfNode(node) !== ts.getSourceFileOfNode(classOrFunc)) { @@ -20634,7 +16054,9 @@ var ts; } var inAmbientExternalModule = node.parent.kind === 201 && node.parent.parent.name.kind === 8; if (node.parent.kind !== 221 && !inAmbientExternalModule) { - error(moduleName, node.kind === 210 ? ts.Diagnostics.Export_declarations_are_not_permitted_in_an_internal_module : ts.Diagnostics.Import_declarations_in_an_internal_module_cannot_reference_an_external_module); + error(moduleName, node.kind === 210 ? + ts.Diagnostics.Export_declarations_are_not_permitted_in_an_internal_module : + ts.Diagnostics.Import_declarations_in_an_internal_module_cannot_reference_an_external_module); return false; } if (inAmbientExternalModule && isExternalModuleNameRelative(moduleName.text)) { @@ -20647,9 +16069,13 @@ var ts; var symbol = getSymbolOfNode(node); var target = resolveAlias(symbol); if (target !== unknownSymbol) { - var excludedMeanings = (symbol.flags & 107455 ? 107455 : 0) | (symbol.flags & 793056 ? 793056 : 0) | (symbol.flags & 1536 ? 1536 : 0); + var excludedMeanings = (symbol.flags & 107455 ? 107455 : 0) | + (symbol.flags & 793056 ? 793056 : 0) | + (symbol.flags & 1536 ? 1536 : 0); if (target.flags & excludedMeanings) { - var message = node.kind === 212 ? ts.Diagnostics.Export_declaration_conflicts_with_exported_declaration_of_0 : ts.Diagnostics.Import_declaration_conflicts_with_local_declaration_of_0; + var message = node.kind === 212 ? + ts.Diagnostics.Export_declaration_conflicts_with_exported_declaration_of_0 : + ts.Diagnostics.Import_declaration_conflicts_with_local_declaration_of_0; error(node, message, symbolToString(symbol)); } } @@ -20747,18 +16173,19 @@ var ts; } function hasExportedMembers(moduleSymbol) { var declarations = moduleSymbol.declarations; - for (var i = 0; i < declarations.length; i++) { - var statements = getModuleStatements(declarations[i]); - for (var j = 0; j < statements.length; j++) { - var node = statements[j]; + for (var _i = 0, _n = declarations.length; _i < _n; _i++) { + var current = declarations[_i]; + var statements = getModuleStatements(current); + for (var _a = 0, _b = statements.length; _a < _b; _a++) { + var node = statements[_a]; if (node.kind === 210) { var exportClause = node.exportClause; if (!exportClause) { return true; } var specifiers = exportClause.elements; - for (var k = 0; k < specifiers.length; k++) { - var specifier = specifiers[k]; + for (var _c = 0, _d = specifiers.length; _c < _d; _c++) { + var specifier = specifiers[_c]; if (!(specifier.propertyName && specifier.name && specifier.name.text === "default")) { return true; } @@ -21082,7 +16509,9 @@ var ts; return ts.mapToArray(symbols); } function isTypeDeclarationName(name) { - return name.kind == 64 && isTypeDeclaration(name.parent) && name.parent.name === name; + return name.kind == 64 && + isTypeDeclaration(name.parent) && + name.parent.name === name; } function isTypeDeclaration(node) { switch (node.kind) { @@ -21121,21 +16550,21 @@ var ts; } case 125: ts.Debug.assert(node.kind === 64 || node.kind === 125, "'node' was expected to be a qualified name or identifier in 'isTypeNode'."); - var parent = node.parent; - if (parent.kind === 142) { + var _parent = node.parent; + if (_parent.kind === 142) { return false; } - if (139 <= parent.kind && parent.kind <= 147) { + if (139 <= _parent.kind && _parent.kind <= 147) { return true; } - switch (parent.kind) { + switch (_parent.kind) { case 127: - return node === parent.constraint; + return node === _parent.constraint; case 130: case 129: case 128: case 193: - return node === parent.type; + return node === _parent.type; case 195: case 160: case 161: @@ -21144,16 +16573,16 @@ var ts; case 131: case 134: case 135: - return node === parent.type; + return node === _parent.type; case 136: case 137: case 138: - return node === parent.type; + return node === _parent.type; case 158: - return node === parent.type; + return node === _parent.type; case 155: case 156: - return parent.typeArguments && ts.indexOf(parent.typeArguments, node) >= 0; + return _parent.typeArguments && ts.indexOf(_parent.typeArguments, node) >= 0; case 157: return false; } @@ -21176,7 +16605,8 @@ var ts; return getLeftSideOfImportEqualsOrExportAssignment(node) !== undefined; } function isRightSideOfQualifiedNameOrPropertyAccess(node) { - return (node.parent.kind === 125 && node.parent.right === node) || (node.parent.kind === 153 && node.parent.name === node); + return (node.parent.kind === 125 && node.parent.right === node) || + (node.parent.kind === 153 && node.parent.name === node); } function getSymbolOfEntityNameOrPropertyAccessExpression(entityName) { if (ts.isDeclarationName(entityName)) { @@ -21209,17 +16639,17 @@ var ts; return getNodeLinks(entityName).resolvedSymbol; } else if (entityName.kind === 125) { - var symbol = getNodeLinks(entityName).resolvedSymbol; - if (!symbol) { + var _symbol = getNodeLinks(entityName).resolvedSymbol; + if (!_symbol) { checkQualifiedName(entityName); } return getNodeLinks(entityName).resolvedSymbol; } } else if (isTypeReferenceIdentifier(entityName)) { - var meaning = entityName.parent.kind === 139 ? 793056 : 1536; - meaning |= 8388608; - return resolveEntityName(entityName, meaning); + var _meaning = entityName.parent.kind === 139 ? 793056 : 1536; + _meaning |= 8388608; + return resolveEntityName(entityName, _meaning); } return undefined; } @@ -21231,7 +16661,9 @@ var ts; return getSymbolOfNode(node.parent); } if (node.kind === 64 && isInRightSideOfImportOrExportAssignment(node)) { - return node.parent.kind === 209 ? getSymbolOfEntityNameOrPropertyAccessExpression(node) : getSymbolOfPartOfRightHandSideOfImportEquals(node); + return node.parent.kind === 209 + ? getSymbolOfEntityNameOrPropertyAccessExpression(node) + : getSymbolOfPartOfRightHandSideOfImportEquals(node); } switch (node.kind) { case 64: @@ -21250,7 +16682,10 @@ var ts; return undefined; case 8: var moduleName; - if ((ts.isExternalModuleImportEqualsDeclaration(node.parent.parent) && ts.getExternalModuleImportEqualsDeclarationExpression(node.parent.parent) === node) || ((node.parent.kind === 204 || node.parent.kind === 210) && node.parent.moduleSpecifier === node)) { + if ((ts.isExternalModuleImportEqualsDeclaration(node.parent.parent) && + ts.getExternalModuleImportEqualsDeclarationExpression(node.parent.parent) === node) || + ((node.parent.kind === 204 || node.parent.kind === 210) && + node.parent.moduleSpecifier === node)) { return resolveExternalModuleName(node, node); } case 7: @@ -21288,21 +16723,21 @@ var ts; return getDeclaredTypeOfSymbol(symbol); } if (isTypeDeclarationName(node)) { - var symbol = getSymbolInfo(node); - return symbol && getDeclaredTypeOfSymbol(symbol); + var _symbol = getSymbolInfo(node); + return _symbol && getDeclaredTypeOfSymbol(_symbol); } if (ts.isDeclaration(node)) { - var symbol = getSymbolOfNode(node); - return getTypeOfSymbol(symbol); + var _symbol_1 = getSymbolOfNode(node); + return getTypeOfSymbol(_symbol_1); } if (ts.isDeclarationName(node)) { - var symbol = getSymbolInfo(node); - return symbol && getTypeOfSymbol(symbol); + var _symbol_2 = getSymbolInfo(node); + return _symbol_2 && getTypeOfSymbol(_symbol_2); } if (isInRightSideOfImportOrExportAssignment(node)) { - var symbol = getSymbolInfo(node); - var declaredType = symbol && getDeclaredTypeOfSymbol(symbol); - return declaredType !== unknownType ? declaredType : getTypeOfSymbol(symbol); + var _symbol_3 = getSymbolInfo(node); + var declaredType = _symbol_3 && getDeclaredTypeOfSymbol(_symbol_3); + return declaredType !== unknownType ? declaredType : getTypeOfSymbol(_symbol_3); } return unknownType; } @@ -21313,7 +16748,7 @@ var ts; return checkExpression(expr); } function getAugmentedPropertiesOfType(type) { - var type = getApparentType(type); + type = getApparentType(type); var propsByName = createSymbolTable(getPropertiesOfType(type)); if (getSignaturesOfType(type, 0).length || getSignaturesOfType(type, 1).length) { ts.forEach(getPropertiesOfType(globalFunctionType), function (p) { @@ -21327,23 +16762,19 @@ var ts; function getRootSymbols(symbol) { if (symbol.flags & 268435456) { var symbols = []; - var name = symbol.name; + var _name = symbol.name; ts.forEach(getSymbolLinks(symbol).unionType.types, function (t) { - symbols.push(getPropertyOfType(t, name)); + symbols.push(getPropertyOfType(t, _name)); }); return symbols; } else if (symbol.flags & 67108864) { var target = getSymbolLinks(symbol).target; if (target) { - return [ - target - ]; + return [target]; } } - return [ - symbol - ]; + return [symbol]; } function isExternalModuleSymbol(symbol) { return symbol.flags & 512 && symbol.declarations.length === 1 && symbol.declarations[0].kind === 221; @@ -21406,8 +16837,8 @@ var ts; return ts.hasProperty(globals, name) || ts.hasProperty(sourceFile.identifiers, name) || ts.hasProperty(generatedNames, name); } function makeUniqueName(baseName) { - var name = ts.generateUniqueName(baseName, isExistingName); - return generatedNames[name] = name; + var _name = ts.generateUniqueName(baseName, isExistingName); + return generatedNames[_name] = _name; } function assignGeneratedName(node, name) { getNodeLinks(node).generatedName = ts.unescapeIdentifier(name); @@ -21419,13 +16850,14 @@ var ts; } function generateNameForModuleOrEnum(node) { if (node.name.kind === 64) { - var name = node.name.text; - assignGeneratedName(node, isUniqueLocalName(name, node) ? name : makeUniqueName(name)); + var _name = node.name.text; + assignGeneratedName(node, isUniqueLocalName(_name, node) ? _name : makeUniqueName(_name)); } } function generateNameForImportOrExportDeclaration(node) { var expr = ts.getExternalModuleName(node); - var baseName = expr.kind === 8 ? ts.escapeIdentifier(ts.makeIdentifierFromModuleName(expr.text)) : "module"; + var baseName = expr.kind === 8 ? + ts.escapeIdentifier(ts.makeIdentifierFromModuleName(expr.text)) : "module"; assignGeneratedName(node, makeUniqueName(baseName)); } function generateNameForImportDeclaration(node) { @@ -21523,7 +16955,8 @@ var ts; if (ts.nodeIsPresent(node.body)) { var symbol = getSymbolOfNode(node); var signaturesOfSymbol = getSignaturesOfSymbol(symbol); - return signaturesOfSymbol.length > 1 || (signaturesOfSymbol.length === 1 && signaturesOfSymbol[0].declaration !== node); + return signaturesOfSymbol.length > 1 || + (signaturesOfSymbol.length === 1 && signaturesOfSymbol[0].declaration !== node); } return false; } @@ -21550,7 +16983,9 @@ var ts; } function writeTypeOfDeclaration(declaration, enclosingDeclaration, flags, writer) { var symbol = getSymbolOfNode(declaration); - var type = symbol && !(symbol.flags & (2048 | 131072)) ? getTypeOfSymbol(symbol) : unknownType; + var type = symbol && !(symbol.flags & (2048 | 131072)) + ? getTypeOfSymbol(symbol) + : unknownType; getSymbolDisplayBuilder().buildTypeDisplay(type, writer, enclosingDeclaration, flags); } function writeReturnTypeOfSignatureDeclaration(signatureDeclaration, enclosingDeclaration, flags, writer) { @@ -21559,19 +16994,29 @@ var ts; } function isUnknownIdentifier(location, name) { ts.Debug.assert(!ts.nodeIsSynthesized(location), "isUnknownIdentifier called with a synthesized location"); - return !resolveName(location, name, 107455, undefined, undefined) && !ts.hasProperty(getGeneratedNamesForSourceFile(getSourceFile(location)), name); + return !resolveName(location, name, 107455, undefined, undefined) && + !ts.hasProperty(getGeneratedNamesForSourceFile(getSourceFile(location)), name); } function getBlockScopedVariableId(n) { ts.Debug.assert(!ts.nodeIsSynthesized(n)); - if (n.parent.kind === 153 && n.parent.name === n) { + if (n.parent.kind === 153 && + n.parent.name === n) { return undefined; } - if (n.parent.kind === 150 && n.parent.propertyName === n) { + if (n.parent.kind === 150 && + n.parent.propertyName === n) { return undefined; } - var declarationSymbol = (n.parent.kind === 193 && n.parent.name === n) || n.parent.kind === 150 ? getSymbolOfNode(n.parent) : undefined; - var symbol = declarationSymbol || getNodeLinks(n).resolvedSymbol || resolveName(n, n.text, 2 | 8388608, undefined, undefined); - var isLetOrConst = symbol && (symbol.flags & 2) && symbol.valueDeclaration.parent.kind !== 217; + var declarationSymbol = (n.parent.kind === 193 && n.parent.name === n) || + n.parent.kind === 150 + ? getSymbolOfNode(n.parent) + : undefined; + var symbol = declarationSymbol || + getNodeLinks(n).resolvedSymbol || + resolveName(n, n.text, 107455 | 8388608, undefined, undefined); + var isLetOrConst = symbol && + (symbol.flags & 2) && + symbol.valueDeclaration.parent.kind !== 217; if (isLetOrConst) { getSymbolLinks(symbol); return symbol.id; @@ -21662,13 +17107,13 @@ var ts; } var lastStatic, lastPrivate, lastProtected, lastDeclare; var flags = 0; - for (var i = 0, n = node.modifiers.length; i < n; i++) { - var modifier = node.modifiers[i]; + for (var _i = 0, _a = node.modifiers, _n = _a.length; _i < _n; _i++) { + var modifier = _a[_i]; switch (modifier.kind) { case 108: case 107: case 106: - var text; + var text = void 0; if (modifier.kind === 108) { text = "public"; } @@ -21861,13 +17306,14 @@ var ts; } } function checkGrammarTypeArguments(node, typeArguments) { - return checkGrammarForDisallowedTrailingComma(typeArguments) || checkGrammarForAtLeastOneTypeArgument(node, typeArguments); + return checkGrammarForDisallowedTrailingComma(typeArguments) || + checkGrammarForAtLeastOneTypeArgument(node, typeArguments); } function checkGrammarForOmittedArgument(node, arguments) { if (arguments) { var sourceFile = ts.getSourceFileOfNode(node); - for (var i = 0, n = arguments.length; i < n; i++) { - var arg = arguments[i]; + for (var _i = 0, _n = arguments.length; _i < _n; _i++) { + var arg = arguments[_i]; if (arg.kind === 172) { return grammarErrorAtPos(sourceFile, arg.pos, 0, ts.Diagnostics.Argument_expression_expected); } @@ -21875,7 +17321,8 @@ var ts; } } function checkGrammarArguments(node, arguments) { - return checkGrammarForDisallowedTrailingComma(arguments) || checkGrammarForOmittedArgument(node, arguments); + return checkGrammarForDisallowedTrailingComma(arguments) || + checkGrammarForOmittedArgument(node, arguments); } function checkGrammarHeritageClause(node) { var types = node.types; @@ -21892,9 +17339,8 @@ var ts; var seenExtendsClause = false; var seenImplementsClause = false; if (!checkGrammarModifiers(node) && node.heritageClauses) { - for (var i = 0, n = node.heritageClauses.length; i < n; i++) { - ts.Debug.assert(i <= 2); - var heritageClause = node.heritageClauses[i]; + for (var _i = 0, _a = node.heritageClauses, _n = _a.length; _i < _n; _i++) { + var heritageClause = _a[_i]; if (heritageClause.token === 78) { if (seenExtendsClause) { return grammarErrorOnFirstToken(heritageClause, ts.Diagnostics.extends_clause_already_seen); @@ -21921,9 +17367,8 @@ var ts; function checkGrammarInterfaceDeclaration(node) { var seenExtendsClause = false; if (node.heritageClauses) { - for (var i = 0, n = node.heritageClauses.length; i < n; i++) { - ts.Debug.assert(i <= 1); - var heritageClause = node.heritageClauses[i]; + for (var _i = 0, _a = node.heritageClauses, _n = _a.length; _i < _n; _i++) { + var heritageClause = _a[_i]; if (heritageClause.token === 78) { if (seenExtendsClause) { return grammarErrorOnFirstToken(heritageClause, ts.Diagnostics.extends_clause_already_seen); @@ -21968,18 +17413,19 @@ var ts; var SetAccesor = 4; var GetOrSetAccessor = GetAccessor | SetAccesor; var inStrictMode = (node.parserContextFlags & 1) !== 0; - for (var i = 0, n = node.properties.length; i < n; i++) { - var prop = node.properties[i]; - var name = prop.name; - if (prop.kind === 172 || name.kind === 126) { - checkGrammarComputedPropertyName(name); + for (var _i = 0, _a = node.properties, _n = _a.length; _i < _n; _i++) { + var prop = _a[_i]; + var _name = prop.name; + if (prop.kind === 172 || + _name.kind === 126) { + checkGrammarComputedPropertyName(_name); continue; } - var currentKind; + var currentKind = void 0; if (prop.kind === 218 || prop.kind === 219) { checkGrammarForInvalidQuestionMark(prop, prop.questionToken, ts.Diagnostics.An_object_member_cannot_be_declared_optional); - if (name.kind === 7) { - checkGrammarNumbericLiteral(name); + if (_name.kind === 7) { + checkGrammarNumbericLiteral(_name); } currentKind = Property; } @@ -21995,26 +17441,26 @@ var ts; else { ts.Debug.fail("Unexpected syntax kind:" + prop.kind); } - if (!ts.hasProperty(seen, name.text)) { - seen[name.text] = currentKind; + if (!ts.hasProperty(seen, _name.text)) { + seen[_name.text] = currentKind; } else { - var existingKind = seen[name.text]; + var existingKind = seen[_name.text]; if (currentKind === Property && existingKind === Property) { if (inStrictMode) { - grammarErrorOnNode(name, ts.Diagnostics.An_object_literal_cannot_have_multiple_properties_with_the_same_name_in_strict_mode); + grammarErrorOnNode(_name, ts.Diagnostics.An_object_literal_cannot_have_multiple_properties_with_the_same_name_in_strict_mode); } } else if ((currentKind & GetOrSetAccessor) && (existingKind & GetOrSetAccessor)) { if (existingKind !== GetOrSetAccessor && currentKind !== existingKind) { - seen[name.text] = currentKind | existingKind; + seen[_name.text] = currentKind | existingKind; } else { - return grammarErrorOnNode(name, ts.Diagnostics.An_object_literal_cannot_have_multiple_get_Slashset_accessors_with_the_same_name); + return grammarErrorOnNode(_name, ts.Diagnostics.An_object_literal_cannot_have_multiple_get_Slashset_accessors_with_the_same_name); } } else { - return grammarErrorOnNode(name, ts.Diagnostics.An_object_literal_cannot_have_property_and_accessor_with_the_same_name); + return grammarErrorOnNode(_name, ts.Diagnostics.An_object_literal_cannot_have_property_and_accessor_with_the_same_name); } } } @@ -22027,17 +17473,23 @@ var ts; var variableList = forInOrOfStatement.initializer; if (!checkGrammarVariableDeclarationList(variableList)) { if (variableList.declarations.length > 1) { - var diagnostic = forInOrOfStatement.kind === 182 ? ts.Diagnostics.Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement : ts.Diagnostics.Only_a_single_variable_declaration_is_allowed_in_a_for_of_statement; + var diagnostic = forInOrOfStatement.kind === 182 + ? ts.Diagnostics.Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement + : ts.Diagnostics.Only_a_single_variable_declaration_is_allowed_in_a_for_of_statement; return grammarErrorOnFirstToken(variableList.declarations[1], diagnostic); } var firstDeclaration = variableList.declarations[0]; if (firstDeclaration.initializer) { - var diagnostic = forInOrOfStatement.kind === 182 ? ts.Diagnostics.The_variable_declaration_of_a_for_in_statement_cannot_have_an_initializer : ts.Diagnostics.The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer; - return grammarErrorOnNode(firstDeclaration.name, diagnostic); + var _diagnostic = forInOrOfStatement.kind === 182 + ? ts.Diagnostics.The_variable_declaration_of_a_for_in_statement_cannot_have_an_initializer + : ts.Diagnostics.The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer; + return grammarErrorOnNode(firstDeclaration.name, _diagnostic); } if (firstDeclaration.type) { - var diagnostic = forInOrOfStatement.kind === 182 ? ts.Diagnostics.The_left_hand_side_of_a_for_in_statement_cannot_use_a_type_annotation : ts.Diagnostics.The_left_hand_side_of_a_for_of_statement_cannot_use_a_type_annotation; - return grammarErrorOnNode(firstDeclaration, diagnostic); + var _diagnostic_1 = forInOrOfStatement.kind === 182 + ? ts.Diagnostics.The_left_hand_side_of_a_for_in_statement_cannot_use_a_type_annotation + : ts.Diagnostics.The_left_hand_side_of_a_for_of_statement_cannot_use_a_type_annotation; + return grammarErrorOnNode(firstDeclaration, _diagnostic_1); } } } @@ -22090,7 +17542,9 @@ var ts; } } function checkGrammarMethod(node) { - if (checkGrammarDisallowedModifiersInBlockOrObjectLiteralExpression(node) || checkGrammarFunctionLikeDeclaration(node) || checkGrammarForGenerator(node)) { + if (checkGrammarDisallowedModifiersInBlockOrObjectLiteralExpression(node) || + checkGrammarFunctionLikeDeclaration(node) || + checkGrammarForGenerator(node)) { return true; } if (node.parent.kind === 152) { @@ -22141,7 +17595,8 @@ var ts; switch (current.kind) { case 189: if (node.label && current.label.text === node.label.text) { - var isMisplacedContinueLabel = node.kind === 184 && !isIterationStatement(current.statement, true); + var isMisplacedContinueLabel = node.kind === 184 + && !isIterationStatement(current.statement, true); if (isMisplacedContinueLabel) { return grammarErrorOnNode(node, ts.Diagnostics.A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement); } @@ -22162,12 +17617,16 @@ var ts; current = current.parent; } if (node.label) { - var message = node.kind === 185 ? ts.Diagnostics.A_break_statement_can_only_jump_to_a_label_of_an_enclosing_statement : ts.Diagnostics.A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement; + var message = node.kind === 185 + ? ts.Diagnostics.A_break_statement_can_only_jump_to_a_label_of_an_enclosing_statement + : ts.Diagnostics.A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement; return grammarErrorOnNode(node, message); } else { - var message = node.kind === 185 ? ts.Diagnostics.A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement : ts.Diagnostics.A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement; - return grammarErrorOnNode(node, message); + var _message = node.kind === 185 + ? ts.Diagnostics.A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement + : ts.Diagnostics.A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement; + return grammarErrorOnNode(node, _message); } } function checkGrammarBindingElement(node) { @@ -22203,7 +17662,8 @@ var ts; } } var checkLetConstNames = languageVersion >= 2 && (ts.isLet(node) || ts.isConst(node)); - return (checkLetConstNames && checkGrammarNameInLetOrConstDeclarations(node.name)) || checkGrammarEvalOrArgumentsInStrictMode(node, node.name); + return (checkLetConstNames && checkGrammarNameInLetOrConstDeclarations(node.name)) || + checkGrammarEvalOrArgumentsInStrictMode(node, node.name); } function checkGrammarNameInLetOrConstDeclarations(name) { if (name.kind === 64) { @@ -22213,8 +17673,9 @@ var ts; } else { var elements = name.elements; - for (var i = 0; i < elements.length; ++i) { - checkGrammarNameInLetOrConstDeclarations(elements[i].name); + for (var _i = 0, _n = elements.length; _i < _n; _i++) { + var element = elements[_i]; + checkGrammarNameInLetOrConstDeclarations(element.name); } } } @@ -22270,8 +17731,8 @@ var ts; if (!enumIsConst) { var inConstantEnumMemberSection = true; var inAmbientContext = ts.isInAmbientContext(enumDecl); - for (var i = 0, n = enumDecl.members.length; i < n; i++) { - var node = enumDecl.members[i]; + for (var _i = 0, _a = enumDecl.members, _n = _a.length; _i < _n; _i++) { + var node = _a[_i]; if (node.name.kind === 126) { hasError = grammarErrorOnNode(node.name, ts.Diagnostics.Computed_property_names_are_not_allowed_in_enums); } @@ -22335,7 +17796,8 @@ var ts; } function checkGrammarProperty(node) { if (node.parent.kind === 196) { - if (checkGrammarForInvalidQuestionMark(node, node.questionToken, ts.Diagnostics.A_class_member_cannot_be_declared_optional) || checkGrammarForNonSymbolComputedProperty(node.name, ts.Diagnostics.A_computed_property_name_in_a_class_property_declaration_must_directly_refer_to_a_built_in_symbol)) { + if (checkGrammarForInvalidQuestionMark(node, node.questionToken, ts.Diagnostics.A_class_member_cannot_be_declared_optional) || + checkGrammarForNonSymbolComputedProperty(node.name, ts.Diagnostics.A_computed_property_name_in_a_class_property_declaration_must_directly_refer_to_a_built_in_symbol)) { return true; } } @@ -22354,14 +17816,19 @@ var ts; } } function checkGrammarTopLevelElementForRequiredDeclareModifier(node) { - if (node.kind === 197 || node.kind === 204 || node.kind === 203 || node.kind === 210 || node.kind === 209 || (node.flags & 2)) { + if (node.kind === 197 || + node.kind === 204 || + node.kind === 203 || + node.kind === 210 || + node.kind === 209 || + (node.flags & 2)) { return false; } return grammarErrorOnFirstToken(node, ts.Diagnostics.A_declare_modifier_is_required_for_a_top_level_declaration_in_a_d_ts_file); } function checkGrammarTopLevelElementsForRequiredDeclareModifier(file) { - for (var i = 0, n = file.statements.length; i < n; i++) { - var decl = file.statements[i]; + for (var _i = 0, _a = file.statements, _n = _a.length; _i < _n; _i++) { + var decl = _a[_i]; if (ts.isDeclaration(decl) || decl.kind === 175) { if (checkGrammarTopLevelElementForRequiredDeclareModifier(decl)) { return true; @@ -22382,9 +17849,9 @@ var ts; return getNodeLinks(node).hasReportedStatementInAmbientContext = grammarErrorOnFirstToken(node, ts.Diagnostics.An_implementation_cannot_be_declared_in_ambient_contexts); } if (node.parent.kind === 174 || node.parent.kind === 201 || node.parent.kind === 221) { - var links = getNodeLinks(node.parent); - if (!links.hasReportedStatementInAmbientContext) { - return links.hasReportedStatementInAmbientContext = grammarErrorOnFirstToken(node, ts.Diagnostics.Statements_are_not_allowed_in_ambient_contexts); + var _links = getNodeLinks(node.parent); + if (!_links.hasReportedStatementInAmbientContext) { + return _links.hasReportedStatementInAmbientContext = grammarErrorOnFirstToken(node, ts.Diagnostics.Statements_are_not_allowed_in_ambient_contexts); } } else { @@ -22416,10 +17883,7 @@ var ts; })(ts || (ts = {})); var ts; (function (ts) { - var indentStrings = [ - "", - " " - ]; + var indentStrings = ["", " "]; function getIndentString(level) { if (indentStrings[level] === undefined) { indentStrings[level] = getIndentString(level - 1) + indentStrings[1]; @@ -22494,34 +17958,21 @@ var ts; writeTextOfNode: writeTextOfNode, writeLiteral: writeLiteral, writeLine: writeLine, - increaseIndent: function () { - return indent++; - }, - decreaseIndent: function () { - return indent--; - }, - getIndent: function () { - return indent; - }, - getTextPos: function () { - return output.length; - }, - getLine: function () { - return lineCount + 1; - }, - getColumn: function () { - return lineStart ? indent * getIndentSize() + 1 : output.length - linePos + 1; - }, - getText: function () { - return output; - } + increaseIndent: function () { return indent++; }, + decreaseIndent: function () { return indent--; }, + getIndent: function () { return indent; }, + getTextPos: function () { return output.length; }, + getLine: function () { return lineCount + 1; }, + getColumn: function () { return lineStart ? indent * getIndentSize() + 1 : output.length - linePos + 1; }, + getText: function () { return output; } }; } function getLineOfLocalPosition(currentSourceFile, pos) { return ts.getLineAndCharacterOfPosition(currentSourceFile, pos).line; } function emitNewLineBeforeLeadingComments(currentSourceFile, writer, node, leadingComments) { - if (leadingComments && leadingComments.length && node.pos !== leadingComments[0].pos && getLineOfLocalPosition(currentSourceFile, node.pos) !== getLineOfLocalPosition(currentSourceFile, leadingComments[0].pos)) { + if (leadingComments && leadingComments.length && node.pos !== leadingComments[0].pos && + getLineOfLocalPosition(currentSourceFile, node.pos) !== getLineOfLocalPosition(currentSourceFile, leadingComments[0].pos)) { writer.writeLine(); } } @@ -22550,7 +18001,9 @@ var ts; var lineCount = ts.getLineStarts(currentSourceFile).length; var firstCommentLineIndent; for (var pos = comment.pos, currentLine = firstCommentLineAndCharacter.line; pos < comment.end; currentLine++) { - var nextLineStart = (currentLine + 1) === lineCount ? currentSourceFile.text.length + 1 : ts.getStartPositionOfLine(currentLine + 1, currentSourceFile); + var nextLineStart = (currentLine + 1) === lineCount + ? currentSourceFile.text.length + 1 + : ts.getStartPositionOfLine(currentLine + 1, currentSourceFile); if (pos !== comment.pos) { if (firstCommentLineIndent === undefined) { firstCommentLineIndent = calculateIndent(ts.getStartPositionOfLine(firstCommentLineAndCharacter.line, currentSourceFile), comment.pos); @@ -22628,7 +18081,8 @@ var ts; } else { ts.forEach(declarations, function (member) { - if ((member.kind === 134 || member.kind === 135) && (member.flags & 128) === (accessor.flags & 128)) { + if ((member.kind === 134 || member.kind === 135) + && (member.flags & 128) === (accessor.flags & 128)) { var memberName = ts.getPropertyNameForPropertyNameNode(member.name); var accessorName = ts.getPropertyNameForPropertyNameNode(accessor.name); if (memberName === accessorName) { @@ -22658,11 +18112,12 @@ var ts; } function getOwnEmitOutputFilePath(sourceFile, host, extension) { var compilerOptions = host.getCompilerOptions(); + var emitOutputFilePathWithoutExtension; if (compilerOptions.outDir) { - var emitOutputFilePathWithoutExtension = ts.removeFileExtension(getSourceFilePathInNewDir(sourceFile, host, compilerOptions.outDir)); + emitOutputFilePathWithoutExtension = ts.removeFileExtension(getSourceFilePathInNewDir(sourceFile, host, compilerOptions.outDir)); } else { - var emitOutputFilePathWithoutExtension = ts.removeFileExtension(sourceFile.fileName); + emitOutputFilePathWithoutExtension = ts.removeFileExtension(sourceFile.fileName); } return emitOutputFilePathWithoutExtension + extension; } @@ -22684,8 +18139,7 @@ var ts; var enclosingDeclaration; var currentSourceFile; var reportedDeclarationError = false; - var emitJsDocComments = compilerOptions.removeComments ? function (declaration) { - } : writeJsDocComments; + var emitJsDocComments = compilerOptions.removeComments ? function (declaration) { } : writeJsDocComments; var emit = compilerOptions.stripInternal ? stripInternal : emitNode; var aliasDeclarationEmitInfo = []; var referencePathsOutput = ""; @@ -22694,7 +18148,9 @@ var ts; var addedGlobalFileReference = false; ts.forEach(root.referencedFiles, function (fileReference) { var referencedFile = ts.tryResolveScriptReference(host, root, fileReference); - if (referencedFile && ((referencedFile.flags & 2048) || shouldEmitToOwnFile(referencedFile, compilerOptions) || !addedGlobalFileReference)) { + if (referencedFile && ((referencedFile.flags & 2048) || + shouldEmitToOwnFile(referencedFile, compilerOptions) || + !addedGlobalFileReference)) { writeReferencePath(referencedFile); if (!isExternalModuleOrDeclarationFile(referencedFile)) { addedGlobalFileReference = true; @@ -22711,7 +18167,8 @@ var ts; if (!compilerOptions.noResolve) { ts.forEach(sourceFile.referencedFiles, function (fileReference) { var referencedFile = ts.tryResolveScriptReference(host, sourceFile, fileReference); - if (referencedFile && (isExternalModuleOrDeclarationFile(referencedFile) && !ts.contains(emittedReferencedFiles, referencedFile))) { + if (referencedFile && (isExternalModuleOrDeclarationFile(referencedFile) && + !ts.contains(emittedReferencedFiles, referencedFile))) { writeReferencePath(referencedFile); emittedReferencedFiles.push(referencedFile); } @@ -22742,17 +18199,17 @@ var ts; } } function createAndSetNewTextWriterWithSymbolWriter() { - var writer = createTextWriter(newLine); - writer.trackSymbol = trackSymbol; - writer.writeKeyword = writer.write; - writer.writeOperator = writer.write; - writer.writePunctuation = writer.write; - writer.writeSpace = writer.write; - writer.writeStringLiteral = writer.writeLiteral; - writer.writeParameter = writer.write; - writer.writeSymbol = writer.write; - setWriter(writer); - return writer; + var _writer = createTextWriter(newLine); + _writer.trackSymbol = trackSymbol; + _writer.writeKeyword = _writer.write; + _writer.writeOperator = _writer.write; + _writer.writePunctuation = _writer.write; + _writer.writeSpace = _writer.write; + _writer.writeStringLiteral = _writer.writeLiteral; + _writer.writeParameter = _writer.write; + _writer.writeSymbol = _writer.write; + setWriter(_writer); + return _writer; } function setWriter(newWriter) { writer = newWriter; @@ -22765,9 +18222,7 @@ var ts; function writeAsychronousImportEqualsDeclarations(importEqualsDeclarations) { var oldWriter = writer; ts.forEach(importEqualsDeclarations, function (aliasToWrite) { - var aliasEmitInfo = ts.forEach(aliasDeclarationEmitInfo, function (declEmitInfo) { - return declEmitInfo.declaration === aliasToWrite ? declEmitInfo : undefined; - }); + var aliasEmitInfo = ts.forEach(aliasDeclarationEmitInfo, function (declEmitInfo) { return declEmitInfo.declaration === aliasToWrite ? declEmitInfo : undefined; }); if (aliasEmitInfo) { createAndSetNewTextWriterWithSymbolWriter(); for (var declarationIndent = aliasEmitInfo.indent; declarationIndent; declarationIndent--) { @@ -22822,18 +18277,20 @@ var ts; } } function emitLines(nodes) { - for (var i = 0, n = nodes.length; i < n; i++) { - emit(nodes[i]); + for (var _i = 0, _n = nodes.length; _i < _n; _i++) { + var node = nodes[_i]; + emit(node); } } function emitSeparatedList(nodes, separator, eachNodeEmitFn) { var currentWriterPos = writer.getTextPos(); - for (var i = 0, n = nodes.length; i < n; i++) { + for (var _i = 0, _n = nodes.length; _i < _n; _i++) { + var node = nodes[_i]; if (currentWriterPos !== writer.getTextPos()) { write(separator); } currentWriterPos = writer.getTextPos(); - eachNodeEmitFn(nodes[i]); + eachNodeEmitFn(node); } } function emitCommaList(nodes, eachNodeEmitFn) { @@ -23092,8 +18549,15 @@ var ts; writeTextOfNode(currentSourceFile, node.name); if (node.constraint && !isPrivateMethodTypeParameter(node)) { write(" extends "); - if (node.parent.kind === 140 || node.parent.kind === 141 || (node.parent.parent && node.parent.parent.kind === 143)) { - ts.Debug.assert(node.parent.kind === 132 || node.parent.kind === 131 || node.parent.kind === 140 || node.parent.kind === 141 || node.parent.kind === 136 || node.parent.kind === 137); + if (node.parent.kind === 140 || + node.parent.kind === 141 || + (node.parent.parent && node.parent.parent.kind === 143)) { + ts.Debug.assert(node.parent.kind === 132 || + node.parent.kind === 131 || + node.parent.kind === 140 || + node.parent.kind === 141 || + node.parent.kind === 136 || + node.parent.kind === 137); emitType(node.constraint); } else { @@ -23156,7 +18620,9 @@ var ts; function getHeritageClauseVisibilityError(symbolAccesibilityResult) { var diagnosticMessage; if (node.parent.parent.kind === 196) { - diagnosticMessage = isImplementsList ? ts.Diagnostics.Implements_clause_of_exported_class_0_has_or_is_using_private_name_1 : ts.Diagnostics.Extends_clause_of_exported_class_0_has_or_is_using_private_name_1; + diagnosticMessage = isImplementsList ? + ts.Diagnostics.Implements_clause_of_exported_class_0_has_or_is_using_private_name_1 : + ts.Diagnostics.Extends_clause_of_exported_class_0_has_or_is_using_private_name_1; } else { diagnosticMessage = ts.Diagnostics.Extends_clause_of_exported_interface_0_has_or_is_using_private_name_1; @@ -23189,9 +18655,7 @@ var ts; emitTypeParameters(node.typeParameters); var baseTypeNode = ts.getClassBaseTypeNode(node); if (baseTypeNode) { - emitHeritageClause([ - baseTypeNode - ], false); + emitHeritageClause([baseTypeNode], false); } emitHeritageClause(ts.getClassImplementedTypeNodes(node), true); write(" {"); @@ -23251,17 +18715,31 @@ var ts; function getVariableDeclarationTypeVisibilityError(symbolAccesibilityResult) { var diagnosticMessage; if (node.kind === 193) { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 ? ts.Diagnostics.Exported_variable_0_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : ts.Diagnostics.Exported_variable_0_has_or_is_using_name_1_from_private_module_2 : ts.Diagnostics.Exported_variable_0_has_or_is_using_private_name_1; + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + symbolAccesibilityResult.accessibility === 2 ? + ts.Diagnostics.Exported_variable_0_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : + ts.Diagnostics.Exported_variable_0_has_or_is_using_name_1_from_private_module_2 : + ts.Diagnostics.Exported_variable_0_has_or_is_using_private_name_1; } else if (node.kind === 130 || node.kind === 129) { if (node.flags & 128) { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 ? ts.Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : ts.Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2 : ts.Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_private_name_1; + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + symbolAccesibilityResult.accessibility === 2 ? + ts.Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : + ts.Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2 : + ts.Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_private_name_1; } else if (node.parent.kind === 196) { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 ? ts.Diagnostics.Public_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : ts.Diagnostics.Public_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2 : ts.Diagnostics.Public_property_0_of_exported_class_has_or_is_using_private_name_1; + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + symbolAccesibilityResult.accessibility === 2 ? + ts.Diagnostics.Public_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : + ts.Diagnostics.Public_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2 : + ts.Diagnostics.Public_property_0_of_exported_class_has_or_is_using_private_name_1; } else { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? ts.Diagnostics.Property_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2 : ts.Diagnostics.Property_0_of_exported_interface_has_or_is_using_private_name_1; + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + ts.Diagnostics.Property_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2 : + ts.Diagnostics.Property_0_of_exported_interface_has_or_is_using_private_name_1; } } return diagnosticMessage !== undefined ? { @@ -23278,9 +18756,7 @@ var ts; } } function emitVariableStatement(node) { - var hasDeclarationWithEmit = ts.forEach(node.declarationList.declarations, function (varDeclaration) { - return resolver.isDeclarationVisible(varDeclaration); - }); + var hasDeclarationWithEmit = ts.forEach(node.declarationList.declarations, function (varDeclaration) { return resolver.isDeclarationVisible(varDeclaration); }); if (hasDeclarationWithEmit) { emitJsDocComments(node); emitModuleElementDeclarationFlags(node); @@ -23303,13 +18779,14 @@ var ts; return; } var accessors = getAllAccessorDeclarations(node.parent.members, node); + var accessorWithTypeAnnotation; if (node === accessors.firstAccessor) { emitJsDocComments(accessors.getAccessor); emitJsDocComments(accessors.setAccessor); emitClassMemberDeclarationFlags(node); writeTextOfNode(currentSourceFile, node.name); if (!(node.flags & 32)) { - var accessorWithTypeAnnotation = node; + accessorWithTypeAnnotation = node; var type = getTypeAnnotationFromAccessor(node); if (!type) { var anotherAccessor = node.kind === 134 ? accessors.setAccessor : accessors.getAccessor; @@ -23325,17 +18802,25 @@ var ts; } function getTypeAnnotationFromAccessor(accessor) { if (accessor) { - return accessor.kind === 134 ? accessor.type : accessor.parameters.length > 0 ? accessor.parameters[0].type : undefined; + return accessor.kind === 134 + ? accessor.type + : accessor.parameters.length > 0 + ? accessor.parameters[0].type + : undefined; } } function getAccessorDeclarationTypeVisibilityError(symbolAccesibilityResult) { var diagnosticMessage; if (accessorWithTypeAnnotation.kind === 135) { if (accessorWithTypeAnnotation.parent.flags & 128) { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? ts.Diagnostics.Parameter_0_of_public_static_property_setter_from_exported_class_has_or_is_using_name_1_from_private_module_2 : ts.Diagnostics.Parameter_0_of_public_static_property_setter_from_exported_class_has_or_is_using_private_name_1; + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + ts.Diagnostics.Parameter_0_of_public_static_property_setter_from_exported_class_has_or_is_using_name_1_from_private_module_2 : + ts.Diagnostics.Parameter_0_of_public_static_property_setter_from_exported_class_has_or_is_using_private_name_1; } else { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? ts.Diagnostics.Parameter_0_of_public_property_setter_from_exported_class_has_or_is_using_name_1_from_private_module_2 : ts.Diagnostics.Parameter_0_of_public_property_setter_from_exported_class_has_or_is_using_private_name_1; + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + ts.Diagnostics.Parameter_0_of_public_property_setter_from_exported_class_has_or_is_using_name_1_from_private_module_2 : + ts.Diagnostics.Parameter_0_of_public_property_setter_from_exported_class_has_or_is_using_private_name_1; } return { diagnosticMessage: diagnosticMessage, @@ -23345,10 +18830,18 @@ var ts; } else { if (accessorWithTypeAnnotation.flags & 128) { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 ? ts.Diagnostics.Return_type_of_public_static_property_getter_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named : ts.Diagnostics.Return_type_of_public_static_property_getter_from_exported_class_has_or_is_using_name_0_from_private_module_1 : ts.Diagnostics.Return_type_of_public_static_property_getter_from_exported_class_has_or_is_using_private_name_0; + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + symbolAccesibilityResult.accessibility === 2 ? + ts.Diagnostics.Return_type_of_public_static_property_getter_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named : + ts.Diagnostics.Return_type_of_public_static_property_getter_from_exported_class_has_or_is_using_name_0_from_private_module_1 : + ts.Diagnostics.Return_type_of_public_static_property_getter_from_exported_class_has_or_is_using_private_name_0; } else { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 ? ts.Diagnostics.Return_type_of_public_property_getter_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named : ts.Diagnostics.Return_type_of_public_property_getter_from_exported_class_has_or_is_using_name_0_from_private_module_1 : ts.Diagnostics.Return_type_of_public_property_getter_from_exported_class_has_or_is_using_private_name_0; + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + symbolAccesibilityResult.accessibility === 2 ? + ts.Diagnostics.Return_type_of_public_property_getter_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named : + ts.Diagnostics.Return_type_of_public_property_getter_from_exported_class_has_or_is_using_name_0_from_private_module_1 : + ts.Diagnostics.Return_type_of_public_property_getter_from_exported_class_has_or_is_using_private_name_0; } return { diagnosticMessage: diagnosticMessage, @@ -23362,7 +18855,8 @@ var ts; if (ts.hasDynamicName(node)) { return; } - if ((node.kind !== 195 || resolver.isDeclarationVisible(node)) && !resolver.isImplementationOfOverload(node)) { + if ((node.kind !== 195 || resolver.isDeclarationVisible(node)) && + !resolver.isImplementationOfOverload(node)) { emitJsDocComments(node); if (node.kind === 195) { emitModuleElementDeclarationFlags(node); @@ -23429,28 +18923,48 @@ var ts; var diagnosticMessage; switch (node.kind) { case 137: - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? ts.Diagnostics.Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1 : ts.Diagnostics.Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_0; + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + ts.Diagnostics.Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1 : + ts.Diagnostics.Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_0; break; case 136: - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? ts.Diagnostics.Return_type_of_call_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1 : ts.Diagnostics.Return_type_of_call_signature_from_exported_interface_has_or_is_using_private_name_0; + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + ts.Diagnostics.Return_type_of_call_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1 : + ts.Diagnostics.Return_type_of_call_signature_from_exported_interface_has_or_is_using_private_name_0; break; case 138: - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? ts.Diagnostics.Return_type_of_index_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1 : ts.Diagnostics.Return_type_of_index_signature_from_exported_interface_has_or_is_using_private_name_0; + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + ts.Diagnostics.Return_type_of_index_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1 : + ts.Diagnostics.Return_type_of_index_signature_from_exported_interface_has_or_is_using_private_name_0; break; case 132: case 131: if (node.flags & 128) { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 ? ts.Diagnostics.Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named : ts.Diagnostics.Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_private_module_1 : ts.Diagnostics.Return_type_of_public_static_method_from_exported_class_has_or_is_using_private_name_0; + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + symbolAccesibilityResult.accessibility === 2 ? + ts.Diagnostics.Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named : + ts.Diagnostics.Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_private_module_1 : + ts.Diagnostics.Return_type_of_public_static_method_from_exported_class_has_or_is_using_private_name_0; } else if (node.parent.kind === 196) { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 ? ts.Diagnostics.Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named : ts.Diagnostics.Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_private_module_1 : ts.Diagnostics.Return_type_of_public_method_from_exported_class_has_or_is_using_private_name_0; + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + symbolAccesibilityResult.accessibility === 2 ? + ts.Diagnostics.Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named : + ts.Diagnostics.Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_private_module_1 : + ts.Diagnostics.Return_type_of_public_method_from_exported_class_has_or_is_using_private_name_0; } else { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? ts.Diagnostics.Return_type_of_method_from_exported_interface_has_or_is_using_name_0_from_private_module_1 : ts.Diagnostics.Return_type_of_method_from_exported_interface_has_or_is_using_private_name_0; + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + ts.Diagnostics.Return_type_of_method_from_exported_interface_has_or_is_using_name_0_from_private_module_1 : + ts.Diagnostics.Return_type_of_method_from_exported_interface_has_or_is_using_private_name_0; } break; case 195: - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 ? ts.Diagnostics.Return_type_of_exported_function_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named : ts.Diagnostics.Return_type_of_exported_function_has_or_is_using_name_0_from_private_module_1 : ts.Diagnostics.Return_type_of_exported_function_has_or_is_using_private_name_0; + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + symbolAccesibilityResult.accessibility === 2 ? + ts.Diagnostics.Return_type_of_exported_function_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named : + ts.Diagnostics.Return_type_of_exported_function_has_or_is_using_name_0_from_private_module_1 : + ts.Diagnostics.Return_type_of_exported_function_has_or_is_using_private_name_0; break; default: ts.Debug.fail("This is unknown kind for signature: " + node.kind); @@ -23477,7 +18991,9 @@ var ts; write("?"); } decreaseIndent(); - if (node.parent.kind === 140 || node.parent.kind === 141 || node.parent.parent.kind === 143) { + if (node.parent.kind === 140 || + node.parent.kind === 141 || + node.parent.parent.kind === 143) { emitTypeOfVariableDeclarationFromTypeLiteral(node); } else if (!(node.parent.flags & 32)) { @@ -23487,28 +19003,50 @@ var ts; var diagnosticMessage; switch (node.parent.kind) { case 133: - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 ? ts.Diagnostics.Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : ts.Diagnostics.Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_private_module_2 : ts.Diagnostics.Parameter_0_of_constructor_from_exported_class_has_or_is_using_private_name_1; + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + symbolAccesibilityResult.accessibility === 2 ? + ts.Diagnostics.Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : + ts.Diagnostics.Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_private_module_2 : + ts.Diagnostics.Parameter_0_of_constructor_from_exported_class_has_or_is_using_private_name_1; break; case 137: - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? ts.Diagnostics.Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2 : ts.Diagnostics.Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1; + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + ts.Diagnostics.Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2 : + ts.Diagnostics.Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1; break; case 136: - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? ts.Diagnostics.Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2 : ts.Diagnostics.Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1; + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + ts.Diagnostics.Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2 : + ts.Diagnostics.Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1; break; case 132: case 131: if (node.parent.flags & 128) { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 ? ts.Diagnostics.Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : ts.Diagnostics.Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_private_module_2 : ts.Diagnostics.Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1; + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + symbolAccesibilityResult.accessibility === 2 ? + ts.Diagnostics.Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : + ts.Diagnostics.Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_private_module_2 : + ts.Diagnostics.Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1; } else if (node.parent.parent.kind === 196) { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 ? ts.Diagnostics.Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : ts.Diagnostics.Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_private_module_2 : ts.Diagnostics.Parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1; + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + symbolAccesibilityResult.accessibility === 2 ? + ts.Diagnostics.Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : + ts.Diagnostics.Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_private_module_2 : + ts.Diagnostics.Parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1; } else { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? ts.Diagnostics.Parameter_0_of_method_from_exported_interface_has_or_is_using_name_1_from_private_module_2 : ts.Diagnostics.Parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1; + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + ts.Diagnostics.Parameter_0_of_method_from_exported_interface_has_or_is_using_name_1_from_private_module_2 : + ts.Diagnostics.Parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1; } break; case 195: - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 ? ts.Diagnostics.Parameter_0_of_exported_function_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : ts.Diagnostics.Parameter_0_of_exported_function_has_or_is_using_name_1_from_private_module_2 : ts.Diagnostics.Parameter_0_of_exported_function_has_or_is_using_private_name_1; + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + symbolAccesibilityResult.accessibility === 2 ? + ts.Diagnostics.Parameter_0_of_exported_function_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : + ts.Diagnostics.Parameter_0_of_exported_function_has_or_is_using_name_1_from_private_module_2 : + ts.Diagnostics.Parameter_0_of_exported_function_has_or_is_using_private_name_1; break; default: ts.Debug.fail("This is unknown parent for parameter: " + node.parent.kind); @@ -23560,7 +19098,11 @@ var ts; } } function writeReferencePath(referencedFile) { - var declFileName = referencedFile.flags & 2048 ? referencedFile.fileName : shouldEmitToOwnFile(referencedFile, compilerOptions) ? getOwnEmitOutputFilePath(referencedFile, host, ".d.ts") : ts.removeFileExtension(compilerOptions.out) + ".d.ts"; + var declFileName = referencedFile.flags & 2048 + ? referencedFile.fileName + : shouldEmitToOwnFile(referencedFile, compilerOptions) + ? getOwnEmitOutputFilePath(referencedFile, host, ".d.ts") + : ts.removeFileExtension(compilerOptions.out) + ".d.ts"; declFileName = ts.getRelativePathToDirectoryOrUrl(ts.getDirectoryPath(ts.normalizeSlashes(jsFilePath)), declFileName, host.getCurrentDirectory(), host.getCanonicalFileName, false); referencePathsOutput += "/// " + newLine; } @@ -23624,28 +19166,20 @@ var ts; var exportSpecifiers; var exportDefault; var writeEmittedFiles = writeJavaScriptFile; - var emitLeadingComments = compilerOptions.removeComments ? function (node) { - } : emitLeadingDeclarationComments; - var emitTrailingComments = compilerOptions.removeComments ? function (node) { - } : emitTrailingDeclarationComments; - var emitLeadingCommentsOfPosition = compilerOptions.removeComments ? function (pos) { - } : emitLeadingCommentsOfLocalPosition; + var emitLeadingComments = compilerOptions.removeComments ? function (node) { } : emitLeadingDeclarationComments; + var emitTrailingComments = compilerOptions.removeComments ? function (node) { } : emitTrailingDeclarationComments; + var emitLeadingCommentsOfPosition = compilerOptions.removeComments ? function (pos) { } : emitLeadingCommentsOfLocalPosition; var detachedCommentsInfo; - var emitDetachedComments = compilerOptions.removeComments ? function (node) { - } : emitDetachedCommentsAtPosition; + var emitDetachedComments = compilerOptions.removeComments ? function (node) { } : emitDetachedCommentsAtPosition; var writeComment = writeCommentRange; var emitNodeWithoutSourceMap = compilerOptions.removeComments ? emitNodeWithoutSourceMapWithoutComments : emitNodeWithoutSourceMapWithComments; var emit = emitNodeWithoutSourceMap; var emitWithoutComments = emitNodeWithoutSourceMapWithoutComments; - var emitStart = function (node) { - }; - var emitEnd = function (node) { - }; + var emitStart = function (node) { }; + var emitEnd = function (node) { }; var emitToken = emitTokenText; - var scopeEmitStart = function (scopeDeclaration, scopeName) { - }; - var scopeEmitEnd = function () { - }; + var scopeEmitStart = function (scopeDeclaration, scopeName) { }; + var scopeEmitEnd = function () { }; var sourceMapData; if (compilerOptions.sourceMap) { initializeEmitterWithSourceMaps(); @@ -23671,10 +19205,7 @@ var ts; var names = currentScopeNames; currentScopeNames = undefined; if (names) { - lastFrame = { - names: names, - previous: lastFrame - }; + lastFrame = { names: names, previous: lastFrame }; return true; } return false; @@ -23689,16 +19220,14 @@ var ts; } } function generateUniqueNameForLocation(location, baseName) { - var name; + var _name; if (!isExistingName(location, baseName)) { - name = baseName; + _name = baseName; } else { - name = ts.generateUniqueName(baseName, function (n) { - return isExistingName(location, n); - }); + _name = ts.generateUniqueName(baseName, function (n) { return isExistingName(location, n); }); } - return recordNameInCurrentScope(name); + return recordNameInCurrentScope(_name); } function recordNameInCurrentScope(name) { if (!currentScopeNames) { @@ -23796,7 +19325,12 @@ var ts; sourceLinePos.character++; var emittedLine = writer.getLine(); var emittedColumn = writer.getColumn(); - if (!lastRecordedSourceMapSpan || lastRecordedSourceMapSpan.emittedLine != emittedLine || lastRecordedSourceMapSpan.emittedColumn != emittedColumn || (lastRecordedSourceMapSpan.sourceIndex === sourceMapSourceIndex && (lastRecordedSourceMapSpan.sourceLine > sourceLinePos.line || (lastRecordedSourceMapSpan.sourceLine === sourceLinePos.line && lastRecordedSourceMapSpan.sourceColumn > sourceLinePos.character)))) { + if (!lastRecordedSourceMapSpan || + lastRecordedSourceMapSpan.emittedLine != emittedLine || + lastRecordedSourceMapSpan.emittedColumn != emittedColumn || + (lastRecordedSourceMapSpan.sourceIndex === sourceMapSourceIndex && + (lastRecordedSourceMapSpan.sourceLine > sourceLinePos.line || + (lastRecordedSourceMapSpan.sourceLine === sourceLinePos.line && lastRecordedSourceMapSpan.sourceColumn > sourceLinePos.character)))) { encodeLastRecordedSourceMapSpan(); lastRecordedSourceMapSpan = { emittedLine: emittedLine, @@ -23841,8 +19375,8 @@ var ts; if (scopeName) { var parentIndex = getSourceMapNameIndex(); if (parentIndex !== -1) { - var name = node.name; - if (!name || name.kind !== 126) { + var _name = node.name; + if (!_name || _name.kind !== 126) { scopeName = "." + scopeName; } scopeName = sourceMapData.sourceMapNames[parentIndex] + scopeName; @@ -23859,10 +19393,20 @@ var ts; if (scopeName) { recordScopeNameStart(scopeName); } - else if (node.kind === 195 || node.kind === 160 || node.kind === 132 || node.kind === 131 || node.kind === 134 || node.kind === 135 || node.kind === 200 || node.kind === 196 || node.kind === 199) { + else if (node.kind === 195 || + node.kind === 160 || + node.kind === 132 || + node.kind === 131 || + node.kind === 134 || + node.kind === 135 || + node.kind === 200 || + node.kind === 196 || + node.kind === 199) { if (node.name) { - var name = node.name; - scopeName = name.kind === 126 ? ts.getTextOfNode(name) : node.name.text; + var _name = node.name; + scopeName = _name.kind === 126 + ? ts.getTextOfNode(_name) + : node.name.text; } recordScopeNameStart(scopeName); } @@ -23976,14 +19520,18 @@ var ts; function writeJavaScriptFile(emitOutput, writeByteOrderMark) { writeFile(host, diagnostics, jsFilePath, emitOutput, writeByteOrderMark); } - function createTempVariable(location, forLoopVariable) { - var name = forLoopVariable ? "_i" : undefined; - while (true) { - if (name && !isExistingName(location, name)) { - break; + function createTempVariable(location, preferredName) { + for (var name = preferredName; !name || isExistingName(location, name); tempCount++) { + var char = 97 + tempCount; + if (char === 105 || char === 110) { + continue; + } + if (tempCount < 26) { + name = "_" + String.fromCharCode(char); + } + else { + name = "_" + (tempCount - 26); } - name = "_" + (tempCount < 25 ? String.fromCharCode(tempCount + (tempCount < 8 ? 0 : 1) + 97) : tempCount - 25); - tempCount++; } recordNameInCurrentScope(name); var result = ts.createSynthesizedNode(64); @@ -23996,8 +19544,8 @@ var ts; } tempVariables.push(name); } - function createAndRecordTempVariable(location) { - var temp = createTempVariable(location, false); + function createAndRecordTempVariable(location, preferredName) { + var temp = createTempVariable(location, preferredName); recordTempDeclaration(temp); return temp; } @@ -24205,7 +19753,8 @@ var ts; if (node.template.kind === 169) { ts.forEach(node.template.templateSpans, function (templateSpan) { write(", "); - var needsParens = templateSpan.expression.kind === 167 && templateSpan.expression.operatorToken.kind === 23; + var needsParens = templateSpan.expression.kind === 167 + && templateSpan.expression.operatorToken.kind === 23; emitParenthesizedIf(templateSpan.expression, needsParens); }); } @@ -24216,7 +19765,8 @@ var ts; ts.forEachChild(node, emit); return; } - var emitOuterParens = ts.isExpression(node.parent) && templateNeedsParens(node, node.parent); + var emitOuterParens = ts.isExpression(node.parent) + && templateNeedsParens(node, node.parent); if (emitOuterParens) { write("("); } @@ -24225,9 +19775,10 @@ var ts; emitLiteral(node.head); headEmitted = true; } - for (var i = 0; i < node.templateSpans.length; i++) { + for (var i = 0, n = node.templateSpans.length; i < n; i++) { var templateSpan = node.templateSpans[i]; - var needsParens = templateSpan.expression.kind !== 159 && comparePrecedenceToBinaryPlus(templateSpan.expression) !== 1; + var needsParens = templateSpan.expression.kind !== 159 + && comparePrecedenceToBinaryPlus(templateSpan.expression) !== 1; if (i > 0 || headEmitted) { write(" + "); } @@ -24301,8 +19852,8 @@ var ts; } } function isNotExpressionIdentifier(node) { - var parent = node.parent; - switch (parent.kind) { + var _parent = node.parent; + switch (_parent.kind) { case 128: case 193: case 150: @@ -24322,7 +19873,7 @@ var ts; case 199: case 200: case 203: - return parent.name === node; + return _parent.name === node; case 185: case 184: case 209: @@ -24429,8 +19980,8 @@ var ts; function emitListWithSpread(elements, multiLine, trailingComma) { var pos = 0; var group = 0; - var length = elements.length; - while (pos < length) { + var _length = elements.length; + while (pos < _length) { if (group === 1) { write(".concat("); } @@ -24445,14 +19996,14 @@ var ts; } else { var i = pos; - while (i < length && elements[i].kind !== 171) { + while (i < _length && elements[i].kind !== 171) { i++; } write("["); if (multiLine) { increaseIndent(); } - emitList(elements, pos, i - pos, multiLine, trailingComma && i === length); + emitList(elements, pos, i - pos, multiLine, trailingComma && i === _length); if (multiLine) { decreaseIndent(); } @@ -24528,8 +20079,8 @@ var ts; var propertyDescriptor = ts.createSynthesizedNode(152); var descriptorProperties = []; if (getAccessor) { - var getProperty = createPropertyAssignment(createIdentifier("get"), createFunctionExpression(getAccessor.parameters, getAccessor.body)); - descriptorProperties.push(getProperty); + var _getProperty = createPropertyAssignment(createIdentifier("get"), createFunctionExpression(getAccessor.parameters, getAccessor.body)); + descriptorProperties.push(_getProperty); } if (setAccessor) { var setProperty = createPropertyAssignment(createIdentifier("set"), createFunctionExpression(setAccessor.parameters, setAccessor.body)); @@ -24642,7 +20193,6 @@ var ts; } } write("{"); - var properties = node.properties; if (properties.length) { emitLinePreservingList(node, properties, languageVersion >= 1, true); } @@ -24725,9 +20275,7 @@ var ts; write("]"); } function hasSpreadElement(elements) { - return ts.forEach(elements, function (e) { - return e.kind === 171; - }); + return ts.forEach(elements, function (e) { return e.kind === 171; }); } function skipParentheses(node) { while (node.kind === 159 || node.kind === 158) { @@ -24840,7 +20388,14 @@ var ts; while (operand.kind == 158) { operand = operand.expression; } - if (operand.kind !== 165 && operand.kind !== 164 && operand.kind !== 163 && operand.kind !== 162 && operand.kind !== 166 && operand.kind !== 156 && !(operand.kind === 155 && node.parent.kind === 156) && !(operand.kind === 160 && node.parent.kind === 155)) { + if (operand.kind !== 165 && + operand.kind !== 164 && + operand.kind !== 163 && + operand.kind !== 162 && + operand.kind !== 166 && + operand.kind !== 156 && + !(operand.kind === 155 && node.parent.kind === 156) && + !(operand.kind === 160 && node.parent.kind === 155)) { emit(operand); return; } @@ -24883,7 +20438,8 @@ var ts; write(ts.tokenToString(node.operator)); } function emitBinaryExpression(node) { - if (languageVersion < 2 && node.operatorToken.kind === 52 && (node.left.kind === 152 || node.left.kind === 151)) { + if (languageVersion < 2 && node.operatorToken.kind === 52 && + (node.left.kind === 152 || node.left.kind === 151)) { emitDestructuring(node, node.parent.kind === 177); } else { @@ -25081,8 +20637,9 @@ var ts; write(" "); endPos = emitToken(16, endPos); var rhsIsIdentifier = node.expression.kind === 64; - var counter = createTempVariable(node, true); - var rhsReference = rhsIsIdentifier ? node.expression : createTempVariable(node, false); + var counter = createTempVariable(node, "_i"); + var rhsReference = rhsIsIdentifier ? node.expression : createTempVariable(node); + var cachedLength = compilerOptions.cacheDownlevelForOfLength ? createTempVariable(node, "_n") : undefined; emitStart(node.expression); write("var "); emitNodeWithoutSourceMap(counter); @@ -25096,12 +20653,24 @@ var ts; emitNodeWithoutSourceMap(node.expression); emitEnd(node.expression); } + if (cachedLength) { + write(", "); + emitNodeWithoutSourceMap(cachedLength); + write(" = "); + emitNodeWithoutSourceMap(rhsReference); + write(".length"); + } write("; "); emitStart(node.initializer); emitNodeWithoutSourceMap(counter); write(" < "); - emitNodeWithoutSourceMap(rhsReference); - write(".length"); + if (cachedLength) { + emitNodeWithoutSourceMap(cachedLength); + } + else { + emitNodeWithoutSourceMap(rhsReference); + write(".length"); + } emitEnd(node.initializer); write("; "); emitStart(node.initializer); @@ -25129,7 +20698,7 @@ var ts; } } else { - emitNodeWithoutSourceMap(createTempVariable(node, false)); + emitNodeWithoutSourceMap(createTempVariable(node)); write(" = "); emitNodeWithoutSourceMap(rhsIterationValue); } @@ -25190,13 +20759,16 @@ var ts; emitToken(15, node.clauses.end); } function nodeStartPositionsAreOnSameLine(node1, node2) { - return getLineOfLocalPosition(currentSourceFile, ts.skipTrivia(currentSourceFile.text, node1.pos)) === getLineOfLocalPosition(currentSourceFile, ts.skipTrivia(currentSourceFile.text, node2.pos)); + return getLineOfLocalPosition(currentSourceFile, ts.skipTrivia(currentSourceFile.text, node1.pos)) === + getLineOfLocalPosition(currentSourceFile, ts.skipTrivia(currentSourceFile.text, node2.pos)); } function nodeEndPositionsAreOnSameLine(node1, node2) { - return getLineOfLocalPosition(currentSourceFile, node1.end) === getLineOfLocalPosition(currentSourceFile, node2.end); + return getLineOfLocalPosition(currentSourceFile, node1.end) === + getLineOfLocalPosition(currentSourceFile, node2.end); } function nodeEndIsOnSameLineAsNodeStart(node1, node2) { - return getLineOfLocalPosition(currentSourceFile, node1.end) === getLineOfLocalPosition(currentSourceFile, ts.skipTrivia(currentSourceFile.text, node2.pos)); + return getLineOfLocalPosition(currentSourceFile, node1.end) === + getLineOfLocalPosition(currentSourceFile, ts.skipTrivia(currentSourceFile.text, node2.pos)); } function emitCaseOrDefaultClause(node) { if (node.kind === 214) { @@ -25294,7 +20866,7 @@ var ts; } function emitDestructuring(root, isAssignmentExpressionStatement, value, lowestNonSynthesizedAncestor) { var emitCount = 0; - var isDeclaration = (root.kind === 193 && !(ts.getCombinedNodeFlags(root) & 1)) || root.kind === 128; + var _isDeclaration = (root.kind === 193 && !(ts.getCombinedNodeFlags(root) & 1)) || root.kind === 128; if (root.kind === 167) { emitAssignmentExpression(root); } @@ -25319,7 +20891,7 @@ var ts; function ensureIdentifier(expr) { if (expr.kind !== 64) { var identifier = createTempVariable(lowestNonSynthesizedAncestor || root); - if (!isDeclaration) { + if (!_isDeclaration) { recordTempDeclaration(identifier); } emitAssignment(identifier, expr); @@ -25374,8 +20946,8 @@ var ts; if (properties.length !== 1) { value = ensureIdentifier(value); } - for (var i = 0; i < properties.length; i++) { - var p = properties[i]; + for (var _i = 0, _n = properties.length; _i < _n; _i++) { + var p = properties[_i]; if (p.kind === 218 || p.kind === 219) { var propName = (p.name); emitDestructuringAssignment(p.initializer || propName, createPropertyAccess(value, propName)); @@ -25420,18 +20992,18 @@ var ts; } function emitAssignmentExpression(root) { var target = root.left; - var value = root.right; + var _value = root.right; if (isAssignmentExpressionStatement) { - emitDestructuringAssignment(target, value); + emitDestructuringAssignment(target, _value); } else { if (root.parent.kind !== 159) { write("("); } - value = ensureIdentifier(value); - emitDestructuringAssignment(target, value); + _value = ensureIdentifier(_value); + emitDestructuringAssignment(target, _value); write(", "); - emit(value); + emit(_value); if (root.parent.kind !== 159) { write(")"); } @@ -25490,8 +21062,11 @@ var ts; emitModuleMemberName(node); var initializer = node.initializer; if (!initializer && languageVersion < 2) { - var isUninitializedLet = (resolver.getNodeCheckFlags(node) & 256) && (getCombinedFlagsForIdentifier(node.name) & 4096); - if (isUninitializedLet && node.parent.parent.kind !== 182 && node.parent.parent.kind !== 183) { + var isUninitializedLet = (resolver.getNodeCheckFlags(node) & 256) && + (getCombinedFlagsForIdentifier(node.name) & 4096); + if (isUninitializedLet && + node.parent.parent.kind !== 182 && + node.parent.parent.kind !== 183) { initializer = createVoidZero(); } } @@ -25499,12 +21074,12 @@ var ts; } } function emitExportVariableAssignments(node) { - var name = node.name; - if (name.kind === 64) { - emitExportMemberAssignments(name); + var _name = node.name; + if (_name.kind === 64) { + emitExportMemberAssignments(_name); } - else if (ts.isBindingPattern(name)) { - ts.forEach(name.elements, emitExportVariableAssignments); + else if (ts.isBindingPattern(_name)) { + ts.forEach(_name.elements, emitExportVariableAssignments); } } function getCombinedFlagsForIdentifier(node) { @@ -25514,7 +21089,10 @@ var ts; return ts.getCombinedNodeFlags(node.parent); } function renameNonTopLevelLetAndConst(node) { - if (languageVersion >= 2 || ts.nodeIsSynthesized(node) || node.kind !== 64 || (node.parent.kind !== 193 && node.parent.kind !== 150)) { + if (languageVersion >= 2 || + ts.nodeIsSynthesized(node) || + node.kind !== 64 || + (node.parent.kind !== 193 && node.parent.kind !== 150)) { return; } var combinedFlags = getCombinedFlagsForIdentifier(node); @@ -25526,8 +21104,10 @@ var ts; return; } var blockScopeContainer = ts.getEnclosingBlockScopeContainer(node); - var parent = blockScopeContainer.kind === 221 ? blockScopeContainer : blockScopeContainer.parent; - var generatedName = generateUniqueNameForLocation(parent, node.text); + var _parent = blockScopeContainer.kind === 221 + ? blockScopeContainer + : blockScopeContainer.parent; + var generatedName = generateUniqueNameForLocation(_parent, node.text); var variableId = resolver.getBlockScopedVariableId(node); if (!generatedBlockScopeNames) { generatedBlockScopeNames = []; @@ -25547,12 +21127,12 @@ var ts; function emitParameter(node) { if (languageVersion < 2) { if (ts.isBindingPattern(node.name)) { - var name = createTempVariable(node); + var _name = createTempVariable(node); if (!tempParameters) { tempParameters = []; } - tempParameters.push(name); - emit(name); + tempParameters.push(_name); + emit(_name); } else { emit(node.name); @@ -25599,7 +21179,7 @@ var ts; if (languageVersion < 2 && ts.hasRestParameters(node)) { var restIndex = node.parameters.length - 1; var restParam = node.parameters[restIndex]; - var tempName = createTempVariable(node, true).text; + var tempName = createTempVariable(node, "_i").text; writeLine(); emitLeadingComments(restParam); emitStart(restParam); @@ -25798,9 +21378,10 @@ var ts; decreaseIndent(); var preambleEmitted = writer.getTextPos() !== initialTextPos; if (preserveNewLines && !preambleEmitted && nodeEndIsOnSameLineAsNodeStart(body, body)) { - for (var i = 0, n = body.statements.length; i < n; i++) { + for (var _i = 0, _a = body.statements, _n = _a.length; _i < _n; _i++) { + var statement = _a[_i]; write(" "); - emit(body.statements[i]); + emit(statement); } emitTempDeclarations(false); write(" "); @@ -26038,11 +21619,12 @@ var ts; emitDetachedComments(ctor.body.statements); } emitCaptureThisForNodeIfNecessary(node); + var superCall; if (ctor) { emitDefaultValueAssignments(ctor); emitRestParameter(ctor); if (baseTypeNode) { - var superCall = findInitialSuperCall(ctor); + superCall = findInitialSuperCall(ctor); if (superCall) { writeLine(); emit(superCall); @@ -26287,7 +21869,8 @@ var ts; emitImportDeclaration(node); return; } - if (resolver.isReferencedAliasDeclaration(node) || (!ts.isExternalModule(currentSourceFile) && resolver.isTopLevelValueImportEqualsWithEntityName(node))) { + if (resolver.isReferencedAliasDeclaration(node) || + (!ts.isExternalModule(currentSourceFile) && resolver.isTopLevelValueImportEqualsWithEntityName(node))) { emitLeadingComments(node); emitStart(node); if (!(node.flags & 1)) @@ -26389,8 +21972,8 @@ var ts; if (specifier.name.text === "default") { exportDefault = exportDefault || specifier; } - var name = (specifier.propertyName || specifier.name).text; - (exportSpecifiers[name] || (exportSpecifiers[name] = [])).push(specifier); + var _name = (specifier.propertyName || specifier.name).text; + (exportSpecifiers[_name] || (exportSpecifiers[_name] = [])).push(specifier); }); } else if (node.kind === 209) { @@ -26413,8 +21996,8 @@ var ts; } function getExternalImportInfo(node) { if (externalImports) { - for (var i = 0; i < externalImports.length; i++) { - var info = externalImports[i]; + for (var _i = 0, _n = externalImports.length; _i < _n; _i++) { + var info = externalImports[_i]; if (info.rootNode === node) { return info; } @@ -26575,12 +22158,12 @@ var ts; if (node.flags & 2) { return emitPinnedOrTripleSlashComments(node); } - var emitComments = shouldEmitLeadingAndTrailingComments(node); - if (emitComments) { + var _emitComments = shouldEmitLeadingAndTrailingComments(node); + if (_emitComments) { emitLeadingComments(node); } emitJavaScriptWorker(node); - if (emitComments) { + if (_emitComments) { emitTrailingComments(node); } } @@ -26809,10 +22392,7 @@ var ts; else { leadingComments = ts.getLeadingCommentRanges(currentSourceFile.text, pos); } - emitNewLineBeforeLeadingComments(currentSourceFile, writer, { - pos: pos, - end: pos - }, leadingComments); + emitNewLineBeforeLeadingComments(currentSourceFile, writer, { pos: pos, end: pos }, leadingComments); emitComments(currentSourceFile, writer, leadingComments, true, newLine, writeComment); } function emitDetachedCommentsAtPosition(node) { @@ -26837,17 +22417,12 @@ var ts; if (nodeLine >= lastCommentLine + 2) { emitNewLineBeforeLeadingComments(currentSourceFile, writer, node, leadingComments); emitComments(currentSourceFile, writer, detachedComments, true, newLine, writeComment); - var currentDetachedCommentInfo = { - nodePos: node.pos, - detachedCommentEndPos: detachedComments[detachedComments.length - 1].end - }; + var currentDetachedCommentInfo = { nodePos: node.pos, detachedCommentEndPos: detachedComments[detachedComments.length - 1].end }; if (detachedCommentsInfo) { detachedCommentsInfo.push(currentDetachedCommentInfo); } else { - detachedCommentsInfo = [ - currentDetachedCommentInfo - ]; + detachedCommentsInfo = [currentDetachedCommentInfo]; } } } @@ -26859,7 +22434,10 @@ var ts; if (currentSourceFile.text.charCodeAt(comment.pos + 1) === 42) { return currentSourceFile.text.charCodeAt(comment.pos + 2) === 33; } - else if (currentSourceFile.text.charCodeAt(comment.pos + 1) === 47 && comment.pos + 2 < comment.end && currentSourceFile.text.charCodeAt(comment.pos + 2) === 47 && currentSourceFile.text.substring(comment.pos, comment.end).match(ts.fullTripleSlashReferencePathRegEx)) { + else if (currentSourceFile.text.charCodeAt(comment.pos + 1) === 47 && + comment.pos + 2 < comment.end && + currentSourceFile.text.charCodeAt(comment.pos + 2) === 47 && + currentSourceFile.text.substring(comment.pos, comment.end).match(ts.fullTripleSlashReferencePathRegEx)) { return true; } } @@ -26905,14 +22483,17 @@ var ts; } var unsupportedFileEncodingErrorCode = -2147024809; function getSourceFile(fileName, languageVersion, onError) { + var text; try { var start = new Date().getTime(); - var text = ts.sys.readFile(fileName, options.charset); + text = ts.sys.readFile(fileName, options.charset); ts.ioReadTime += new Date().getTime() - start; } catch (e) { if (onError) { - onError(e.number === unsupportedFileEncodingErrorCode ? ts.createCompilerDiagnostic(ts.Diagnostics.Unsupported_file_encoding).messageText : e.message); + onError(e.number === unsupportedFileEncodingErrorCode + ? ts.createCompilerDiagnostic(ts.Diagnostics.Unsupported_file_encoding).messageText + : e.message); } text = ""; } @@ -26948,20 +22529,12 @@ var ts; } return { getSourceFile: getSourceFile, - getDefaultLibFileName: function (options) { - return ts.combinePaths(ts.getDirectoryPath(ts.normalizePath(ts.sys.getExecutingFilePath())), ts.getDefaultLibFileName(options)); - }, + getDefaultLibFileName: function (options) { return ts.combinePaths(ts.getDirectoryPath(ts.normalizePath(ts.sys.getExecutingFilePath())), ts.getDefaultLibFileName(options)); }, writeFile: writeFile, - getCurrentDirectory: function () { - return currentDirectory || (currentDirectory = ts.sys.getCurrentDirectory()); - }, - useCaseSensitiveFileNames: function () { - return ts.sys.useCaseSensitiveFileNames; - }, + getCurrentDirectory: function () { return currentDirectory || (currentDirectory = ts.sys.getCurrentDirectory()); }, + useCaseSensitiveFileNames: function () { return ts.sys.useCaseSensitiveFileNames; }, getCanonicalFileName: getCanonicalFileName, - getNewLine: function () { - return ts.sys.newLine; - } + getNewLine: function () { return ts.sys.newLine; } }; } ts.createCompilerHost = createCompilerHost; @@ -27001,9 +22574,7 @@ var ts; var seenNoDefaultLib = options.noLib; var commonSourceDirectory; host = host || createCompilerHost(options); - ts.forEach(rootNames, function (name) { - return processRootFile(name, false); - }); + ts.forEach(rootNames, function (name) { return processRootFile(name, false); }); if (!seenNoDefaultLib) { processRootFile(host.getDefaultLibFileName(options), true); } @@ -27012,35 +22583,21 @@ var ts; var noDiagnosticsTypeChecker; program = { getSourceFile: getSourceFile, - getSourceFiles: function () { - return files; - }, - getCompilerOptions: function () { - return options; - }, + getSourceFiles: function () { return files; }, + getCompilerOptions: function () { return options; }, getSyntacticDiagnostics: getSyntacticDiagnostics, getGlobalDiagnostics: getGlobalDiagnostics, getSemanticDiagnostics: getSemanticDiagnostics, getDeclarationDiagnostics: getDeclarationDiagnostics, getTypeChecker: getTypeChecker, getDiagnosticsProducingTypeChecker: getDiagnosticsProducingTypeChecker, - getCommonSourceDirectory: function () { - return commonSourceDirectory; - }, + getCommonSourceDirectory: function () { return commonSourceDirectory; }, emit: emit, getCurrentDirectory: host.getCurrentDirectory, - getNodeCount: function () { - return getDiagnosticsProducingTypeChecker().getNodeCount(); - }, - getIdentifierCount: function () { - return getDiagnosticsProducingTypeChecker().getIdentifierCount(); - }, - getSymbolCount: function () { - return getDiagnosticsProducingTypeChecker().getSymbolCount(); - }, - getTypeCount: function () { - return getDiagnosticsProducingTypeChecker().getTypeCount(); - } + getNodeCount: function () { return getDiagnosticsProducingTypeChecker().getNodeCount(); }, + getIdentifierCount: function () { return getDiagnosticsProducingTypeChecker().getIdentifierCount(); }, + getSymbolCount: function () { return getDiagnosticsProducingTypeChecker().getSymbolCount(); }, + getTypeCount: function () { return getDiagnosticsProducingTypeChecker().getTypeCount(); } }; return program; function getEmitHost(writeFileCallback) { @@ -27067,11 +22624,7 @@ var ts; } function emit(sourceFile, writeFileCallback) { if (options.noEmitOnError && getPreEmitDiagnostics(this).length > 0) { - return { - diagnostics: [], - sourceMaps: undefined, - emitSkipped: true - }; + return { diagnostics: [], sourceMaps: undefined, emitSkipped: true }; } var emitResolver = getDiagnosticsProducingTypeChecker().getEmitResolver(sourceFile); var start = new Date().getTime(); @@ -27124,9 +22677,11 @@ var ts; processSourceFile(ts.normalizePath(fileName), isDefaultLib); } function processSourceFile(fileName, isDefaultLib, refFile, refPos, refEnd) { + var start; + var _length; if (refEnd !== undefined && refPos !== undefined) { - var start = refPos; - var length = refEnd - refPos; + start = refPos; + _length = refEnd - refPos; } var diagnostic; if (hasExtension(fileName)) { @@ -27151,7 +22706,7 @@ var ts; } if (diagnostic) { if (refFile) { - diagnostics.add(ts.createFileDiagnostic(refFile, start, length, diagnostic, fileName)); + diagnostics.add(ts.createFileDiagnostic(refFile, start, _length, diagnostic, fileName)); } else { diagnostics.add(ts.createCompilerDiagnostic(diagnostic, fileName)); @@ -27192,17 +22747,17 @@ var ts; files.push(file); } } + return file; } - return file; function getSourceFileFromCache(fileName, canonicalName, useAbsolutePath) { - var file = filesByName[canonicalName]; - if (file && host.useCaseSensitiveFileNames()) { - var sourceFileName = useAbsolutePath ? ts.getNormalizedAbsolutePath(file.fileName, host.getCurrentDirectory()) : file.fileName; + var _file = filesByName[canonicalName]; + if (_file && host.useCaseSensitiveFileNames()) { + var sourceFileName = useAbsolutePath ? ts.getNormalizedAbsolutePath(_file.fileName, host.getCurrentDirectory()) : _file.fileName; if (canonicalName !== sourceFileName) { diagnostics.add(ts.createFileDiagnostic(refFile, refStart, refLength, ts.Diagnostics.File_name_0_differs_from_already_included_file_name_1_only_in_casing, fileName, sourceFileName)); } } - return file; + return _file; } } function processReferencedFiles(file, basePath) { @@ -27235,14 +22790,15 @@ var ts; } else if (node.kind === 200 && node.name.kind === 8 && (node.flags & 2 || ts.isDeclarationFile(file))) { ts.forEachChild(node.body, function (node) { - if (ts.isExternalModuleImportEqualsDeclaration(node) && ts.getExternalModuleImportEqualsDeclarationExpression(node).kind === 8) { + if (ts.isExternalModuleImportEqualsDeclaration(node) && + ts.getExternalModuleImportEqualsDeclarationExpression(node).kind === 8) { var nameLiteral = ts.getExternalModuleImportEqualsDeclarationExpression(node); var moduleName = nameLiteral.text; if (moduleName) { - var searchName = ts.normalizePath(ts.combinePaths(basePath, moduleName)); - var tsFile = findModuleSourceFile(searchName + ".ts", nameLiteral); + var _searchName = ts.normalizePath(ts.combinePaths(basePath, moduleName)); + var tsFile = findModuleSourceFile(_searchName + ".ts", nameLiteral); if (!tsFile) { - findModuleSourceFile(searchName + ".d.ts", nameLiteral); + findModuleSourceFile(_searchName + ".d.ts", nameLiteral); } } } @@ -27263,17 +22819,19 @@ var ts; } return; } - var firstExternalModuleSourceFile = ts.forEach(files, function (f) { - return ts.isExternalModule(f) ? f : undefined; - }); + var firstExternalModuleSourceFile = ts.forEach(files, function (f) { return ts.isExternalModule(f) ? f : undefined; }); if (firstExternalModuleSourceFile && !options.module) { var span = ts.getErrorSpanForNode(firstExternalModuleSourceFile, firstExternalModuleSourceFile.externalModuleIndicator); diagnostics.add(ts.createFileDiagnostic(firstExternalModuleSourceFile, span.start, span.length, ts.Diagnostics.Cannot_compile_external_modules_unless_the_module_flag_is_provided)); } - if (options.outDir || options.sourceRoot || (options.mapRoot && (!options.out || firstExternalModuleSourceFile !== undefined))) { + if (options.outDir || + options.sourceRoot || + (options.mapRoot && + (!options.out || firstExternalModuleSourceFile !== undefined))) { var commonPathComponents; ts.forEach(files, function (sourceFile) { - if (!(sourceFile.flags & 2048) && !ts.fileExtensionIs(sourceFile.fileName, ".js")) { + if (!(sourceFile.flags & 2048) + && !ts.fileExtensionIs(sourceFile.fileName, ".js")) { var sourcePathComponents = ts.getNormalizedPathComponents(sourceFile.fileName, host.getCurrentDirectory()); sourcePathComponents.pop(); if (commonPathComponents) { @@ -27457,14 +23015,16 @@ var ts; description: ts.Diagnostics.Preserve_new_lines_when_emitting_code, experimental: true }, + { + name: "cacheDownlevelForOfLength", + type: "boolean", + description: "Cache length access when downlevel emitting for-of statements", + experimental: true + }, { name: "target", shortName: "t", - type: { - "es3": 0, - "es5": 1, - "es6": 2 - }, + type: { "es3": 0, "es5": 1, "es6": 2 }, description: ts.Diagnostics.Specify_ECMAScript_target_version_Colon_ES3_default_ES5_or_ES6_experimental, paramType: ts.Diagnostics.VERSION, error: ts.Diagnostics.Argument_for_target_option_must_be_es3_es5_or_es6 @@ -27644,9 +23204,7 @@ var ts; var files = []; if (ts.hasProperty(json, "files")) { if (json["files"] instanceof Array) { - var files = ts.map(json["files"], function (s) { - return ts.combinePaths(basePath, s); - }); + var files = ts.map(json["files"], function (s) { return ts.combinePaths(basePath, s); }); } } else { @@ -27693,17 +23251,24 @@ var ts; switch (n.kind) { case 174: if (!ts.isFunctionBlock(n)) { - var parent = n.parent; + var _parent = n.parent; var openBrace = ts.findChildOfKind(n, 14, sourceFile); var closeBrace = ts.findChildOfKind(n, 15, sourceFile); - if (parent.kind === 179 || parent.kind === 182 || parent.kind === 183 || parent.kind === 181 || parent.kind === 178 || parent.kind === 180 || parent.kind === 187 || parent.kind === 217) { - addOutliningSpan(parent, openBrace, closeBrace, autoCollapse(n)); + if (_parent.kind === 179 || + _parent.kind === 182 || + _parent.kind === 183 || + _parent.kind === 181 || + _parent.kind === 178 || + _parent.kind === 180 || + _parent.kind === 187 || + _parent.kind === 217) { + addOutliningSpan(_parent, openBrace, closeBrace, autoCollapse(n)); break; } - if (parent.kind === 191) { - var tryStatement = parent; + if (_parent.kind === 191) { + var tryStatement = _parent; if (tryStatement.tryBlock === n) { - addOutliningSpan(parent, openBrace, closeBrace, autoCollapse(n)); + addOutliningSpan(_parent, openBrace, closeBrace, autoCollapse(n)); break; } else if (tryStatement.finallyBlock === n) { @@ -27723,20 +23288,22 @@ var ts; }); break; } - case 201: - var openBrace = ts.findChildOfKind(n, 14, sourceFile); - var closeBrace = ts.findChildOfKind(n, 15, sourceFile); - addOutliningSpan(n.parent, openBrace, closeBrace, autoCollapse(n)); + case 201: { + var _openBrace = ts.findChildOfKind(n, 14, sourceFile); + var _closeBrace = ts.findChildOfKind(n, 15, sourceFile); + addOutliningSpan(n.parent, _openBrace, _closeBrace, autoCollapse(n)); break; + } case 196: case 197: case 199: case 152: - case 202: - var openBrace = ts.findChildOfKind(n, 14, sourceFile); - var closeBrace = ts.findChildOfKind(n, 15, sourceFile); - addOutliningSpan(n, openBrace, closeBrace, autoCollapse(n)); + case 202: { + var _openBrace_1 = ts.findChildOfKind(n, 14, sourceFile); + var _closeBrace_1 = ts.findChildOfKind(n, 15, sourceFile); + addOutliningSpan(n, _openBrace_1, _closeBrace_1, autoCollapse(n)); break; + } case 151: var openBracket = ts.findChildOfKind(n, 18, sourceFile); var closeBracket = ts.findChildOfKind(n, 19, sourceFile); @@ -27763,8 +23330,8 @@ var ts; ts.forEach(program.getSourceFiles(), function (sourceFile) { cancellationToken.throwIfCancellationRequested(); var declarations = sourceFile.getNamedDeclarations(); - for (var i = 0, n = declarations.length; i < n; i++) { - var declaration = declarations[i]; + for (var _i = 0, _n = declarations.length; _i < _n; _i++) { + var declaration = declarations[_i]; var name = getDeclarationName(declaration); if (name !== undefined) { var matches = patternMatcher.getMatchesForLastSegmentOfPattern(name); @@ -27783,13 +23350,7 @@ var ts; } var fileName = sourceFile.fileName; var matchKind = bestMatchKind(matches); - rawItems.push({ - name: name, - fileName: fileName, - matchKind: matchKind, - isCaseSensitive: allMatchesAreCaseSensitive(matches), - declaration: declaration - }); + rawItems.push({ name: name, fileName: fileName, matchKind: matchKind, isCaseSensitive: allMatchesAreCaseSensitive(matches), declaration: declaration }); } } }); @@ -27801,8 +23362,9 @@ var ts; return items; function allMatchesAreCaseSensitive(matches) { ts.Debug.assert(matches.length > 0); - for (var i = 0, n = matches.length; i < n; i++) { - if (!matches[i].isCaseSensitive) { + for (var _i = 0, _n = matches.length; _i < _n; _i++) { + var match = matches[_i]; + if (!match.isCaseSensitive) { return false; } } @@ -27823,7 +23385,9 @@ var ts; return undefined; } function getTextOfIdentifierOrLiteral(node) { - if (node.kind === 64 || node.kind === 8 || node.kind === 7) { + if (node.kind === 64 || + node.kind === 8 || + node.kind === 7) { return node.text; } return undefined; @@ -27878,20 +23442,21 @@ var ts; } function bestMatchKind(matches) { ts.Debug.assert(matches.length > 0); - var bestMatchKind = 3; - for (var i = 0, n = matches.length; i < n; i++) { - var kind = matches[i].kind; - if (kind < bestMatchKind) { - bestMatchKind = kind; + var _bestMatchKind = 3; + for (var _i = 0, _n = matches.length; _i < _n; _i++) { + var match = matches[_i]; + var kind = match.kind; + if (kind < _bestMatchKind) { + _bestMatchKind = kind; } } - return bestMatchKind; + return _bestMatchKind; } - var baseSensitivity = { - sensitivity: "base" - }; + var baseSensitivity = { sensitivity: "base" }; function compareNavigateToItems(i1, i2) { - return i1.matchKind - i2.matchKind || i1.name.localeCompare(i2.name, undefined, baseSensitivity) || i1.name.localeCompare(i2.name); + return i1.matchKind - i2.matchKind || + i1.name.localeCompare(i2.name, undefined, baseSensitivity) || + i1.name.localeCompare(i2.name); } function createNavigateToItem(rawItem) { var declaration = rawItem.declaration; @@ -28015,8 +23580,8 @@ var ts; } function addTopLevelNodes(nodes, topLevelNodes) { nodes = sortNodes(nodes); - for (var i = 0, n = nodes.length; i < n; i++) { - var node = nodes[i]; + for (var _i = 0, _n = nodes.length; _i < _n; _i++) { + var node = nodes[_i]; switch (node.kind) { case 196: case 199: @@ -28041,9 +23606,7 @@ var ts; function isTopLevelFunctionDeclaration(functionDeclaration) { if (functionDeclaration.kind === 195) { if (functionDeclaration.body && functionDeclaration.body.kind === 174) { - if (ts.forEach(functionDeclaration.body.statements, function (s) { - return s.kind === 195 && !isEmpty(s.name.text); - })) { + if (ts.forEach(functionDeclaration.body.statements, function (s) { return s.kind === 195 && !isEmpty(s.name.text); })) { return true; } if (!ts.isFunctionBlock(functionDeclaration.parent)) { @@ -28056,19 +23619,19 @@ var ts; function getItemsWorker(nodes, createItem) { var items = []; var keyToItem = {}; - for (var i = 0, n = nodes.length; i < n; i++) { - var child = nodes[i]; - var item = createItem(child); - if (item !== undefined) { - if (item.text.length > 0) { - var key = item.text + "-" + item.kind + "-" + item.indent; + for (var _i = 0, _n = nodes.length; _i < _n; _i++) { + var child = nodes[_i]; + var _item = createItem(child); + if (_item !== undefined) { + if (_item.text.length > 0) { + var key = _item.text + "-" + _item.kind + "-" + _item.indent; var itemWithSameName = keyToItem[key]; if (itemWithSameName) { - merge(itemWithSameName, item); + merge(itemWithSameName, _item); } else { - keyToItem[key] = item; - items.push(item); + keyToItem[key] = _item; + items.push(_item); } } } @@ -28081,10 +23644,10 @@ var ts; if (!target.childItems) { target.childItems = []; } - outer: for (var i = 0, n = source.childItems.length; i < n; i++) { - var sourceChild = source.childItems[i]; - for (var j = 0, m = target.childItems.length; j < m; j++) { - var targetChild = target.childItems[j]; + outer: for (var _i = 0, _a = source.childItems, _n = _a.length; _i < _n; _i++) { + var sourceChild = _a[_i]; + for (var _b = 0, _c = target.childItems, _d = _c.length; _b < _d; _b++) { + var targetChild = _c[_b]; if (targetChild.text === sourceChild.text && targetChild.kind === sourceChild.kind) { merge(targetChild, sourceChild); continue outer; @@ -28127,9 +23690,9 @@ var ts; case 193: case 150: var variableDeclarationNode; - var name; + var _name; if (node.kind === 150) { - name = node.name; + _name = node.name; variableDeclarationNode = node; while (variableDeclarationNode && variableDeclarationNode.kind !== 193) { variableDeclarationNode = variableDeclarationNode.parent; @@ -28139,16 +23702,16 @@ var ts; else { ts.Debug.assert(!ts.isBindingPattern(node.name)); variableDeclarationNode = node; - name = node.name; + _name = node.name; } if (ts.isConst(variableDeclarationNode)) { - return createItem(node, getTextOfNode(name), ts.ScriptElementKind.constElement); + return createItem(node, getTextOfNode(_name), ts.ScriptElementKind.constElement); } else if (ts.isLet(variableDeclarationNode)) { - return createItem(node, getTextOfNode(name), ts.ScriptElementKind.letElement); + return createItem(node, getTextOfNode(_name), ts.ScriptElementKind.letElement); } else { - return createItem(node, getTextOfNode(name), ts.ScriptElementKind.variableElement); + return createItem(node, getTextOfNode(_name), ts.ScriptElementKind.variableElement); } case 133: return createItem(node, "constructor", ts.ScriptElementKind.constructorImplementationElement); @@ -28161,9 +23724,7 @@ var ts; } return undefined; function createItem(node, name, scriptElementKind) { - return getNavigationBarItem(name, scriptElementKind, ts.getNodeModifiers(node), [ - getNodeSpan(node) - ]); + return getNavigationBarItem(name, scriptElementKind, ts.getNodeModifiers(node), [getNodeSpan(node)]); } } function isEmpty(text) { @@ -28217,16 +23778,12 @@ var ts; function createModuleItem(node) { var moduleName = getModuleName(node); var childItems = getItemsWorker(getChildNodes(getInnermostModule(node).body.statements), createChildItem); - return getNavigationBarItem(moduleName, ts.ScriptElementKind.moduleElement, ts.getNodeModifiers(node), [ - getNodeSpan(node) - ], childItems, getIndent(node)); + return getNavigationBarItem(moduleName, ts.ScriptElementKind.moduleElement, ts.getNodeModifiers(node), [getNodeSpan(node)], childItems, getIndent(node)); } function createFunctionItem(node) { if (node.name && node.body && node.body.kind === 174) { var childItems = getItemsWorker(sortNodes(node.body.statements), createChildItem); - return getNavigationBarItem(node.name.text, ts.ScriptElementKind.functionElement, ts.getNodeModifiers(node), [ - getNodeSpan(node) - ], childItems, getIndent(node)); + return getNavigationBarItem(node.name.text, ts.ScriptElementKind.functionElement, ts.getNodeModifiers(node), [getNodeSpan(node)], childItems, getIndent(node)); } return undefined; } @@ -28236,10 +23793,10 @@ var ts; return undefined; } hasGlobalNode = true; - var rootName = ts.isExternalModule(node) ? "\"" + ts.escapeString(ts.getBaseFileName(ts.removeFileExtension(ts.normalizePath(node.fileName)))) + "\"" : ""; - return getNavigationBarItem(rootName, ts.ScriptElementKind.moduleElement, ts.ScriptElementKindModifier.none, [ - getNodeSpan(node) - ], childItems); + var rootName = ts.isExternalModule(node) + ? "\"" + ts.escapeString(ts.getBaseFileName(ts.removeFileExtension(ts.normalizePath(node.fileName)))) + "\"" + : ""; + return getNavigationBarItem(rootName, ts.ScriptElementKind.moduleElement, ts.ScriptElementKindModifier.none, [getNodeSpan(node)], childItems); } function createClassItem(node) { if (!node.name) { @@ -28252,38 +23809,26 @@ var ts; }); var nodes = removeDynamicallyNamedProperties(node); if (constructor) { - nodes.push.apply(nodes, ts.filter(constructor.parameters, function (p) { - return !ts.isBindingPattern(p.name); - })); + nodes.push.apply(nodes, ts.filter(constructor.parameters, function (p) { return !ts.isBindingPattern(p.name); })); } - var childItems = getItemsWorker(sortNodes(nodes), createChildItem); + childItems = getItemsWorker(sortNodes(nodes), createChildItem); } - return getNavigationBarItem(node.name.text, ts.ScriptElementKind.classElement, ts.getNodeModifiers(node), [ - getNodeSpan(node) - ], childItems, getIndent(node)); + return getNavigationBarItem(node.name.text, ts.ScriptElementKind.classElement, ts.getNodeModifiers(node), [getNodeSpan(node)], childItems, getIndent(node)); } function createEnumItem(node) { var childItems = getItemsWorker(sortNodes(removeComputedProperties(node)), createChildItem); - return getNavigationBarItem(node.name.text, ts.ScriptElementKind.enumElement, ts.getNodeModifiers(node), [ - getNodeSpan(node) - ], childItems, getIndent(node)); + return getNavigationBarItem(node.name.text, ts.ScriptElementKind.enumElement, ts.getNodeModifiers(node), [getNodeSpan(node)], childItems, getIndent(node)); } function createIterfaceItem(node) { var childItems = getItemsWorker(sortNodes(removeDynamicallyNamedProperties(node)), createChildItem); - return getNavigationBarItem(node.name.text, ts.ScriptElementKind.interfaceElement, ts.getNodeModifiers(node), [ - getNodeSpan(node) - ], childItems, getIndent(node)); + return getNavigationBarItem(node.name.text, ts.ScriptElementKind.interfaceElement, ts.getNodeModifiers(node), [getNodeSpan(node)], childItems, getIndent(node)); } } function removeComputedProperties(node) { - return ts.filter(node.members, function (member) { - return member.name === undefined || member.name.kind !== 126; - }); + return ts.filter(node.members, function (member) { return member.name === undefined || member.name.kind !== 126; }); } function removeDynamicallyNamedProperties(node) { - return ts.filter(node.members, function (member) { - return !ts.hasDynamicName(member); - }); + return ts.filter(node.members, function (member) { return !ts.hasDynamicName(member); }); } function getInnermostModule(node) { while (node.body.kind === 200) { @@ -28292,7 +23837,9 @@ var ts; return node; } function getNodeSpan(node) { - return node.kind === 221 ? ts.createTextSpanFromBounds(node.getFullStart(), node.getEnd()) : ts.createTextSpanFromBounds(node.getStart(), node.getEnd()); + return node.kind === 221 + ? ts.createTextSpanFromBounds(node.getFullStart(), node.getEnd()) + : ts.createTextSpanFromBounds(node.getStart(), node.getEnd()); } function getTextOfNode(node) { return ts.getTextOfNodeFromSourceText(sourceFile.text, node); @@ -28322,9 +23869,7 @@ var ts; var stringToWordSpans = {}; pattern = pattern.trim(); var fullPatternSegment = createSegment(pattern); - var dotSeparatedSegments = pattern.split(".").map(function (p) { - return createSegment(p.trim()); - }); + var dotSeparatedSegments = pattern.split(".").map(function (p) { return createSegment(p.trim()); }); var invalidPattern = dotSeparatedSegments.length === 0 || ts.forEach(dotSeparatedSegments, segmentIsInvalid); return { getMatches: getMatches, @@ -28384,8 +23929,8 @@ var ts; if (isLowercase) { if (index > 0) { var wordSpans = getWordSpans(candidate); - for (var i = 0, n = wordSpans.length; i < n; i++) { - var span = wordSpans[i]; + for (var _i = 0, _n = wordSpans.length; _i < _n; _i++) { + var span = wordSpans[_i]; if (partStartsWith(candidate, span, chunk.text, true)) { return createPatternMatch(2, punctuationStripped, partStartsWith(candidate, span, chunk.text, false)); } @@ -28432,15 +23977,13 @@ var ts; if (!containsSpaceOrAsterisk(segment.totalTextChunk.text)) { var match = matchTextChunk(candidate, segment.totalTextChunk, false); if (match) { - return [ - match - ]; + return [match]; } } var subWordTextChunks = segment.subWordTextChunks; var matches = undefined; - for (var i = 0, n = subWordTextChunks.length; i < n; i++) { - var subWordTextChunk = subWordTextChunks[i]; + for (var _i = 0, _n = subWordTextChunks.length; _i < _n; _i++) { + var subWordTextChunk = subWordTextChunks[_i]; var result = matchTextChunk(candidate, subWordTextChunk, true); if (!result) { return undefined; @@ -28466,10 +24009,10 @@ var ts; } } else { - for (var i = 0; i < patternPartLength; i++) { - var ch1 = pattern.charCodeAt(patternPartStart + i); - var ch2 = candidate.charCodeAt(candidateSpan.start + i); - if (ch1 !== ch2) { + for (var _i = 0; _i < patternPartLength; _i++) { + var _ch1 = pattern.charCodeAt(patternPartStart + _i); + var _ch2 = candidate.charCodeAt(candidateSpan.start + _i); + if (_ch1 !== _ch2) { return false; } } @@ -28501,7 +24044,8 @@ var ts; for (; currentChunkSpan < chunkCharacterSpans.length; currentChunkSpan++) { var chunkCharacterSpan = chunkCharacterSpans[currentChunkSpan]; if (gotOneMatchThisCandidate) { - if (!isUpperCaseLetter(chunk.text.charCodeAt(chunkCharacterSpans[currentChunkSpan - 1].start)) || !isUpperCaseLetter(chunk.text.charCodeAt(chunkCharacterSpans[currentChunkSpan].start))) { + if (!isUpperCaseLetter(chunk.text.charCodeAt(chunkCharacterSpans[currentChunkSpan - 1].start)) || + !isUpperCaseLetter(chunk.text.charCodeAt(chunkCharacterSpans[currentChunkSpan].start))) { break; } } @@ -28522,7 +24066,10 @@ var ts; } ts.createPatternMatcher = createPatternMatcher; function patternMatchCompareTo(match1, match2) { - return compareType(match1, match2) || compareCamelCase(match1, match2) || compareCase(match1, match2) || comparePunctuation(match1, match2); + return compareType(match1, match2) || + compareCamelCase(match1, match2) || + compareCase(match1, match2) || + comparePunctuation(match1, match2); } function comparePunctuation(result1, result2) { if (result1.punctuationStripped !== result2.punctuationStripped) { @@ -28671,7 +24218,11 @@ var ts; var currentIsDigit = isDigit(identifier.charCodeAt(i)); var hasTransitionFromLowerToUpper = transitionFromLowerToUpper(identifier, word, i); var hasTransitionFromUpperToLower = transitionFromUpperToLower(identifier, word, i, wordStart); - if (charIsPunctuation(identifier.charCodeAt(i - 1)) || charIsPunctuation(identifier.charCodeAt(i)) || lastIsDigit != currentIsDigit || hasTransitionFromLowerToUpper || hasTransitionFromUpperToLower) { + if (charIsPunctuation(identifier.charCodeAt(i - 1)) || + charIsPunctuation(identifier.charCodeAt(i)) || + lastIsDigit != currentIsDigit || + hasTransitionFromLowerToUpper || + hasTransitionFromUpperToLower) { if (!isAllPunctuation(identifier, wordStart, i)) { result.push(ts.createTextSpan(wordStart, i - wordStart)); } @@ -28723,7 +24274,8 @@ var ts; } function transitionFromUpperToLower(identifier, word, index, wordStart) { if (word) { - if (index != wordStart && index + 1 < identifier.length) { + if (index != wordStart && + index + 1 < identifier.length) { var currentIsUpper = isUpperCaseLetter(identifier.charCodeAt(index)); var nextIsLower = isLowerCaseLetter(identifier.charCodeAt(index + 1)); if (currentIsUpper && nextIsLower) { @@ -28741,7 +24293,9 @@ var ts; function transitionFromLowerToUpper(identifier, word, index) { var lastIsUpper = isUpperCaseLetter(identifier.charCodeAt(index - 1)); var currentIsUpper = isUpperCaseLetter(identifier.charCodeAt(index)); - var transition = word ? (currentIsUpper && !lastIsUpper) : currentIsUpper; + var transition = word + ? (currentIsUpper && !lastIsUpper) + : currentIsUpper; return transition; } })(ts || (ts = {})); @@ -28777,7 +24331,8 @@ var ts; function getImmediatelyContainingArgumentInfo(node) { if (node.parent.kind === 155 || node.parent.kind === 156) { var callExpression = node.parent; - if (node.kind === 24 || node.kind === 16) { + if (node.kind === 24 || + node.kind === 16) { var list = getChildListThatStartsWithOpenerToken(callExpression, node, sourceFile); var isTypeArgList = callExpression.typeArguments && callExpression.typeArguments.pos === list.pos; ts.Debug.assert(list !== undefined); @@ -28791,15 +24346,15 @@ var ts; } var listItemInfo = ts.findListItemInfo(node); if (listItemInfo) { - var list = listItemInfo.list; - var isTypeArgList = callExpression.typeArguments && callExpression.typeArguments.pos === list.pos; - var argumentIndex = getArgumentIndex(list, node); - var argumentCount = getArgumentCount(list); + var _list = listItemInfo.list; + var _isTypeArgList = callExpression.typeArguments && callExpression.typeArguments.pos === _list.pos; + var argumentIndex = getArgumentIndex(_list, node); + var argumentCount = getArgumentCount(_list); ts.Debug.assert(argumentIndex === 0 || argumentIndex < argumentCount, "argumentCount < argumentIndex, " + argumentCount + " < " + argumentIndex); return { - kind: isTypeArgList ? 0 : 1, + kind: _isTypeArgList ? 0 : 1, invocation: callExpression, - argumentsSpan: getApplicableSpanForArguments(list), + argumentsSpan: getApplicableSpanForArguments(_list), argumentIndex: argumentIndex, argumentCount: argumentCount }; @@ -28814,28 +24369,28 @@ var ts; var templateExpression = node.parent; var tagExpression = templateExpression.parent; ts.Debug.assert(templateExpression.kind === 169); - var argumentIndex = ts.isInsideTemplateLiteral(node, position) ? 0 : 1; - return getArgumentListInfoForTemplate(tagExpression, argumentIndex); + var _argumentIndex = ts.isInsideTemplateLiteral(node, position) ? 0 : 1; + return getArgumentListInfoForTemplate(tagExpression, _argumentIndex); } else if (node.parent.kind === 173 && node.parent.parent.parent.kind === 157) { var templateSpan = node.parent; - var templateExpression = templateSpan.parent; - var tagExpression = templateExpression.parent; - ts.Debug.assert(templateExpression.kind === 169); + var _templateExpression = templateSpan.parent; + var _tagExpression = _templateExpression.parent; + ts.Debug.assert(_templateExpression.kind === 169); if (node.kind === 13 && !ts.isInsideTemplateLiteral(node, position)) { return undefined; } - var spanIndex = templateExpression.templateSpans.indexOf(templateSpan); - var argumentIndex = getArgumentIndexForTemplatePiece(spanIndex, node); - return getArgumentListInfoForTemplate(tagExpression, argumentIndex); + var spanIndex = _templateExpression.templateSpans.indexOf(templateSpan); + var _argumentIndex_1 = getArgumentIndexForTemplatePiece(spanIndex, node); + return getArgumentListInfoForTemplate(_tagExpression, _argumentIndex_1); } return undefined; } function getArgumentIndex(argumentsList, node) { var argumentIndex = 0; var listChildren = argumentsList.getChildren(); - for (var i = 0, n = listChildren.length; i < n; i++) { - var child = listChildren[i]; + for (var _i = 0, _n = listChildren.length; _i < _n; _i++) { + var child = listChildren[_i]; if (child === node) { break; } @@ -28847,9 +24402,7 @@ var ts; } function getArgumentCount(argumentsList) { var listChildren = argumentsList.getChildren(); - var argumentCount = ts.countWhere(listChildren, function (arg) { - return arg.kind !== 23; - }); + var argumentCount = ts.countWhere(listChildren, function (arg) { return arg.kind !== 23; }); if (listChildren.length > 0 && ts.lastOrUndefined(listChildren).kind === 23) { argumentCount++; } @@ -28866,7 +24419,9 @@ var ts; return spanIndex + 1; } function getArgumentListInfoForTemplate(tagExpression, argumentIndex) { - var argumentCount = tagExpression.template.kind === 10 ? 1 : tagExpression.template.templateSpans.length + 1; + var argumentCount = tagExpression.template.kind === 10 + ? 1 + : tagExpression.template.templateSpans.length + 1; ts.Debug.assert(argumentIndex === 0 || argumentIndex < argumentCount, "argumentCount < argumentIndex, " + argumentCount + " < " + argumentIndex); return { kind: 2, @@ -28901,9 +24456,9 @@ var ts; if (n.pos < n.parent.pos || n.end > n.parent.end) { ts.Debug.fail("Node of kind " + n.kind + " is not a subspan of its parent of kind " + n.parent.kind); } - var argumentInfo = getImmediatelyContainingArgumentInfo(n); - if (argumentInfo) { - return argumentInfo; + var _argumentInfo = getImmediatelyContainingArgumentInfo(n); + if (_argumentInfo) { + return _argumentInfo; } } return undefined; @@ -28971,10 +24526,7 @@ var ts; isVariadic: candidateSignature.hasRestParameter, prefixDisplayParts: prefixDisplayParts, suffixDisplayParts: suffixDisplayParts, - separatorDisplayParts: [ - ts.punctuationPart(23), - ts.spacePart() - ], + separatorDisplayParts: [ts.punctuationPart(23), ts.spacePart()], parameters: signatureHelpParameters, documentation: candidateSignature.getDocumentationComment() }; @@ -29083,9 +24635,7 @@ var ts; } ts.findListItemInfo = findListItemInfo; function findChildOfKind(n, kind, sourceFile) { - return ts.forEach(n.getChildren(sourceFile), function (c) { - return c.kind === kind && c; - }); + return ts.forEach(n.getChildren(sourceFile), function (c) { return c.kind === kind && c; }); } ts.findChildOfKind = findChildOfKind; function findContainingList(node) { @@ -29099,15 +24649,11 @@ var ts; } ts.findContainingList = findContainingList; function getTouchingWord(sourceFile, position) { - return getTouchingToken(sourceFile, position, function (n) { - return isWord(n.kind); - }); + return getTouchingToken(sourceFile, position, function (n) { return isWord(n.kind); }); } ts.getTouchingWord = getTouchingWord; function getTouchingPropertyName(sourceFile, position) { - return getTouchingToken(sourceFile, position, function (n) { - return isPropertyName(n.kind); - }); + return getTouchingToken(sourceFile, position, function (n) { return isPropertyName(n.kind); }); } ts.getTouchingPropertyName = getTouchingPropertyName; function getTouchingToken(sourceFile, position, includeItemAtEndPosition) { @@ -29159,9 +24705,10 @@ var ts; return n; } var children = n.getChildren(); - for (var i = 0, len = children.length; i < len; ++i) { - var child = children[i]; - var shouldDiveInChildNode = (child.pos <= previousToken.pos && child.end > previousToken.end) || (child.pos === previousToken.end); + for (var _i = 0, _n = children.length; _i < _n; _i++) { + var child = children[_i]; + var shouldDiveInChildNode = (child.pos <= previousToken.pos && child.end > previousToken.end) || + (child.pos === previousToken.end); if (shouldDiveInChildNode && nodeHasTokens(child)) { return find(child); } @@ -29185,7 +24732,7 @@ var ts; return n; } var children = n.getChildren(); - for (var i = 0, len = children.length; i < len; ++i) { + for (var i = 0, len = children.length; i < len; i++) { var child = children[i]; if (nodeHasTokens(child)) { if (position <= child.end) { @@ -29201,8 +24748,8 @@ var ts; } ts.Debug.assert(startNode !== undefined || n.kind === 221); if (children.length) { - var candidate = findRightmostChildNodeWithTokens(children, children.length); - return candidate && findRightmostToken(candidate); + var _candidate = findRightmostChildNodeWithTokens(children, children.length); + return _candidate && findRightmostToken(_candidate); } } function findRightmostChildNodeWithTokens(children, exclusiveStartPosition) { @@ -29264,7 +24811,8 @@ var ts; } ts.isPunctuation = isPunctuation; function isInsideTemplateLiteral(node, position) { - return ts.isTemplateLiteralKind(node.kind) && (node.getStart() < position && position < node.getEnd()) || (!!node.isUnterminated && position === node.getEnd()); + return ts.isTemplateLiteralKind(node.kind) + && (node.getStart() < position && position < node.getEnd()) || (!!node.isUnterminated && position === node.getEnd()); } ts.isInsideTemplateLiteral = isInsideTemplateLiteral; function compareDataObjects(dst, src) { @@ -29297,38 +24845,19 @@ var ts; var indent; resetWriter(); return { - displayParts: function () { - return displayParts; - }, - writeKeyword: function (text) { - return writeKind(text, 5); - }, - writeOperator: function (text) { - return writeKind(text, 12); - }, - writePunctuation: function (text) { - return writeKind(text, 15); - }, - writeSpace: function (text) { - return writeKind(text, 16); - }, - writeStringLiteral: function (text) { - return writeKind(text, 8); - }, - writeParameter: function (text) { - return writeKind(text, 13); - }, + displayParts: function () { return displayParts; }, + writeKeyword: function (text) { return writeKind(text, 5); }, + writeOperator: function (text) { return writeKind(text, 12); }, + writePunctuation: function (text) { return writeKind(text, 15); }, + writeSpace: function (text) { return writeKind(text, 16); }, + writeStringLiteral: function (text) { return writeKind(text, 8); }, + writeParameter: function (text) { return writeKind(text, 13); }, writeSymbol: writeSymbol, writeLine: writeLine, - increaseIndent: function () { - indent++; - }, - decreaseIndent: function () { - indent--; - }, + increaseIndent: function () { indent++; }, + decreaseIndent: function () { indent--; }, clear: resetWriter, - trackSymbol: function () { - } + trackSymbol: function () { } }; function writeIndent() { if (lineStart) { @@ -29489,9 +25018,7 @@ var ts; advance: advance, readTokenInfo: readTokenInfo, isOnToken: isOnToken, - lastTrailingTriviaWasNewLine: function () { - return wasNewLine; - }, + lastTrailingTriviaWasNewLine: function () { return wasNewLine; }, close: function () { lastTokenInfo = undefined; scanner.setText(undefined); @@ -29517,21 +25044,21 @@ var ts; var t; var pos = scanner.getStartPos(); while (pos < endPos) { - var t = scanner.getToken(); - if (!ts.isTrivia(t)) { + var _t = scanner.getToken(); + if (!ts.isTrivia(_t)) { break; } scanner.scan(); - var item = { + var _item = { pos: pos, end: scanner.getStartPos(), - kind: t + kind: _t }; pos = scanner.getStartPos(); if (!leadingTrivia) { leadingTrivia = []; } - leadingTrivia.push(item); + leadingTrivia.push(_item); } savedPos = scanner.getStartPos(); } @@ -29552,7 +25079,8 @@ var ts; return container.kind === 9; } function shouldRescanTemplateToken(container) { - return container.kind === 12 || container.kind === 13; + return container.kind === 12 || + container.kind === 13; } function startsWithSlashToken(t) { return t === 36 || t === 56; @@ -29565,7 +25093,13 @@ var ts; token: undefined }; } - var expectedScanAction = shouldRescanGreaterThanToken(n) ? 1 : shouldRescanSlashToken(n) ? 2 : shouldRescanTemplateToken(n) ? 3 : 0; + var expectedScanAction = shouldRescanGreaterThanToken(n) + ? 1 + : shouldRescanSlashToken(n) + ? 2 + : shouldRescanTemplateToken(n) + ? 3 + : 0; if (lastTokenInfo && expectedScanAction === lastScanAction) { return fixTokenKind(lastTokenInfo, n); } @@ -29628,8 +25162,8 @@ var ts; } function isOnToken() { var current = (lastTokenInfo && lastTokenInfo.token.kind) || scanner.getToken(); - var startPos = (lastTokenInfo && lastTokenInfo.token.pos) || scanner.getStartPos(); - return startPos < endPos && current !== 1 && !ts.isTrivia(current); + var _startPos = (lastTokenInfo && lastTokenInfo.token.pos) || scanner.getStartPos(); + return _startPos < endPos && current !== 1 && !ts.isTrivia(current); } function fixTokenKind(tokenInfo, container) { if (ts.isToken(container) && tokenInfo.token.kind !== container.kind) { @@ -29745,7 +25279,9 @@ var ts; this.Flag = Flag; } Rule.prototype.toString = function () { - return "[desc=" + this.Descriptor + "," + "operation=" + this.Operation + "," + "flag=" + this.Flag + "]"; + return "[desc=" + this.Descriptor + "," + + "operation=" + this.Operation + "," + + "flag=" + this.Flag + "]"; }; return Rule; })(); @@ -29775,7 +25311,8 @@ var ts; this.RightTokenRange = RightTokenRange; } RuleDescriptor.prototype.toString = function () { - return "[leftRange=" + this.LeftTokenRange + "," + "rightRange=" + this.RightTokenRange + "]"; + return "[leftRange=" + this.LeftTokenRange + "," + + "rightRange=" + this.RightTokenRange + "]"; }; RuleDescriptor.create1 = function (left, right) { return RuleDescriptor.create4(formatting.Shared.TokenRange.FromToken(left), formatting.Shared.TokenRange.FromToken(right)); @@ -29815,7 +25352,8 @@ var ts; this.Action = null; } RuleOperation.prototype.toString = function () { - return "[context=" + this.Context + "," + "action=" + this.Action + "]"; + return "[context=" + this.Context + "," + + "action=" + this.Action + "]"; }; RuleOperation.create1 = function (action) { return RuleOperation.create2(formatting.RuleOperationContext.Any, action); @@ -29850,8 +25388,9 @@ var ts; if (this.IsAny()) { return true; } - for (var i = 0, len = this.customContextChecks.length; i < len; i++) { - if (!this.customContextChecks[i](context)) { + for (var _i = 0, _a = this.customContextChecks, _n = _a.length; _i < _n; _i++) { + var check = _a[_i]; + if (!check(context)) { return false; } } @@ -29881,12 +25420,7 @@ var ts; this.SpaceAfterCloseBrace = new formatting.Rule(formatting.RuleDescriptor.create3(15, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsAfterCodeBlockContext), 2)); this.SpaceBetweenCloseBraceAndElse = new formatting.Rule(formatting.RuleDescriptor.create1(15, 75), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2)); this.SpaceBetweenCloseBraceAndWhile = new formatting.Rule(formatting.RuleDescriptor.create1(15, 99), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2)); - this.NoSpaceAfterCloseBrace = new formatting.Rule(formatting.RuleDescriptor.create3(15, formatting.Shared.TokenRange.FromTokens([ - 17, - 19, - 23, - 22 - ])), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); + this.NoSpaceAfterCloseBrace = new formatting.Rule(formatting.RuleDescriptor.create3(15, formatting.Shared.TokenRange.FromTokens([17, 19, 23, 22])), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); this.NoSpaceBeforeDot = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Any, 20), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); this.NoSpaceAfterDot = new formatting.Rule(formatting.RuleDescriptor.create3(20, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); this.NoSpaceBeforeOpenBracket = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Any, 18), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); @@ -29895,19 +25429,9 @@ var ts; this.NoSpaceAfterCloseBracket = new formatting.Rule(formatting.RuleDescriptor.create3(19, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); this.FunctionOpenBraceLeftTokenRange = formatting.Shared.TokenRange.AnyIncludingMultilineComments; this.SpaceBeforeOpenBraceInFunction = new formatting.Rule(formatting.RuleDescriptor.create2(this.FunctionOpenBraceLeftTokenRange, 14), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsFunctionDeclContext, Rules.IsBeforeBlockContext, Rules.IsNotFormatOnEnter, Rules.IsSameLineTokenOrBeforeMultilineBlockContext), 2), 1); - this.TypeScriptOpenBraceLeftTokenRange = formatting.Shared.TokenRange.FromTokens([ - 64, - 3 - ]); + this.TypeScriptOpenBraceLeftTokenRange = formatting.Shared.TokenRange.FromTokens([64, 3]); this.SpaceBeforeOpenBraceInTypeScriptDeclWithBlock = new formatting.Rule(formatting.RuleDescriptor.create2(this.TypeScriptOpenBraceLeftTokenRange, 14), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsTypeScriptDeclWithBlockContext, Rules.IsNotFormatOnEnter, Rules.IsSameLineTokenOrBeforeMultilineBlockContext), 2), 1); - this.ControlOpenBraceLeftTokenRange = formatting.Shared.TokenRange.FromTokens([ - 17, - 3, - 74, - 95, - 80, - 75 - ]); + this.ControlOpenBraceLeftTokenRange = formatting.Shared.TokenRange.FromTokens([17, 3, 74, 95, 80, 75]); this.SpaceBeforeOpenBraceInControl = new formatting.Rule(formatting.RuleDescriptor.create2(this.ControlOpenBraceLeftTokenRange, 14), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsControlDeclContext, Rules.IsNotFormatOnEnter, Rules.IsSameLineTokenOrBeforeMultilineBlockContext), 2), 1); this.SpaceAfterOpenBrace = new formatting.Rule(formatting.RuleDescriptor.create3(14, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSingleLineBlockContext), 2)); this.SpaceBeforeCloseBrace = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Any, 15), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSingleLineBlockContext), 2)); @@ -29926,151 +25450,79 @@ var ts; this.SpaceAfterSubtractWhenFollowedByUnaryMinus = new formatting.Rule(formatting.RuleDescriptor.create1(34, 34), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsBinaryOpContext), 2)); this.SpaceAfterSubtractWhenFollowedByPredecrement = new formatting.Rule(formatting.RuleDescriptor.create1(34, 39), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsBinaryOpContext), 2)); this.NoSpaceBeforeComma = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Any, 23), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); - this.SpaceAfterCertainKeywords = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.FromTokens([ - 97, - 93, - 87, - 73, - 89, - 96 - ]), formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2)); - this.SpaceAfterLetConstInVariableDeclaration = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.FromTokens([ - 104, - 69 - ]), formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsStartOfVariableDeclarationList), 2)); + this.SpaceAfterCertainKeywords = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.FromTokens([97, 93, 87, 73, 89, 96]), formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2)); + this.SpaceAfterLetConstInVariableDeclaration = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.FromTokens([104, 69]), formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsStartOfVariableDeclarationList), 2)); this.NoSpaceBeforeOpenParenInFuncCall = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Any, 16), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsFunctionCallOrNewContext, Rules.IsPreviousTokenNotComma), 8)); this.SpaceAfterFunctionInFuncDecl = new formatting.Rule(formatting.RuleDescriptor.create3(82, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsFunctionDeclContext), 2)); this.NoSpaceBeforeOpenParenInFuncDecl = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Any, 16), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsFunctionDeclContext), 8)); this.SpaceAfterVoidOperator = new formatting.Rule(formatting.RuleDescriptor.create3(98, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsVoidOpContext), 2)); this.NoSpaceBetweenReturnAndSemicolon = new formatting.Rule(formatting.RuleDescriptor.create1(89, 22), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); - this.SpaceBetweenStatements = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.FromTokens([ - 17, - 74, - 75, - 66 - ]), formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsNotForContext), 2)); - this.SpaceAfterTryFinally = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.FromTokens([ - 95, - 80 - ]), 14), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2)); - this.SpaceAfterGetSetInMember = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.FromTokens([ - 115, - 119 - ]), 64), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsFunctionDeclContext), 2)); + this.SpaceBetweenStatements = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.FromTokens([17, 74, 75, 66]), formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsNotForContext), 2)); + this.SpaceAfterTryFinally = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.FromTokens([95, 80]), 14), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2)); + this.SpaceAfterGetSetInMember = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.FromTokens([115, 119]), 64), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsFunctionDeclContext), 2)); this.SpaceBeforeBinaryKeywordOperator = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.Any, formatting.Shared.TokenRange.BinaryKeywordOperators), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsBinaryOpContext), 2)); this.SpaceAfterBinaryKeywordOperator = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.BinaryKeywordOperators, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsBinaryOpContext), 2)); this.NoSpaceAfterConstructor = new formatting.Rule(formatting.RuleDescriptor.create1(113, 16), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); - this.NoSpaceAfterModuleImport = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.FromTokens([ - 116, - 117 - ]), 16), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); - this.SpaceAfterCertainTypeScriptKeywords = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.FromTokens([ - 68, - 114, - 76, - 77, - 78, - 115, - 102, - 84, - 103, - 116, - 106, - 108, - 119, - 109 - ]), formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2)); - this.SpaceBeforeCertainTypeScriptKeywords = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.Any, formatting.Shared.TokenRange.FromTokens([ - 78, - 102 - ])), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2)); + this.NoSpaceAfterModuleImport = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.FromTokens([116, 117]), 16), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); + this.SpaceAfterCertainTypeScriptKeywords = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.FromTokens([68, 114, 76, 77, 78, 115, 102, 84, 103, 116, 106, 108, 119, 109]), formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2)); + this.SpaceBeforeCertainTypeScriptKeywords = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.Any, formatting.Shared.TokenRange.FromTokens([78, 102])), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2)); this.SpaceAfterModuleName = new formatting.Rule(formatting.RuleDescriptor.create1(8, 14), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsModuleDeclContext), 2)); this.SpaceAfterArrow = new formatting.Rule(formatting.RuleDescriptor.create3(32, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2)); this.NoSpaceAfterEllipsis = new formatting.Rule(formatting.RuleDescriptor.create1(21, 64), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); - this.NoSpaceAfterOptionalParameters = new formatting.Rule(formatting.RuleDescriptor.create3(50, formatting.Shared.TokenRange.FromTokens([ - 17, - 23 - ])), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsNotBinaryOpContext), 8)); + this.NoSpaceAfterOptionalParameters = new formatting.Rule(formatting.RuleDescriptor.create3(50, formatting.Shared.TokenRange.FromTokens([17, 23])), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsNotBinaryOpContext), 8)); this.NoSpaceBeforeOpenAngularBracket = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.TypeNames, 24), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsTypeArgumentOrParameterContext), 8)); this.NoSpaceBetweenCloseParenAndAngularBracket = new formatting.Rule(formatting.RuleDescriptor.create1(17, 24), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsTypeArgumentOrParameterContext), 8)); this.NoSpaceAfterOpenAngularBracket = new formatting.Rule(formatting.RuleDescriptor.create3(24, formatting.Shared.TokenRange.TypeNames), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsTypeArgumentOrParameterContext), 8)); this.NoSpaceBeforeCloseAngularBracket = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Any, 25), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsTypeArgumentOrParameterContext), 8)); - this.NoSpaceAfterCloseAngularBracket = new formatting.Rule(formatting.RuleDescriptor.create3(25, formatting.Shared.TokenRange.FromTokens([ - 16, - 18, - 25, - 23 - ])), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsTypeArgumentOrParameterContext), 8)); + this.NoSpaceAfterCloseAngularBracket = new formatting.Rule(formatting.RuleDescriptor.create3(25, formatting.Shared.TokenRange.FromTokens([16, 18, 25, 23])), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsTypeArgumentOrParameterContext), 8)); this.NoSpaceBetweenEmptyInterfaceBraceBrackets = new formatting.Rule(formatting.RuleDescriptor.create1(14, 15), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsObjectTypeContext), 8)); - this.HighPriorityCommonRules = [ - this.IgnoreBeforeComment, - this.IgnoreAfterLineComment, - this.NoSpaceBeforeColon, - this.SpaceAfterColon, - this.NoSpaceBeforeQuestionMark, - this.SpaceAfterQuestionMarkInConditionalOperator, - this.NoSpaceAfterQuestionMark, - this.NoSpaceBeforeDot, - this.NoSpaceAfterDot, - this.NoSpaceAfterUnaryPrefixOperator, - this.NoSpaceAfterUnaryPreincrementOperator, - this.NoSpaceAfterUnaryPredecrementOperator, - this.NoSpaceBeforeUnaryPostincrementOperator, - this.NoSpaceBeforeUnaryPostdecrementOperator, - this.SpaceAfterPostincrementWhenFollowedByAdd, - this.SpaceAfterAddWhenFollowedByUnaryPlus, - this.SpaceAfterAddWhenFollowedByPreincrement, - this.SpaceAfterPostdecrementWhenFollowedBySubtract, - this.SpaceAfterSubtractWhenFollowedByUnaryMinus, - this.SpaceAfterSubtractWhenFollowedByPredecrement, - this.NoSpaceAfterCloseBrace, - this.SpaceAfterOpenBrace, - this.SpaceBeforeCloseBrace, - this.NewLineBeforeCloseBraceInBlockContext, - this.SpaceAfterCloseBrace, - this.SpaceBetweenCloseBraceAndElse, - this.SpaceBetweenCloseBraceAndWhile, - this.NoSpaceBetweenEmptyBraceBrackets, - this.SpaceAfterFunctionInFuncDecl, - this.NewLineAfterOpenBraceInBlockContext, - this.SpaceAfterGetSetInMember, - this.NoSpaceBetweenReturnAndSemicolon, - this.SpaceAfterCertainKeywords, - this.SpaceAfterLetConstInVariableDeclaration, - this.NoSpaceBeforeOpenParenInFuncCall, - this.SpaceBeforeBinaryKeywordOperator, - this.SpaceAfterBinaryKeywordOperator, - this.SpaceAfterVoidOperator, - this.NoSpaceAfterConstructor, - this.NoSpaceAfterModuleImport, - this.SpaceAfterCertainTypeScriptKeywords, - this.SpaceBeforeCertainTypeScriptKeywords, - this.SpaceAfterModuleName, - this.SpaceAfterArrow, - this.NoSpaceAfterEllipsis, - this.NoSpaceAfterOptionalParameters, - this.NoSpaceBetweenEmptyInterfaceBraceBrackets, - this.NoSpaceBeforeOpenAngularBracket, - this.NoSpaceBetweenCloseParenAndAngularBracket, - this.NoSpaceAfterOpenAngularBracket, - this.NoSpaceBeforeCloseAngularBracket, - this.NoSpaceAfterCloseAngularBracket - ]; - this.LowPriorityCommonRules = [ - this.NoSpaceBeforeSemicolon, - this.SpaceBeforeOpenBraceInControl, - this.SpaceBeforeOpenBraceInFunction, - this.SpaceBeforeOpenBraceInTypeScriptDeclWithBlock, - this.NoSpaceBeforeComma, - this.NoSpaceBeforeOpenBracket, - this.NoSpaceAfterOpenBracket, - this.NoSpaceBeforeCloseBracket, - this.NoSpaceAfterCloseBracket, - this.SpaceAfterSemicolon, - this.NoSpaceBeforeOpenParenInFuncDecl, - this.SpaceBetweenStatements, - this.SpaceAfterTryFinally - ]; + this.HighPriorityCommonRules = + [ + this.IgnoreBeforeComment, this.IgnoreAfterLineComment, + this.NoSpaceBeforeColon, this.SpaceAfterColon, this.NoSpaceBeforeQuestionMark, this.SpaceAfterQuestionMarkInConditionalOperator, + this.NoSpaceAfterQuestionMark, + this.NoSpaceBeforeDot, this.NoSpaceAfterDot, + this.NoSpaceAfterUnaryPrefixOperator, + this.NoSpaceAfterUnaryPreincrementOperator, this.NoSpaceAfterUnaryPredecrementOperator, + this.NoSpaceBeforeUnaryPostincrementOperator, this.NoSpaceBeforeUnaryPostdecrementOperator, + this.SpaceAfterPostincrementWhenFollowedByAdd, + this.SpaceAfterAddWhenFollowedByUnaryPlus, this.SpaceAfterAddWhenFollowedByPreincrement, + this.SpaceAfterPostdecrementWhenFollowedBySubtract, + this.SpaceAfterSubtractWhenFollowedByUnaryMinus, this.SpaceAfterSubtractWhenFollowedByPredecrement, + this.NoSpaceAfterCloseBrace, + this.SpaceAfterOpenBrace, this.SpaceBeforeCloseBrace, this.NewLineBeforeCloseBraceInBlockContext, + this.SpaceAfterCloseBrace, this.SpaceBetweenCloseBraceAndElse, this.SpaceBetweenCloseBraceAndWhile, this.NoSpaceBetweenEmptyBraceBrackets, + this.SpaceAfterFunctionInFuncDecl, this.NewLineAfterOpenBraceInBlockContext, this.SpaceAfterGetSetInMember, + this.NoSpaceBetweenReturnAndSemicolon, + this.SpaceAfterCertainKeywords, + this.SpaceAfterLetConstInVariableDeclaration, + this.NoSpaceBeforeOpenParenInFuncCall, + this.SpaceBeforeBinaryKeywordOperator, this.SpaceAfterBinaryKeywordOperator, + this.SpaceAfterVoidOperator, + this.NoSpaceAfterConstructor, this.NoSpaceAfterModuleImport, + this.SpaceAfterCertainTypeScriptKeywords, this.SpaceBeforeCertainTypeScriptKeywords, + this.SpaceAfterModuleName, + this.SpaceAfterArrow, + this.NoSpaceAfterEllipsis, + this.NoSpaceAfterOptionalParameters, + this.NoSpaceBetweenEmptyInterfaceBraceBrackets, + this.NoSpaceBeforeOpenAngularBracket, + this.NoSpaceBetweenCloseParenAndAngularBracket, + this.NoSpaceAfterOpenAngularBracket, + this.NoSpaceBeforeCloseAngularBracket, + this.NoSpaceAfterCloseAngularBracket + ]; + this.LowPriorityCommonRules = + [ + this.NoSpaceBeforeSemicolon, + this.SpaceBeforeOpenBraceInControl, this.SpaceBeforeOpenBraceInFunction, this.SpaceBeforeOpenBraceInTypeScriptDeclWithBlock, + this.NoSpaceBeforeComma, + this.NoSpaceBeforeOpenBracket, this.NoSpaceAfterOpenBracket, + this.NoSpaceBeforeCloseBracket, this.NoSpaceAfterCloseBracket, + this.SpaceAfterSemicolon, + this.NoSpaceBeforeOpenParenInFuncDecl, + this.SpaceBetweenStatements, this.SpaceAfterTryFinally + ]; this.SpaceAfterComma = new formatting.Rule(formatting.RuleDescriptor.create3(23, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2)); this.NoSpaceAfterComma = new formatting.Rule(formatting.RuleDescriptor.create3(23, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); this.SpaceBeforeBinaryOperator = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.Any, formatting.Shared.TokenRange.BinaryOperators), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsBinaryOpContext), 2)); @@ -30094,9 +25546,9 @@ var ts; } Rules.prototype.getRuleName = function (rule) { var o = this; - for (var name in o) { - if (o[name] === rule) { - return name; + for (var _name in o) { + if (o[_name] === rule) { + return _name; } } throw new Error("Unknown rule"); @@ -30244,7 +25696,8 @@ var ts; return context.TokensAreOnSameLine(); }; Rules.IsStartOfVariableDeclarationList = function (context) { - return context.currentTokenParent.kind === 194 && context.currentTokenParent.getStart(context.sourceFile) === context.currentTokenSpan.pos; + return context.currentTokenParent.kind === 194 && + context.currentTokenParent.getStart(context.sourceFile) === context.currentTokenSpan.pos; }; Rules.IsNotFormatOnEnter = function (context) { return context.formattingRequestKind != 2; @@ -30278,7 +25731,8 @@ var ts; } }; Rules.IsTypeArgumentOrParameterContext = function (context) { - return Rules.IsTypeArgumentOrParameter(context.currentTokenSpan, context.currentTokenParent) || Rules.IsTypeArgumentOrParameter(context.nextTokenSpan, context.nextTokenParent); + return Rules.IsTypeArgumentOrParameter(context.currentTokenSpan, context.currentTokenParent) || + Rules.IsTypeArgumentOrParameter(context.nextTokenSpan, context.nextTokenParent); }; Rules.IsVoidOpContext = function (context) { return context.currentTokenSpan.kind === 98 && context.currentTokenParent.kind === 164; @@ -30321,7 +25775,8 @@ var ts; }; RulesMap.prototype.FillRule = function (rule, rulesBucketConstructionStateList) { var _this = this; - var specificRule = rule.Descriptor.LeftTokenRange != formatting.Shared.TokenRange.Any && rule.Descriptor.RightTokenRange != formatting.Shared.TokenRange.Any; + var specificRule = rule.Descriptor.LeftTokenRange != formatting.Shared.TokenRange.Any && + rule.Descriptor.RightTokenRange != formatting.Shared.TokenRange.Any; rule.Descriptor.LeftTokenRange.GetTokens().forEach(function (left) { rule.Descriptor.RightTokenRange.GetTokens().forEach(function (right) { var rulesBucketIndex = _this.GetRuleBucketIndex(left, right); @@ -30337,10 +25792,11 @@ var ts; var bucketIndex = this.GetRuleBucketIndex(context.currentTokenSpan.kind, context.nextTokenSpan.kind); var bucket = this.map[bucketIndex]; if (bucket != null) { - for (var i = 0, len = bucket.Rules().length; i < len; i++) { - var rule = bucket.Rules()[i]; - if (rule.Operation.Context.InContext(context)) + for (var _i = 0, _a = bucket.Rules(), _n = _a.length; _i < _n; _i++) { + var rule = _a[_i]; + if (rule.Operation.Context.InContext(context)) { return rule; + } } } return null; @@ -30395,13 +25851,19 @@ var ts; RulesBucket.prototype.AddRule = function (rule, specificTokens, constructionState, rulesBucketIndex) { var position; if (rule.Operation.Action == 1) { - position = specificTokens ? 0 : RulesPosition.IgnoreRulesAny; + position = specificTokens ? + 0 : + RulesPosition.IgnoreRulesAny; } else if (!rule.Operation.Context.IsAny()) { - position = specificTokens ? RulesPosition.ContextRulesSpecific : RulesPosition.ContextRulesAny; + position = specificTokens ? + RulesPosition.ContextRulesSpecific : + RulesPosition.ContextRulesAny; } else { - position = specificTokens ? RulesPosition.NoContextRulesSpecific : RulesPosition.NoContextRulesAny; + position = specificTokens ? + RulesPosition.NoContextRulesSpecific : + RulesPosition.NoContextRulesAny; } var state = constructionState[rulesBucketIndex]; if (state === undefined) { @@ -30458,9 +25920,7 @@ var ts; this.token = token; } TokenSingleValueAccess.prototype.GetTokens = function () { - return [ - this.token - ]; + return [this.token]; }; TokenSingleValueAccess.prototype.Contains = function (tokenValue) { return tokenValue == this.token; @@ -30514,68 +25974,18 @@ var ts; return this.tokenAccess.toString(); }; TokenRange.Any = TokenRange.AllTokens(); - TokenRange.AnyIncludingMultilineComments = TokenRange.FromTokens(TokenRange.Any.GetTokens().concat([ - 3 - ])); + TokenRange.AnyIncludingMultilineComments = TokenRange.FromTokens(TokenRange.Any.GetTokens().concat([3])); TokenRange.Keywords = TokenRange.FromRange(65, 124); TokenRange.BinaryOperators = TokenRange.FromRange(24, 63); - TokenRange.BinaryKeywordOperators = TokenRange.FromTokens([ - 85, - 86, - 124 - ]); - TokenRange.UnaryPrefixOperators = TokenRange.FromTokens([ - 38, - 39, - 47, - 46 - ]); - TokenRange.UnaryPrefixExpressions = TokenRange.FromTokens([ - 7, - 64, - 16, - 18, - 14, - 92, - 87 - ]); - TokenRange.UnaryPreincrementExpressions = TokenRange.FromTokens([ - 64, - 16, - 92, - 87 - ]); - TokenRange.UnaryPostincrementExpressions = TokenRange.FromTokens([ - 64, - 17, - 19, - 87 - ]); - TokenRange.UnaryPredecrementExpressions = TokenRange.FromTokens([ - 64, - 16, - 92, - 87 - ]); - TokenRange.UnaryPostdecrementExpressions = TokenRange.FromTokens([ - 64, - 17, - 19, - 87 - ]); - TokenRange.Comments = TokenRange.FromTokens([ - 2, - 3 - ]); - TokenRange.TypeNames = TokenRange.FromTokens([ - 64, - 118, - 120, - 112, - 121, - 98, - 111 - ]); + TokenRange.BinaryKeywordOperators = TokenRange.FromTokens([85, 86, 124]); + TokenRange.UnaryPrefixOperators = TokenRange.FromTokens([38, 39, 47, 46]); + TokenRange.UnaryPrefixExpressions = TokenRange.FromTokens([7, 64, 16, 18, 14, 92, 87]); + TokenRange.UnaryPreincrementExpressions = TokenRange.FromTokens([64, 16, 92, 87]); + TokenRange.UnaryPostincrementExpressions = TokenRange.FromTokens([64, 17, 19, 87]); + TokenRange.UnaryPredecrementExpressions = TokenRange.FromTokens([64, 16, 92, 87]); + TokenRange.UnaryPostdecrementExpressions = TokenRange.FromTokens([64, 17, 19, 87]); + TokenRange.Comments = TokenRange.FromTokens([2, 3]); + TokenRange.TypeNames = TokenRange.FromTokens([64, 118, 120, 112, 121, 98, 111]); return TokenRange; })(); Shared.TokenRange = TokenRange; @@ -30712,23 +26122,28 @@ var ts; } formatting.formatSelection = formatSelection; function formatOutermostParent(position, expectedLastToken, sourceFile, options, rulesProvider, requestKind) { - var parent = findOutermostParent(position, expectedLastToken, sourceFile); - if (!parent) { + var _parent = findOutermostParent(position, expectedLastToken, sourceFile); + if (!_parent) { return []; } var span = { - pos: ts.getLineStartPositionForPosition(parent.getStart(sourceFile), sourceFile), - end: parent.end + pos: ts.getLineStartPositionForPosition(_parent.getStart(sourceFile), sourceFile), + end: _parent.end }; return formatSpan(span, sourceFile, options, rulesProvider, requestKind); } function findOutermostParent(position, expectedTokenKind, sourceFile) { var precedingToken = ts.findPrecedingToken(position, sourceFile); - if (!precedingToken || precedingToken.kind !== expectedTokenKind || position !== precedingToken.getEnd()) { + if (!precedingToken || + precedingToken.kind !== expectedTokenKind || + position !== precedingToken.getEnd()) { return undefined; } var current = precedingToken; - while (current && current.parent && current.parent.end === precedingToken.end && !isListElement(current.parent, current)) { + while (current && + current.parent && + current.parent.end === precedingToken.end && + !isListElement(current.parent, current)) { current = current.parent; } return current; @@ -30753,9 +26168,7 @@ var ts; function findEnclosingNode(range, sourceFile) { return find(sourceFile); function find(n) { - var candidate = ts.forEachChild(n, function (c) { - return ts.startEndContainsRange(c.getStart(sourceFile), c.end, range) && c; - }); + var candidate = ts.forEachChild(n, function (c) { return ts.startEndContainsRange(c.getStart(sourceFile), c.end, range) && c; }); if (candidate) { var result = find(candidate); if (result) { @@ -30769,11 +26182,9 @@ var ts; if (!errors.length) { return rangeHasNoErrors; } - var sorted = errors.filter(function (d) { - return ts.rangeOverlapsWithStartEnd(originalRange, d.start, d.start + d.length); - }).sort(function (e1, e2) { - return e1.start - e2.start; - }); + var sorted = errors + .filter(function (d) { return ts.rangeOverlapsWithStartEnd(originalRange, d.start, d.start + d.length); }) + .sort(function (e1, e2) { return e1.start - e2.start; }); if (!sorted.length) { return rangeHasNoErrors; } @@ -30854,10 +26265,10 @@ var ts; } } else { - var startLine = sourceFile.getLineAndCharacterOfPosition(startPos).line; + var _startLine = sourceFile.getLineAndCharacterOfPosition(startPos).line; var startLinePosition = ts.getLineStartPositionForPosition(startPos, sourceFile); var column = formatting.SmartIndenter.findFirstNonWhitespaceColumn(startLinePosition, startPos, sourceFile, options); - if (startLine !== parentStartLine || startPos === column) { + if (_startLine !== parentStartLine || startPos === column) { return column; } } @@ -30867,7 +26278,10 @@ var ts; var indentation = inheritedIndentation; if (indentation === -1) { if (isSomeBlock(node.kind)) { - if (isSomeBlock(parent.kind) || parent.kind === 221 || parent.kind === 214 || parent.kind === 215) { + if (isSomeBlock(parent.kind) || + parent.kind === 221 || + parent.kind === 214 || + parent.kind === 215) { indentation = parentDynamicIndentation.getIndentation() + parentDynamicIndentation.getDelta(); } else { @@ -30916,12 +26330,8 @@ var ts; return nodeStartLine !== line ? indentation + delta : indentation; } }, - getIndentation: function () { - return indentation; - }, - getDelta: function () { - return delta; - }, + getIndentation: function () { return indentation; }, + getDelta: function () { return delta; }, recomputeIndentation: function (lineAdded) { if (node.parent && formatting.SmartIndenter.shouldIndentChildNode(node.parent.kind, node.kind)) { if (lineAdded) { @@ -30975,19 +26385,19 @@ var ts; return inheritedIndentation; } while (formattingScanner.isOnToken()) { - var tokenInfo = formattingScanner.readTokenInfo(node); - if (tokenInfo.token.end > childStartPos) { + var _tokenInfo = formattingScanner.readTokenInfo(node); + if (_tokenInfo.token.end > childStartPos) { break; } - consumeTokenAndAdvanceScanner(tokenInfo, node, parentDynamicIndentation); + consumeTokenAndAdvanceScanner(_tokenInfo, node, parentDynamicIndentation); } if (!formattingScanner.isOnToken()) { return inheritedIndentation; } if (ts.isToken(child)) { - var tokenInfo = formattingScanner.readTokenInfo(child); - ts.Debug.assert(tokenInfo.token.end === child.end); - consumeTokenAndAdvanceScanner(tokenInfo, node, parentDynamicIndentation); + var _tokenInfo_1 = formattingScanner.readTokenInfo(child); + ts.Debug.assert(_tokenInfo_1.token.end === child.end); + consumeTokenAndAdvanceScanner(_tokenInfo_1, node, parentDynamicIndentation); return inheritedIndentation; } var childIndentation = computeIndentation(child, childStart.line, childIndentationAmount, node, parentDynamicIndentation, parentStartLine); @@ -30999,33 +26409,34 @@ var ts; var listStartToken = getOpenTokenForList(parent, nodes); var listEndToken = getCloseTokenForOpenToken(listStartToken); var listDynamicIndentation = parentDynamicIndentation; - var startLine = parentStartLine; + var _startLine = parentStartLine; if (listStartToken !== 0) { while (formattingScanner.isOnToken()) { - var tokenInfo = formattingScanner.readTokenInfo(parent); - if (tokenInfo.token.end > nodes.pos) { + var _tokenInfo = formattingScanner.readTokenInfo(parent); + if (_tokenInfo.token.end > nodes.pos) { break; } - else if (tokenInfo.token.kind === listStartToken) { - startLine = sourceFile.getLineAndCharacterOfPosition(tokenInfo.token.pos).line; - var indentation = computeIndentation(tokenInfo.token, startLine, -1, parent, parentDynamicIndentation, startLine); - listDynamicIndentation = getDynamicIndentation(parent, parentStartLine, indentation.indentation, indentation.delta); - consumeTokenAndAdvanceScanner(tokenInfo, parent, listDynamicIndentation); + else if (_tokenInfo.token.kind === listStartToken) { + _startLine = sourceFile.getLineAndCharacterOfPosition(_tokenInfo.token.pos).line; + var _indentation = computeIndentation(_tokenInfo.token, _startLine, -1, parent, parentDynamicIndentation, _startLine); + listDynamicIndentation = getDynamicIndentation(parent, parentStartLine, _indentation.indentation, _indentation.delta); + consumeTokenAndAdvanceScanner(_tokenInfo, parent, listDynamicIndentation); } else { - consumeTokenAndAdvanceScanner(tokenInfo, parent, parentDynamicIndentation); + consumeTokenAndAdvanceScanner(_tokenInfo, parent, parentDynamicIndentation); } } } var inheritedIndentation = -1; - for (var i = 0, len = nodes.length; i < len; ++i) { - inheritedIndentation = processChildNode(nodes[i], inheritedIndentation, node, listDynamicIndentation, startLine, true); + for (var _i = 0, _n = nodes.length; _i < _n; _i++) { + var child = nodes[_i]; + inheritedIndentation = processChildNode(child, inheritedIndentation, node, listDynamicIndentation, _startLine, true); } if (listEndToken !== 0) { if (formattingScanner.isOnToken()) { - var tokenInfo = formattingScanner.readTokenInfo(parent); - if (tokenInfo.token.kind === listEndToken && ts.rangeContainsRange(parent, tokenInfo.token)) { - consumeTokenAndAdvanceScanner(tokenInfo, parent, listDynamicIndentation); + var _tokenInfo_1 = formattingScanner.readTokenInfo(parent); + if (_tokenInfo_1.token.kind === listEndToken && ts.rangeContainsRange(parent, _tokenInfo_1.token)) { + consumeTokenAndAdvanceScanner(_tokenInfo_1, parent, listDynamicIndentation); } } } @@ -31062,8 +26473,8 @@ var ts; if (indentToken) { var indentNextTokenOrTrivia = true; if (currentTokenInfo.leadingTrivia) { - for (var i = 0, len = currentTokenInfo.leadingTrivia.length; i < len; ++i) { - var triviaItem = currentTokenInfo.leadingTrivia[i]; + for (var _i = 0, _a = currentTokenInfo.leadingTrivia, _n = _a.length; _i < _n; _i++) { + var triviaItem = _a[_i]; if (!ts.rangeContainsRange(originalRange, triviaItem)) { continue; } @@ -31076,8 +26487,8 @@ var ts; break; case 2: if (indentNextTokenOrTrivia) { - var commentIndentation = dynamicIndentation.getIndentationForComment(currentTokenInfo.token.kind); - insertIndentation(triviaItem.pos, commentIndentation, false); + var _commentIndentation = dynamicIndentation.getIndentationForComment(currentTokenInfo.token.kind); + insertIndentation(triviaItem.pos, _commentIndentation, false); indentNextTokenOrTrivia = false; } break; @@ -31097,8 +26508,8 @@ var ts; } } function processTrivia(trivia, parent, contextNode, dynamicIndentation) { - for (var i = 0, len = trivia.length; i < len; ++i) { - var triviaItem = trivia[i]; + for (var _i = 0, _n = trivia.length; _i < _n; _i++) { + var triviaItem = trivia[_i]; if (ts.isComment(triviaItem.kind) && ts.rangeContainsRange(originalRange, triviaItem)) { var triviaItemStart = sourceFile.getLineAndCharacterOfPosition(triviaItem.pos); processRange(triviaItem, triviaItemStart, parent, contextNode, dynamicIndentation); @@ -31114,7 +26525,8 @@ var ts; trimTrailingWhitespacesForLines(originalStart.line, rangeStart.line); } else { - lineAdded = processPair(range, rangeStart.line, parent, previousRange, previousRangeStartLine, previousParent, contextNode, dynamicIndentation); + lineAdded = + processPair(range, rangeStart.line, parent, previousRange, previousRangeStartLine, previousParent, contextNode, dynamicIndentation); } } previousRange = range; @@ -31142,7 +26554,9 @@ var ts; dynamicIndentation.recomputeIndentation(true); } } - trimTrailingWhitespaces = (rule.Operation.Action & (4 | 2)) && rule.Flag !== 1; + trimTrailingWhitespaces = + (rule.Operation.Action & (4 | 2)) && + rule.Flag !== 1; } else { trimTrailingWhitespaces = true; @@ -31166,31 +26580,26 @@ var ts; } } function indentMultilineComment(commentRange, indentation, firstLineIsIndented) { - var startLine = sourceFile.getLineAndCharacterOfPosition(commentRange.pos).line; + var _startLine = sourceFile.getLineAndCharacterOfPosition(commentRange.pos).line; var endLine = sourceFile.getLineAndCharacterOfPosition(commentRange.end).line; - if (startLine === endLine) { + var parts; + if (_startLine === endLine) { if (!firstLineIsIndented) { insertIndentation(commentRange.pos, indentation, false); } return; } else { - var parts = []; + parts = []; var startPos = commentRange.pos; - for (var line = startLine; line < endLine; ++line) { + for (var line = _startLine; line < endLine; ++line) { var endOfLine = ts.getEndLinePosition(line, sourceFile); - parts.push({ - pos: startPos, - end: endOfLine - }); + parts.push({ pos: startPos, end: endOfLine }); startPos = ts.getStartPositionOfLine(line + 1, sourceFile); } - parts.push({ - pos: startPos, - end: commentRange.end - }); + parts.push({ pos: startPos, end: commentRange.end }); } - var startLinePos = ts.getStartPositionOfLine(startLine, sourceFile); + var startLinePos = ts.getStartPositionOfLine(_startLine, sourceFile); var nonWhitespaceColumnInFirstPart = formatting.SmartIndenter.findFirstNonWhitespaceCharacterAndColumn(startLinePos, parts[0].pos, sourceFile, options); if (indentation === nonWhitespaceColumnInFirstPart.column) { return; @@ -31198,19 +26607,21 @@ var ts; var startIndex = 0; if (firstLineIsIndented) { startIndex = 1; - startLine++; + _startLine++; } - var delta = indentation - nonWhitespaceColumnInFirstPart.column; - for (var i = startIndex, len = parts.length; i < len; ++i, ++startLine) { - var startLinePos = ts.getStartPositionOfLine(startLine, sourceFile); - var nonWhitespaceCharacterAndColumn = i === 0 ? nonWhitespaceColumnInFirstPart : formatting.SmartIndenter.findFirstNonWhitespaceCharacterAndColumn(parts[i].pos, parts[i].end, sourceFile, options); - var newIndentation = nonWhitespaceCharacterAndColumn.column + delta; + var _delta = indentation - nonWhitespaceColumnInFirstPart.column; + for (var i = startIndex, len = parts.length; i < len; ++i, ++_startLine) { + var _startLinePos = ts.getStartPositionOfLine(_startLine, sourceFile); + var nonWhitespaceCharacterAndColumn = i === 0 + ? nonWhitespaceColumnInFirstPart + : formatting.SmartIndenter.findFirstNonWhitespaceCharacterAndColumn(parts[i].pos, parts[i].end, sourceFile, options); + var newIndentation = nonWhitespaceCharacterAndColumn.column + _delta; if (newIndentation > 0) { var indentationString = getIndentationString(newIndentation, options); - recordReplace(startLinePos, nonWhitespaceCharacterAndColumn.character, indentationString); + recordReplace(_startLinePos, nonWhitespaceCharacterAndColumn.character, indentationString); } else { - recordDelete(startLinePos, nonWhitespaceCharacterAndColumn.character); + recordDelete(_startLinePos, nonWhitespaceCharacterAndColumn.character); } } } @@ -31232,10 +26643,7 @@ var ts; } } function newTextChange(start, len, newText) { - return { - span: ts.createTextSpan(start, len), - newText: newText - }; + return { span: ts.createTextSpan(start, len), newText: newText }; } function recordDelete(start, len) { if (len) { @@ -31389,7 +26797,12 @@ var ts; if (!precedingToken) { return 0; } - var precedingTokenIsLiteral = precedingToken.kind === 8 || precedingToken.kind === 9 || precedingToken.kind === 10 || precedingToken.kind === 11 || precedingToken.kind === 12 || precedingToken.kind === 13; + var precedingTokenIsLiteral = precedingToken.kind === 8 || + precedingToken.kind === 9 || + precedingToken.kind === 10 || + precedingToken.kind === 11 || + precedingToken.kind === 12 || + precedingToken.kind === 13; if (precedingTokenIsLiteral && precedingToken.getStart(sourceFile) <= position && precedingToken.end > position) { return 0; } @@ -31415,9 +26828,9 @@ var ts; } break; } - var actualIndentation = getActualIndentationForListItem(current, sourceFile, options); - if (actualIndentation !== -1) { - return actualIndentation; + var _actualIndentation = getActualIndentationForListItem(current, sourceFile, options); + if (_actualIndentation !== -1) { + return _actualIndentation; } previous = current; current = current.parent; @@ -31434,9 +26847,9 @@ var ts; } SmartIndenter.getIndentationForNode = getIndentationForNode; function getIndentationForNodeWorker(current, currentStart, ignoreActualIndentationRange, indentationDelta, sourceFile, options) { - var parent = current.parent; + var _parent = current.parent; var parentStart; - while (parent) { + while (_parent) { var useActualIndentation = true; if (ignoreActualIndentationRange) { var start = current.getStart(sourceFile); @@ -31448,20 +26861,21 @@ var ts; return actualIndentation + indentationDelta; } } - parentStart = getParentStart(parent, current, sourceFile); - var parentAndChildShareLine = parentStart.line === currentStart.line || childStartsOnTheSameLineWithElseInIfStatement(parent, current, currentStart.line, sourceFile); + parentStart = getParentStart(_parent, current, sourceFile); + var parentAndChildShareLine = parentStart.line === currentStart.line || + childStartsOnTheSameLineWithElseInIfStatement(_parent, current, currentStart.line, sourceFile); if (useActualIndentation) { - var actualIndentation = getActualIndentationForNode(current, parent, currentStart, parentAndChildShareLine, sourceFile, options); - if (actualIndentation !== -1) { - return actualIndentation + indentationDelta; + var _actualIndentation = getActualIndentationForNode(current, _parent, currentStart, parentAndChildShareLine, sourceFile, options); + if (_actualIndentation !== -1) { + return _actualIndentation + indentationDelta; } } - if (shouldIndentChildNode(parent.kind, current.kind) && !parentAndChildShareLine) { + if (shouldIndentChildNode(_parent.kind, current.kind) && !parentAndChildShareLine) { indentationDelta += options.IndentSize; } - current = parent; + current = _parent; currentStart = parentStart; - parent = current.parent; + _parent = current.parent; } return indentationDelta; } @@ -31482,7 +26896,8 @@ var ts; } } function getActualIndentationForNode(current, parent, currentLineAndChar, parentAndChildShareLine, sourceFile, options) { - var useActualIndentation = (ts.isDeclaration(current) || ts.isStatement(current)) && (parent.kind === 221 || !parentAndChildShareLine); + var useActualIndentation = (ts.isDeclaration(current) || ts.isStatement(current)) && + (parent.kind === 221 || !parentAndChildShareLine); if (!useActualIndentation) { return -1; } @@ -31522,7 +26937,8 @@ var ts; if (node.parent) { switch (node.parent.kind) { case 139: - if (node.parent.typeArguments && ts.rangeContainsStartEnd(node.parent.typeArguments, node.getStart(sourceFile), node.getEnd())) { + if (node.parent.typeArguments && + ts.rangeContainsStartEnd(node.parent.typeArguments, node.getStart(sourceFile), node.getEnd())) { return node.parent.typeArguments; } break; @@ -31536,25 +26952,30 @@ var ts; case 132: case 131: case 136: - case 137: + case 137: { var start = node.getStart(sourceFile); - if (node.parent.typeParameters && ts.rangeContainsStartEnd(node.parent.typeParameters, start, node.getEnd())) { + if (node.parent.typeParameters && + ts.rangeContainsStartEnd(node.parent.typeParameters, start, node.getEnd())) { return node.parent.typeParameters; } if (ts.rangeContainsStartEnd(node.parent.parameters, start, node.getEnd())) { return node.parent.parameters; } break; + } case 156: - case 155: - var start = node.getStart(sourceFile); - if (node.parent.typeArguments && ts.rangeContainsStartEnd(node.parent.typeArguments, start, node.getEnd())) { + case 155: { + var _start = node.getStart(sourceFile); + if (node.parent.typeArguments && + ts.rangeContainsStartEnd(node.parent.typeArguments, _start, node.getEnd())) { return node.parent.typeArguments; } - if (node.parent.arguments && ts.rangeContainsStartEnd(node.parent.arguments, start, node.getEnd())) { + if (node.parent.arguments && + ts.rangeContainsStartEnd(node.parent.arguments, _start, node.getEnd())) { return node.parent.arguments; } break; + } } } return undefined; @@ -31603,10 +27024,7 @@ var ts; } character++; } - return { - column: column, - character: character - }; + return { column: column, character: character }; } SmartIndenter.findFirstNonWhitespaceCharacterAndColumn = findFirstNonWhitespaceCharacterAndColumn; function findFirstNonWhitespaceColumn(startPos, endPos, sourceFile, options) { @@ -31823,8 +27241,8 @@ var ts; var list = createNode(222, nodes.pos, nodes.end, 1024, this); list._children = []; var pos = nodes.pos; - for (var i = 0, len = nodes.length; i < len; i++) { - var node = nodes[i]; + for (var _i = 0, _n = nodes.length; _i < _n; _i++) { + var node = nodes[_i]; if (pos < node.pos) { pos = this.addSyntheticNodes(list._children, pos, node.pos); } @@ -31838,9 +27256,10 @@ var ts; }; NodeObject.prototype.createChildren = function (sourceFile) { var _this = this; + var children; if (this.kind >= 125) { scanner.setText((sourceFile || this.getSourceFile()).text); - var children = []; + children = []; var pos = this.pos; var processNode = function (node) { if (pos < node.pos) { @@ -31881,8 +27300,8 @@ var ts; }; NodeObject.prototype.getFirstToken = function (sourceFile) { var children = this.getChildren(); - for (var i = 0; i < children.length; i++) { - var child = children[i]; + for (var _i = 0, _n = children.length; _i < _n; _i++) { + var child = children[_i]; if (child.kind < 125) { return child; } @@ -31989,7 +27408,10 @@ var ts; return pos; } function isName(pos, end, sourceFile, name) { - return pos + name.length < end && sourceFile.text.substr(pos, name.length) === name && (ts.isWhiteSpace(sourceFile.text.charCodeAt(pos + name.length)) || ts.isLineBreak(sourceFile.text.charCodeAt(pos + name.length))); + return pos + name.length < end && + sourceFile.text.substr(pos, name.length) === name && + (ts.isWhiteSpace(sourceFile.text.charCodeAt(pos + name.length)) || + ts.isLineBreak(sourceFile.text.charCodeAt(pos + name.length))); } function isParamTag(pos, end, sourceFile) { return isName(pos, end, sourceFile, paramTag); @@ -32001,7 +27423,7 @@ var ts; } function getCleanedJsDocComment(pos, end, sourceFile) { var spacesToRemoveAfterAsterisk; - var docComments = []; + var _docComments = []; var blankLineCount = 0; var isInParamTag = false; while (pos < end) { @@ -32036,14 +27458,14 @@ var ts; } pos = consumeLineBreaks(pos, end, sourceFile); if (docCommentTextOfLine) { - pushDocCommentLineText(docComments, docCommentTextOfLine, blankLineCount); + pushDocCommentLineText(_docComments, docCommentTextOfLine, blankLineCount); blankLineCount = 0; } - else if (!isInParamTag && docComments.length) { + else if (!isInParamTag && _docComments.length) { blankLineCount++; } } - return docComments; + return _docComments; } function getCleanedParamJsDocComment(pos, end, sourceFile) { var paramHelpStringMargin; @@ -32144,8 +27566,8 @@ var ts; } var consumedSpaces = pos - startOfLinePos; if (consumedSpaces < paramHelpStringMargin) { - var ch = sourceFile.text.charCodeAt(pos); - if (ch === 42) { + var _ch = sourceFile.text.charCodeAt(pos); + if (_ch === 42) { pos = consumeWhiteSpacesOnTheLine(pos + 1, end, sourceFile, paramHelpStringMargin - consumedSpaces - 1); } } @@ -32205,9 +27627,7 @@ var ts; }; SignatureObject.prototype.getDocumentationComment = function () { if (this.documentationComment === undefined) { - this.documentationComment = this.declaration ? getJsDocCommentsFromDeclarations([ - this.declaration - ], undefined, false) : []; + this.documentationComment = this.declaration ? getJsDocCommentsFromDeclarations([this.declaration], undefined, false) : []; } return this.documentationComment; }; @@ -32241,7 +27661,9 @@ var ts; case 131: var functionDeclaration = node; if (functionDeclaration.name && functionDeclaration.name.getFullWidth() > 0) { - var lastDeclaration = namedDeclarations.length > 0 ? namedDeclarations[namedDeclarations.length - 1] : undefined; + var lastDeclaration = namedDeclarations.length > 0 ? + namedDeclarations[namedDeclarations.length - 1] : + undefined; if (lastDeclaration && functionDeclaration.symbol === lastDeclaration.symbol) { if (functionDeclaration.body && !lastDeclaration.body) { namedDeclarations[namedDeclarations.length - 1] = functionDeclaration; @@ -32455,9 +27877,7 @@ var ts; ts.ClassificationTypeNames = ClassificationTypeNames; function displayPartsToString(displayParts) { if (displayParts) { - return ts.map(displayParts, function (displayPart) { - return displayPart.text; - }).join(""); + return ts.map(displayParts, function (displayPart) { return displayPart.text; }).join(""); } return ""; } @@ -32473,8 +27893,8 @@ var ts; if (declaration.kind !== 193 && declaration.kind !== 195) { return false; } - for (var parent = declaration.parent; !ts.isFunctionBlock(parent); parent = parent.parent) { - if (parent.kind === 221 || parent.kind === 201) { + for (var _parent = declaration.parent; !ts.isFunctionBlock(_parent); _parent = _parent.parent) { + if (_parent.kind === 221 || _parent.kind === 201) { return false; } } @@ -32515,8 +27935,9 @@ var ts; this.host = host; this.fileNameToEntry = {}; var rootFileNames = host.getScriptFileNames(); - for (var i = 0, n = rootFileNames.length; i < n; i++) { - this.createEntry(rootFileNames[i]); + for (var _i = 0, _n = rootFileNames.length; _i < _n; _i++) { + var fileName = rootFileNames[_i]; + this.createEntry(fileName); } this._compilationSettings = host.getCompilationSettings() || getDefaultCompilerOptions(); } @@ -32575,17 +27996,17 @@ var ts; if (!scriptSnapshot) { throw new Error("Could not find file: '" + fileName + "'."); } - var version = this.host.getScriptVersion(fileName); + var _version = this.host.getScriptVersion(fileName); var sourceFile; if (this.currentFileName !== fileName) { - sourceFile = createLanguageServiceSourceFile(fileName, scriptSnapshot, 2, version, true); + sourceFile = createLanguageServiceSourceFile(fileName, scriptSnapshot, 2, _version, true); } - else if (this.currentFileVersion !== version) { + else if (this.currentFileVersion !== _version) { var editRange = scriptSnapshot.getChangeRange(this.currentFileScriptSnapshot); - sourceFile = updateLanguageServiceSourceFile(this.currentSourceFile, scriptSnapshot, version, editRange); + sourceFile = updateLanguageServiceSourceFile(this.currentSourceFile, scriptSnapshot, _version, editRange); } if (sourceFile) { - this.currentFileVersion = version; + this.currentFileVersion = _version; this.currentFileName = fileName; this.currentFileScriptSnapshot = scriptSnapshot; this.currentSourceFile = sourceFile; @@ -32634,9 +28055,7 @@ var ts; return bucket; } function reportStats() { - var bucketInfoArray = Object.keys(buckets).filter(function (name) { - return name && name.charAt(0) === '_'; - }).map(function (name) { + var bucketInfoArray = Object.keys(buckets).filter(function (name) { return name && name.charAt(0) === '_'; }).map(function (name) { var entries = ts.lookUp(buckets, name); var sourceFiles = []; for (var i in entries) { @@ -32647,9 +28066,7 @@ var ts; references: entry.owners.slice(0) }); } - sourceFiles.sort(function (x, y) { - return y.refCount - x.refCount; - }); + sourceFiles.sort(function (x, y) { return y.refCount - x.refCount; }); return { bucket: name, sourceFiles: sourceFiles @@ -32838,11 +28255,7 @@ var ts; processImport(); } processTripleSlashDirectives(); - return { - referencedFiles: referencedFiles, - importedFiles: importedFiles, - isLibFile: isNoDefaultLib - }; + return { referencedFiles: referencedFiles, importedFiles: importedFiles, isLibFile: isNoDefaultLib }; } ts.preProcessFile = preProcessFile; function getTargetLabel(referenceNode, labelName) { @@ -32855,10 +28268,14 @@ var ts; return undefined; } function isJumpStatementTarget(node) { - return node.kind === 64 && (node.parent.kind === 185 || node.parent.kind === 184) && node.parent.label === node; + return node.kind === 64 && + (node.parent.kind === 185 || node.parent.kind === 184) && + node.parent.label === node; } function isLabelOfLabeledStatement(node) { - return node.kind === 64 && node.parent.kind === 189 && node.parent.label === node; + return node.kind === 64 && + node.parent.kind === 189 && + node.parent.label === node; } function isLabeledBy(node, labelName) { for (var owner = node.parent; owner.kind === 189; owner = owner.parent) { @@ -32893,10 +28310,12 @@ var ts; return node.parent.kind === 200 && node.parent.name === node; } function isNameOfFunctionDeclaration(node) { - return node.kind === 64 && ts.isFunctionLike(node.parent) && node.parent.name === node; + return node.kind === 64 && + ts.isFunctionLike(node.parent) && node.parent.name === node; } function isNameOfPropertyAssignment(node) { - return (node.kind === 64 || node.kind === 8 || node.kind === 7) && (node.parent.kind === 218 || node.parent.kind === 219) && node.parent.name === node; + return (node.kind === 64 || node.kind === 8 || node.kind === 7) && + (node.parent.kind === 218 || node.parent.kind === 219) && node.parent.name === node; } function isLiteralNameOfPropertyDeclarationOrIndexAccess(node) { if (node.kind === 8 || node.kind === 7) { @@ -32919,12 +28338,15 @@ var ts; } function isNameOfExternalModuleImportOrDeclaration(node) { if (node.kind === 8) { - return isNameOfModuleDeclaration(node) || (ts.isExternalModuleImportEqualsDeclaration(node.parent.parent) && ts.getExternalModuleImportEqualsDeclarationExpression(node.parent.parent) === node); + return isNameOfModuleDeclaration(node) || + (ts.isExternalModuleImportEqualsDeclaration(node.parent.parent) && ts.getExternalModuleImportEqualsDeclarationExpression(node.parent.parent) === node); } return false; } function isInsideComment(sourceFile, token, position) { - return position <= token.getStart(sourceFile) && (isInsideCommentRange(ts.getTrailingCommentRanges(sourceFile.text, token.getFullStart())) || isInsideCommentRange(ts.getLeadingCommentRanges(sourceFile.text, token.getFullStart()))); + return position <= token.getStart(sourceFile) && + (isInsideCommentRange(ts.getTrailingCommentRanges(sourceFile.text, token.getFullStart())) || + isInsideCommentRange(ts.getLeadingCommentRanges(sourceFile.text, token.getFullStart()))); function isInsideCommentRange(comments) { return ts.forEach(comments, function (comment) { if (comment.pos < position && position < comment.end) { @@ -32937,7 +28359,8 @@ var ts; return true; } else { - return !(text.charCodeAt(comment.end - 1) === 47 && text.charCodeAt(comment.end - 2) === 42); + return !(text.charCodeAt(comment.end - 1) === 47 && + text.charCodeAt(comment.end - 2) === 42); } } return false; @@ -32992,44 +28415,33 @@ var ts; ts.getContainerNode = getContainerNode; function getNodeKind(node) { switch (node.kind) { - case 200: - return ScriptElementKind.moduleElement; - case 196: - return ScriptElementKind.classElement; - case 197: - return ScriptElementKind.interfaceElement; - case 198: - return ScriptElementKind.typeElement; - case 199: - return ScriptElementKind.enumElement; + case 200: return ScriptElementKind.moduleElement; + case 196: return ScriptElementKind.classElement; + case 197: return ScriptElementKind.interfaceElement; + case 198: return ScriptElementKind.typeElement; + case 199: return ScriptElementKind.enumElement; case 193: - return ts.isConst(node) ? ScriptElementKind.constElement : ts.isLet(node) ? ScriptElementKind.letElement : ScriptElementKind.variableElement; - case 195: - return ScriptElementKind.functionElement; - case 134: - return ScriptElementKind.memberGetAccessorElement; - case 135: - return ScriptElementKind.memberSetAccessorElement; + return ts.isConst(node) + ? ScriptElementKind.constElement + : ts.isLet(node) + ? ScriptElementKind.letElement + : ScriptElementKind.variableElement; + case 195: return ScriptElementKind.functionElement; + case 134: return ScriptElementKind.memberGetAccessorElement; + case 135: return ScriptElementKind.memberSetAccessorElement; case 132: case 131: return ScriptElementKind.memberFunctionElement; case 130: case 129: return ScriptElementKind.memberVariableElement; - case 138: - return ScriptElementKind.indexSignatureElement; - case 137: - return ScriptElementKind.constructSignatureElement; - case 136: - return ScriptElementKind.callSignatureElement; - case 133: - return ScriptElementKind.constructorImplementationElement; - case 127: - return ScriptElementKind.typeParameterElement; - case 220: - return ScriptElementKind.variableElement; - case 128: - return (node.flags & 112) ? ScriptElementKind.memberVariableElement : ScriptElementKind.parameterElement; + case 138: return ScriptElementKind.indexSignatureElement; + case 137: return ScriptElementKind.constructSignatureElement; + case 136: return ScriptElementKind.callSignatureElement; + case 133: return ScriptElementKind.constructorImplementationElement; + case 127: return ScriptElementKind.typeParameterElement; + case 220: return ScriptElementKind.variableElement; + case 128: return (node.flags & 112) ? ScriptElementKind.memberVariableElement : ScriptElementKind.parameterElement; case 203: case 208: case 205: @@ -33085,31 +28497,19 @@ var ts; var changesInCompilationSettingsAffectSyntax = oldSettings && oldSettings.target !== newSettings.target; var newProgram = ts.createProgram(hostCache.getRootFileNames(), newSettings, { getSourceFile: getOrCreateSourceFile, - getCancellationToken: function () { - return cancellationToken; - }, - getCanonicalFileName: function (fileName) { - return useCaseSensitivefileNames ? fileName : fileName.toLowerCase(); - }, - useCaseSensitiveFileNames: function () { - return useCaseSensitivefileNames; - }, - getNewLine: function () { - return host.getNewLine ? host.getNewLine() : "\r\n"; - }, - getDefaultLibFileName: function (options) { - return host.getDefaultLibFileName(options); - }, - writeFile: function (fileName, data, writeByteOrderMark) { - }, - getCurrentDirectory: function () { - return host.getCurrentDirectory(); - } + getCancellationToken: function () { return cancellationToken; }, + getCanonicalFileName: function (fileName) { return useCaseSensitivefileNames ? fileName : fileName.toLowerCase(); }, + useCaseSensitiveFileNames: function () { return useCaseSensitivefileNames; }, + getNewLine: function () { return host.getNewLine ? host.getNewLine() : "\r\n"; }, + getDefaultLibFileName: function (options) { return host.getDefaultLibFileName(options); }, + writeFile: function (fileName, data, writeByteOrderMark) { }, + getCurrentDirectory: function () { return host.getCurrentDirectory(); } }); if (program) { var oldSourceFiles = program.getSourceFiles(); - for (var i = 0, n = oldSourceFiles.length; i < n; i++) { - var fileName = oldSourceFiles[i].fileName; + for (var _i = 0, _n = oldSourceFiles.length; _i < _n; _i++) { + var oldSourceFile = oldSourceFiles[_i]; + var fileName = oldSourceFile.fileName; if (!newProgram.getSourceFile(fileName) || changesInCompilationSettingsAffectSyntax) { documentRegistry.releaseDocument(fileName, oldSettings); } @@ -33124,8 +28524,8 @@ var ts; return undefined; } if (!changesInCompilationSettingsAffectSyntax) { - var oldSourceFile = program && program.getSourceFile(fileName); - if (oldSourceFile) { + var _oldSourceFile = program && program.getSourceFile(fileName); + if (_oldSourceFile) { return documentRegistry.updateDocument(fileName, newSettings, hostFileInformation.scriptSnapshot, hostFileInformation.version); } } @@ -33142,8 +28542,9 @@ var ts; if (program.getSourceFiles().length !== rootFileNames.length) { return false; } - for (var i = 0, n = rootFileNames.length; i < n; i++) { - if (!sourceFileUpToDate(program.getSourceFile(rootFileNames[i]))) { + for (var _a = 0, _b = rootFileNames.length; _a < _b; _a++) { + var _fileName = rootFileNames[_a]; + if (!sourceFileUpToDate(program.getSourceFile(_fileName))) { return false; } } @@ -33191,12 +28592,13 @@ var ts; if ((symbol.flags & 1536) && (firstCharCode === 39 || firstCharCode === 34)) { return undefined; } - if (displayName && displayName.length >= 2 && firstCharCode === displayName.charCodeAt(displayName.length - 1) && (firstCharCode === 39 || firstCharCode === 34)) { + if (displayName && displayName.length >= 2 && firstCharCode === displayName.charCodeAt(displayName.length - 1) && + (firstCharCode === 39 || firstCharCode === 34)) { displayName = displayName.substring(1, displayName.length - 1); } var isValid = ts.isIdentifierStart(displayName.charCodeAt(0), target); - for (var i = 1, n = displayName.length; isValid && i < n; i++) { - isValid = ts.isIdentifierPart(displayName.charCodeAt(i), target); + for (var _i = 1, n = displayName.length; isValid && _i < n; _i++) { + isValid = ts.isIdentifierPart(displayName.charCodeAt(_i), target); } if (isValid) { return ts.unescapeIdentifier(displayName); @@ -33222,20 +28624,20 @@ var ts; var start = new Date().getTime(); var currentToken = ts.getTokenAtPosition(sourceFile, position); log("getCompletionsAtPosition: Get current token: " + (new Date().getTime() - start)); - var start = new Date().getTime(); + start = new Date().getTime(); var insideComment = isInsideComment(sourceFile, currentToken, position); log("getCompletionsAtPosition: Is inside comment: " + (new Date().getTime() - start)); if (insideComment) { log("Returning an empty list because completion was inside a comment."); return undefined; } - var start = new Date().getTime(); + start = new Date().getTime(); var previousToken = ts.findPrecedingToken(position, sourceFile); log("getCompletionsAtPosition: Get previous token 1: " + (new Date().getTime() - start)); if (previousToken && position <= previousToken.end && previousToken.kind === 64) { - var start = new Date().getTime(); + var _start = new Date().getTime(); previousToken = ts.findPrecedingToken(previousToken.pos, sourceFile); - log("getCompletionsAtPosition: Get previous token 2: " + (new Date().getTime() - start)); + log("getCompletionsAtPosition: Get previous token 2: " + (new Date().getTime() - _start)); } if (previousToken && isCompletionListBlocker(previousToken)) { log("Returning an empty list because completion was requested in an invalid position."); @@ -33263,12 +28665,14 @@ var ts; typeChecker: typeInfoResolver }; log("getCompletionsAtPosition: Syntactic work: " + (new Date().getTime() - syntacticStart)); - var location = ts.getTouchingPropertyName(sourceFile, position); + var _location = ts.getTouchingPropertyName(sourceFile, position); var semanticStart = new Date().getTime(); + var isMemberCompletion; + var isNewIdentifierLocation; if (isRightOfDot) { var symbols = []; - var isMemberCompletion = true; - var isNewIdentifierLocation = false; + isMemberCompletion = true; + isNewIdentifierLocation = false; if (node.kind === 64 || node.kind === 125 || node.kind === 153) { var symbol = typeInfoResolver.getSymbolAtLocation(node); if (symbol && symbol.flags & 8388608) { @@ -33322,8 +28726,8 @@ var ts; isMemberCompletion = false; isNewIdentifierLocation = isNewIdentifierDefinitionLocation(previousToken); var symbolMeanings = 793056 | 107455 | 1536 | 8388608; - var symbols = typeInfoResolver.getSymbolsInScope(node, symbolMeanings); - getCompletionEntriesFromSymbols(symbols, activeCompletionSession); + var _symbols = typeInfoResolver.getSymbolsInScope(node, symbolMeanings); + getCompletionEntriesFromSymbols(_symbols, activeCompletionSession); } } if (!isMemberCompletion) { @@ -33337,9 +28741,9 @@ var ts; entries: activeCompletionSession.entries }; function getCompletionEntriesFromSymbols(symbols, session) { - var start = new Date().getTime(); + var _start_1 = new Date().getTime(); ts.forEach(symbols, function (symbol) { - var entry = createCompletionEntry(symbol, session.typeChecker, location); + var entry = createCompletionEntry(symbol, session.typeChecker, _location); if (entry) { var id = ts.escapeIdentifier(entry.name); if (!ts.lookUp(session.symbols, id)) { @@ -33348,12 +28752,14 @@ var ts; } } }); - log("getCompletionsAtPosition: getCompletionEntriesFromSymbols: " + (new Date().getTime() - start)); + log("getCompletionsAtPosition: getCompletionEntriesFromSymbols: " + (new Date().getTime() - _start_1)); } function isCompletionListBlocker(previousToken) { - var start = new Date().getTime(); - var result = isInStringOrRegularExpressionOrTemplateLiteral(previousToken) || isIdentifierDefinitionLocation(previousToken) || isRightOfIllegalDot(previousToken); - log("getCompletionsAtPosition: isCompletionListBlocker: " + (new Date().getTime() - start)); + var _start_1 = new Date().getTime(); + var result = isInStringOrRegularExpressionOrTemplateLiteral(previousToken) || + isIdentifierDefinitionLocation(previousToken) || + isRightOfIllegalDot(previousToken); + log("getCompletionsAtPosition: isCompletionListBlocker: " + (new Date().getTime() - _start_1)); return result; } function showCompletionsInImportsClause(node) { @@ -33369,9 +28775,16 @@ var ts; var containingNodeKind = previousToken.parent.kind; switch (previousToken.kind) { case 23: - return containingNodeKind === 155 || containingNodeKind === 133 || containingNodeKind === 156 || containingNodeKind === 151 || containingNodeKind === 167; + return containingNodeKind === 155 + || containingNodeKind === 133 + || containingNodeKind === 156 + || containingNodeKind === 151 + || containingNodeKind === 167; case 16: - return containingNodeKind === 155 || containingNodeKind === 133 || containingNodeKind === 156 || containingNodeKind === 159; + return containingNodeKind === 155 + || containingNodeKind === 133 + || containingNodeKind === 156 + || containingNodeKind === 159; case 18: return containingNodeKind === 151; case 116: @@ -33381,7 +28794,8 @@ var ts; case 14: return containingNodeKind === 196; case 52: - return containingNodeKind === 193 || containingNodeKind === 167; + return containingNodeKind === 193 + || containingNodeKind === 167; case 11: return containingNodeKind === 169; case 12: @@ -33401,10 +28815,12 @@ var ts; return false; } function isInStringOrRegularExpressionOrTemplateLiteral(previousToken) { - if (previousToken.kind === 8 || previousToken.kind === 9 || ts.isTemplateLiteralKind(previousToken.kind)) { - var start = previousToken.getStart(); + if (previousToken.kind === 8 + || previousToken.kind === 9 + || ts.isTemplateLiteralKind(previousToken.kind)) { + var _start_1 = previousToken.getStart(); var end = previousToken.getEnd(); - if (start < position && position < end) { + if (_start_1 < position && position < end) { return true; } else if (position === end) { @@ -33415,12 +28831,12 @@ var ts; } function getContainingObjectLiteralApplicableForCompletion(previousToken) { if (previousToken) { - var parent = previousToken.parent; + var _parent = previousToken.parent; switch (previousToken.kind) { case 14: case 23: - if (parent && parent.kind === 152) { - return parent; + if (_parent && _parent.kind === 152) { + return _parent; } break; } @@ -33448,23 +28864,43 @@ var ts; var containingNodeKind = previousToken.parent.kind; switch (previousToken.kind) { case 23: - return containingNodeKind === 193 || containingNodeKind === 194 || containingNodeKind === 175 || containingNodeKind === 199 || isFunction(containingNodeKind) || containingNodeKind === 196 || containingNodeKind === 195 || containingNodeKind === 197 || containingNodeKind === 149 || containingNodeKind === 148; + return containingNodeKind === 193 || + containingNodeKind === 194 || + containingNodeKind === 175 || + containingNodeKind === 199 || + isFunction(containingNodeKind) || + containingNodeKind === 196 || + containingNodeKind === 195 || + containingNodeKind === 197 || + containingNodeKind === 149 || + containingNodeKind === 148; case 20: return containingNodeKind === 149; case 18: return containingNodeKind === 149; case 16: - return containingNodeKind === 217 || isFunction(containingNodeKind); + return containingNodeKind === 217 || + isFunction(containingNodeKind); case 14: - return containingNodeKind === 199 || containingNodeKind === 197 || containingNodeKind === 143 || containingNodeKind === 148; + return containingNodeKind === 199 || + containingNodeKind === 197 || + containingNodeKind === 143 || + containingNodeKind === 148; case 22: - return containingNodeKind === 129 && (previousToken.parent.parent.kind === 197 || previousToken.parent.parent.kind === 143); + return containingNodeKind === 129 && + (previousToken.parent.parent.kind === 197 || + previousToken.parent.parent.kind === 143); case 24: - return containingNodeKind === 196 || containingNodeKind === 195 || containingNodeKind === 197 || isFunction(containingNodeKind); + return containingNodeKind === 196 || + containingNodeKind === 195 || + containingNodeKind === 197 || + isFunction(containingNodeKind); case 109: return containingNodeKind === 130; case 21: - return containingNodeKind === 128 || containingNodeKind === 133 || (previousToken.parent.parent.kind === 149); + return containingNodeKind === 128 || + containingNodeKind === 133 || + (previousToken.parent.parent.kind === 149); case 108: case 106: case 107: @@ -33509,18 +28945,17 @@ var ts; if (!importDeclaration.importClause) { return exports; } - if (importDeclaration.importClause.namedBindings && importDeclaration.importClause.namedBindings.kind === 207) { + if (importDeclaration.importClause.namedBindings && + importDeclaration.importClause.namedBindings.kind === 207) { ts.forEach(importDeclaration.importClause.namedBindings.elements, function (el) { - var name = el.propertyName || el.name; - exisingImports[name.text] = true; + var _name = el.propertyName || el.name; + exisingImports[_name.text] = true; }); } if (ts.isEmpty(exisingImports)) { return exports; } - return ts.filter(exports, function (e) { - return !ts.lookUp(exisingImports, e.name); - }); + return ts.filter(exports, function (e) { return !ts.lookUp(exisingImports, e.name); }); } function filterContextualMembersList(contextualMemberSymbols, existingMembers) { if (!existingMembers || existingMembers.length === 0) { @@ -33536,13 +28971,13 @@ var ts; } existingMemberNames[m.name.text] = true; }); - var filteredMembers = []; + var _filteredMembers = []; ts.forEach(contextualMemberSymbols, function (s) { if (!existingMemberNames[s.name]) { - filteredMembers.push(s); + _filteredMembers.push(s); } }); - return filteredMembers; + return _filteredMembers; } } function getCompletionEntryDetails(fileName, position, entryName) { @@ -33553,10 +28988,10 @@ var ts; } var symbol = ts.lookUp(activeCompletionSession.symbols, ts.escapeIdentifier(entryName)); if (symbol) { - var location = ts.getTouchingPropertyName(sourceFile, position); - var completionEntry = createCompletionEntry(symbol, session.typeChecker, location); - ts.Debug.assert(session.typeChecker.getTypeOfSymbolAtLocation(symbol, location) !== undefined, "Could not find type for symbol"); - var displayPartsDocumentationsAndSymbolKind = getSymbolDisplayPartsDocumentationAndSymbolKind(symbol, getValidSourceFile(fileName), location, session.typeChecker, location, 7); + var _location = ts.getTouchingPropertyName(sourceFile, position); + var completionEntry = createCompletionEntry(symbol, session.typeChecker, _location); + ts.Debug.assert(session.typeChecker.getTypeOfSymbolAtLocation(symbol, _location) !== undefined, "Could not find type for symbol"); + var displayPartsDocumentationsAndSymbolKind = getSymbolDisplayPartsDocumentationAndSymbolKind(symbol, getValidSourceFile(fileName), _location, session.typeChecker, _location, 7); return { name: entryName, kind: displayPartsDocumentationsAndSymbolKind.symbolKind, @@ -33570,9 +29005,7 @@ var ts; name: entryName, kind: ScriptElementKind.keyword, kindModifiers: ScriptElementKindModifier.none, - displayParts: [ - ts.displayPart(entryName, 5) - ], + displayParts: [ts.displayPart(entryName, 5)], documentation: undefined }; } @@ -33670,7 +29103,9 @@ var ts; return ScriptElementKind.unknown; } function getSymbolModifiers(symbol) { - return symbol && symbol.declarations && symbol.declarations.length > 0 ? ts.getNodeModifiers(symbol.declarations[0]) : ScriptElementKindModifier.none; + return symbol && symbol.declarations && symbol.declarations.length > 0 + ? ts.getNodeModifiers(symbol.declarations[0]) + : ScriptElementKindModifier.none; } function getSymbolDisplayPartsDocumentationAndSymbolKind(symbol, sourceFile, enclosingDeclaration, typeResolver, location, semanticMeaning) { if (semanticMeaning === void 0) { semanticMeaning = getMeaningFromLocation(location); } @@ -33679,11 +29114,13 @@ var ts; var symbolFlags = symbol.flags; var symbolKind = getSymbolKindOfConstructorPropertyMethodAccessorFunctionOrVar(symbol, symbolFlags, typeResolver, location); var hasAddedSymbolInfo; + var type; if (symbolKind !== ScriptElementKind.unknown || symbolFlags & 32 || symbolFlags & 8388608) { if (symbolKind === ScriptElementKind.memberGetAccessorElement || symbolKind === ScriptElementKind.memberSetAccessorElement) { symbolKind = ScriptElementKind.memberVariableElement; } - var type = typeResolver.getTypeOfSymbolAtLocation(symbol, location); + var signature; + type = typeResolver.getTypeOfSymbolAtLocation(symbol, location); if (type) { if (location.parent && location.parent.kind === 153) { var right = location.parent.name; @@ -33753,24 +29190,25 @@ var ts; hasAddedSymbolInfo = true; } } - else if ((isNameOfFunctionDeclaration(location) && !(symbol.flags & 98304)) || (location.kind === 113 && location.parent.kind === 133)) { - var signature; + else if ((isNameOfFunctionDeclaration(location) && !(symbol.flags & 98304)) || + (location.kind === 113 && location.parent.kind === 133)) { var functionDeclaration = location.parent; - var allSignatures = functionDeclaration.kind === 133 ? type.getConstructSignatures() : type.getCallSignatures(); + var _allSignatures = functionDeclaration.kind === 133 ? type.getConstructSignatures() : type.getCallSignatures(); if (!typeResolver.isImplementationOfOverload(functionDeclaration)) { signature = typeResolver.getSignatureFromDeclaration(functionDeclaration); } else { - signature = allSignatures[0]; + signature = _allSignatures[0]; } if (functionDeclaration.kind === 133) { symbolKind = ScriptElementKind.constructorImplementationElement; addPrefixForAnyFunctionOrVar(type.symbol, symbolKind); } else { - addPrefixForAnyFunctionOrVar(functionDeclaration.kind === 136 && !(type.symbol.flags & 2048 || type.symbol.flags & 4096) ? type.symbol : symbol, symbolKind); + addPrefixForAnyFunctionOrVar(functionDeclaration.kind === 136 && + !(type.symbol.flags & 2048 || type.symbol.flags & 4096) ? type.symbol : symbol, symbolKind); } - addSignatureDisplayParts(signature, allSignatures); + addSignatureDisplayParts(signature, _allSignatures); hasAddedSymbolInfo = true; } } @@ -33830,7 +29268,7 @@ var ts; } else { var signatureDeclaration = ts.getDeclarationOfKind(symbol, 127).parent; - var signature = typeResolver.getSignatureFromDeclaration(signatureDeclaration); + var _signature = typeResolver.getSignatureFromDeclaration(signatureDeclaration); if (signatureDeclaration.kind === 137) { displayParts.push(ts.keywordPart(87)); displayParts.push(ts.spacePart()); @@ -33838,7 +29276,7 @@ var ts; else if (signatureDeclaration.kind !== 136 && signatureDeclaration.name) { addFullSymbolName(signatureDeclaration.symbol); } - displayParts.push.apply(displayParts, ts.signatureToDisplayParts(typeResolver, signature, sourceFile, 32)); + displayParts.push.apply(displayParts, ts.signatureToDisplayParts(typeResolver, _signature, sourceFile, 32)); } } if (symbolFlags & 8) { @@ -33888,7 +29326,9 @@ var ts; if (symbolKind !== ScriptElementKind.unknown) { if (type) { addPrefixForAnyFunctionOrVar(symbol, symbolKind); - if (symbolKind === ScriptElementKind.memberVariableElement || symbolFlags & 3 || symbolKind === ScriptElementKind.localVariableElement) { + if (symbolKind === ScriptElementKind.memberVariableElement || + symbolFlags & 3 || + symbolKind === ScriptElementKind.localVariableElement) { displayParts.push(ts.punctuationPart(51)); displayParts.push(ts.spacePart()); if (type.symbol && type.symbol.flags & 262144) { @@ -33901,9 +29341,14 @@ var ts; displayParts.push.apply(displayParts, ts.typeToDisplayParts(typeResolver, type, enclosingDeclaration)); } } - else if (symbolFlags & 16 || symbolFlags & 8192 || symbolFlags & 16384 || symbolFlags & 131072 || symbolFlags & 98304 || symbolKind === ScriptElementKind.memberFunctionElement) { - var allSignatures = type.getCallSignatures(); - addSignatureDisplayParts(allSignatures[0], allSignatures); + else if (symbolFlags & 16 || + symbolFlags & 8192 || + symbolFlags & 16384 || + symbolFlags & 131072 || + symbolFlags & 98304 || + symbolKind === ScriptElementKind.memberFunctionElement) { + var _allSignatures_1 = type.getCallSignatures(); + addSignatureDisplayParts(_allSignatures_1[0], _allSignatures_1); } } } @@ -33914,11 +29359,7 @@ var ts; if (!documentation) { documentation = symbol.getDocumentationComment(); } - return { - displayParts: displayParts, - documentation: documentation, - symbolKind: symbolKind - }; + return { displayParts: displayParts, documentation: documentation, symbolKind: symbolKind }; function addNewLineIfDisplayPartsExist() { if (displayParts.length) { displayParts.push(ts.lineBreakPart()); @@ -33952,10 +29393,10 @@ var ts; documentation = signature.getDocumentationComment(); } function writeTypeParametersOfSymbol(symbol, enclosingDeclaration) { - var typeParameterParts = ts.mapToDisplayParts(function (writer) { + var _typeParameterParts = ts.mapToDisplayParts(function (writer) { typeResolver.getSymbolDisplayBuilder().buildTypeParameterDisplayFromSymbol(symbol, writer, enclosingDeclaration); }); - displayParts.push.apply(displayParts, typeParameterParts); + displayParts.push.apply(displayParts, _typeParameterParts); } } function getQuickInfoAtPosition(fileName, position) { @@ -34005,26 +29446,20 @@ var ts; if (isJumpStatementTarget(node)) { var labelName = node.text; var label = getTargetLabel(node.parent, node.text); - return label ? [ - getDefinitionInfo(label, ScriptElementKind.label, labelName, undefined) - ] : undefined; + return label ? [getDefinitionInfo(label, ScriptElementKind.label, labelName, undefined)] : undefined; } - var comment = ts.forEach(sourceFile.referencedFiles, function (r) { - return (r.pos <= position && position < r.end) ? r : undefined; - }); + var comment = ts.forEach(sourceFile.referencedFiles, function (r) { return (r.pos <= position && position < r.end) ? r : undefined; }); if (comment) { var referenceFile = ts.tryResolveScriptReference(program, sourceFile, comment); if (referenceFile) { - return [ - { + return [{ fileName: referenceFile.fileName, textSpan: ts.createTextSpanFromBounds(0, 0), kind: ScriptElementKind.scriptElement, name: comment.fileName, containerName: undefined, containerKind: undefined - } - ]; + }]; } return undefined; } @@ -34055,7 +29490,8 @@ var ts; var symbolKind = getSymbolKind(symbol, typeInfoResolver, node); var containerSymbol = symbol.parent; var containerName = containerSymbol ? typeInfoResolver.symbolToString(containerSymbol, node) : ""; - if (!tryAddConstructSignature(symbol, node, symbolKind, symbolName, containerName, result) && !tryAddCallSignature(symbol, node, symbolKind, symbolName, containerName, result)) { + if (!tryAddConstructSignature(symbol, node, symbolKind, symbolName, containerName, result) && + !tryAddCallSignature(symbol, node, symbolKind, symbolName, containerName, result)) { ts.forEach(declarations, function (declaration) { result.push(getDefinitionInfo(declaration, symbolKind, symbolName, containerName)); }); @@ -34072,11 +29508,12 @@ var ts; }; } function tryAddSignature(signatureDeclarations, selectConstructors, symbolKind, symbolName, containerName, result) { - var declarations = []; + var _declarations = []; var definition; ts.forEach(signatureDeclarations, function (d) { - if ((selectConstructors && d.kind === 133) || (!selectConstructors && (d.kind === 195 || d.kind === 132 || d.kind === 131))) { - declarations.push(d); + if ((selectConstructors && d.kind === 133) || + (!selectConstructors && (d.kind === 195 || d.kind === 132 || d.kind === 131))) { + _declarations.push(d); if (d.body) definition = d; } @@ -34085,8 +29522,8 @@ var ts; result.push(getDefinitionInfo(definition, symbolKind, symbolName, containerName)); return true; } - else if (declarations.length) { - result.push(getDefinitionInfo(declarations[declarations.length - 1], symbolKind, symbolName, containerName)); + else if (_declarations.length) { + result.push(getDefinitionInfo(_declarations[_declarations.length - 1], symbolKind, symbolName, containerName)); return true; } return false; @@ -34115,10 +29552,9 @@ var ts; if (!node) { return undefined; } - if (node.kind === 64 || node.kind === 92 || node.kind === 90 || isLiteralNameOfPropertyDeclarationOrIndexAccess(node) || isNameOfExternalModuleImportOrDeclaration(node)) { - return getReferencesForNode(node, [ - sourceFile - ], true, false, false); + if (node.kind === 64 || node.kind === 92 || node.kind === 90 || + isLiteralNameOfPropertyDeclarationOrIndexAccess(node) || isNameOfExternalModuleImportOrDeclaration(node)) { + return getReferencesForNode(node, [sourceFile], true, false, false); } switch (node.kind) { case 83: @@ -34166,7 +29602,9 @@ var ts; } break; case 81: - if (hasKind(node.parent, 181) || hasKind(node.parent, 182) || hasKind(node.parent, 183)) { + if (hasKind(node.parent, 181) || + hasKind(node.parent, 182) || + hasKind(node.parent, 183)) { return getLoopBreakContinueOccurrences(node.parent); } break; @@ -34187,7 +29625,8 @@ var ts; return getGetAndSetOccurrences(node.parent); } default: - if (ts.isModifier(node.kind) && node.parent && (ts.isDeclaration(node.parent) || node.parent.kind === 175)) { + if (ts.isModifier(node.kind) && node.parent && + (ts.isDeclaration(node.parent) || node.parent.kind === 175)) { return getModifierOccurrences(node.kind, node.parent); } } @@ -34200,8 +29639,8 @@ var ts; while (ifStatement) { var children = ifStatement.getChildren(); pushKeywordIf(keywords, children[0], 83); - for (var i = children.length - 1; i >= 0; i--) { - if (pushKeywordIf(keywords, children[i], 75)) { + for (var _i = children.length - 1; _i >= 0; _i--) { + if (pushKeywordIf(keywords, children[_i], 75)) { break; } } @@ -34211,10 +29650,10 @@ var ts; ifStatement = ifStatement.elseStatement; } var result = []; - for (var i = 0; i < keywords.length; i++) { - if (keywords[i].kind === 75 && i < keywords.length - 1) { - var elseKeyword = keywords[i]; - var ifKeyword = keywords[i + 1]; + for (var _i_1 = 0; _i_1 < keywords.length; _i_1++) { + if (keywords[_i_1].kind === 75 && _i_1 < keywords.length - 1) { + var elseKeyword = keywords[_i_1]; + var ifKeyword = keywords[_i_1 + 1]; var shouldHighlightNextKeyword = true; for (var j = ifKeyword.getStart() - 1; j >= elseKeyword.end; j--) { if (!ts.isWhiteSpace(sourceFile.text.charCodeAt(j))) { @@ -34228,11 +29667,11 @@ var ts; textSpan: ts.createTextSpanFromBounds(elseKeyword.getStart(), ifKeyword.end), isWriteAccess: false }); - i++; + _i_1++; continue; } } - result.push(getReferenceEntryFromNode(keywords[i])); + result.push(getReferenceEntryFromNode(keywords[_i_1])); } return result; } @@ -34295,17 +29734,17 @@ var ts; function getThrowStatementOwner(throwStatement) { var child = throwStatement; while (child.parent) { - var parent = child.parent; - if (ts.isFunctionBlock(parent) || parent.kind === 221) { - return parent; + var _parent = child.parent; + if (ts.isFunctionBlock(_parent) || _parent.kind === 221) { + return _parent; } - if (parent.kind === 191) { - var tryStatement = parent; + if (_parent.kind === 191) { + var tryStatement = _parent; if (tryStatement.tryBlock === child && tryStatement.catchClause) { return child; } } - child = parent; + child = _parent; } return undefined; } @@ -34326,8 +29765,8 @@ var ts; if (pushKeywordIf(keywords, loopNode.getFirstToken(), 81, 99, 74)) { if (loopNode.kind === 179) { var loopTokens = loopNode.getChildren(); - for (var i = loopTokens.length - 1; i >= 0; i--) { - if (pushKeywordIf(keywords, loopTokens[i], 99)) { + for (var _i = loopTokens.length - 1; _i >= 0; _i--) { + if (pushKeywordIf(keywords, loopTokens[_i], 99)) { break; } } @@ -34390,8 +29829,8 @@ var ts; return actualOwner && actualOwner === owner; } function getBreakOrContinueOwner(statement) { - for (var node = statement.parent; node; node = node.parent) { - switch (node.kind) { + for (var _node = statement.parent; _node; _node = _node.parent) { + switch (_node.kind) { case 188: if (statement.kind === 184) { continue; @@ -34401,12 +29840,12 @@ var ts; case 183: case 180: case 179: - if (!statement.label || isLabeledBy(node, statement.label.text)) { - return node; + if (!statement.label || isLabeledBy(_node, statement.label.text)) { + return _node; } break; default: - if (ts.isFunctionLike(node)) { + if (ts.isFunctionLike(_node)) { return undefined; } break; @@ -34432,16 +29871,15 @@ var ts; function tryPushAccessorKeyword(accessorSymbol, accessorKind) { var accessor = ts.getDeclarationOfKind(accessorSymbol, accessorKind); if (accessor) { - ts.forEach(accessor.getChildren(), function (child) { - return pushKeywordIf(keywords, child, 115, 119); - }); + ts.forEach(accessor.getChildren(), function (child) { return pushKeywordIf(keywords, child, 115, 119); }); } } } function getModifierOccurrences(modifier, declaration) { var container = declaration.parent; if (declaration.flags & 112) { - if (!(container.kind === 196 || (declaration.kind === 128 && hasKind(container, 133)))) { + if (!(container.kind === 196 || + (declaration.kind === 128 && hasKind(container, 133)))) { return undefined; } } @@ -34485,9 +29923,7 @@ var ts; } ts.forEach(nodes, function (node) { if (node.modifiers && node.flags & modifierFlag) { - ts.forEach(node.modifiers, function (child) { - return pushKeywordIf(keywords, child, modifier); - }); + ts.forEach(node.modifiers, function (child) { return pushKeywordIf(keywords, child, modifier); }); } }); return ts.map(keywords, getReferenceEntryFromNode); @@ -34541,7 +29977,9 @@ var ts; if (!node) { return undefined; } - if (node.kind !== 64 && !isLiteralNameOfPropertyDeclarationOrIndexAccess(node) && !isNameOfExternalModuleImportOrDeclaration(node)) { + if (node.kind !== 64 && + !isLiteralNameOfPropertyDeclarationOrIndexAccess(node) && + !isNameOfExternalModuleImportOrDeclaration(node)) { return undefined; } ts.Debug.assert(node.kind === 64 || node.kind === 7 || node.kind === 8); @@ -34551,9 +29989,7 @@ var ts; if (isLabelName(node)) { if (isJumpStatementTarget(node)) { var labelDefinition = getTargetLabel(node.parent, node.text); - return labelDefinition ? getLabelReferencesInNode(labelDefinition.parent, labelDefinition) : [ - getReferenceEntryFromNode(node) - ]; + return labelDefinition ? getLabelReferencesInNode(labelDefinition.parent, labelDefinition) : [getReferenceEntryFromNode(node)]; } else { return getLabelReferencesInNode(node.parent, node); @@ -34567,9 +30003,7 @@ var ts; } var symbol = typeInfoResolver.getSymbolAtLocation(node); if (!symbol) { - return [ - getReferenceEntryFromNode(node) - ]; + return [getReferenceEntryFromNode(node)]; } var declarations = symbol.declarations; if (!declarations || !declarations.length) { @@ -34603,7 +30037,9 @@ var ts; } return result; function isImportOrExportSpecifierName(location) { - return location.parent && (location.parent.kind === 208 || location.parent.kind === 212) && location.parent.propertyName === location; + return location.parent && + (location.parent.kind === 208 || location.parent.kind === 212) && + location.parent.propertyName === location; } function isImportOrExportSpecifierImportSymbol(symbol) { return (symbol.flags & 8388608) && ts.forEach(symbol.declarations, function (declaration) { @@ -34611,46 +30047,38 @@ var ts; }); } function getDeclaredName(symbol, location) { - var functionExpression = ts.forEach(symbol.declarations, function (d) { - return d.kind === 160 ? d : undefined; - }); + var functionExpression = ts.forEach(symbol.declarations, function (d) { return d.kind === 160 ? d : undefined; }); + var _name; if (functionExpression && functionExpression.name) { - var name = functionExpression.name.text; + _name = functionExpression.name.text; } if (isImportOrExportSpecifierName(location)) { return location.getText(); } - var name = typeInfoResolver.symbolToString(symbol); - return stripQuotes(name); + _name = typeInfoResolver.symbolToString(symbol); + return stripQuotes(_name); } function getInternedName(symbol, location, declarations) { if (isImportOrExportSpecifierName(location)) { return location.getText(); } - var functionExpression = ts.forEach(declarations, function (d) { - return d.kind === 160 ? d : undefined; - }); - if (functionExpression && functionExpression.name) { - var name = functionExpression.name.text; - } - else { - var name = symbol.name; - } - return stripQuotes(name); + var functionExpression = ts.forEach(declarations, function (d) { return d.kind === 160 ? d : undefined; }); + var _name = functionExpression && functionExpression.name + ? functionExpression.name.text + : symbol.name; + return stripQuotes(_name); } function stripQuotes(name) { - var length = name.length; - if (length >= 2 && name.charCodeAt(0) === 34 && name.charCodeAt(length - 1) === 34) { - return name.substring(1, length - 1); + var _length = name.length; + if (_length >= 2 && name.charCodeAt(0) === 34 && name.charCodeAt(_length - 1) === 34) { + return name.substring(1, _length - 1); } ; return name; } function getSymbolScope(symbol) { if (symbol.flags & (4 | 8192)) { - var privateDeclaration = ts.forEach(symbol.getDeclarations(), function (d) { - return (d.flags & 32) ? d : undefined; - }); + var privateDeclaration = ts.forEach(symbol.getDeclarations(), function (d) { return (d.flags & 32) ? d : undefined; }); if (privateDeclaration) { return ts.getAncestor(privateDeclaration, 196); } @@ -34661,24 +30089,25 @@ var ts; if (symbol.parent || (symbol.flags & 268435456)) { return undefined; } - var scope = undefined; - var declarations = symbol.getDeclarations(); - if (declarations) { - for (var i = 0, n = declarations.length; i < n; i++) { - var container = getContainerNode(declarations[i]); + var _scope = undefined; + var _declarations = symbol.getDeclarations(); + if (_declarations) { + for (var _i = 0, _n = _declarations.length; _i < _n; _i++) { + var declaration = _declarations[_i]; + var container = getContainerNode(declaration); if (!container) { return undefined; } - if (scope && scope !== container) { + if (_scope && _scope !== container) { return undefined; } if (container.kind === 221 && !ts.isExternalModule(container)) { return undefined; } - scope = container; + _scope = container; } } - return scope; + return _scope; } function getPossibleSymbolReferencePositions(sourceFile, symbolName, start, end) { var positions = []; @@ -34694,7 +30123,8 @@ var ts; if (position > end) break; var endPosition = position + symbolNameLength; - if ((position === 0 || !ts.isIdentifierPart(text.charCodeAt(position - 1), 2)) && (endPosition === sourceLength || !ts.isIdentifierPart(text.charCodeAt(endPosition), 2))) { + if ((position === 0 || !ts.isIdentifierPart(text.charCodeAt(position - 1), 2)) && + (endPosition === sourceLength || !ts.isIdentifierPart(text.charCodeAt(endPosition), 2))) { positions.push(position); } position = text.indexOf(symbolName, position + symbolNameLength + 1); @@ -34702,21 +30132,22 @@ var ts; return positions; } function getLabelReferencesInNode(container, targetLabel) { - var result = []; + var _result = []; var sourceFile = container.getSourceFile(); var labelName = targetLabel.text; var possiblePositions = getPossibleSymbolReferencePositions(sourceFile, labelName, container.getStart(), container.getEnd()); ts.forEach(possiblePositions, function (position) { cancellationToken.throwIfCancellationRequested(); - var node = ts.getTouchingWord(sourceFile, position); - if (!node || node.getWidth() !== labelName.length) { + var _node = ts.getTouchingWord(sourceFile, position); + if (!_node || _node.getWidth() !== labelName.length) { return; } - if (node === targetLabel || (isJumpStatementTarget(node) && getTargetLabel(node, labelName) === targetLabel)) { - result.push(getReferenceEntryFromNode(node)); + if (_node === targetLabel || + (isJumpStatementTarget(_node) && getTargetLabel(_node, labelName) === targetLabel)) { + _result.push(getReferenceEntryFromNode(_node)); } }); - return result; + return _result; } function isValidReferencePosition(node, searchSymbolName) { if (node) { @@ -34724,7 +30155,8 @@ var ts; case 64: return node.getWidth() === searchSymbolName.length; case 8: - if (isLiteralNameOfPropertyDeclarationOrIndexAccess(node) || isNameOfExternalModuleImportOrDeclaration(node)) { + if (isLiteralNameOfPropertyDeclarationOrIndexAccess(node) || + isNameOfExternalModuleImportOrDeclaration(node)) { return node.getWidth() === searchSymbolName.length + 2; } break; @@ -34747,7 +30179,8 @@ var ts; cancellationToken.throwIfCancellationRequested(); var referenceLocation = ts.getTouchingPropertyName(sourceFile, position); if (!isValidReferencePosition(referenceLocation, searchText)) { - if ((findInStrings && isInString(position)) || (findInComments && isInComment(position))) { + if ((findInStrings && isInString(position)) || + (findInComments && isInComment(position))) { result.push({ fileName: sourceFile.fileName, textSpan: ts.createTextSpan(position, searchText.length), @@ -34812,21 +30245,21 @@ var ts; default: return undefined; } - var result = []; + var _result = []; var sourceFile = searchSpaceNode.getSourceFile(); var possiblePositions = getPossibleSymbolReferencePositions(sourceFile, "super", searchSpaceNode.getStart(), searchSpaceNode.getEnd()); ts.forEach(possiblePositions, function (position) { cancellationToken.throwIfCancellationRequested(); - var node = ts.getTouchingWord(sourceFile, position); - if (!node || node.kind !== 90) { + var _node = ts.getTouchingWord(sourceFile, position); + if (!_node || _node.kind !== 90) { return; } - var container = ts.getSuperContainer(node, false); + var container = ts.getSuperContainer(_node, false); if (container && (128 & container.flags) === staticFlag && container.parent.symbol === searchSpaceNode.symbol) { - result.push(getReferenceEntryFromNode(node)); + _result.push(getReferenceEntryFromNode(_node)); } }); - return result; + return _result; } function getReferencesForThisKeyword(thisOrSuperKeyword, sourceFiles) { var searchSpaceNode = ts.getThisContainer(thisOrSuperKeyword, false); @@ -34855,48 +30288,49 @@ var ts; default: return undefined; } - var result = []; + var _result = []; + var possiblePositions; if (searchSpaceNode.kind === 221) { ts.forEach(sourceFiles, function (sourceFile) { - var possiblePositions = getPossibleSymbolReferencePositions(sourceFile, "this", sourceFile.getStart(), sourceFile.getEnd()); - getThisReferencesInFile(sourceFile, sourceFile, possiblePositions, result); + possiblePositions = getPossibleSymbolReferencePositions(sourceFile, "this", sourceFile.getStart(), sourceFile.getEnd()); + getThisReferencesInFile(sourceFile, sourceFile, possiblePositions, _result); }); } else { var sourceFile = searchSpaceNode.getSourceFile(); - var possiblePositions = getPossibleSymbolReferencePositions(sourceFile, "this", searchSpaceNode.getStart(), searchSpaceNode.getEnd()); - getThisReferencesInFile(sourceFile, searchSpaceNode, possiblePositions, result); + possiblePositions = getPossibleSymbolReferencePositions(sourceFile, "this", searchSpaceNode.getStart(), searchSpaceNode.getEnd()); + getThisReferencesInFile(sourceFile, searchSpaceNode, possiblePositions, _result); } - return result; + return _result; function getThisReferencesInFile(sourceFile, searchSpaceNode, possiblePositions, result) { ts.forEach(possiblePositions, function (position) { cancellationToken.throwIfCancellationRequested(); - var node = ts.getTouchingWord(sourceFile, position); - if (!node || node.kind !== 92) { + var _node = ts.getTouchingWord(sourceFile, position); + if (!_node || _node.kind !== 92) { return; } - var container = ts.getThisContainer(node, false); + var container = ts.getThisContainer(_node, false); switch (searchSpaceNode.kind) { case 160: case 195: if (searchSpaceNode.symbol === container.symbol) { - result.push(getReferenceEntryFromNode(node)); + result.push(getReferenceEntryFromNode(_node)); } break; case 132: case 131: if (ts.isObjectLiteralMethod(searchSpaceNode) && searchSpaceNode.symbol === container.symbol) { - result.push(getReferenceEntryFromNode(node)); + result.push(getReferenceEntryFromNode(_node)); } break; case 196: if (container.parent && searchSpaceNode.symbol === container.parent.symbol && (container.flags & 128) === staticFlag) { - result.push(getReferenceEntryFromNode(node)); + result.push(getReferenceEntryFromNode(_node)); } break; case 221: if (container.kind === 221 && !ts.isExternalModule(container)) { - result.push(getReferenceEntryFromNode(node)); + result.push(getReferenceEntryFromNode(_node)); } break; } @@ -34904,30 +30338,28 @@ var ts; } } function populateSearchSymbolSet(symbol, location) { - var result = [ - symbol - ]; + var _result = [symbol]; if (isImportOrExportSpecifierImportSymbol(symbol)) { - result.push(typeInfoResolver.getAliasedSymbol(symbol)); + _result.push(typeInfoResolver.getAliasedSymbol(symbol)); } if (isNameOfPropertyAssignment(location)) { ts.forEach(getPropertySymbolsFromContextualType(location), function (contextualSymbol) { - result.push.apply(result, typeInfoResolver.getRootSymbols(contextualSymbol)); + _result.push.apply(_result, typeInfoResolver.getRootSymbols(contextualSymbol)); }); var shorthandValueSymbol = typeInfoResolver.getShorthandAssignmentValueSymbol(location.parent); if (shorthandValueSymbol) { - result.push(shorthandValueSymbol); + _result.push(shorthandValueSymbol); } } ts.forEach(typeInfoResolver.getRootSymbols(symbol), function (rootSymbol) { if (rootSymbol !== symbol) { - result.push(rootSymbol); + _result.push(rootSymbol); } if (rootSymbol.parent && rootSymbol.parent.flags & (32 | 64)) { - getPropertySymbolsFromBaseTypes(rootSymbol.parent, rootSymbol.getName(), result); + getPropertySymbolsFromBaseTypes(rootSymbol.parent, rootSymbol.getName(), _result); } }); - return result; + return _result; } function getPropertySymbolsFromBaseTypes(symbol, propertyName, result) { if (symbol && symbol.flags & (32 | 64)) { @@ -34959,14 +30391,13 @@ var ts; if (searchSymbols.indexOf(referenceSymbol) >= 0) { return true; } - if (isImportOrExportSpecifierImportSymbol(referenceSymbol) && searchSymbols.indexOf(typeInfoResolver.getAliasedSymbol(referenceSymbol)) >= 0) { + if (isImportOrExportSpecifierImportSymbol(referenceSymbol) && + searchSymbols.indexOf(typeInfoResolver.getAliasedSymbol(referenceSymbol)) >= 0) { return true; } if (isNameOfPropertyAssignment(referenceLocation)) { return ts.forEach(getPropertySymbolsFromContextualType(referenceLocation), function (contextualSymbol) { - return ts.forEach(typeInfoResolver.getRootSymbols(contextualSymbol), function (s) { - return searchSymbols.indexOf(s) >= 0; - }); + return ts.forEach(typeInfoResolver.getRootSymbols(contextualSymbol), function (s) { return searchSymbols.indexOf(s) >= 0; }); }); } return ts.forEach(typeInfoResolver.getRootSymbols(referenceSymbol), function (rootSymbol) { @@ -34974,11 +30405,9 @@ var ts; return true; } if (rootSymbol.parent && rootSymbol.parent.flags & (32 | 64)) { - var result = []; - getPropertySymbolsFromBaseTypes(rootSymbol.parent, rootSymbol.getName(), result); - return ts.forEach(result, function (s) { - return searchSymbols.indexOf(s) >= 0; - }); + var _result = []; + getPropertySymbolsFromBaseTypes(rootSymbol.parent, rootSymbol.getName(), _result); + return ts.forEach(_result, function (s) { return searchSymbols.indexOf(s) >= 0; }); } return false; }); @@ -34987,32 +30416,28 @@ var ts; if (isNameOfPropertyAssignment(node)) { var objectLiteral = node.parent.parent; var contextualType = typeInfoResolver.getContextualType(objectLiteral); - var name = node.text; + var _name = node.text; if (contextualType) { if (contextualType.flags & 16384) { - var unionProperty = contextualType.getProperty(name); + var unionProperty = contextualType.getProperty(_name); if (unionProperty) { - return [ - unionProperty - ]; + return [unionProperty]; } else { - var result = []; + var _result = []; ts.forEach(contextualType.types, function (t) { - var symbol = t.getProperty(name); - if (symbol) { - result.push(symbol); + var _symbol = t.getProperty(_name); + if (_symbol) { + _result.push(_symbol); } }); - return result; + return _result; } } else { - var symbol = contextualType.getProperty(name); - if (symbol) { - return [ - symbol - ]; + var _symbol = contextualType.getProperty(_name); + if (_symbol) { + return [_symbol]; } } } @@ -35021,10 +30446,12 @@ var ts; } function getIntersectingMeaningFromDeclarations(meaning, declarations) { if (declarations) { + var lastIterationMeaning; do { - var lastIterationMeaning = meaning; - for (var i = 0, n = declarations.length; i < n; i++) { - var declarationMeaning = getMeaningFromDeclaration(declarations[i]); + lastIterationMeaning = meaning; + for (var _i = 0, _n = declarations.length; _i < _n; _i++) { + var declaration = declarations[_i]; + var declarationMeaning = getMeaningFromDeclaration(declaration); if (declarationMeaning & meaning) { meaning |= declarationMeaning; } @@ -35051,13 +30478,13 @@ var ts; if (node.kind === 64 && ts.isDeclarationName(node)) { return true; } - var parent = node.parent; - if (parent) { - if (parent.kind === 166 || parent.kind === 165) { + var _parent = node.parent; + if (_parent) { + if (_parent.kind === 166 || _parent.kind === 165) { return true; } - else if (parent.kind === 167 && parent.left === node) { - var operator = parent.operatorToken.kind; + else if (_parent.kind === 167 && _parent.left === node) { + var operator = _parent.operatorToken.kind; return 52 <= operator && operator <= 63; } } @@ -35068,9 +30495,7 @@ var ts; return ts.NavigateTo.getNavigateToItems(program, cancellationToken, searchValue, maxResultCount); } function containErrors(diagnostics) { - return ts.forEach(diagnostics, function (diagnostic) { - return diagnostic.category === 1; - }); + return ts.forEach(diagnostics, function (diagnostic) { return diagnostic.category === 1; }); } function getEmitOutput(fileName) { synchronizeHostData(); @@ -35164,7 +30589,9 @@ var ts; } function getMeaningFromRightHandSideOfImportEquals(node) { ts.Debug.assert(node.kind === 64); - if (node.parent.kind === 125 && node.parent.right === node && node.parent.parent.kind === 203) { + if (node.parent.kind === 125 && + node.parent.right === node && + node.parent.parent.kind === 203) { return 1 | 2 | 4; } return 4; @@ -35223,7 +30650,8 @@ var ts; nodeForStartPos = nodeForStartPos.parent; } else if (isNameOfModuleDeclaration(nodeForStartPos)) { - if (nodeForStartPos.parent.parent.kind === 200 && nodeForStartPos.parent.parent.body === nodeForStartPos.parent) { + if (nodeForStartPos.parent.parent.kind === 200 && + nodeForStartPos.parent.parent.body === nodeForStartPos.parent) { nodeForStartPos = nodeForStartPos.parent.parent.name; } else { @@ -35270,7 +30698,8 @@ var ts; } } else if (flags & 1536) { - if (meaningAtPosition & 4 || (meaningAtPosition & 1 && hasValueSideModule(symbol))) { + if (meaningAtPosition & 4 || + (meaningAtPosition & 1 && hasValueSideModule(symbol))) { return ClassificationTypeNames.moduleName; } } @@ -35395,11 +30824,16 @@ var ts; if (ts.isPunctuation(tokenKind)) { if (token) { if (tokenKind === 52) { - if (token.parent.kind === 193 || token.parent.kind === 130 || token.parent.kind === 128) { + if (token.parent.kind === 193 || + token.parent.kind === 130 || + token.parent.kind === 128) { return ClassificationTypeNames.operator; } } - if (token.parent.kind === 167 || token.parent.kind === 165 || token.parent.kind === 166 || token.parent.kind === 168) { + if (token.parent.kind === 167 || + token.parent.kind === 165 || + token.parent.kind === 166 || + token.parent.kind === 168) { return ClassificationTypeNames.operator; } } @@ -35453,8 +30887,8 @@ var ts; function processElement(element) { if (ts.textSpanIntersectsWith(span, element.getFullStart(), element.getFullWidth())) { var children = element.getChildren(); - for (var i = 0, n = children.length; i < n; i++) { - var child = children[i]; + for (var _i = 0, _n = children.length; _i < _n; _i++) { + var child = children[_i]; if (ts.isToken(child)) { classifyToken(child); } @@ -35478,8 +30912,8 @@ var ts; if (matchKind) { var parentElement = token.parent; var childNodes = parentElement.getChildren(sourceFile); - for (var i = 0, n = childNodes.length; i < n; i++) { - var current = childNodes[i]; + for (var _i = 0, _n = childNodes.length; _i < _n; _i++) { + var current = childNodes[_i]; if (current.kind === matchKind) { var range1 = ts.createTextSpan(token.getStart(sourceFile), token.getWidth(sourceFile)); var range2 = ts.createTextSpan(current.getStart(sourceFile), current.getWidth(sourceFile)); @@ -35497,22 +30931,14 @@ var ts; return result; function getMatchingTokenKind(token) { switch (token.kind) { - case 14: - return 15; - case 16: - return 17; - case 18: - return 19; - case 24: - return 25; - case 15: - return 14; - case 17: - return 16; - case 19: - return 18; - case 25: - return 24; + case 14: return 15; + case 16: return 17; + case 18: return 19; + case 24: return 25; + case 15: return 14; + case 17: return 16; + case 19: return 18; + case 25: return 24; } return undefined; } @@ -35521,7 +30947,7 @@ var ts; var start = new Date().getTime(); var sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName); log("getIndentationAtPosition: getCurrentSourceFile: " + (new Date().getTime() - start)); - var start = new Date().getTime(); + start = new Date().getTime(); var result = ts.formatting.SmartIndenter.getIndentation(position, sourceFile, editorOptions); log("getIndentationAtPosition: computeIndentation : " + (new Date().getTime() - start)); return result; @@ -35567,9 +30993,9 @@ var ts; continue; } var descriptor = undefined; - for (var i = 0, n = descriptors.length; i < n; i++) { - if (matchArray[i + firstDescriptorCaptureIndex]) { - descriptor = descriptors[i]; + for (var _i = 0, n = descriptors.length; _i < n; _i++) { + if (matchArray[_i + firstDescriptorCaptureIndex]) { + descriptor = descriptors[_i]; } } ts.Debug.assert(descriptor !== undefined); @@ -35592,18 +31018,18 @@ var ts; var singleLineCommentStart = /(?:\/\/+\s*)/.source; var multiLineCommentStart = /(?:\/\*+\s*)/.source; var anyNumberOfSpacesAndAsterixesAtStartOfLine = /(?:^(?:\s|\*)*)/.source; - var preamble = "(" + anyNumberOfSpacesAndAsterixesAtStartOfLine + "|" + singleLineCommentStart + "|" + multiLineCommentStart + ")"; - var literals = "(?:" + ts.map(descriptors, function (d) { - return "(" + escapeRegExp(d.text) + ")"; - }).join("|") + ")"; + var _preamble = "(" + anyNumberOfSpacesAndAsterixesAtStartOfLine + "|" + singleLineCommentStart + "|" + multiLineCommentStart + ")"; + var literals = "(?:" + ts.map(descriptors, function (d) { return "(" + escapeRegExp(d.text) + ")"; }).join("|") + ")"; var endOfLineOrEndOfComment = /(?:$|\*\/)/.source; var messageRemainder = /(?:.*?)/.source; var messagePortion = "(" + literals + messageRemainder + ")"; - var regExpString = preamble + messagePortion + endOfLineOrEndOfComment; + var regExpString = _preamble + messagePortion + endOfLineOrEndOfComment; return new RegExp(regExpString, "gim"); } function isLetterOrDigit(char) { - return (char >= 97 && char <= 122) || (char >= 65 && char <= 90) || (char >= 48 && char <= 57); + return (char >= 97 && char <= 122) || + (char >= 65 && char <= 90) || + (char >= 48 && char <= 57); } } function getRenameInfo(fileName, position) { @@ -35617,9 +31043,10 @@ var ts; if (declarations && declarations.length > 0) { var defaultLibFileName = host.getDefaultLibFileName(host.getCompilationSettings()); if (defaultLibFileName) { - for (var i = 0; i < declarations.length; i++) { - var sourceFile = declarations[i].getSourceFile(); - if (sourceFile && getCanonicalFileName(ts.normalizePath(sourceFile.fileName)) === getCanonicalFileName(ts.normalizePath(defaultLibFileName))) { + for (var _i = 0, _n = declarations.length; _i < _n; _i++) { + var current = declarations[_i]; + var _sourceFile = current.getSourceFile(); + if (_sourceFile && getCanonicalFileName(ts.normalizePath(_sourceFile.fileName)) === getCanonicalFileName(ts.normalizePath(defaultLibFileName))) { return getRenameInfoError(ts.getLocaleSpecificMessage(ts.Diagnostics.You_cannot_rename_elements_that_are_defined_in_the_standard_TypeScript_library.key)); } } @@ -35704,7 +31131,9 @@ var ts; break; case 8: case 7: - if (ts.isDeclarationName(node) || node.parent.kind === 213 || isArgumentOfElementAccessExpression(node)) { + if (ts.isDeclarationName(node) || + node.parent.kind === 213 || + isArgumentOfElementAccessExpression(node)) { nameTable[node.text] = node.text; } break; @@ -35714,10 +31143,13 @@ var ts; } } function isArgumentOfElementAccessExpression(node) { - return node && node.parent && node.parent.kind === 154 && node.parent.argumentExpression === node; + return node && + node.parent && + node.parent.kind === 154 && + node.parent.argumentExpression === node; } function createClassifier() { - var scanner = ts.createScanner(2, false); + var _scanner = ts.createScanner(2, false); var noRegexTable = []; noRegexTable[64] = true; noRegexTable[8] = true; @@ -35743,7 +31175,10 @@ var ts; } function canFollow(keyword1, keyword2) { if (isAccessibilityModifier(keyword1)) { - if (keyword2 === 115 || keyword2 === 119 || keyword2 === 113 || keyword2 === 109) { + if (keyword2 === 115 || + keyword2 === 119 || + keyword2 === 113 || + keyword2 === 109) { return true; } return false; @@ -35781,17 +31216,17 @@ var ts; templateStack.push(11); break; } - scanner.setText(text); + _scanner.setText(text); var result = { finalLexState: 0, entries: [] }; var angleBracketStack = 0; do { - token = scanner.scan(); + token = _scanner.scan(); if (!ts.isTrivia(token)) { if ((token === 36 || token === 56) && !noRegexTable[lastNonTriviaToken]) { - if (scanner.reScanSlashToken() === 9) { + if (_scanner.reScanSlashToken() === 9) { token = 9; } } @@ -35801,13 +31236,18 @@ var ts; else if (isKeyword(lastNonTriviaToken) && isKeyword(token) && !canFollow(lastNonTriviaToken, token)) { token = 64; } - else if (lastNonTriviaToken === 64 && token === 24) { + else if (lastNonTriviaToken === 64 && + token === 24) { angleBracketStack++; } else if (token === 25 && angleBracketStack > 0) { angleBracketStack--; } - else if (token === 111 || token === 120 || token === 118 || token === 112 || token === 121) { + else if (token === 111 || + token === 120 || + token === 118 || + token === 112 || + token === 121) { if (angleBracketStack > 0 && !syntacticClassifierAbsent) { token = 64; } @@ -35824,7 +31264,7 @@ var ts; if (templateStack.length > 0) { var lastTemplateStackToken = ts.lastOrUndefined(templateStack); if (lastTemplateStackToken === 11) { - token = scanner.reScanTemplateToken(); + token = _scanner.reScanTemplateToken(); if (token === 13) { templateStack.pop(); } @@ -35844,13 +31284,13 @@ var ts; } while (token !== 1); return result; function processToken() { - var start = scanner.getTokenPos(); - var end = scanner.getTextPos(); + var start = _scanner.getTokenPos(); + var end = _scanner.getTextPos(); addResult(end - start, classFromKind(token)); if (end >= text.length) { if (token === 8) { - var tokenText = scanner.getTokenText(); - if (scanner.isUnterminated()) { + var tokenText = _scanner.getTokenText(); + if (_scanner.isUnterminated()) { var lastCharIndex = tokenText.length - 1; var numBackslashes = 0; while (tokenText.charCodeAt(lastCharIndex - numBackslashes) === 92) { @@ -35858,17 +31298,19 @@ var ts; } if (numBackslashes & 1) { var quoteChar = tokenText.charCodeAt(0); - result.finalLexState = quoteChar === 34 ? 3 : 2; + result.finalLexState = quoteChar === 34 + ? 3 + : 2; } } } else if (token === 3) { - if (scanner.isUnterminated()) { + if (_scanner.isUnterminated()) { result.finalLexState = 1; } } else if (ts.isTemplateLiteralKind(token)) { - if (scanner.isUnterminated()) { + if (_scanner.isUnterminated()) { if (token === 13) { result.finalLexState = 5; } @@ -35890,10 +31332,7 @@ var ts; if (result.entries.length === 0) { length -= offset; } - result.entries.push({ - length: length, - classification: classification - }); + result.entries.push({ length: length, classification: classification }); } } } @@ -35988,9 +31427,7 @@ var ts; return 5; } } - return { - getClassificationsForLine: getClassificationsForLine - }; + return { getClassificationsForLine: getClassificationsForLine }; } ts.createClassifier = createClassifier; function getDefaultLibFilePath(options) { @@ -36014,15 +31451,9 @@ var ts; Node.prototype = proto; return Node; }, - getSymbolConstructor: function () { - return SymbolObject; - }, - getTypeConstructor: function () { - return TypeObject; - }, - getSignatureConstructor: function () { - return SignatureObject; - } + getSymbolConstructor: function () { return SymbolObject; }, + getTypeConstructor: function () { return TypeObject; }, + getSignatureConstructor: function () { return SignatureObject; } }; } initializeServices(); @@ -36196,12 +31627,17 @@ var ts; } } function spanInVariableDeclaration(variableDeclaration) { - if (variableDeclaration.parent.parent.kind === 182 || variableDeclaration.parent.parent.kind === 183) { + if (variableDeclaration.parent.parent.kind === 182 || + variableDeclaration.parent.parent.kind === 183) { return spanInNode(variableDeclaration.parent.parent); } var isParentVariableStatement = variableDeclaration.parent.parent.kind === 175; var isDeclarationOfForStatement = variableDeclaration.parent.parent.kind === 181 && ts.contains(variableDeclaration.parent.parent.initializer.declarations, variableDeclaration); - var declarations = isParentVariableStatement ? variableDeclaration.parent.parent.declarationList.declarations : isDeclarationOfForStatement ? variableDeclaration.parent.parent.initializer.declarations : undefined; + var declarations = isParentVariableStatement + ? variableDeclaration.parent.parent.declarationList.declarations + : isDeclarationOfForStatement + ? variableDeclaration.parent.parent.initializer.declarations + : undefined; if (variableDeclaration.initializer || (variableDeclaration.flags & 1)) { if (declarations && declarations[0] === variableDeclaration) { if (isParentVariableStatement) { @@ -36222,7 +31658,8 @@ var ts; } } function canHaveSpanInParameterDeclaration(parameter) { - return !!parameter.initializer || parameter.dotDotDotToken !== undefined || !!(parameter.flags & 16) || !!(parameter.flags & 32); + return !!parameter.initializer || parameter.dotDotDotToken !== undefined || + !!(parameter.flags & 16) || !!(parameter.flags & 32); } function spanInParameterDeclaration(parameter) { if (canHaveSpanInParameterDeclaration(parameter)) { @@ -36240,7 +31677,8 @@ var ts; } } function canFunctionHaveSpanInWholeDeclaration(functionDeclaration) { - return !!(functionDeclaration.flags & 1) || (functionDeclaration.parent.kind === 196 && functionDeclaration.kind !== 133); + return !!(functionDeclaration.flags & 1) || + (functionDeclaration.parent.kind === 196 && functionDeclaration.kind !== 133); } function spanInFunctionDeclaration(functionDeclaration) { if (!functionDeclaration.body) { @@ -36492,21 +31930,15 @@ var ts; function forwardJSONCall(logger, actionDescription, action) { try { var result = simpleForwardCall(logger, actionDescription, action); - return JSON.stringify({ - result: result - }); + return JSON.stringify({ result: result }); } catch (err) { if (err instanceof ts.OperationCanceledException) { - return JSON.stringify({ - canceled: true - }); + return JSON.stringify({ canceled: true }); } logInternalError(logger, err); err.description = actionDescription; - return JSON.stringify({ - error: err - }); + return JSON.stringify({ error: err }); } } var ShimBase = (function () { @@ -36556,9 +31988,7 @@ var ts; LanguageServiceShimObject.prototype.realizeDiagnostics = function (diagnostics) { var _this = this; var newLine = this.getNewLine(); - return diagnostics.map(function (d) { - return _this.realizeDiagnostic(d, newLine); - }); + return diagnostics.map(function (d) { return _this.realizeDiagnostic(d, newLine); }); }; LanguageServiceShimObject.prototype.realizeDiagnostic = function (diagnostic, newLine) { return { diff --git a/bin/typescriptServices.d.ts b/bin/typescriptServices.d.ts index c0800ecbd77..a557e814a79 100644 --- a/bin/typescriptServices.d.ts +++ b/bin/typescriptServices.d.ts @@ -1200,8 +1200,6 @@ declare module ts { target?: ScriptTarget; version?: boolean; watch?: boolean; - stripInternal?: boolean; - preserveNewLines?: boolean; [option: string]: string | number | boolean; } const enum ModuleKind { @@ -1443,7 +1441,7 @@ declare module ts { } declare module ts { /** The version of the TypeScript compiler release */ - var version: string; + let version: string; function createCompilerHost(options: CompilerOptions): CompilerHost; function getPreEmitDiagnostics(program: Program): Diagnostic[]; function flattenDiagnosticMessageText(messageText: string | DiagnosticMessageChain, newLine: string): string; @@ -1451,7 +1449,7 @@ declare module ts { } declare module ts { /** The version of the language service API */ - var servicesVersion: string; + let servicesVersion: string; interface Node { getSourceFile(): SourceFile; getChildCount(sourceFile?: SourceFile): number; @@ -1938,7 +1936,7 @@ declare module ts { throwIfCancellationRequested(): void; } function createLanguageServiceSourceFile(fileName: string, scriptSnapshot: IScriptSnapshot, scriptTarget: ScriptTarget, version: string, setNodeParents: boolean): SourceFile; - var disableIncrementalParsing: boolean; + let disableIncrementalParsing: boolean; function updateLanguageServiceSourceFile(sourceFile: SourceFile, scriptSnapshot: IScriptSnapshot, version: string, textChangeRange: TextChangeRange, aggressiveChecks?: boolean): SourceFile; function createDocumentRegistry(): DocumentRegistry; function preProcessFile(sourceText: string, readImportFiles?: boolean): PreProcessedFileInfo; diff --git a/bin/typescriptServices.js b/bin/typescriptServices.js index 0fb345eea1b..9e939631006 100644 --- a/bin/typescriptServices.js +++ b/bin/typescriptServices.js @@ -625,8 +625,9 @@ var ts; ts.forEach = forEach; function contains(array, value) { if (array) { - for (var i = 0, len = array.length; i < len; i++) { - if (array[i] === value) { + for (var _i = 0, _n = array.length; _i < _n; _i++) { + var v = array[_i]; + if (v === value) { return true; } } @@ -648,8 +649,9 @@ var ts; function countWhere(array, predicate) { var count = 0; if (array) { - for (var i = 0, len = array.length; i < len; i++) { - if (predicate(array[i])) { + for (var _i = 0, _n = array.length; _i < _n; _i++) { + var v = array[_i]; + if (predicate(v)) { count++; } } @@ -658,12 +660,13 @@ var ts; } ts.countWhere = countWhere; function filter(array, f) { + var result; if (array) { - var result = []; - for (var i = 0, len = array.length; i < len; i++) { - var item = array[i]; - if (f(item)) { - result.push(item); + result = []; + for (var _i = 0, _n = array.length; _i < _n; _i++) { + var _item = array[_i]; + if (f(_item)) { + result.push(_item); } } } @@ -671,10 +674,12 @@ var ts; } ts.filter = filter; function map(array, f) { + var result; if (array) { - var result = []; - for (var i = 0, len = array.length; i < len; i++) { - result.push(f(array[i])); + result = []; + for (var _i = 0, _n = array.length; _i < _n; _i++) { + var v = array[_i]; + result.push(f(v)); } } return result; @@ -689,12 +694,14 @@ var ts; } ts.concatenate = concatenate; function deduplicate(array) { + var result; if (array) { - var result = []; - for (var i = 0, len = array.length; i < len; i++) { - var item = array[i]; - if (!contains(result, item)) - result.push(item); + result = []; + for (var _i = 0, _n = array.length; _i < _n; _i++) { + var _item = array[_i]; + if (!contains(result, _item)) { + result.push(_item); + } } } return result; @@ -702,15 +709,17 @@ var ts; ts.deduplicate = deduplicate; function sum(array, prop) { var result = 0; - for (var i = 0; i < array.length; i++) { - result += array[i][prop]; + for (var _i = 0, _n = array.length; _i < _n; _i++) { + var v = array[_i]; + result += v[prop]; } return result; } ts.sum = sum; function addRange(to, from) { - for (var i = 0, n = from.length; i < n; i++) { - to.push(from[i]); + for (var _i = 0, _n = from.length; _i < _n; _i++) { + var v = from[_i]; + to.push(v); } } ts.addRange = addRange; @@ -771,9 +780,9 @@ var ts; for (var id in first) { result[id] = first[id]; } - for (var id in second) { - if (!hasProperty(result, id)) { - result[id] = second[id]; + for (var _id in second) { + if (!hasProperty(result, _id)) { + result[_id] = second[_id]; } } return result; @@ -825,13 +834,13 @@ var ts; ts.arrayToMap = arrayToMap; function formatStringFromArgs(text, args, baseIndex) { baseIndex = baseIndex || 0; - return text.replace(/{(\d+)}/g, function (match, index) { - return args[+index + baseIndex]; - }); + return text.replace(/{(\d+)}/g, function (match, index) { return args[+index + baseIndex]; }); } ts.localizedDiagnosticMessages = undefined; function getLocaleSpecificMessage(message) { - return ts.localizedDiagnosticMessages && ts.localizedDiagnosticMessages[message] ? ts.localizedDiagnosticMessages[message] : message; + return ts.localizedDiagnosticMessages && ts.localizedDiagnosticMessages[message] + ? ts.localizedDiagnosticMessages[message] + : message; } ts.getLocaleSpecificMessage = getLocaleSpecificMessage; function createFileDiagnostic(file, start, length, message) { @@ -902,7 +911,12 @@ var ts; return diagnostic.file ? diagnostic.file.fileName : undefined; } function compareDiagnostics(d1, d2) { - return compareValues(getDiagnosticFileName(d1), getDiagnosticFileName(d2)) || compareValues(d1.start, d2.start) || compareValues(d1.length, d2.length) || compareValues(d1.code, d2.code) || compareMessageText(d1.messageText, d2.messageText) || 0; + return compareValues(getDiagnosticFileName(d1), getDiagnosticFileName(d2)) || + compareValues(d1.start, d2.start) || + compareValues(d1.length, d2.length) || + compareValues(d1.code, d2.code) || + compareMessageText(d1.messageText, d2.messageText) || + 0; } ts.compareDiagnostics = compareDiagnostics; function compareMessageText(text1, text2) { @@ -929,9 +943,7 @@ var ts; if (diagnostics.length < 2) { return diagnostics; } - var newDiagnostics = [ - diagnostics[0] - ]; + var newDiagnostics = [diagnostics[0]]; var previousDiagnostic = diagnostics[0]; for (var i = 1; i < diagnostics.length; i++) { var currentDiagnostic = diagnostics[i]; @@ -972,8 +984,8 @@ var ts; function getNormalizedParts(normalizedSlashedPath, rootLength) { var parts = normalizedSlashedPath.substr(rootLength).split(ts.directorySeparator); var normalized = []; - for (var i = 0; i < parts.length; i++) { - var part = parts[i]; + for (var _i = 0, _n = parts.length; _i < _n; _i++) { + var part = parts[_i]; if (part !== ".") { if (part === ".." && normalized.length > 0 && normalized[normalized.length - 1] !== "..") { normalized.pop(); @@ -988,7 +1000,7 @@ var ts; return normalized; } function normalizePath(path) { - var path = normalizeSlashes(path); + path = normalizeSlashes(path); var rootLength = getRootLength(path); var normalized = getNormalizedParts(path, rootLength); return path.substr(0, rootLength) + normalized.join(ts.directorySeparator); @@ -1008,12 +1020,10 @@ var ts; ts.isRootedDiskPath = isRootedDiskPath; function normalizedPathComponents(path, rootLength) { var normalizedParts = getNormalizedParts(path, rootLength); - return [ - path.substr(0, rootLength) - ].concat(normalizedParts); + return [path.substr(0, rootLength)].concat(normalizedParts); } function getNormalizedPathComponents(path, currentDirectory) { - var path = normalizeSlashes(path); + path = normalizeSlashes(path); var rootLength = getRootLength(path); if (rootLength == 0) { path = combinePaths(normalizeSlashes(currentDirectory), path); @@ -1044,9 +1054,7 @@ var ts; } } if (rootLength === urlLength) { - return [ - url - ]; + return [url]; } var indexOfNextSlash = url.indexOf(ts.directorySeparator, rootLength); if (indexOfNextSlash !== -1) { @@ -1054,9 +1062,7 @@ var ts; return normalizedPathComponents(url, rootLength); } else { - return [ - url + ts.directorySeparator - ]; + return [url + ts.directorySeparator]; } } function getNormalizedPathOrUrlComponents(pathOrUrl, currentDirectory) { @@ -1118,14 +1124,10 @@ var ts; return pathLen > extLen && path.substr(pathLen - extLen, extLen) === extension; } ts.fileExtensionIs = fileExtensionIs; - var supportedExtensions = [ - ".d.ts", - ".ts", - ".js" - ]; + var supportedExtensions = [".d.ts", ".ts", ".js"]; function removeFileExtension(path) { - for (var i = 0; i < supportedExtensions.length; i++) { - var ext = supportedExtensions[i]; + for (var _i = 0, _n = supportedExtensions.length; _i < _n; _i++) { + var ext = supportedExtensions[_i]; if (fileExtensionIs(path, ext)) { return path.substr(0, path.length - ext.length); } @@ -1176,15 +1178,9 @@ var ts; }; return Node; }, - getSymbolConstructor: function () { - return Symbol; - }, - getTypeConstructor: function () { - return Type; - }, - getSignatureConstructor: function () { - return Signature; - } + getSymbolConstructor: function () { return Symbol; }, + getTypeConstructor: function () { return Type; }, + getSignatureConstructor: function () { return Signature; } }; (function (AssertionLevel) { AssertionLevel[AssertionLevel["None"] = 0] = "None"; @@ -1289,15 +1285,16 @@ var ts; function visitDirectory(path) { var folder = fso.GetFolder(path || "."); var files = getNames(folder.files); - for (var i = 0; i < files.length; i++) { - var name = files[i]; - if (!extension || ts.fileExtensionIs(name, extension)) { - result.push(ts.combinePaths(path, name)); + for (var _i = 0, _n = files.length; _i < _n; _i++) { + var _name = files[_i]; + if (!extension || ts.fileExtensionIs(_name, extension)) { + result.push(ts.combinePaths(path, _name)); } } var subfolders = getNames(folder.subfolders); - for (var i = 0; i < subfolders.length; i++) { - visitDirectory(ts.combinePaths(path, subfolders[i])); + for (var _a = 0, _b = subfolders.length; _a < _b; _a++) { + var current = subfolders[_a]; + visitDirectory(ts.combinePaths(path, current)); } } } @@ -1382,8 +1379,9 @@ var ts; function visitDirectory(path) { var files = _fs.readdirSync(path || ".").sort(); var directories = []; - for (var i = 0; i < files.length; i++) { - var name = ts.combinePaths(path, files[i]); + for (var _i = 0, _n = files.length; _i < _n; _i++) { + var current = files[_i]; + var name = ts.combinePaths(path, current); var stat = _fs.lstatSync(name); if (stat.isFile()) { if (!extension || ts.fileExtensionIs(name, extension)) { @@ -1394,8 +1392,9 @@ var ts; directories.push(name); } } - for (var i = 0; i < directories.length; i++) { - visitDirectory(directories[i]); + for (var _a = 0, _b = directories.length; _a < _b; _a++) { + var _current = directories[_a]; + visitDirectory(_current); } } } @@ -1409,14 +1408,9 @@ var ts; readFile: readFile, writeFile: writeFile, watchFile: function (fileName, callback) { - _fs.watchFile(fileName, { - persistent: true, - interval: 250 - }, fileChanged); + _fs.watchFile(fileName, { persistent: true, interval: 250 }, fileChanged); return { - close: function () { - _fs.unwatchFile(fileName, fileChanged); - } + close: function () { _fs.unwatchFile(fileName, fileChanged); } }; function fileChanged(curr, prev) { if (+curr.mtime <= +prev.mtime) { @@ -1472,2431 +1466,491 @@ var ts; var ts; (function (ts) { ts.Diagnostics = { - Unterminated_string_literal: { - code: 1002, - category: 1, - key: "Unterminated string literal." - }, - Identifier_expected: { - code: 1003, - category: 1, - key: "Identifier expected." - }, - _0_expected: { - code: 1005, - category: 1, - key: "'{0}' expected." - }, - A_file_cannot_have_a_reference_to_itself: { - code: 1006, - category: 1, - key: "A file cannot have a reference to itself." - }, - Trailing_comma_not_allowed: { - code: 1009, - category: 1, - key: "Trailing comma not allowed." - }, - Asterisk_Slash_expected: { - code: 1010, - category: 1, - key: "'*/' expected." - }, - Unexpected_token: { - code: 1012, - category: 1, - key: "Unexpected token." - }, - A_rest_parameter_must_be_last_in_a_parameter_list: { - code: 1014, - category: 1, - key: "A rest parameter must be last in a parameter list." - }, - Parameter_cannot_have_question_mark_and_initializer: { - code: 1015, - category: 1, - key: "Parameter cannot have question mark and initializer." - }, - A_required_parameter_cannot_follow_an_optional_parameter: { - code: 1016, - category: 1, - key: "A required parameter cannot follow an optional parameter." - }, - An_index_signature_cannot_have_a_rest_parameter: { - code: 1017, - category: 1, - key: "An index signature cannot have a rest parameter." - }, - An_index_signature_parameter_cannot_have_an_accessibility_modifier: { - code: 1018, - category: 1, - key: "An index signature parameter cannot have an accessibility modifier." - }, - An_index_signature_parameter_cannot_have_a_question_mark: { - code: 1019, - category: 1, - key: "An index signature parameter cannot have a question mark." - }, - An_index_signature_parameter_cannot_have_an_initializer: { - code: 1020, - category: 1, - key: "An index signature parameter cannot have an initializer." - }, - An_index_signature_must_have_a_type_annotation: { - code: 1021, - category: 1, - key: "An index signature must have a type annotation." - }, - An_index_signature_parameter_must_have_a_type_annotation: { - code: 1022, - category: 1, - key: "An index signature parameter must have a type annotation." - }, - An_index_signature_parameter_type_must_be_string_or_number: { - code: 1023, - category: 1, - key: "An index signature parameter type must be 'string' or 'number'." - }, - A_class_or_interface_declaration_can_only_have_one_extends_clause: { - code: 1024, - category: 1, - key: "A class or interface declaration can only have one 'extends' clause." - }, - An_extends_clause_must_precede_an_implements_clause: { - code: 1025, - category: 1, - key: "An 'extends' clause must precede an 'implements' clause." - }, - A_class_can_only_extend_a_single_class: { - code: 1026, - category: 1, - key: "A class can only extend a single class." - }, - A_class_declaration_can_only_have_one_implements_clause: { - code: 1027, - category: 1, - key: "A class declaration can only have one 'implements' clause." - }, - Accessibility_modifier_already_seen: { - code: 1028, - category: 1, - key: "Accessibility modifier already seen." - }, - _0_modifier_must_precede_1_modifier: { - code: 1029, - category: 1, - key: "'{0}' modifier must precede '{1}' modifier." - }, - _0_modifier_already_seen: { - code: 1030, - category: 1, - key: "'{0}' modifier already seen." - }, - _0_modifier_cannot_appear_on_a_class_element: { - code: 1031, - category: 1, - key: "'{0}' modifier cannot appear on a class element." - }, - An_interface_declaration_cannot_have_an_implements_clause: { - code: 1032, - category: 1, - key: "An interface declaration cannot have an 'implements' clause." - }, - super_must_be_followed_by_an_argument_list_or_member_access: { - code: 1034, - category: 1, - key: "'super' must be followed by an argument list or member access." - }, - Only_ambient_modules_can_use_quoted_names: { - code: 1035, - category: 1, - key: "Only ambient modules can use quoted names." - }, - Statements_are_not_allowed_in_ambient_contexts: { - code: 1036, - category: 1, - key: "Statements are not allowed in ambient contexts." - }, - A_declare_modifier_cannot_be_used_in_an_already_ambient_context: { - code: 1038, - category: 1, - key: "A 'declare' modifier cannot be used in an already ambient context." - }, - Initializers_are_not_allowed_in_ambient_contexts: { - code: 1039, - category: 1, - key: "Initializers are not allowed in ambient contexts." - }, - _0_modifier_cannot_appear_on_a_module_element: { - code: 1044, - category: 1, - key: "'{0}' modifier cannot appear on a module element." - }, - A_declare_modifier_cannot_be_used_with_an_interface_declaration: { - code: 1045, - category: 1, - key: "A 'declare' modifier cannot be used with an interface declaration." - }, - A_declare_modifier_is_required_for_a_top_level_declaration_in_a_d_ts_file: { - code: 1046, - category: 1, - key: "A 'declare' modifier is required for a top level declaration in a .d.ts file." - }, - A_rest_parameter_cannot_be_optional: { - code: 1047, - category: 1, - key: "A rest parameter cannot be optional." - }, - A_rest_parameter_cannot_have_an_initializer: { - code: 1048, - category: 1, - key: "A rest parameter cannot have an initializer." - }, - A_set_accessor_must_have_exactly_one_parameter: { - code: 1049, - category: 1, - key: "A 'set' accessor must have exactly one parameter." - }, - A_set_accessor_cannot_have_an_optional_parameter: { - code: 1051, - category: 1, - key: "A 'set' accessor cannot have an optional parameter." - }, - A_set_accessor_parameter_cannot_have_an_initializer: { - code: 1052, - category: 1, - key: "A 'set' accessor parameter cannot have an initializer." - }, - A_set_accessor_cannot_have_rest_parameter: { - code: 1053, - category: 1, - key: "A 'set' accessor cannot have rest parameter." - }, - A_get_accessor_cannot_have_parameters: { - code: 1054, - category: 1, - key: "A 'get' accessor cannot have parameters." - }, - Accessors_are_only_available_when_targeting_ECMAScript_5_and_higher: { - code: 1056, - category: 1, - key: "Accessors are only available when targeting ECMAScript 5 and higher." - }, - Enum_member_must_have_initializer: { - code: 1061, - category: 1, - key: "Enum member must have initializer." - }, - An_export_assignment_cannot_be_used_in_an_internal_module: { - code: 1063, - category: 1, - key: "An export assignment cannot be used in an internal module." - }, - Ambient_enum_elements_can_only_have_integer_literal_initializers: { - code: 1066, - category: 1, - key: "Ambient enum elements can only have integer literal initializers." - }, - Unexpected_token_A_constructor_method_accessor_or_property_was_expected: { - code: 1068, - category: 1, - key: "Unexpected token. A constructor, method, accessor, or property was expected." - }, - A_declare_modifier_cannot_be_used_with_an_import_declaration: { - code: 1079, - category: 1, - key: "A 'declare' modifier cannot be used with an import declaration." - }, - Invalid_reference_directive_syntax: { - code: 1084, - category: 1, - key: "Invalid 'reference' directive syntax." - }, - Octal_literals_are_not_available_when_targeting_ECMAScript_5_and_higher: { - code: 1085, - category: 1, - key: "Octal literals are not available when targeting ECMAScript 5 and higher." - }, - An_accessor_cannot_be_declared_in_an_ambient_context: { - code: 1086, - category: 1, - key: "An accessor cannot be declared in an ambient context." - }, - _0_modifier_cannot_appear_on_a_constructor_declaration: { - code: 1089, - category: 1, - key: "'{0}' modifier cannot appear on a constructor declaration." - }, - _0_modifier_cannot_appear_on_a_parameter: { - code: 1090, - category: 1, - key: "'{0}' modifier cannot appear on a parameter." - }, - Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement: { - code: 1091, - category: 1, - key: "Only a single variable declaration is allowed in a 'for...in' statement." - }, - Type_parameters_cannot_appear_on_a_constructor_declaration: { - code: 1092, - category: 1, - key: "Type parameters cannot appear on a constructor declaration." - }, - Type_annotation_cannot_appear_on_a_constructor_declaration: { - code: 1093, - category: 1, - key: "Type annotation cannot appear on a constructor declaration." - }, - An_accessor_cannot_have_type_parameters: { - code: 1094, - category: 1, - key: "An accessor cannot have type parameters." - }, - A_set_accessor_cannot_have_a_return_type_annotation: { - code: 1095, - category: 1, - key: "A 'set' accessor cannot have a return type annotation." - }, - An_index_signature_must_have_exactly_one_parameter: { - code: 1096, - category: 1, - key: "An index signature must have exactly one parameter." - }, - _0_list_cannot_be_empty: { - code: 1097, - category: 1, - key: "'{0}' list cannot be empty." - }, - Type_parameter_list_cannot_be_empty: { - code: 1098, - category: 1, - key: "Type parameter list cannot be empty." - }, - Type_argument_list_cannot_be_empty: { - code: 1099, - category: 1, - key: "Type argument list cannot be empty." - }, - Invalid_use_of_0_in_strict_mode: { - code: 1100, - category: 1, - key: "Invalid use of '{0}' in strict mode." - }, - with_statements_are_not_allowed_in_strict_mode: { - code: 1101, - category: 1, - key: "'with' statements are not allowed in strict mode." - }, - delete_cannot_be_called_on_an_identifier_in_strict_mode: { - code: 1102, - category: 1, - key: "'delete' cannot be called on an identifier in strict mode." - }, - A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement: { - code: 1104, - category: 1, - key: "A 'continue' statement can only be used within an enclosing iteration statement." - }, - A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement: { - code: 1105, - category: 1, - key: "A 'break' statement can only be used within an enclosing iteration or switch statement." - }, - Jump_target_cannot_cross_function_boundary: { - code: 1107, - category: 1, - key: "Jump target cannot cross function boundary." - }, - A_return_statement_can_only_be_used_within_a_function_body: { - code: 1108, - category: 1, - key: "A 'return' statement can only be used within a function body." - }, - Expression_expected: { - code: 1109, - category: 1, - key: "Expression expected." - }, - Type_expected: { - code: 1110, - category: 1, - key: "Type expected." - }, - A_class_member_cannot_be_declared_optional: { - code: 1112, - category: 1, - key: "A class member cannot be declared optional." - }, - A_default_clause_cannot_appear_more_than_once_in_a_switch_statement: { - code: 1113, - category: 1, - key: "A 'default' clause cannot appear more than once in a 'switch' statement." - }, - Duplicate_label_0: { - code: 1114, - category: 1, - key: "Duplicate label '{0}'" - }, - A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement: { - code: 1115, - category: 1, - key: "A 'continue' statement can only jump to a label of an enclosing iteration statement." - }, - A_break_statement_can_only_jump_to_a_label_of_an_enclosing_statement: { - code: 1116, - category: 1, - key: "A 'break' statement can only jump to a label of an enclosing statement." - }, - An_object_literal_cannot_have_multiple_properties_with_the_same_name_in_strict_mode: { - code: 1117, - category: 1, - key: "An object literal cannot have multiple properties with the same name in strict mode." - }, - An_object_literal_cannot_have_multiple_get_Slashset_accessors_with_the_same_name: { - code: 1118, - category: 1, - key: "An object literal cannot have multiple get/set accessors with the same name." - }, - An_object_literal_cannot_have_property_and_accessor_with_the_same_name: { - code: 1119, - category: 1, - key: "An object literal cannot have property and accessor with the same name." - }, - An_export_assignment_cannot_have_modifiers: { - code: 1120, - category: 1, - key: "An export assignment cannot have modifiers." - }, - Octal_literals_are_not_allowed_in_strict_mode: { - code: 1121, - category: 1, - key: "Octal literals are not allowed in strict mode." - }, - A_tuple_type_element_list_cannot_be_empty: { - code: 1122, - category: 1, - key: "A tuple type element list cannot be empty." - }, - Variable_declaration_list_cannot_be_empty: { - code: 1123, - category: 1, - key: "Variable declaration list cannot be empty." - }, - Digit_expected: { - code: 1124, - category: 1, - key: "Digit expected." - }, - Hexadecimal_digit_expected: { - code: 1125, - category: 1, - key: "Hexadecimal digit expected." - }, - Unexpected_end_of_text: { - code: 1126, - category: 1, - key: "Unexpected end of text." - }, - Invalid_character: { - code: 1127, - category: 1, - key: "Invalid character." - }, - Declaration_or_statement_expected: { - code: 1128, - category: 1, - key: "Declaration or statement expected." - }, - Statement_expected: { - code: 1129, - category: 1, - key: "Statement expected." - }, - case_or_default_expected: { - code: 1130, - category: 1, - key: "'case' or 'default' expected." - }, - Property_or_signature_expected: { - code: 1131, - category: 1, - key: "Property or signature expected." - }, - Enum_member_expected: { - code: 1132, - category: 1, - key: "Enum member expected." - }, - Type_reference_expected: { - code: 1133, - category: 1, - key: "Type reference expected." - }, - Variable_declaration_expected: { - code: 1134, - category: 1, - key: "Variable declaration expected." - }, - Argument_expression_expected: { - code: 1135, - category: 1, - key: "Argument expression expected." - }, - Property_assignment_expected: { - code: 1136, - category: 1, - key: "Property assignment expected." - }, - Expression_or_comma_expected: { - code: 1137, - category: 1, - key: "Expression or comma expected." - }, - Parameter_declaration_expected: { - code: 1138, - category: 1, - key: "Parameter declaration expected." - }, - Type_parameter_declaration_expected: { - code: 1139, - category: 1, - key: "Type parameter declaration expected." - }, - Type_argument_expected: { - code: 1140, - category: 1, - key: "Type argument expected." - }, - String_literal_expected: { - code: 1141, - category: 1, - key: "String literal expected." - }, - Line_break_not_permitted_here: { - code: 1142, - category: 1, - key: "Line break not permitted here." - }, - or_expected: { - code: 1144, - category: 1, - key: "'{' or ';' expected." - }, - Modifiers_not_permitted_on_index_signature_members: { - code: 1145, - category: 1, - key: "Modifiers not permitted on index signature members." - }, - Declaration_expected: { - code: 1146, - category: 1, - key: "Declaration expected." - }, - Import_declarations_in_an_internal_module_cannot_reference_an_external_module: { - code: 1147, - category: 1, - key: "Import declarations in an internal module cannot reference an external module." - }, - Cannot_compile_external_modules_unless_the_module_flag_is_provided: { - code: 1148, - category: 1, - key: "Cannot compile external modules unless the '--module' flag is provided." - }, - File_name_0_differs_from_already_included_file_name_1_only_in_casing: { - code: 1149, - category: 1, - key: "File name '{0}' differs from already included file name '{1}' only in casing" - }, - new_T_cannot_be_used_to_create_an_array_Use_new_Array_T_instead: { - code: 1150, - category: 1, - key: "'new T[]' cannot be used to create an array. Use 'new Array()' instead." - }, - var_let_or_const_expected: { - code: 1152, - category: 1, - key: "'var', 'let' or 'const' expected." - }, - let_declarations_are_only_available_when_targeting_ECMAScript_6_and_higher: { - code: 1153, - category: 1, - key: "'let' declarations are only available when targeting ECMAScript 6 and higher." - }, - const_declarations_are_only_available_when_targeting_ECMAScript_6_and_higher: { - code: 1154, - category: 1, - key: "'const' declarations are only available when targeting ECMAScript 6 and higher." - }, - const_declarations_must_be_initialized: { - code: 1155, - category: 1, - key: "'const' declarations must be initialized" - }, - const_declarations_can_only_be_declared_inside_a_block: { - code: 1156, - category: 1, - key: "'const' declarations can only be declared inside a block." - }, - let_declarations_can_only_be_declared_inside_a_block: { - code: 1157, - category: 1, - key: "'let' declarations can only be declared inside a block." - }, - Unterminated_template_literal: { - code: 1160, - category: 1, - key: "Unterminated template literal." - }, - Unterminated_regular_expression_literal: { - code: 1161, - category: 1, - key: "Unterminated regular expression literal." - }, - An_object_member_cannot_be_declared_optional: { - code: 1162, - category: 1, - key: "An object member cannot be declared optional." - }, - yield_expression_must_be_contained_within_a_generator_declaration: { - code: 1163, - category: 1, - key: "'yield' expression must be contained_within a generator declaration." - }, - Computed_property_names_are_not_allowed_in_enums: { - code: 1164, - category: 1, - key: "Computed property names are not allowed in enums." - }, - A_computed_property_name_in_an_ambient_context_must_directly_refer_to_a_built_in_symbol: { - code: 1165, - category: 1, - key: "A computed property name in an ambient context must directly refer to a built-in symbol." - }, - A_computed_property_name_in_a_class_property_declaration_must_directly_refer_to_a_built_in_symbol: { - code: 1166, - category: 1, - key: "A computed property name in a class property declaration must directly refer to a built-in symbol." - }, - Computed_property_names_are_only_available_when_targeting_ECMAScript_6_and_higher: { - code: 1167, - category: 1, - key: "Computed property names are only available when targeting ECMAScript 6 and higher." - }, - A_computed_property_name_in_a_method_overload_must_directly_refer_to_a_built_in_symbol: { - code: 1168, - category: 1, - key: "A computed property name in a method overload must directly refer to a built-in symbol." - }, - A_computed_property_name_in_an_interface_must_directly_refer_to_a_built_in_symbol: { - code: 1169, - category: 1, - key: "A computed property name in an interface must directly refer to a built-in symbol." - }, - A_computed_property_name_in_a_type_literal_must_directly_refer_to_a_built_in_symbol: { - code: 1170, - category: 1, - key: "A computed property name in a type literal must directly refer to a built-in symbol." - }, - A_comma_expression_is_not_allowed_in_a_computed_property_name: { - code: 1171, - category: 1, - key: "A comma expression is not allowed in a computed property name." - }, - extends_clause_already_seen: { - code: 1172, - category: 1, - key: "'extends' clause already seen." - }, - extends_clause_must_precede_implements_clause: { - code: 1173, - category: 1, - key: "'extends' clause must precede 'implements' clause." - }, - Classes_can_only_extend_a_single_class: { - code: 1174, - category: 1, - key: "Classes can only extend a single class." - }, - implements_clause_already_seen: { - code: 1175, - category: 1, - key: "'implements' clause already seen." - }, - Interface_declaration_cannot_have_implements_clause: { - code: 1176, - category: 1, - key: "Interface declaration cannot have 'implements' clause." - }, - Binary_digit_expected: { - code: 1177, - category: 1, - key: "Binary digit expected." - }, - Octal_digit_expected: { - code: 1178, - category: 1, - key: "Octal digit expected." - }, - Unexpected_token_expected: { - code: 1179, - category: 1, - key: "Unexpected token. '{' expected." - }, - Property_destructuring_pattern_expected: { - code: 1180, - category: 1, - key: "Property destructuring pattern expected." - }, - Array_element_destructuring_pattern_expected: { - code: 1181, - category: 1, - key: "Array element destructuring pattern expected." - }, - A_destructuring_declaration_must_have_an_initializer: { - code: 1182, - category: 1, - key: "A destructuring declaration must have an initializer." - }, - Destructuring_declarations_are_not_allowed_in_ambient_contexts: { - code: 1183, - category: 1, - key: "Destructuring declarations are not allowed in ambient contexts." - }, - An_implementation_cannot_be_declared_in_ambient_contexts: { - code: 1184, - category: 1, - key: "An implementation cannot be declared in ambient contexts." - }, - Modifiers_cannot_appear_here: { - code: 1184, - category: 1, - key: "Modifiers cannot appear here." - }, - Merge_conflict_marker_encountered: { - code: 1185, - category: 1, - key: "Merge conflict marker encountered." - }, - A_rest_element_cannot_have_an_initializer: { - code: 1186, - category: 1, - key: "A rest element cannot have an initializer." - }, - A_parameter_property_may_not_be_a_binding_pattern: { - code: 1187, - category: 1, - key: "A parameter property may not be a binding pattern." - }, - Only_a_single_variable_declaration_is_allowed_in_a_for_of_statement: { - code: 1188, - category: 1, - key: "Only a single variable declaration is allowed in a 'for...of' statement." - }, - The_variable_declaration_of_a_for_in_statement_cannot_have_an_initializer: { - code: 1189, - category: 1, - key: "The variable declaration of a 'for...in' statement cannot have an initializer." - }, - The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer: { - code: 1190, - category: 1, - key: "The variable declaration of a 'for...of' statement cannot have an initializer." - }, - An_import_declaration_cannot_have_modifiers: { - code: 1191, - category: 1, - key: "An import declaration cannot have modifiers." - }, - External_module_0_has_no_default_export_or_export_assignment: { - code: 1192, - category: 1, - key: "External module '{0}' has no default export or export assignment." - }, - An_export_declaration_cannot_have_modifiers: { - code: 1193, - category: 1, - key: "An export declaration cannot have modifiers." - }, - Export_declarations_are_not_permitted_in_an_internal_module: { - code: 1194, - category: 1, - key: "Export declarations are not permitted in an internal module." - }, - Catch_clause_variable_name_must_be_an_identifier: { - code: 1195, - category: 1, - key: "Catch clause variable name must be an identifier." - }, - Catch_clause_variable_cannot_have_a_type_annotation: { - code: 1196, - category: 1, - key: "Catch clause variable cannot have a type annotation." - }, - Catch_clause_variable_cannot_have_an_initializer: { - code: 1197, - category: 1, - key: "Catch clause variable cannot have an initializer." - }, - An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive: { - code: 1198, - category: 1, - key: "An extended Unicode escape value must be between 0x0 and 0x10FFFF inclusive." - }, - Unterminated_Unicode_escape_sequence: { - code: 1199, - category: 1, - key: "Unterminated Unicode escape sequence." - }, - Duplicate_identifier_0: { - code: 2300, - category: 1, - key: "Duplicate identifier '{0}'." - }, - Initializer_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor: { - code: 2301, - category: 1, - key: "Initializer of instance member variable '{0}' cannot reference identifier '{1}' declared in the constructor." - }, - Static_members_cannot_reference_class_type_parameters: { - code: 2302, - category: 1, - key: "Static members cannot reference class type parameters." - }, - Circular_definition_of_import_alias_0: { - code: 2303, - category: 1, - key: "Circular definition of import alias '{0}'." - }, - Cannot_find_name_0: { - code: 2304, - category: 1, - key: "Cannot find name '{0}'." - }, - Module_0_has_no_exported_member_1: { - code: 2305, - category: 1, - key: "Module '{0}' has no exported member '{1}'." - }, - File_0_is_not_an_external_module: { - code: 2306, - category: 1, - key: "File '{0}' is not an external module." - }, - Cannot_find_external_module_0: { - code: 2307, - category: 1, - key: "Cannot find external module '{0}'." - }, - A_module_cannot_have_more_than_one_export_assignment: { - code: 2308, - category: 1, - key: "A module cannot have more than one export assignment." - }, - An_export_assignment_cannot_be_used_in_a_module_with_other_exported_elements: { - code: 2309, - category: 1, - key: "An export assignment cannot be used in a module with other exported elements." - }, - Type_0_recursively_references_itself_as_a_base_type: { - code: 2310, - category: 1, - key: "Type '{0}' recursively references itself as a base type." - }, - A_class_may_only_extend_another_class: { - code: 2311, - category: 1, - key: "A class may only extend another class." - }, - An_interface_may_only_extend_a_class_or_another_interface: { - code: 2312, - category: 1, - key: "An interface may only extend a class or another interface." - }, - Constraint_of_a_type_parameter_cannot_reference_any_type_parameter_from_the_same_type_parameter_list: { - code: 2313, - category: 1, - key: "Constraint of a type parameter cannot reference any type parameter from the same type parameter list." - }, - Generic_type_0_requires_1_type_argument_s: { - code: 2314, - category: 1, - key: "Generic type '{0}' requires {1} type argument(s)." - }, - Type_0_is_not_generic: { - code: 2315, - category: 1, - key: "Type '{0}' is not generic." - }, - Global_type_0_must_be_a_class_or_interface_type: { - code: 2316, - category: 1, - key: "Global type '{0}' must be a class or interface type." - }, - Global_type_0_must_have_1_type_parameter_s: { - code: 2317, - category: 1, - key: "Global type '{0}' must have {1} type parameter(s)." - }, - Cannot_find_global_type_0: { - code: 2318, - category: 1, - key: "Cannot find global type '{0}'." - }, - Named_property_0_of_types_1_and_2_are_not_identical: { - code: 2319, - category: 1, - key: "Named property '{0}' of types '{1}' and '{2}' are not identical." - }, - Interface_0_cannot_simultaneously_extend_types_1_and_2: { - code: 2320, - category: 1, - key: "Interface '{0}' cannot simultaneously extend types '{1}' and '{2}'." - }, - Excessive_stack_depth_comparing_types_0_and_1: { - code: 2321, - category: 1, - key: "Excessive stack depth comparing types '{0}' and '{1}'." - }, - Type_0_is_not_assignable_to_type_1: { - code: 2322, - category: 1, - key: "Type '{0}' is not assignable to type '{1}'." - }, - Property_0_is_missing_in_type_1: { - code: 2324, - category: 1, - key: "Property '{0}' is missing in type '{1}'." - }, - Property_0_is_private_in_type_1_but_not_in_type_2: { - code: 2325, - category: 1, - key: "Property '{0}' is private in type '{1}' but not in type '{2}'." - }, - Types_of_property_0_are_incompatible: { - code: 2326, - category: 1, - key: "Types of property '{0}' are incompatible." - }, - Property_0_is_optional_in_type_1_but_required_in_type_2: { - code: 2327, - category: 1, - key: "Property '{0}' is optional in type '{1}' but required in type '{2}'." - }, - Types_of_parameters_0_and_1_are_incompatible: { - code: 2328, - category: 1, - key: "Types of parameters '{0}' and '{1}' are incompatible." - }, - Index_signature_is_missing_in_type_0: { - code: 2329, - category: 1, - key: "Index signature is missing in type '{0}'." - }, - Index_signatures_are_incompatible: { - code: 2330, - category: 1, - key: "Index signatures are incompatible." - }, - this_cannot_be_referenced_in_a_module_body: { - code: 2331, - category: 1, - key: "'this' cannot be referenced in a module body." - }, - this_cannot_be_referenced_in_current_location: { - code: 2332, - category: 1, - key: "'this' cannot be referenced in current location." - }, - this_cannot_be_referenced_in_constructor_arguments: { - code: 2333, - category: 1, - key: "'this' cannot be referenced in constructor arguments." - }, - this_cannot_be_referenced_in_a_static_property_initializer: { - code: 2334, - category: 1, - key: "'this' cannot be referenced in a static property initializer." - }, - super_can_only_be_referenced_in_a_derived_class: { - code: 2335, - category: 1, - key: "'super' can only be referenced in a derived class." - }, - super_cannot_be_referenced_in_constructor_arguments: { - code: 2336, - category: 1, - key: "'super' cannot be referenced in constructor arguments." - }, - Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors: { - code: 2337, - category: 1, - key: "Super calls are not permitted outside constructors or in nested functions inside constructors" - }, - super_property_access_is_permitted_only_in_a_constructor_member_function_or_member_accessor_of_a_derived_class: { - code: 2338, - category: 1, - key: "'super' property access is permitted only in a constructor, member function, or member accessor of a derived class" - }, - Property_0_does_not_exist_on_type_1: { - code: 2339, - category: 1, - key: "Property '{0}' does not exist on type '{1}'." - }, - Only_public_and_protected_methods_of_the_base_class_are_accessible_via_the_super_keyword: { - code: 2340, - category: 1, - key: "Only public and protected methods of the base class are accessible via the 'super' keyword" - }, - Property_0_is_private_and_only_accessible_within_class_1: { - code: 2341, - category: 1, - key: "Property '{0}' is private and only accessible within class '{1}'." - }, - An_index_expression_argument_must_be_of_type_string_number_symbol_or_any: { - code: 2342, - category: 1, - key: "An index expression argument must be of type 'string', 'number', 'symbol, or 'any'." - }, - Type_0_does_not_satisfy_the_constraint_1: { - code: 2344, - category: 1, - key: "Type '{0}' does not satisfy the constraint '{1}'." - }, - Argument_of_type_0_is_not_assignable_to_parameter_of_type_1: { - code: 2345, - category: 1, - key: "Argument of type '{0}' is not assignable to parameter of type '{1}'." - }, - Supplied_parameters_do_not_match_any_signature_of_call_target: { - code: 2346, - category: 1, - key: "Supplied parameters do not match any signature of call target." - }, - Untyped_function_calls_may_not_accept_type_arguments: { - code: 2347, - category: 1, - key: "Untyped function calls may not accept type arguments." - }, - Value_of_type_0_is_not_callable_Did_you_mean_to_include_new: { - code: 2348, - category: 1, - key: "Value of type '{0}' is not callable. Did you mean to include 'new'?" - }, - Cannot_invoke_an_expression_whose_type_lacks_a_call_signature: { - code: 2349, - category: 1, - key: "Cannot invoke an expression whose type lacks a call signature." - }, - Only_a_void_function_can_be_called_with_the_new_keyword: { - code: 2350, - category: 1, - key: "Only a void function can be called with the 'new' keyword." - }, - Cannot_use_new_with_an_expression_whose_type_lacks_a_call_or_construct_signature: { - code: 2351, - category: 1, - key: "Cannot use 'new' with an expression whose type lacks a call or construct signature." - }, - Neither_type_0_nor_type_1_is_assignable_to_the_other: { - code: 2352, - category: 1, - key: "Neither type '{0}' nor type '{1}' is assignable to the other." - }, - No_best_common_type_exists_among_return_expressions: { - code: 2354, - category: 1, - key: "No best common type exists among return expressions." - }, - A_function_whose_declared_type_is_neither_void_nor_any_must_return_a_value_or_consist_of_a_single_throw_statement: { - code: 2355, - category: 1, - key: "A function whose declared type is neither 'void' nor 'any' must return a value or consist of a single 'throw' statement." - }, - An_arithmetic_operand_must_be_of_type_any_number_or_an_enum_type: { - code: 2356, - category: 1, - key: "An arithmetic operand must be of type 'any', 'number' or an enum type." - }, - The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_property_or_indexer: { - code: 2357, - category: 1, - key: "The operand of an increment or decrement operator must be a variable, property or indexer." - }, - The_left_hand_side_of_an_instanceof_expression_must_be_of_type_any_an_object_type_or_a_type_parameter: { - code: 2358, - category: 1, - key: "The left-hand side of an 'instanceof' expression must be of type 'any', an object type or a type parameter." - }, - The_right_hand_side_of_an_instanceof_expression_must_be_of_type_any_or_of_a_type_assignable_to_the_Function_interface_type: { - code: 2359, - category: 1, - key: "The right-hand side of an 'instanceof' expression must be of type 'any' or of a type assignable to the 'Function' interface type." - }, - The_left_hand_side_of_an_in_expression_must_be_of_type_any_string_number_or_symbol: { - code: 2360, - category: 1, - key: "The left-hand side of an 'in' expression must be of type 'any', 'string', 'number', or 'symbol'." - }, - The_right_hand_side_of_an_in_expression_must_be_of_type_any_an_object_type_or_a_type_parameter: { - code: 2361, - category: 1, - key: "The right-hand side of an 'in' expression must be of type 'any', an object type or a type parameter" - }, - The_left_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_or_an_enum_type: { - code: 2362, - category: 1, - key: "The left-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type." - }, - The_right_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_or_an_enum_type: { - code: 2363, - category: 1, - key: "The right-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type." - }, - Invalid_left_hand_side_of_assignment_expression: { - code: 2364, - category: 1, - key: "Invalid left-hand side of assignment expression." - }, - Operator_0_cannot_be_applied_to_types_1_and_2: { - code: 2365, - category: 1, - key: "Operator '{0}' cannot be applied to types '{1}' and '{2}'." - }, - Type_parameter_name_cannot_be_0: { - code: 2368, - category: 1, - key: "Type parameter name cannot be '{0}'" - }, - A_parameter_property_is_only_allowed_in_a_constructor_implementation: { - code: 2369, - category: 1, - key: "A parameter property is only allowed in a constructor implementation." - }, - A_rest_parameter_must_be_of_an_array_type: { - code: 2370, - category: 1, - key: "A rest parameter must be of an array type." - }, - A_parameter_initializer_is_only_allowed_in_a_function_or_constructor_implementation: { - code: 2371, - category: 1, - key: "A parameter initializer is only allowed in a function or constructor implementation." - }, - Parameter_0_cannot_be_referenced_in_its_initializer: { - code: 2372, - category: 1, - key: "Parameter '{0}' cannot be referenced in its initializer." - }, - Initializer_of_parameter_0_cannot_reference_identifier_1_declared_after_it: { - code: 2373, - category: 1, - key: "Initializer of parameter '{0}' cannot reference identifier '{1}' declared after it." - }, - Duplicate_string_index_signature: { - code: 2374, - category: 1, - key: "Duplicate string index signature." - }, - Duplicate_number_index_signature: { - code: 2375, - category: 1, - key: "Duplicate number index signature." - }, - A_super_call_must_be_the_first_statement_in_the_constructor_when_a_class_contains_initialized_properties_or_has_parameter_properties: { - code: 2376, - category: 1, - key: "A 'super' call must be the first statement in the constructor when a class contains initialized properties or has parameter properties." - }, - Constructors_for_derived_classes_must_contain_a_super_call: { - code: 2377, - category: 1, - key: "Constructors for derived classes must contain a 'super' call." - }, - A_get_accessor_must_return_a_value_or_consist_of_a_single_throw_statement: { - code: 2378, - category: 1, - key: "A 'get' accessor must return a value or consist of a single 'throw' statement." - }, - Getter_and_setter_accessors_do_not_agree_in_visibility: { - code: 2379, - category: 1, - key: "Getter and setter accessors do not agree in visibility." - }, - get_and_set_accessor_must_have_the_same_type: { - code: 2380, - category: 1, - key: "'get' and 'set' accessor must have the same type." - }, - A_signature_with_an_implementation_cannot_use_a_string_literal_type: { - code: 2381, - category: 1, - key: "A signature with an implementation cannot use a string literal type." - }, - Specialized_overload_signature_is_not_assignable_to_any_non_specialized_signature: { - code: 2382, - category: 1, - key: "Specialized overload signature is not assignable to any non-specialized signature." - }, - Overload_signatures_must_all_be_exported_or_not_exported: { - code: 2383, - category: 1, - key: "Overload signatures must all be exported or not exported." - }, - Overload_signatures_must_all_be_ambient_or_non_ambient: { - code: 2384, - category: 1, - key: "Overload signatures must all be ambient or non-ambient." - }, - Overload_signatures_must_all_be_public_private_or_protected: { - code: 2385, - category: 1, - key: "Overload signatures must all be public, private or protected." - }, - Overload_signatures_must_all_be_optional_or_required: { - code: 2386, - category: 1, - key: "Overload signatures must all be optional or required." - }, - Function_overload_must_be_static: { - code: 2387, - category: 1, - key: "Function overload must be static." - }, - Function_overload_must_not_be_static: { - code: 2388, - category: 1, - key: "Function overload must not be static." - }, - Function_implementation_name_must_be_0: { - code: 2389, - category: 1, - key: "Function implementation name must be '{0}'." - }, - Constructor_implementation_is_missing: { - code: 2390, - category: 1, - key: "Constructor implementation is missing." - }, - Function_implementation_is_missing_or_not_immediately_following_the_declaration: { - code: 2391, - category: 1, - key: "Function implementation is missing or not immediately following the declaration." - }, - Multiple_constructor_implementations_are_not_allowed: { - code: 2392, - category: 1, - key: "Multiple constructor implementations are not allowed." - }, - Duplicate_function_implementation: { - code: 2393, - category: 1, - key: "Duplicate function implementation." - }, - Overload_signature_is_not_compatible_with_function_implementation: { - code: 2394, - category: 1, - key: "Overload signature is not compatible with function implementation." - }, - Individual_declarations_in_merged_declaration_0_must_be_all_exported_or_all_local: { - code: 2395, - category: 1, - key: "Individual declarations in merged declaration {0} must be all exported or all local." - }, - Duplicate_identifier_arguments_Compiler_uses_arguments_to_initialize_rest_parameters: { - code: 2396, - category: 1, - key: "Duplicate identifier 'arguments'. Compiler uses 'arguments' to initialize rest parameters." - }, - Duplicate_identifier_this_Compiler_uses_variable_declaration_this_to_capture_this_reference: { - code: 2399, - category: 1, - key: "Duplicate identifier '_this'. Compiler uses variable declaration '_this' to capture 'this' reference." - }, - Expression_resolves_to_variable_declaration_this_that_compiler_uses_to_capture_this_reference: { - code: 2400, - category: 1, - key: "Expression resolves to variable declaration '_this' that compiler uses to capture 'this' reference." - }, - Duplicate_identifier_super_Compiler_uses_super_to_capture_base_class_reference: { - code: 2401, - category: 1, - key: "Duplicate identifier '_super'. Compiler uses '_super' to capture base class reference." - }, - Expression_resolves_to_super_that_compiler_uses_to_capture_base_class_reference: { - code: 2402, - category: 1, - key: "Expression resolves to '_super' that compiler uses to capture base class reference." - }, - Subsequent_variable_declarations_must_have_the_same_type_Variable_0_must_be_of_type_1_but_here_has_type_2: { - code: 2403, - category: 1, - key: "Subsequent variable declarations must have the same type. Variable '{0}' must be of type '{1}', but here has type '{2}'." - }, - The_left_hand_side_of_a_for_in_statement_cannot_use_a_type_annotation: { - code: 2404, - category: 1, - key: "The left-hand side of a 'for...in' statement cannot use a type annotation." - }, - The_left_hand_side_of_a_for_in_statement_must_be_of_type_string_or_any: { - code: 2405, - category: 1, - key: "The left-hand side of a 'for...in' statement must be of type 'string' or 'any'." - }, - Invalid_left_hand_side_in_for_in_statement: { - code: 2406, - category: 1, - key: "Invalid left-hand side in 'for...in' statement." - }, - The_right_hand_side_of_a_for_in_statement_must_be_of_type_any_an_object_type_or_a_type_parameter: { - code: 2407, - category: 1, - key: "The right-hand side of a 'for...in' statement must be of type 'any', an object type or a type parameter." - }, - Setters_cannot_return_a_value: { - code: 2408, - category: 1, - key: "Setters cannot return a value." - }, - Return_type_of_constructor_signature_must_be_assignable_to_the_instance_type_of_the_class: { - code: 2409, - category: 1, - key: "Return type of constructor signature must be assignable to the instance type of the class" - }, - All_symbols_within_a_with_block_will_be_resolved_to_any: { - code: 2410, - category: 1, - key: "All symbols within a 'with' block will be resolved to 'any'." - }, - Property_0_of_type_1_is_not_assignable_to_string_index_type_2: { - code: 2411, - category: 1, - key: "Property '{0}' of type '{1}' is not assignable to string index type '{2}'." - }, - Property_0_of_type_1_is_not_assignable_to_numeric_index_type_2: { - code: 2412, - category: 1, - key: "Property '{0}' of type '{1}' is not assignable to numeric index type '{2}'." - }, - Numeric_index_type_0_is_not_assignable_to_string_index_type_1: { - code: 2413, - category: 1, - key: "Numeric index type '{0}' is not assignable to string index type '{1}'." - }, - Class_name_cannot_be_0: { - code: 2414, - category: 1, - key: "Class name cannot be '{0}'" - }, - Class_0_incorrectly_extends_base_class_1: { - code: 2415, - category: 1, - key: "Class '{0}' incorrectly extends base class '{1}'." - }, - Class_static_side_0_incorrectly_extends_base_class_static_side_1: { - code: 2417, - category: 1, - key: "Class static side '{0}' incorrectly extends base class static side '{1}'." - }, - Type_name_0_in_extends_clause_does_not_reference_constructor_function_for_0: { - code: 2419, - category: 1, - key: "Type name '{0}' in extends clause does not reference constructor function for '{0}'." - }, - Class_0_incorrectly_implements_interface_1: { - code: 2420, - category: 1, - key: "Class '{0}' incorrectly implements interface '{1}'." - }, - A_class_may_only_implement_another_class_or_interface: { - code: 2422, - category: 1, - key: "A class may only implement another class or interface." - }, - Class_0_defines_instance_member_function_1_but_extended_class_2_defines_it_as_instance_member_accessor: { - code: 2423, - category: 1, - key: "Class '{0}' defines instance member function '{1}', but extended class '{2}' defines it as instance member accessor." - }, - Class_0_defines_instance_member_function_1_but_extended_class_2_defines_it_as_instance_member_property: { - code: 2424, - category: 1, - key: "Class '{0}' defines instance member function '{1}', but extended class '{2}' defines it as instance member property." - }, - Class_0_defines_instance_member_property_1_but_extended_class_2_defines_it_as_instance_member_function: { - code: 2425, - category: 1, - key: "Class '{0}' defines instance member property '{1}', but extended class '{2}' defines it as instance member function." - }, - Class_0_defines_instance_member_accessor_1_but_extended_class_2_defines_it_as_instance_member_function: { - code: 2426, - category: 1, - key: "Class '{0}' defines instance member accessor '{1}', but extended class '{2}' defines it as instance member function." - }, - Interface_name_cannot_be_0: { - code: 2427, - category: 1, - key: "Interface name cannot be '{0}'" - }, - All_declarations_of_an_interface_must_have_identical_type_parameters: { - code: 2428, - category: 1, - key: "All declarations of an interface must have identical type parameters." - }, - Interface_0_incorrectly_extends_interface_1: { - code: 2430, - category: 1, - key: "Interface '{0}' incorrectly extends interface '{1}'." - }, - Enum_name_cannot_be_0: { - code: 2431, - category: 1, - key: "Enum name cannot be '{0}'" - }, - In_an_enum_with_multiple_declarations_only_one_declaration_can_omit_an_initializer_for_its_first_enum_element: { - code: 2432, - category: 1, - key: "In an enum with multiple declarations, only one declaration can omit an initializer for its first enum element." - }, - A_module_declaration_cannot_be_in_a_different_file_from_a_class_or_function_with_which_it_is_merged: { - code: 2433, - category: 1, - key: "A module declaration cannot be in a different file from a class or function with which it is merged" - }, - A_module_declaration_cannot_be_located_prior_to_a_class_or_function_with_which_it_is_merged: { - code: 2434, - category: 1, - key: "A module declaration cannot be located prior to a class or function with which it is merged" - }, - Ambient_external_modules_cannot_be_nested_in_other_modules: { - code: 2435, - category: 1, - key: "Ambient external modules cannot be nested in other modules." - }, - Ambient_external_module_declaration_cannot_specify_relative_module_name: { - code: 2436, - category: 1, - key: "Ambient external module declaration cannot specify relative module name." - }, - Module_0_is_hidden_by_a_local_declaration_with_the_same_name: { - code: 2437, - category: 1, - key: "Module '{0}' is hidden by a local declaration with the same name" - }, - Import_name_cannot_be_0: { - code: 2438, - category: 1, - key: "Import name cannot be '{0}'" - }, - Import_or_export_declaration_in_an_ambient_external_module_declaration_cannot_reference_external_module_through_relative_external_module_name: { - code: 2439, - category: 1, - key: "Import or export declaration in an ambient external module declaration cannot reference external module through relative external module name." - }, - Import_declaration_conflicts_with_local_declaration_of_0: { - code: 2440, - category: 1, - key: "Import declaration conflicts with local declaration of '{0}'" - }, - Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_an_external_module: { - code: 2441, - category: 1, - key: "Duplicate identifier '{0}'. Compiler reserves name '{1}' in top level scope of an external module." - }, - Types_have_separate_declarations_of_a_private_property_0: { - code: 2442, - category: 1, - key: "Types have separate declarations of a private property '{0}'." - }, - Property_0_is_protected_but_type_1_is_not_a_class_derived_from_2: { - code: 2443, - category: 1, - key: "Property '{0}' is protected but type '{1}' is not a class derived from '{2}'." - }, - Property_0_is_protected_in_type_1_but_public_in_type_2: { - code: 2444, - category: 1, - key: "Property '{0}' is protected in type '{1}' but public in type '{2}'." - }, - Property_0_is_protected_and_only_accessible_within_class_1_and_its_subclasses: { - code: 2445, - category: 1, - key: "Property '{0}' is protected and only accessible within class '{1}' and its subclasses." - }, - Property_0_is_protected_and_only_accessible_through_an_instance_of_class_1: { - code: 2446, - category: 1, - key: "Property '{0}' is protected and only accessible through an instance of class '{1}'." - }, - The_0_operator_is_not_allowed_for_boolean_types_Consider_using_1_instead: { - code: 2447, - category: 1, - key: "The '{0}' operator is not allowed for boolean types. Consider using '{1}' instead." - }, - Block_scoped_variable_0_used_before_its_declaration: { - code: 2448, - category: 1, - key: "Block-scoped variable '{0}' used before its declaration." - }, - The_operand_of_an_increment_or_decrement_operator_cannot_be_a_constant: { - code: 2449, - category: 1, - key: "The operand of an increment or decrement operator cannot be a constant." - }, - Left_hand_side_of_assignment_expression_cannot_be_a_constant: { - code: 2450, - category: 1, - key: "Left-hand side of assignment expression cannot be a constant." - }, - Cannot_redeclare_block_scoped_variable_0: { - code: 2451, - category: 1, - key: "Cannot redeclare block-scoped variable '{0}'." - }, - An_enum_member_cannot_have_a_numeric_name: { - code: 2452, - category: 1, - key: "An enum member cannot have a numeric name." - }, - The_type_argument_for_type_parameter_0_cannot_be_inferred_from_the_usage_Consider_specifying_the_type_arguments_explicitly: { - code: 2453, - category: 1, - key: "The type argument for type parameter '{0}' cannot be inferred from the usage. Consider specifying the type arguments explicitly." - }, - Type_argument_candidate_1_is_not_a_valid_type_argument_because_it_is_not_a_supertype_of_candidate_0: { - code: 2455, - category: 1, - key: "Type argument candidate '{1}' is not a valid type argument because it is not a supertype of candidate '{0}'." - }, - Type_alias_0_circularly_references_itself: { - code: 2456, - category: 1, - key: "Type alias '{0}' circularly references itself." - }, - Type_alias_name_cannot_be_0: { - code: 2457, - category: 1, - key: "Type alias name cannot be '{0}'" - }, - An_AMD_module_cannot_have_multiple_name_assignments: { - code: 2458, - category: 1, - key: "An AMD module cannot have multiple name assignments." - }, - Type_0_has_no_property_1_and_no_string_index_signature: { - code: 2459, - category: 1, - key: "Type '{0}' has no property '{1}' and no string index signature." - }, - Type_0_has_no_property_1: { - code: 2460, - category: 1, - key: "Type '{0}' has no property '{1}'." - }, - Type_0_is_not_an_array_type: { - code: 2461, - category: 1, - key: "Type '{0}' is not an array type." - }, - A_rest_element_must_be_last_in_an_array_destructuring_pattern: { - code: 2462, - category: 1, - key: "A rest element must be last in an array destructuring pattern" - }, - A_binding_pattern_parameter_cannot_be_optional_in_an_implementation_signature: { - code: 2463, - category: 1, - key: "A binding pattern parameter cannot be optional in an implementation signature." - }, - A_computed_property_name_must_be_of_type_string_number_symbol_or_any: { - code: 2464, - category: 1, - key: "A computed property name must be of type 'string', 'number', 'symbol', or 'any'." - }, - this_cannot_be_referenced_in_a_computed_property_name: { - code: 2465, - category: 1, - key: "'this' cannot be referenced in a computed property name." - }, - super_cannot_be_referenced_in_a_computed_property_name: { - code: 2466, - category: 1, - key: "'super' cannot be referenced in a computed property name." - }, - A_computed_property_name_cannot_reference_a_type_parameter_from_its_containing_type: { - code: 2467, - category: 1, - key: "A computed property name cannot reference a type parameter from its containing type." - }, - Cannot_find_global_value_0: { - code: 2468, - category: 1, - key: "Cannot find global value '{0}'." - }, - The_0_operator_cannot_be_applied_to_type_symbol: { - code: 2469, - category: 1, - key: "The '{0}' operator cannot be applied to type 'symbol'." - }, - Symbol_reference_does_not_refer_to_the_global_Symbol_constructor_object: { - code: 2470, - category: 1, - key: "'Symbol' reference does not refer to the global Symbol constructor object." - }, - A_computed_property_name_of_the_form_0_must_be_of_type_symbol: { - code: 2471, - category: 1, - key: "A computed property name of the form '{0}' must be of type 'symbol'." - }, - Spread_operator_in_new_expressions_is_only_available_when_targeting_ECMAScript_6_and_higher: { - code: 2472, - category: 1, - key: "Spread operator in 'new' expressions is only available when targeting ECMAScript 6 and higher." - }, - Enum_declarations_must_all_be_const_or_non_const: { - code: 2473, - category: 1, - key: "Enum declarations must all be const or non-const." - }, - In_const_enum_declarations_member_initializer_must_be_constant_expression: { - code: 2474, - category: 1, - key: "In 'const' enum declarations member initializer must be constant expression." - }, - const_enums_can_only_be_used_in_property_or_index_access_expressions_or_the_right_hand_side_of_an_import_declaration_or_export_assignment: { - code: 2475, - category: 1, - key: "'const' enums can only be used in property or index access expressions or the right hand side of an import declaration or export assignment." - }, - A_const_enum_member_can_only_be_accessed_using_a_string_literal: { - code: 2476, - category: 1, - key: "A const enum member can only be accessed using a string literal." - }, - const_enum_member_initializer_was_evaluated_to_a_non_finite_value: { - code: 2477, - category: 1, - key: "'const' enum member initializer was evaluated to a non-finite value." - }, - const_enum_member_initializer_was_evaluated_to_disallowed_value_NaN: { - code: 2478, - category: 1, - key: "'const' enum member initializer was evaluated to disallowed value 'NaN'." - }, - Property_0_does_not_exist_on_const_enum_1: { - code: 2479, - category: 1, - key: "Property '{0}' does not exist on 'const' enum '{1}'." - }, - let_is_not_allowed_to_be_used_as_a_name_in_let_or_const_declarations: { - code: 2480, - category: 1, - key: "'let' is not allowed to be used as a name in 'let' or 'const' declarations." - }, - Cannot_initialize_outer_scoped_variable_0_in_the_same_scope_as_block_scoped_declaration_1: { - code: 2481, - category: 1, - key: "Cannot initialize outer scoped variable '{0}' in the same scope as block scoped declaration '{1}'." - }, - The_left_hand_side_of_a_for_of_statement_cannot_use_a_type_annotation: { - code: 2483, - category: 1, - key: "The left-hand side of a 'for...of' statement cannot use a type annotation." - }, - Export_declaration_conflicts_with_exported_declaration_of_0: { - code: 2484, - category: 1, - key: "Export declaration conflicts with exported declaration of '{0}'" - }, - The_left_hand_side_of_a_for_of_statement_cannot_be_a_previously_defined_constant: { - code: 2485, - category: 1, - key: "The left-hand side of a 'for...of' statement cannot be a previously defined constant." - }, - The_left_hand_side_of_a_for_in_statement_cannot_be_a_previously_defined_constant: { - code: 2486, - category: 1, - key: "The left-hand side of a 'for...in' statement cannot be a previously defined constant." - }, - Invalid_left_hand_side_in_for_of_statement: { - code: 2487, - category: 1, - key: "Invalid left-hand side in 'for...of' statement." - }, - The_right_hand_side_of_a_for_of_statement_must_have_a_Symbol_iterator_method_that_returns_an_iterator: { - code: 2488, - category: 1, - key: "The right-hand side of a 'for...of' statement must have a '[Symbol.iterator]()' method that returns an iterator." - }, - The_iterator_returned_by_the_right_hand_side_of_a_for_of_statement_must_have_a_next_method: { - code: 2489, - category: 1, - key: "The iterator returned by the right-hand side of a 'for...of' statement must have a 'next()' method." - }, - The_type_returned_by_the_next_method_of_an_iterator_must_have_a_value_property: { - code: 2490, - category: 1, - key: "The type returned by the 'next()' method of an iterator must have a 'value' property." - }, - The_left_hand_side_of_a_for_in_statement_cannot_be_a_destructuring_pattern: { - code: 2491, - category: 1, - key: "The left-hand side of a 'for...in' statement cannot be a destructuring pattern." - }, - Cannot_redeclare_identifier_0_in_catch_clause: { - code: 2492, - category: 1, - key: "Cannot redeclare identifier '{0}' in catch clause" - }, - Tuple_type_0_with_length_1_cannot_be_assigned_to_tuple_with_length_2: { - code: 2493, - category: 1, - key: "Tuple type '{0}' with length '{1}' cannot be assigned to tuple with length '{2}'." - }, - Using_a_string_in_a_for_of_statement_is_only_supported_in_ECMAScript_5_and_higher: { - code: 2494, - category: 1, - key: "Using a string in a 'for...of' statement is only supported in ECMAScript 5 and higher." - }, - Type_0_is_not_an_array_type_or_a_string_type: { - code: 2461, - category: 1, - key: "Type '{0}' is not an array type or a string type." - }, - Import_declaration_0_is_using_private_name_1: { - code: 4000, - category: 1, - key: "Import declaration '{0}' is using private name '{1}'." - }, - Type_parameter_0_of_exported_class_has_or_is_using_private_name_1: { - code: 4002, - category: 1, - key: "Type parameter '{0}' of exported class has or is using private name '{1}'." - }, - Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1: { - code: 4004, - category: 1, - key: "Type parameter '{0}' of exported interface has or is using private name '{1}'." - }, - Type_parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1: { - code: 4006, - category: 1, - key: "Type parameter '{0}' of constructor signature from exported interface has or is using private name '{1}'." - }, - Type_parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1: { - code: 4008, - category: 1, - key: "Type parameter '{0}' of call signature from exported interface has or is using private name '{1}'." - }, - Type_parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1: { - code: 4010, - category: 1, - key: "Type parameter '{0}' of public static method from exported class has or is using private name '{1}'." - }, - Type_parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1: { - code: 4012, - category: 1, - key: "Type parameter '{0}' of public method from exported class has or is using private name '{1}'." - }, - Type_parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1: { - code: 4014, - category: 1, - key: "Type parameter '{0}' of method from exported interface has or is using private name '{1}'." - }, - Type_parameter_0_of_exported_function_has_or_is_using_private_name_1: { - code: 4016, - category: 1, - key: "Type parameter '{0}' of exported function has or is using private name '{1}'." - }, - Implements_clause_of_exported_class_0_has_or_is_using_private_name_1: { - code: 4019, - category: 1, - key: "Implements clause of exported class '{0}' has or is using private name '{1}'." - }, - Extends_clause_of_exported_class_0_has_or_is_using_private_name_1: { - code: 4020, - category: 1, - key: "Extends clause of exported class '{0}' has or is using private name '{1}'." - }, - Extends_clause_of_exported_interface_0_has_or_is_using_private_name_1: { - code: 4022, - category: 1, - key: "Extends clause of exported interface '{0}' has or is using private name '{1}'." - }, - Exported_variable_0_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: { - code: 4023, - category: 1, - key: "Exported variable '{0}' has or is using name '{1}' from external module {2} but cannot be named." - }, - Exported_variable_0_has_or_is_using_name_1_from_private_module_2: { - code: 4024, - category: 1, - key: "Exported variable '{0}' has or is using name '{1}' from private module '{2}'." - }, - Exported_variable_0_has_or_is_using_private_name_1: { - code: 4025, - category: 1, - key: "Exported variable '{0}' has or is using private name '{1}'." - }, - Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: { - code: 4026, - category: 1, - key: "Public static property '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named." - }, - Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2: { - code: 4027, - category: 1, - key: "Public static property '{0}' of exported class has or is using name '{1}' from private module '{2}'." - }, - Public_static_property_0_of_exported_class_has_or_is_using_private_name_1: { - code: 4028, - category: 1, - key: "Public static property '{0}' of exported class has or is using private name '{1}'." - }, - Public_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: { - code: 4029, - category: 1, - key: "Public property '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named." - }, - Public_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2: { - code: 4030, - category: 1, - key: "Public property '{0}' of exported class has or is using name '{1}' from private module '{2}'." - }, - Public_property_0_of_exported_class_has_or_is_using_private_name_1: { - code: 4031, - category: 1, - key: "Public property '{0}' of exported class has or is using private name '{1}'." - }, - Property_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2: { - code: 4032, - category: 1, - key: "Property '{0}' of exported interface has or is using name '{1}' from private module '{2}'." - }, - Property_0_of_exported_interface_has_or_is_using_private_name_1: { - code: 4033, - category: 1, - key: "Property '{0}' of exported interface has or is using private name '{1}'." - }, - Parameter_0_of_public_static_property_setter_from_exported_class_has_or_is_using_name_1_from_private_module_2: { - code: 4034, - category: 1, - key: "Parameter '{0}' of public static property setter from exported class has or is using name '{1}' from private module '{2}'." - }, - Parameter_0_of_public_static_property_setter_from_exported_class_has_or_is_using_private_name_1: { - code: 4035, - category: 1, - key: "Parameter '{0}' of public static property setter from exported class has or is using private name '{1}'." - }, - Parameter_0_of_public_property_setter_from_exported_class_has_or_is_using_name_1_from_private_module_2: { - code: 4036, - category: 1, - key: "Parameter '{0}' of public property setter from exported class has or is using name '{1}' from private module '{2}'." - }, - Parameter_0_of_public_property_setter_from_exported_class_has_or_is_using_private_name_1: { - code: 4037, - category: 1, - key: "Parameter '{0}' of public property setter from exported class has or is using private name '{1}'." - }, - Return_type_of_public_static_property_getter_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named: { - code: 4038, - category: 1, - key: "Return type of public static property getter from exported class has or is using name '{0}' from external module {1} but cannot be named." - }, - Return_type_of_public_static_property_getter_from_exported_class_has_or_is_using_name_0_from_private_module_1: { - code: 4039, - category: 1, - key: "Return type of public static property getter from exported class has or is using name '{0}' from private module '{1}'." - }, - Return_type_of_public_static_property_getter_from_exported_class_has_or_is_using_private_name_0: { - code: 4040, - category: 1, - key: "Return type of public static property getter from exported class has or is using private name '{0}'." - }, - Return_type_of_public_property_getter_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named: { - code: 4041, - category: 1, - key: "Return type of public property getter from exported class has or is using name '{0}' from external module {1} but cannot be named." - }, - Return_type_of_public_property_getter_from_exported_class_has_or_is_using_name_0_from_private_module_1: { - code: 4042, - category: 1, - key: "Return type of public property getter from exported class has or is using name '{0}' from private module '{1}'." - }, - Return_type_of_public_property_getter_from_exported_class_has_or_is_using_private_name_0: { - code: 4043, - category: 1, - key: "Return type of public property getter from exported class has or is using private name '{0}'." - }, - Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1: { - code: 4044, - category: 1, - key: "Return type of constructor signature from exported interface has or is using name '{0}' from private module '{1}'." - }, - Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_0: { - code: 4045, - category: 1, - key: "Return type of constructor signature from exported interface has or is using private name '{0}'." - }, - Return_type_of_call_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1: { - code: 4046, - category: 1, - key: "Return type of call signature from exported interface has or is using name '{0}' from private module '{1}'." - }, - Return_type_of_call_signature_from_exported_interface_has_or_is_using_private_name_0: { - code: 4047, - category: 1, - key: "Return type of call signature from exported interface has or is using private name '{0}'." - }, - Return_type_of_index_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1: { - code: 4048, - category: 1, - key: "Return type of index signature from exported interface has or is using name '{0}' from private module '{1}'." - }, - Return_type_of_index_signature_from_exported_interface_has_or_is_using_private_name_0: { - code: 4049, - category: 1, - key: "Return type of index signature from exported interface has or is using private name '{0}'." - }, - Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named: { - code: 4050, - category: 1, - key: "Return type of public static method from exported class has or is using name '{0}' from external module {1} but cannot be named." - }, - Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_private_module_1: { - code: 4051, - category: 1, - key: "Return type of public static method from exported class has or is using name '{0}' from private module '{1}'." - }, - Return_type_of_public_static_method_from_exported_class_has_or_is_using_private_name_0: { - code: 4052, - category: 1, - key: "Return type of public static method from exported class has or is using private name '{0}'." - }, - Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named: { - code: 4053, - category: 1, - key: "Return type of public method from exported class has or is using name '{0}' from external module {1} but cannot be named." - }, - Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_private_module_1: { - code: 4054, - category: 1, - key: "Return type of public method from exported class has or is using name '{0}' from private module '{1}'." - }, - Return_type_of_public_method_from_exported_class_has_or_is_using_private_name_0: { - code: 4055, - category: 1, - key: "Return type of public method from exported class has or is using private name '{0}'." - }, - Return_type_of_method_from_exported_interface_has_or_is_using_name_0_from_private_module_1: { - code: 4056, - category: 1, - key: "Return type of method from exported interface has or is using name '{0}' from private module '{1}'." - }, - Return_type_of_method_from_exported_interface_has_or_is_using_private_name_0: { - code: 4057, - category: 1, - key: "Return type of method from exported interface has or is using private name '{0}'." - }, - Return_type_of_exported_function_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named: { - code: 4058, - category: 1, - key: "Return type of exported function has or is using name '{0}' from external module {1} but cannot be named." - }, - Return_type_of_exported_function_has_or_is_using_name_0_from_private_module_1: { - code: 4059, - category: 1, - key: "Return type of exported function has or is using name '{0}' from private module '{1}'." - }, - Return_type_of_exported_function_has_or_is_using_private_name_0: { - code: 4060, - category: 1, - key: "Return type of exported function has or is using private name '{0}'." - }, - Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: { - code: 4061, - category: 1, - key: "Parameter '{0}' of constructor from exported class has or is using name '{1}' from external module {2} but cannot be named." - }, - Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_private_module_2: { - code: 4062, - category: 1, - key: "Parameter '{0}' of constructor from exported class has or is using name '{1}' from private module '{2}'." - }, - Parameter_0_of_constructor_from_exported_class_has_or_is_using_private_name_1: { - code: 4063, - category: 1, - key: "Parameter '{0}' of constructor from exported class has or is using private name '{1}'." - }, - Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2: { - code: 4064, - category: 1, - key: "Parameter '{0}' of constructor signature from exported interface has or is using name '{1}' from private module '{2}'." - }, - Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1: { - code: 4065, - category: 1, - key: "Parameter '{0}' of constructor signature from exported interface has or is using private name '{1}'." - }, - Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2: { - code: 4066, - category: 1, - key: "Parameter '{0}' of call signature from exported interface has or is using name '{1}' from private module '{2}'." - }, - Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1: { - code: 4067, - category: 1, - key: "Parameter '{0}' of call signature from exported interface has or is using private name '{1}'." - }, - Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: { - code: 4068, - category: 1, - key: "Parameter '{0}' of public static method from exported class has or is using name '{1}' from external module {2} but cannot be named." - }, - Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_private_module_2: { - code: 4069, - category: 1, - key: "Parameter '{0}' of public static method from exported class has or is using name '{1}' from private module '{2}'." - }, - Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1: { - code: 4070, - category: 1, - key: "Parameter '{0}' of public static method from exported class has or is using private name '{1}'." - }, - Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: { - code: 4071, - category: 1, - key: "Parameter '{0}' of public method from exported class has or is using name '{1}' from external module {2} but cannot be named." - }, - Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_private_module_2: { - code: 4072, - category: 1, - key: "Parameter '{0}' of public method from exported class has or is using name '{1}' from private module '{2}'." - }, - Parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1: { - code: 4073, - category: 1, - key: "Parameter '{0}' of public method from exported class has or is using private name '{1}'." - }, - Parameter_0_of_method_from_exported_interface_has_or_is_using_name_1_from_private_module_2: { - code: 4074, - category: 1, - key: "Parameter '{0}' of method from exported interface has or is using name '{1}' from private module '{2}'." - }, - Parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1: { - code: 4075, - category: 1, - key: "Parameter '{0}' of method from exported interface has or is using private name '{1}'." - }, - Parameter_0_of_exported_function_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: { - code: 4076, - category: 1, - key: "Parameter '{0}' of exported function has or is using name '{1}' from external module {2} but cannot be named." - }, - Parameter_0_of_exported_function_has_or_is_using_name_1_from_private_module_2: { - code: 4077, - category: 1, - key: "Parameter '{0}' of exported function has or is using name '{1}' from private module '{2}'." - }, - Parameter_0_of_exported_function_has_or_is_using_private_name_1: { - code: 4078, - category: 1, - key: "Parameter '{0}' of exported function has or is using private name '{1}'." - }, - Exported_type_alias_0_has_or_is_using_private_name_1: { - code: 4081, - category: 1, - key: "Exported type alias '{0}' has or is using private name '{1}'." - }, - Loop_contains_block_scoped_variable_0_referenced_by_a_function_in_the_loop_This_is_only_supported_in_ECMAScript_6_or_higher: { - code: 4091, - category: 1, - key: "Loop contains block-scoped variable '{0}' referenced by a function in the loop. This is only supported in ECMAScript 6 or higher." - }, - The_current_host_does_not_support_the_0_option: { - code: 5001, - category: 1, - key: "The current host does not support the '{0}' option." - }, - Cannot_find_the_common_subdirectory_path_for_the_input_files: { - code: 5009, - category: 1, - key: "Cannot find the common subdirectory path for the input files." - }, - Cannot_read_file_0_Colon_1: { - code: 5012, - category: 1, - key: "Cannot read file '{0}': {1}" - }, - Unsupported_file_encoding: { - code: 5013, - category: 1, - key: "Unsupported file encoding." - }, - Unknown_compiler_option_0: { - code: 5023, - category: 1, - key: "Unknown compiler option '{0}'." - }, - Compiler_option_0_requires_a_value_of_type_1: { - code: 5024, - category: 1, - key: "Compiler option '{0}' requires a value of type {1}." - }, - Could_not_write_file_0_Colon_1: { - code: 5033, - category: 1, - key: "Could not write file '{0}': {1}" - }, - Option_mapRoot_cannot_be_specified_without_specifying_sourcemap_option: { - code: 5038, - category: 1, - key: "Option 'mapRoot' cannot be specified without specifying 'sourcemap' option." - }, - Option_sourceRoot_cannot_be_specified_without_specifying_sourcemap_option: { - code: 5039, - category: 1, - key: "Option 'sourceRoot' cannot be specified without specifying 'sourcemap' option." - }, - Option_noEmit_cannot_be_specified_with_option_out_or_outDir: { - code: 5040, - category: 1, - key: "Option 'noEmit' cannot be specified with option 'out' or 'outDir'." - }, - Option_noEmit_cannot_be_specified_with_option_declaration: { - code: 5041, - category: 1, - key: "Option 'noEmit' cannot be specified with option 'declaration'." - }, - Option_project_cannot_be_mixed_with_source_files_on_a_command_line: { - code: 5042, - category: 1, - key: "Option 'project' cannot be mixed with source files on a command line." - }, - Concatenate_and_emit_output_to_single_file: { - code: 6001, - category: 2, - key: "Concatenate and emit output to single file." - }, - Generates_corresponding_d_ts_file: { - code: 6002, - category: 2, - key: "Generates corresponding '.d.ts' file." - }, - Specifies_the_location_where_debugger_should_locate_map_files_instead_of_generated_locations: { - code: 6003, - category: 2, - key: "Specifies the location where debugger should locate map files instead of generated locations." - }, - Specifies_the_location_where_debugger_should_locate_TypeScript_files_instead_of_source_locations: { - code: 6004, - category: 2, - key: "Specifies the location where debugger should locate TypeScript files instead of source locations." - }, - Watch_input_files: { - code: 6005, - category: 2, - key: "Watch input files." - }, - Redirect_output_structure_to_the_directory: { - code: 6006, - category: 2, - key: "Redirect output structure to the directory." - }, - Do_not_erase_const_enum_declarations_in_generated_code: { - code: 6007, - category: 2, - key: "Do not erase const enum declarations in generated code." - }, - Do_not_emit_outputs_if_any_type_checking_errors_were_reported: { - code: 6008, - category: 2, - key: "Do not emit outputs if any type checking errors were reported." - }, - Do_not_emit_comments_to_output: { - code: 6009, - category: 2, - key: "Do not emit comments to output." - }, - Do_not_emit_outputs: { - code: 6010, - category: 2, - key: "Do not emit outputs." - }, - Specify_ECMAScript_target_version_Colon_ES3_default_ES5_or_ES6_experimental: { - code: 6015, - category: 2, - key: "Specify ECMAScript target version: 'ES3' (default), 'ES5', or 'ES6' (experimental)" - }, - Specify_module_code_generation_Colon_commonjs_or_amd: { - code: 6016, - category: 2, - key: "Specify module code generation: 'commonjs' or 'amd'" - }, - Print_this_message: { - code: 6017, - category: 2, - key: "Print this message." - }, - Print_the_compiler_s_version: { - code: 6019, - category: 2, - key: "Print the compiler's version." - }, - Compile_the_project_in_the_given_directory: { - code: 6020, - category: 2, - key: "Compile the project in the given directory." - }, - Syntax_Colon_0: { - code: 6023, - category: 2, - key: "Syntax: {0}" - }, - options: { - code: 6024, - category: 2, - key: "options" - }, - file: { - code: 6025, - category: 2, - key: "file" - }, - Examples_Colon_0: { - code: 6026, - category: 2, - key: "Examples: {0}" - }, - Options_Colon: { - code: 6027, - category: 2, - key: "Options:" - }, - Version_0: { - code: 6029, - category: 2, - key: "Version {0}" - }, - Insert_command_line_options_and_files_from_a_file: { - code: 6030, - category: 2, - key: "Insert command line options and files from a file." - }, - File_change_detected_Starting_incremental_compilation: { - code: 6032, - category: 2, - key: "File change detected. Starting incremental compilation..." - }, - KIND: { - code: 6034, - category: 2, - key: "KIND" - }, - FILE: { - code: 6035, - category: 2, - key: "FILE" - }, - VERSION: { - code: 6036, - category: 2, - key: "VERSION" - }, - LOCATION: { - code: 6037, - category: 2, - key: "LOCATION" - }, - DIRECTORY: { - code: 6038, - category: 2, - key: "DIRECTORY" - }, - Compilation_complete_Watching_for_file_changes: { - code: 6042, - category: 2, - key: "Compilation complete. Watching for file changes." - }, - Generates_corresponding_map_file: { - code: 6043, - category: 2, - key: "Generates corresponding '.map' file." - }, - Compiler_option_0_expects_an_argument: { - code: 6044, - category: 1, - key: "Compiler option '{0}' expects an argument." - }, - Unterminated_quoted_string_in_response_file_0: { - code: 6045, - category: 1, - key: "Unterminated quoted string in response file '{0}'." - }, - Argument_for_module_option_must_be_commonjs_or_amd: { - code: 6046, - category: 1, - key: "Argument for '--module' option must be 'commonjs' or 'amd'." - }, - Argument_for_target_option_must_be_es3_es5_or_es6: { - code: 6047, - category: 1, - key: "Argument for '--target' option must be 'es3', 'es5', or 'es6'." - }, - Locale_must_be_of_the_form_language_or_language_territory_For_example_0_or_1: { - code: 6048, - category: 1, - key: "Locale must be of the form or -. For example '{0}' or '{1}'." - }, - Unsupported_locale_0: { - code: 6049, - category: 1, - key: "Unsupported locale '{0}'." - }, - Unable_to_open_file_0: { - code: 6050, - category: 1, - key: "Unable to open file '{0}'." - }, - Corrupted_locale_file_0: { - code: 6051, - category: 1, - key: "Corrupted locale file {0}." - }, - Raise_error_on_expressions_and_declarations_with_an_implied_any_type: { - code: 6052, - category: 2, - key: "Raise error on expressions and declarations with an implied 'any' type." - }, - File_0_not_found: { - code: 6053, - category: 1, - key: "File '{0}' not found." - }, - File_0_must_have_extension_ts_or_d_ts: { - code: 6054, - category: 1, - key: "File '{0}' must have extension '.ts' or '.d.ts'." - }, - Suppress_noImplicitAny_errors_for_indexing_objects_lacking_index_signatures: { - code: 6055, - category: 2, - key: "Suppress noImplicitAny errors for indexing objects lacking index signatures." - }, - Do_not_emit_declarations_for_code_that_has_an_internal_annotation: { - code: 6056, - category: 2, - key: "Do not emit declarations for code that has an '@internal' annotation." - }, - Preserve_new_lines_when_emitting_code: { - code: 6057, - category: 2, - key: "Preserve new-lines when emitting code." - }, - Variable_0_implicitly_has_an_1_type: { - code: 7005, - category: 1, - key: "Variable '{0}' implicitly has an '{1}' type." - }, - Parameter_0_implicitly_has_an_1_type: { - code: 7006, - category: 1, - key: "Parameter '{0}' implicitly has an '{1}' type." - }, - Member_0_implicitly_has_an_1_type: { - code: 7008, - category: 1, - key: "Member '{0}' implicitly has an '{1}' type." - }, - new_expression_whose_target_lacks_a_construct_signature_implicitly_has_an_any_type: { - code: 7009, - category: 1, - key: "'new' expression, whose target lacks a construct signature, implicitly has an 'any' type." - }, - _0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type: { - code: 7010, - category: 1, - key: "'{0}', which lacks return-type annotation, implicitly has an '{1}' return type." - }, - Function_expression_which_lacks_return_type_annotation_implicitly_has_an_0_return_type: { - code: 7011, - category: 1, - key: "Function expression, which lacks return-type annotation, implicitly has an '{0}' return type." - }, - Construct_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type: { - code: 7013, - category: 1, - key: "Construct signature, which lacks return-type annotation, implicitly has an 'any' return type." - }, - Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_type_annotation: { - code: 7016, - category: 1, - key: "Property '{0}' implicitly has type 'any', because its 'set' accessor lacks a type annotation." - }, - Index_signature_of_object_type_implicitly_has_an_any_type: { - code: 7017, - category: 1, - key: "Index signature of object type implicitly has an 'any' type." - }, - Object_literal_s_property_0_implicitly_has_an_1_type: { - code: 7018, - category: 1, - key: "Object literal's property '{0}' implicitly has an '{1}' type." - }, - Rest_parameter_0_implicitly_has_an_any_type: { - code: 7019, - category: 1, - key: "Rest parameter '{0}' implicitly has an 'any[]' type." - }, - Call_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type: { - code: 7020, - category: 1, - key: "Call signature, which lacks return-type annotation, implicitly has an 'any' return type." - }, - _0_implicitly_has_type_any_because_it_is_referenced_directly_or_indirectly_in_its_own_type_annotation: { - code: 7021, - category: 1, - key: "'{0}' implicitly has type 'any' because it is referenced directly or indirectly in its own type annotation." - }, - _0_implicitly_has_type_any_because_it_is_does_not_have_a_type_annotation_and_is_referenced_directly_or_indirectly_in_its_own_initializer: { - code: 7022, - category: 1, - key: "'{0}' implicitly has type 'any' because it is does not have a type annotation and is referenced directly or indirectly in its own initializer." - }, - _0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions: { - code: 7023, - category: 1, - key: "'{0}' implicitly has return type 'any' because it does not have a return type annotation and is referenced directly or indirectly in one of its return expressions." - }, - Function_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions: { - code: 7024, - category: 1, - key: "Function implicitly has return type 'any' because it does not have a return type annotation and is referenced directly or indirectly in one of its return expressions." - }, - You_cannot_rename_this_element: { - code: 8000, - category: 1, - key: "You cannot rename this element." - }, - You_cannot_rename_elements_that_are_defined_in_the_standard_TypeScript_library: { - code: 8001, - category: 1, - key: "You cannot rename elements that are defined in the standard TypeScript library." - }, - yield_expressions_are_not_currently_supported: { - code: 9000, - category: 1, - key: "'yield' expressions are not currently supported." - }, - Generators_are_not_currently_supported: { - code: 9001, - category: 1, - key: "Generators are not currently supported." - }, - The_arguments_object_cannot_be_referenced_in_an_arrow_function_Consider_using_a_standard_function_expression: { - code: 9002, - category: 1, - key: "The 'arguments' object cannot be referenced in an arrow function. Consider using a standard function expression." - } + Unterminated_string_literal: { code: 1002, category: 1, key: "Unterminated string literal." }, + Identifier_expected: { code: 1003, category: 1, key: "Identifier expected." }, + _0_expected: { code: 1005, category: 1, key: "'{0}' expected." }, + A_file_cannot_have_a_reference_to_itself: { code: 1006, category: 1, key: "A file cannot have a reference to itself." }, + Trailing_comma_not_allowed: { code: 1009, category: 1, key: "Trailing comma not allowed." }, + Asterisk_Slash_expected: { code: 1010, category: 1, key: "'*/' expected." }, + Unexpected_token: { code: 1012, category: 1, key: "Unexpected token." }, + A_rest_parameter_must_be_last_in_a_parameter_list: { code: 1014, category: 1, key: "A rest parameter must be last in a parameter list." }, + Parameter_cannot_have_question_mark_and_initializer: { code: 1015, category: 1, key: "Parameter cannot have question mark and initializer." }, + A_required_parameter_cannot_follow_an_optional_parameter: { code: 1016, category: 1, key: "A required parameter cannot follow an optional parameter." }, + An_index_signature_cannot_have_a_rest_parameter: { code: 1017, category: 1, key: "An index signature cannot have a rest parameter." }, + An_index_signature_parameter_cannot_have_an_accessibility_modifier: { code: 1018, category: 1, key: "An index signature parameter cannot have an accessibility modifier." }, + An_index_signature_parameter_cannot_have_a_question_mark: { code: 1019, category: 1, key: "An index signature parameter cannot have a question mark." }, + An_index_signature_parameter_cannot_have_an_initializer: { code: 1020, category: 1, key: "An index signature parameter cannot have an initializer." }, + An_index_signature_must_have_a_type_annotation: { code: 1021, category: 1, key: "An index signature must have a type annotation." }, + An_index_signature_parameter_must_have_a_type_annotation: { code: 1022, category: 1, key: "An index signature parameter must have a type annotation." }, + An_index_signature_parameter_type_must_be_string_or_number: { code: 1023, category: 1, key: "An index signature parameter type must be 'string' or 'number'." }, + A_class_or_interface_declaration_can_only_have_one_extends_clause: { code: 1024, category: 1, key: "A class or interface declaration can only have one 'extends' clause." }, + An_extends_clause_must_precede_an_implements_clause: { code: 1025, category: 1, key: "An 'extends' clause must precede an 'implements' clause." }, + A_class_can_only_extend_a_single_class: { code: 1026, category: 1, key: "A class can only extend a single class." }, + A_class_declaration_can_only_have_one_implements_clause: { code: 1027, category: 1, key: "A class declaration can only have one 'implements' clause." }, + Accessibility_modifier_already_seen: { code: 1028, category: 1, key: "Accessibility modifier already seen." }, + _0_modifier_must_precede_1_modifier: { code: 1029, category: 1, key: "'{0}' modifier must precede '{1}' modifier." }, + _0_modifier_already_seen: { code: 1030, category: 1, key: "'{0}' modifier already seen." }, + _0_modifier_cannot_appear_on_a_class_element: { code: 1031, category: 1, key: "'{0}' modifier cannot appear on a class element." }, + An_interface_declaration_cannot_have_an_implements_clause: { code: 1032, category: 1, key: "An interface declaration cannot have an 'implements' clause." }, + super_must_be_followed_by_an_argument_list_or_member_access: { code: 1034, category: 1, key: "'super' must be followed by an argument list or member access." }, + Only_ambient_modules_can_use_quoted_names: { code: 1035, category: 1, key: "Only ambient modules can use quoted names." }, + Statements_are_not_allowed_in_ambient_contexts: { code: 1036, category: 1, key: "Statements are not allowed in ambient contexts." }, + A_declare_modifier_cannot_be_used_in_an_already_ambient_context: { code: 1038, category: 1, key: "A 'declare' modifier cannot be used in an already ambient context." }, + Initializers_are_not_allowed_in_ambient_contexts: { code: 1039, category: 1, key: "Initializers are not allowed in ambient contexts." }, + _0_modifier_cannot_appear_on_a_module_element: { code: 1044, category: 1, key: "'{0}' modifier cannot appear on a module element." }, + A_declare_modifier_cannot_be_used_with_an_interface_declaration: { code: 1045, category: 1, key: "A 'declare' modifier cannot be used with an interface declaration." }, + A_declare_modifier_is_required_for_a_top_level_declaration_in_a_d_ts_file: { code: 1046, category: 1, key: "A 'declare' modifier is required for a top level declaration in a .d.ts file." }, + A_rest_parameter_cannot_be_optional: { code: 1047, category: 1, key: "A rest parameter cannot be optional." }, + A_rest_parameter_cannot_have_an_initializer: { code: 1048, category: 1, key: "A rest parameter cannot have an initializer." }, + A_set_accessor_must_have_exactly_one_parameter: { code: 1049, category: 1, key: "A 'set' accessor must have exactly one parameter." }, + A_set_accessor_cannot_have_an_optional_parameter: { code: 1051, category: 1, key: "A 'set' accessor cannot have an optional parameter." }, + A_set_accessor_parameter_cannot_have_an_initializer: { code: 1052, category: 1, key: "A 'set' accessor parameter cannot have an initializer." }, + A_set_accessor_cannot_have_rest_parameter: { code: 1053, category: 1, key: "A 'set' accessor cannot have rest parameter." }, + A_get_accessor_cannot_have_parameters: { code: 1054, category: 1, key: "A 'get' accessor cannot have parameters." }, + Accessors_are_only_available_when_targeting_ECMAScript_5_and_higher: { code: 1056, category: 1, key: "Accessors are only available when targeting ECMAScript 5 and higher." }, + Enum_member_must_have_initializer: { code: 1061, category: 1, key: "Enum member must have initializer." }, + An_export_assignment_cannot_be_used_in_an_internal_module: { code: 1063, category: 1, key: "An export assignment cannot be used in an internal module." }, + Ambient_enum_elements_can_only_have_integer_literal_initializers: { code: 1066, category: 1, key: "Ambient enum elements can only have integer literal initializers." }, + Unexpected_token_A_constructor_method_accessor_or_property_was_expected: { code: 1068, category: 1, key: "Unexpected token. A constructor, method, accessor, or property was expected." }, + A_declare_modifier_cannot_be_used_with_an_import_declaration: { code: 1079, category: 1, key: "A 'declare' modifier cannot be used with an import declaration." }, + Invalid_reference_directive_syntax: { code: 1084, category: 1, key: "Invalid 'reference' directive syntax." }, + Octal_literals_are_not_available_when_targeting_ECMAScript_5_and_higher: { code: 1085, category: 1, key: "Octal literals are not available when targeting ECMAScript 5 and higher." }, + An_accessor_cannot_be_declared_in_an_ambient_context: { code: 1086, category: 1, key: "An accessor cannot be declared in an ambient context." }, + _0_modifier_cannot_appear_on_a_constructor_declaration: { code: 1089, category: 1, key: "'{0}' modifier cannot appear on a constructor declaration." }, + _0_modifier_cannot_appear_on_a_parameter: { code: 1090, category: 1, key: "'{0}' modifier cannot appear on a parameter." }, + Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement: { code: 1091, category: 1, key: "Only a single variable declaration is allowed in a 'for...in' statement." }, + Type_parameters_cannot_appear_on_a_constructor_declaration: { code: 1092, category: 1, key: "Type parameters cannot appear on a constructor declaration." }, + Type_annotation_cannot_appear_on_a_constructor_declaration: { code: 1093, category: 1, key: "Type annotation cannot appear on a constructor declaration." }, + An_accessor_cannot_have_type_parameters: { code: 1094, category: 1, key: "An accessor cannot have type parameters." }, + A_set_accessor_cannot_have_a_return_type_annotation: { code: 1095, category: 1, key: "A 'set' accessor cannot have a return type annotation." }, + An_index_signature_must_have_exactly_one_parameter: { code: 1096, category: 1, key: "An index signature must have exactly one parameter." }, + _0_list_cannot_be_empty: { code: 1097, category: 1, key: "'{0}' list cannot be empty." }, + Type_parameter_list_cannot_be_empty: { code: 1098, category: 1, key: "Type parameter list cannot be empty." }, + Type_argument_list_cannot_be_empty: { code: 1099, category: 1, key: "Type argument list cannot be empty." }, + Invalid_use_of_0_in_strict_mode: { code: 1100, category: 1, key: "Invalid use of '{0}' in strict mode." }, + with_statements_are_not_allowed_in_strict_mode: { code: 1101, category: 1, key: "'with' statements are not allowed in strict mode." }, + delete_cannot_be_called_on_an_identifier_in_strict_mode: { code: 1102, category: 1, key: "'delete' cannot be called on an identifier in strict mode." }, + A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement: { code: 1104, category: 1, key: "A 'continue' statement can only be used within an enclosing iteration statement." }, + A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement: { code: 1105, category: 1, key: "A 'break' statement can only be used within an enclosing iteration or switch statement." }, + Jump_target_cannot_cross_function_boundary: { code: 1107, category: 1, key: "Jump target cannot cross function boundary." }, + A_return_statement_can_only_be_used_within_a_function_body: { code: 1108, category: 1, key: "A 'return' statement can only be used within a function body." }, + Expression_expected: { code: 1109, category: 1, key: "Expression expected." }, + Type_expected: { code: 1110, category: 1, key: "Type expected." }, + A_class_member_cannot_be_declared_optional: { code: 1112, category: 1, key: "A class member cannot be declared optional." }, + A_default_clause_cannot_appear_more_than_once_in_a_switch_statement: { code: 1113, category: 1, key: "A 'default' clause cannot appear more than once in a 'switch' statement." }, + Duplicate_label_0: { code: 1114, category: 1, key: "Duplicate label '{0}'" }, + A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement: { code: 1115, category: 1, key: "A 'continue' statement can only jump to a label of an enclosing iteration statement." }, + A_break_statement_can_only_jump_to_a_label_of_an_enclosing_statement: { code: 1116, category: 1, key: "A 'break' statement can only jump to a label of an enclosing statement." }, + An_object_literal_cannot_have_multiple_properties_with_the_same_name_in_strict_mode: { code: 1117, category: 1, key: "An object literal cannot have multiple properties with the same name in strict mode." }, + An_object_literal_cannot_have_multiple_get_Slashset_accessors_with_the_same_name: { code: 1118, category: 1, key: "An object literal cannot have multiple get/set accessors with the same name." }, + An_object_literal_cannot_have_property_and_accessor_with_the_same_name: { code: 1119, category: 1, key: "An object literal cannot have property and accessor with the same name." }, + An_export_assignment_cannot_have_modifiers: { code: 1120, category: 1, key: "An export assignment cannot have modifiers." }, + Octal_literals_are_not_allowed_in_strict_mode: { code: 1121, category: 1, key: "Octal literals are not allowed in strict mode." }, + A_tuple_type_element_list_cannot_be_empty: { code: 1122, category: 1, key: "A tuple type element list cannot be empty." }, + Variable_declaration_list_cannot_be_empty: { code: 1123, category: 1, key: "Variable declaration list cannot be empty." }, + Digit_expected: { code: 1124, category: 1, key: "Digit expected." }, + Hexadecimal_digit_expected: { code: 1125, category: 1, key: "Hexadecimal digit expected." }, + Unexpected_end_of_text: { code: 1126, category: 1, key: "Unexpected end of text." }, + Invalid_character: { code: 1127, category: 1, key: "Invalid character." }, + Declaration_or_statement_expected: { code: 1128, category: 1, key: "Declaration or statement expected." }, + Statement_expected: { code: 1129, category: 1, key: "Statement expected." }, + case_or_default_expected: { code: 1130, category: 1, key: "'case' or 'default' expected." }, + Property_or_signature_expected: { code: 1131, category: 1, key: "Property or signature expected." }, + Enum_member_expected: { code: 1132, category: 1, key: "Enum member expected." }, + Type_reference_expected: { code: 1133, category: 1, key: "Type reference expected." }, + Variable_declaration_expected: { code: 1134, category: 1, key: "Variable declaration expected." }, + Argument_expression_expected: { code: 1135, category: 1, key: "Argument expression expected." }, + Property_assignment_expected: { code: 1136, category: 1, key: "Property assignment expected." }, + Expression_or_comma_expected: { code: 1137, category: 1, key: "Expression or comma expected." }, + Parameter_declaration_expected: { code: 1138, category: 1, key: "Parameter declaration expected." }, + Type_parameter_declaration_expected: { code: 1139, category: 1, key: "Type parameter declaration expected." }, + Type_argument_expected: { code: 1140, category: 1, key: "Type argument expected." }, + String_literal_expected: { code: 1141, category: 1, key: "String literal expected." }, + Line_break_not_permitted_here: { code: 1142, category: 1, key: "Line break not permitted here." }, + or_expected: { code: 1144, category: 1, key: "'{' or ';' expected." }, + Modifiers_not_permitted_on_index_signature_members: { code: 1145, category: 1, key: "Modifiers not permitted on index signature members." }, + Declaration_expected: { code: 1146, category: 1, key: "Declaration expected." }, + Import_declarations_in_an_internal_module_cannot_reference_an_external_module: { code: 1147, category: 1, key: "Import declarations in an internal module cannot reference an external module." }, + Cannot_compile_external_modules_unless_the_module_flag_is_provided: { code: 1148, category: 1, key: "Cannot compile external modules unless the '--module' flag is provided." }, + File_name_0_differs_from_already_included_file_name_1_only_in_casing: { code: 1149, category: 1, key: "File name '{0}' differs from already included file name '{1}' only in casing" }, + new_T_cannot_be_used_to_create_an_array_Use_new_Array_T_instead: { code: 1150, category: 1, key: "'new T[]' cannot be used to create an array. Use 'new Array()' instead." }, + var_let_or_const_expected: { code: 1152, category: 1, key: "'var', 'let' or 'const' expected." }, + let_declarations_are_only_available_when_targeting_ECMAScript_6_and_higher: { code: 1153, category: 1, key: "'let' declarations are only available when targeting ECMAScript 6 and higher." }, + const_declarations_are_only_available_when_targeting_ECMAScript_6_and_higher: { code: 1154, category: 1, key: "'const' declarations are only available when targeting ECMAScript 6 and higher." }, + const_declarations_must_be_initialized: { code: 1155, category: 1, key: "'const' declarations must be initialized" }, + const_declarations_can_only_be_declared_inside_a_block: { code: 1156, category: 1, key: "'const' declarations can only be declared inside a block." }, + let_declarations_can_only_be_declared_inside_a_block: { code: 1157, category: 1, key: "'let' declarations can only be declared inside a block." }, + Unterminated_template_literal: { code: 1160, category: 1, key: "Unterminated template literal." }, + Unterminated_regular_expression_literal: { code: 1161, category: 1, key: "Unterminated regular expression literal." }, + An_object_member_cannot_be_declared_optional: { code: 1162, category: 1, key: "An object member cannot be declared optional." }, + yield_expression_must_be_contained_within_a_generator_declaration: { code: 1163, category: 1, key: "'yield' expression must be contained_within a generator declaration." }, + Computed_property_names_are_not_allowed_in_enums: { code: 1164, category: 1, key: "Computed property names are not allowed in enums." }, + A_computed_property_name_in_an_ambient_context_must_directly_refer_to_a_built_in_symbol: { code: 1165, category: 1, key: "A computed property name in an ambient context must directly refer to a built-in symbol." }, + A_computed_property_name_in_a_class_property_declaration_must_directly_refer_to_a_built_in_symbol: { code: 1166, category: 1, key: "A computed property name in a class property declaration must directly refer to a built-in symbol." }, + Computed_property_names_are_only_available_when_targeting_ECMAScript_6_and_higher: { code: 1167, category: 1, key: "Computed property names are only available when targeting ECMAScript 6 and higher." }, + A_computed_property_name_in_a_method_overload_must_directly_refer_to_a_built_in_symbol: { code: 1168, category: 1, key: "A computed property name in a method overload must directly refer to a built-in symbol." }, + A_computed_property_name_in_an_interface_must_directly_refer_to_a_built_in_symbol: { code: 1169, category: 1, key: "A computed property name in an interface must directly refer to a built-in symbol." }, + A_computed_property_name_in_a_type_literal_must_directly_refer_to_a_built_in_symbol: { code: 1170, category: 1, key: "A computed property name in a type literal must directly refer to a built-in symbol." }, + A_comma_expression_is_not_allowed_in_a_computed_property_name: { code: 1171, category: 1, key: "A comma expression is not allowed in a computed property name." }, + extends_clause_already_seen: { code: 1172, category: 1, key: "'extends' clause already seen." }, + extends_clause_must_precede_implements_clause: { code: 1173, category: 1, key: "'extends' clause must precede 'implements' clause." }, + Classes_can_only_extend_a_single_class: { code: 1174, category: 1, key: "Classes can only extend a single class." }, + implements_clause_already_seen: { code: 1175, category: 1, key: "'implements' clause already seen." }, + Interface_declaration_cannot_have_implements_clause: { code: 1176, category: 1, key: "Interface declaration cannot have 'implements' clause." }, + Binary_digit_expected: { code: 1177, category: 1, key: "Binary digit expected." }, + Octal_digit_expected: { code: 1178, category: 1, key: "Octal digit expected." }, + Unexpected_token_expected: { code: 1179, category: 1, key: "Unexpected token. '{' expected." }, + Property_destructuring_pattern_expected: { code: 1180, category: 1, key: "Property destructuring pattern expected." }, + Array_element_destructuring_pattern_expected: { code: 1181, category: 1, key: "Array element destructuring pattern expected." }, + A_destructuring_declaration_must_have_an_initializer: { code: 1182, category: 1, key: "A destructuring declaration must have an initializer." }, + Destructuring_declarations_are_not_allowed_in_ambient_contexts: { code: 1183, category: 1, key: "Destructuring declarations are not allowed in ambient contexts." }, + An_implementation_cannot_be_declared_in_ambient_contexts: { code: 1184, category: 1, key: "An implementation cannot be declared in ambient contexts." }, + Modifiers_cannot_appear_here: { code: 1184, category: 1, key: "Modifiers cannot appear here." }, + Merge_conflict_marker_encountered: { code: 1185, category: 1, key: "Merge conflict marker encountered." }, + A_rest_element_cannot_have_an_initializer: { code: 1186, category: 1, key: "A rest element cannot have an initializer." }, + A_parameter_property_may_not_be_a_binding_pattern: { code: 1187, category: 1, key: "A parameter property may not be a binding pattern." }, + Only_a_single_variable_declaration_is_allowed_in_a_for_of_statement: { code: 1188, category: 1, key: "Only a single variable declaration is allowed in a 'for...of' statement." }, + The_variable_declaration_of_a_for_in_statement_cannot_have_an_initializer: { code: 1189, category: 1, key: "The variable declaration of a 'for...in' statement cannot have an initializer." }, + The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer: { code: 1190, category: 1, key: "The variable declaration of a 'for...of' statement cannot have an initializer." }, + An_import_declaration_cannot_have_modifiers: { code: 1191, category: 1, key: "An import declaration cannot have modifiers." }, + External_module_0_has_no_default_export_or_export_assignment: { code: 1192, category: 1, key: "External module '{0}' has no default export or export assignment." }, + An_export_declaration_cannot_have_modifiers: { code: 1193, category: 1, key: "An export declaration cannot have modifiers." }, + Export_declarations_are_not_permitted_in_an_internal_module: { code: 1194, category: 1, key: "Export declarations are not permitted in an internal module." }, + Catch_clause_variable_name_must_be_an_identifier: { code: 1195, category: 1, key: "Catch clause variable name must be an identifier." }, + Catch_clause_variable_cannot_have_a_type_annotation: { code: 1196, category: 1, key: "Catch clause variable cannot have a type annotation." }, + Catch_clause_variable_cannot_have_an_initializer: { code: 1197, category: 1, key: "Catch clause variable cannot have an initializer." }, + An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive: { code: 1198, category: 1, key: "An extended Unicode escape value must be between 0x0 and 0x10FFFF inclusive." }, + Unterminated_Unicode_escape_sequence: { code: 1199, category: 1, key: "Unterminated Unicode escape sequence." }, + Duplicate_identifier_0: { code: 2300, category: 1, key: "Duplicate identifier '{0}'." }, + Initializer_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor: { code: 2301, category: 1, key: "Initializer of instance member variable '{0}' cannot reference identifier '{1}' declared in the constructor." }, + Static_members_cannot_reference_class_type_parameters: { code: 2302, category: 1, key: "Static members cannot reference class type parameters." }, + Circular_definition_of_import_alias_0: { code: 2303, category: 1, key: "Circular definition of import alias '{0}'." }, + Cannot_find_name_0: { code: 2304, category: 1, key: "Cannot find name '{0}'." }, + Module_0_has_no_exported_member_1: { code: 2305, category: 1, key: "Module '{0}' has no exported member '{1}'." }, + File_0_is_not_an_external_module: { code: 2306, category: 1, key: "File '{0}' is not an external module." }, + Cannot_find_external_module_0: { code: 2307, category: 1, key: "Cannot find external module '{0}'." }, + A_module_cannot_have_more_than_one_export_assignment: { code: 2308, category: 1, key: "A module cannot have more than one export assignment." }, + An_export_assignment_cannot_be_used_in_a_module_with_other_exported_elements: { code: 2309, category: 1, key: "An export assignment cannot be used in a module with other exported elements." }, + Type_0_recursively_references_itself_as_a_base_type: { code: 2310, category: 1, key: "Type '{0}' recursively references itself as a base type." }, + A_class_may_only_extend_another_class: { code: 2311, category: 1, key: "A class may only extend another class." }, + An_interface_may_only_extend_a_class_or_another_interface: { code: 2312, category: 1, key: "An interface may only extend a class or another interface." }, + Constraint_of_a_type_parameter_cannot_reference_any_type_parameter_from_the_same_type_parameter_list: { code: 2313, category: 1, key: "Constraint of a type parameter cannot reference any type parameter from the same type parameter list." }, + Generic_type_0_requires_1_type_argument_s: { code: 2314, category: 1, key: "Generic type '{0}' requires {1} type argument(s)." }, + Type_0_is_not_generic: { code: 2315, category: 1, key: "Type '{0}' is not generic." }, + Global_type_0_must_be_a_class_or_interface_type: { code: 2316, category: 1, key: "Global type '{0}' must be a class or interface type." }, + Global_type_0_must_have_1_type_parameter_s: { code: 2317, category: 1, key: "Global type '{0}' must have {1} type parameter(s)." }, + Cannot_find_global_type_0: { code: 2318, category: 1, key: "Cannot find global type '{0}'." }, + Named_property_0_of_types_1_and_2_are_not_identical: { code: 2319, category: 1, key: "Named property '{0}' of types '{1}' and '{2}' are not identical." }, + Interface_0_cannot_simultaneously_extend_types_1_and_2: { code: 2320, category: 1, key: "Interface '{0}' cannot simultaneously extend types '{1}' and '{2}'." }, + Excessive_stack_depth_comparing_types_0_and_1: { code: 2321, category: 1, key: "Excessive stack depth comparing types '{0}' and '{1}'." }, + Type_0_is_not_assignable_to_type_1: { code: 2322, category: 1, key: "Type '{0}' is not assignable to type '{1}'." }, + Property_0_is_missing_in_type_1: { code: 2324, category: 1, key: "Property '{0}' is missing in type '{1}'." }, + Property_0_is_private_in_type_1_but_not_in_type_2: { code: 2325, category: 1, key: "Property '{0}' is private in type '{1}' but not in type '{2}'." }, + Types_of_property_0_are_incompatible: { code: 2326, category: 1, key: "Types of property '{0}' are incompatible." }, + Property_0_is_optional_in_type_1_but_required_in_type_2: { code: 2327, category: 1, key: "Property '{0}' is optional in type '{1}' but required in type '{2}'." }, + Types_of_parameters_0_and_1_are_incompatible: { code: 2328, category: 1, key: "Types of parameters '{0}' and '{1}' are incompatible." }, + Index_signature_is_missing_in_type_0: { code: 2329, category: 1, key: "Index signature is missing in type '{0}'." }, + Index_signatures_are_incompatible: { code: 2330, category: 1, key: "Index signatures are incompatible." }, + this_cannot_be_referenced_in_a_module_body: { code: 2331, category: 1, key: "'this' cannot be referenced in a module body." }, + this_cannot_be_referenced_in_current_location: { code: 2332, category: 1, key: "'this' cannot be referenced in current location." }, + this_cannot_be_referenced_in_constructor_arguments: { code: 2333, category: 1, key: "'this' cannot be referenced in constructor arguments." }, + this_cannot_be_referenced_in_a_static_property_initializer: { code: 2334, category: 1, key: "'this' cannot be referenced in a static property initializer." }, + super_can_only_be_referenced_in_a_derived_class: { code: 2335, category: 1, key: "'super' can only be referenced in a derived class." }, + super_cannot_be_referenced_in_constructor_arguments: { code: 2336, category: 1, key: "'super' cannot be referenced in constructor arguments." }, + Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors: { code: 2337, category: 1, key: "Super calls are not permitted outside constructors or in nested functions inside constructors" }, + super_property_access_is_permitted_only_in_a_constructor_member_function_or_member_accessor_of_a_derived_class: { code: 2338, category: 1, key: "'super' property access is permitted only in a constructor, member function, or member accessor of a derived class" }, + Property_0_does_not_exist_on_type_1: { code: 2339, category: 1, key: "Property '{0}' does not exist on type '{1}'." }, + Only_public_and_protected_methods_of_the_base_class_are_accessible_via_the_super_keyword: { code: 2340, category: 1, key: "Only public and protected methods of the base class are accessible via the 'super' keyword" }, + Property_0_is_private_and_only_accessible_within_class_1: { code: 2341, category: 1, key: "Property '{0}' is private and only accessible within class '{1}'." }, + An_index_expression_argument_must_be_of_type_string_number_symbol_or_any: { code: 2342, category: 1, key: "An index expression argument must be of type 'string', 'number', 'symbol, or 'any'." }, + Type_0_does_not_satisfy_the_constraint_1: { code: 2344, category: 1, key: "Type '{0}' does not satisfy the constraint '{1}'." }, + Argument_of_type_0_is_not_assignable_to_parameter_of_type_1: { code: 2345, category: 1, key: "Argument of type '{0}' is not assignable to parameter of type '{1}'." }, + Supplied_parameters_do_not_match_any_signature_of_call_target: { code: 2346, category: 1, key: "Supplied parameters do not match any signature of call target." }, + Untyped_function_calls_may_not_accept_type_arguments: { code: 2347, category: 1, key: "Untyped function calls may not accept type arguments." }, + Value_of_type_0_is_not_callable_Did_you_mean_to_include_new: { code: 2348, category: 1, key: "Value of type '{0}' is not callable. Did you mean to include 'new'?" }, + Cannot_invoke_an_expression_whose_type_lacks_a_call_signature: { code: 2349, category: 1, key: "Cannot invoke an expression whose type lacks a call signature." }, + Only_a_void_function_can_be_called_with_the_new_keyword: { code: 2350, category: 1, key: "Only a void function can be called with the 'new' keyword." }, + Cannot_use_new_with_an_expression_whose_type_lacks_a_call_or_construct_signature: { code: 2351, category: 1, key: "Cannot use 'new' with an expression whose type lacks a call or construct signature." }, + Neither_type_0_nor_type_1_is_assignable_to_the_other: { code: 2352, category: 1, key: "Neither type '{0}' nor type '{1}' is assignable to the other." }, + No_best_common_type_exists_among_return_expressions: { code: 2354, category: 1, key: "No best common type exists among return expressions." }, + A_function_whose_declared_type_is_neither_void_nor_any_must_return_a_value_or_consist_of_a_single_throw_statement: { code: 2355, category: 1, key: "A function whose declared type is neither 'void' nor 'any' must return a value or consist of a single 'throw' statement." }, + An_arithmetic_operand_must_be_of_type_any_number_or_an_enum_type: { code: 2356, category: 1, key: "An arithmetic operand must be of type 'any', 'number' or an enum type." }, + The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_property_or_indexer: { code: 2357, category: 1, key: "The operand of an increment or decrement operator must be a variable, property or indexer." }, + The_left_hand_side_of_an_instanceof_expression_must_be_of_type_any_an_object_type_or_a_type_parameter: { code: 2358, category: 1, key: "The left-hand side of an 'instanceof' expression must be of type 'any', an object type or a type parameter." }, + The_right_hand_side_of_an_instanceof_expression_must_be_of_type_any_or_of_a_type_assignable_to_the_Function_interface_type: { code: 2359, category: 1, key: "The right-hand side of an 'instanceof' expression must be of type 'any' or of a type assignable to the 'Function' interface type." }, + The_left_hand_side_of_an_in_expression_must_be_of_type_any_string_number_or_symbol: { code: 2360, category: 1, key: "The left-hand side of an 'in' expression must be of type 'any', 'string', 'number', or 'symbol'." }, + The_right_hand_side_of_an_in_expression_must_be_of_type_any_an_object_type_or_a_type_parameter: { code: 2361, category: 1, key: "The right-hand side of an 'in' expression must be of type 'any', an object type or a type parameter" }, + The_left_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_or_an_enum_type: { code: 2362, category: 1, key: "The left-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type." }, + The_right_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_or_an_enum_type: { code: 2363, category: 1, key: "The right-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type." }, + Invalid_left_hand_side_of_assignment_expression: { code: 2364, category: 1, key: "Invalid left-hand side of assignment expression." }, + Operator_0_cannot_be_applied_to_types_1_and_2: { code: 2365, category: 1, key: "Operator '{0}' cannot be applied to types '{1}' and '{2}'." }, + Type_parameter_name_cannot_be_0: { code: 2368, category: 1, key: "Type parameter name cannot be '{0}'" }, + A_parameter_property_is_only_allowed_in_a_constructor_implementation: { code: 2369, category: 1, key: "A parameter property is only allowed in a constructor implementation." }, + A_rest_parameter_must_be_of_an_array_type: { code: 2370, category: 1, key: "A rest parameter must be of an array type." }, + A_parameter_initializer_is_only_allowed_in_a_function_or_constructor_implementation: { code: 2371, category: 1, key: "A parameter initializer is only allowed in a function or constructor implementation." }, + Parameter_0_cannot_be_referenced_in_its_initializer: { code: 2372, category: 1, key: "Parameter '{0}' cannot be referenced in its initializer." }, + Initializer_of_parameter_0_cannot_reference_identifier_1_declared_after_it: { code: 2373, category: 1, key: "Initializer of parameter '{0}' cannot reference identifier '{1}' declared after it." }, + Duplicate_string_index_signature: { code: 2374, category: 1, key: "Duplicate string index signature." }, + Duplicate_number_index_signature: { code: 2375, category: 1, key: "Duplicate number index signature." }, + A_super_call_must_be_the_first_statement_in_the_constructor_when_a_class_contains_initialized_properties_or_has_parameter_properties: { code: 2376, category: 1, key: "A 'super' call must be the first statement in the constructor when a class contains initialized properties or has parameter properties." }, + Constructors_for_derived_classes_must_contain_a_super_call: { code: 2377, category: 1, key: "Constructors for derived classes must contain a 'super' call." }, + A_get_accessor_must_return_a_value_or_consist_of_a_single_throw_statement: { code: 2378, category: 1, key: "A 'get' accessor must return a value or consist of a single 'throw' statement." }, + Getter_and_setter_accessors_do_not_agree_in_visibility: { code: 2379, category: 1, key: "Getter and setter accessors do not agree in visibility." }, + get_and_set_accessor_must_have_the_same_type: { code: 2380, category: 1, key: "'get' and 'set' accessor must have the same type." }, + A_signature_with_an_implementation_cannot_use_a_string_literal_type: { code: 2381, category: 1, key: "A signature with an implementation cannot use a string literal type." }, + Specialized_overload_signature_is_not_assignable_to_any_non_specialized_signature: { code: 2382, category: 1, key: "Specialized overload signature is not assignable to any non-specialized signature." }, + Overload_signatures_must_all_be_exported_or_not_exported: { code: 2383, category: 1, key: "Overload signatures must all be exported or not exported." }, + Overload_signatures_must_all_be_ambient_or_non_ambient: { code: 2384, category: 1, key: "Overload signatures must all be ambient or non-ambient." }, + Overload_signatures_must_all_be_public_private_or_protected: { code: 2385, category: 1, key: "Overload signatures must all be public, private or protected." }, + Overload_signatures_must_all_be_optional_or_required: { code: 2386, category: 1, key: "Overload signatures must all be optional or required." }, + Function_overload_must_be_static: { code: 2387, category: 1, key: "Function overload must be static." }, + Function_overload_must_not_be_static: { code: 2388, category: 1, key: "Function overload must not be static." }, + Function_implementation_name_must_be_0: { code: 2389, category: 1, key: "Function implementation name must be '{0}'." }, + Constructor_implementation_is_missing: { code: 2390, category: 1, key: "Constructor implementation is missing." }, + Function_implementation_is_missing_or_not_immediately_following_the_declaration: { code: 2391, category: 1, key: "Function implementation is missing or not immediately following the declaration." }, + Multiple_constructor_implementations_are_not_allowed: { code: 2392, category: 1, key: "Multiple constructor implementations are not allowed." }, + Duplicate_function_implementation: { code: 2393, category: 1, key: "Duplicate function implementation." }, + Overload_signature_is_not_compatible_with_function_implementation: { code: 2394, category: 1, key: "Overload signature is not compatible with function implementation." }, + Individual_declarations_in_merged_declaration_0_must_be_all_exported_or_all_local: { code: 2395, category: 1, key: "Individual declarations in merged declaration {0} must be all exported or all local." }, + Duplicate_identifier_arguments_Compiler_uses_arguments_to_initialize_rest_parameters: { code: 2396, category: 1, key: "Duplicate identifier 'arguments'. Compiler uses 'arguments' to initialize rest parameters." }, + Duplicate_identifier_this_Compiler_uses_variable_declaration_this_to_capture_this_reference: { code: 2399, category: 1, key: "Duplicate identifier '_this'. Compiler uses variable declaration '_this' to capture 'this' reference." }, + Expression_resolves_to_variable_declaration_this_that_compiler_uses_to_capture_this_reference: { code: 2400, category: 1, key: "Expression resolves to variable declaration '_this' that compiler uses to capture 'this' reference." }, + Duplicate_identifier_super_Compiler_uses_super_to_capture_base_class_reference: { code: 2401, category: 1, key: "Duplicate identifier '_super'. Compiler uses '_super' to capture base class reference." }, + Expression_resolves_to_super_that_compiler_uses_to_capture_base_class_reference: { code: 2402, category: 1, key: "Expression resolves to '_super' that compiler uses to capture base class reference." }, + Subsequent_variable_declarations_must_have_the_same_type_Variable_0_must_be_of_type_1_but_here_has_type_2: { code: 2403, category: 1, key: "Subsequent variable declarations must have the same type. Variable '{0}' must be of type '{1}', but here has type '{2}'." }, + The_left_hand_side_of_a_for_in_statement_cannot_use_a_type_annotation: { code: 2404, category: 1, key: "The left-hand side of a 'for...in' statement cannot use a type annotation." }, + The_left_hand_side_of_a_for_in_statement_must_be_of_type_string_or_any: { code: 2405, category: 1, key: "The left-hand side of a 'for...in' statement must be of type 'string' or 'any'." }, + Invalid_left_hand_side_in_for_in_statement: { code: 2406, category: 1, key: "Invalid left-hand side in 'for...in' statement." }, + The_right_hand_side_of_a_for_in_statement_must_be_of_type_any_an_object_type_or_a_type_parameter: { code: 2407, category: 1, key: "The right-hand side of a 'for...in' statement must be of type 'any', an object type or a type parameter." }, + Setters_cannot_return_a_value: { code: 2408, category: 1, key: "Setters cannot return a value." }, + Return_type_of_constructor_signature_must_be_assignable_to_the_instance_type_of_the_class: { code: 2409, category: 1, key: "Return type of constructor signature must be assignable to the instance type of the class" }, + All_symbols_within_a_with_block_will_be_resolved_to_any: { code: 2410, category: 1, key: "All symbols within a 'with' block will be resolved to 'any'." }, + Property_0_of_type_1_is_not_assignable_to_string_index_type_2: { code: 2411, category: 1, key: "Property '{0}' of type '{1}' is not assignable to string index type '{2}'." }, + Property_0_of_type_1_is_not_assignable_to_numeric_index_type_2: { code: 2412, category: 1, key: "Property '{0}' of type '{1}' is not assignable to numeric index type '{2}'." }, + Numeric_index_type_0_is_not_assignable_to_string_index_type_1: { code: 2413, category: 1, key: "Numeric index type '{0}' is not assignable to string index type '{1}'." }, + Class_name_cannot_be_0: { code: 2414, category: 1, key: "Class name cannot be '{0}'" }, + Class_0_incorrectly_extends_base_class_1: { code: 2415, category: 1, key: "Class '{0}' incorrectly extends base class '{1}'." }, + Class_static_side_0_incorrectly_extends_base_class_static_side_1: { code: 2417, category: 1, key: "Class static side '{0}' incorrectly extends base class static side '{1}'." }, + Type_name_0_in_extends_clause_does_not_reference_constructor_function_for_0: { code: 2419, category: 1, key: "Type name '{0}' in extends clause does not reference constructor function for '{0}'." }, + Class_0_incorrectly_implements_interface_1: { code: 2420, category: 1, key: "Class '{0}' incorrectly implements interface '{1}'." }, + A_class_may_only_implement_another_class_or_interface: { code: 2422, category: 1, key: "A class may only implement another class or interface." }, + Class_0_defines_instance_member_function_1_but_extended_class_2_defines_it_as_instance_member_accessor: { code: 2423, category: 1, key: "Class '{0}' defines instance member function '{1}', but extended class '{2}' defines it as instance member accessor." }, + Class_0_defines_instance_member_function_1_but_extended_class_2_defines_it_as_instance_member_property: { code: 2424, category: 1, key: "Class '{0}' defines instance member function '{1}', but extended class '{2}' defines it as instance member property." }, + Class_0_defines_instance_member_property_1_but_extended_class_2_defines_it_as_instance_member_function: { code: 2425, category: 1, key: "Class '{0}' defines instance member property '{1}', but extended class '{2}' defines it as instance member function." }, + Class_0_defines_instance_member_accessor_1_but_extended_class_2_defines_it_as_instance_member_function: { code: 2426, category: 1, key: "Class '{0}' defines instance member accessor '{1}', but extended class '{2}' defines it as instance member function." }, + Interface_name_cannot_be_0: { code: 2427, category: 1, key: "Interface name cannot be '{0}'" }, + All_declarations_of_an_interface_must_have_identical_type_parameters: { code: 2428, category: 1, key: "All declarations of an interface must have identical type parameters." }, + Interface_0_incorrectly_extends_interface_1: { code: 2430, category: 1, key: "Interface '{0}' incorrectly extends interface '{1}'." }, + Enum_name_cannot_be_0: { code: 2431, category: 1, key: "Enum name cannot be '{0}'" }, + In_an_enum_with_multiple_declarations_only_one_declaration_can_omit_an_initializer_for_its_first_enum_element: { code: 2432, category: 1, key: "In an enum with multiple declarations, only one declaration can omit an initializer for its first enum element." }, + A_module_declaration_cannot_be_in_a_different_file_from_a_class_or_function_with_which_it_is_merged: { code: 2433, category: 1, key: "A module declaration cannot be in a different file from a class or function with which it is merged" }, + A_module_declaration_cannot_be_located_prior_to_a_class_or_function_with_which_it_is_merged: { code: 2434, category: 1, key: "A module declaration cannot be located prior to a class or function with which it is merged" }, + Ambient_external_modules_cannot_be_nested_in_other_modules: { code: 2435, category: 1, key: "Ambient external modules cannot be nested in other modules." }, + Ambient_external_module_declaration_cannot_specify_relative_module_name: { code: 2436, category: 1, key: "Ambient external module declaration cannot specify relative module name." }, + Module_0_is_hidden_by_a_local_declaration_with_the_same_name: { code: 2437, category: 1, key: "Module '{0}' is hidden by a local declaration with the same name" }, + Import_name_cannot_be_0: { code: 2438, category: 1, key: "Import name cannot be '{0}'" }, + Import_or_export_declaration_in_an_ambient_external_module_declaration_cannot_reference_external_module_through_relative_external_module_name: { code: 2439, category: 1, key: "Import or export declaration in an ambient external module declaration cannot reference external module through relative external module name." }, + Import_declaration_conflicts_with_local_declaration_of_0: { code: 2440, category: 1, key: "Import declaration conflicts with local declaration of '{0}'" }, + Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_an_external_module: { code: 2441, category: 1, key: "Duplicate identifier '{0}'. Compiler reserves name '{1}' in top level scope of an external module." }, + Types_have_separate_declarations_of_a_private_property_0: { code: 2442, category: 1, key: "Types have separate declarations of a private property '{0}'." }, + Property_0_is_protected_but_type_1_is_not_a_class_derived_from_2: { code: 2443, category: 1, key: "Property '{0}' is protected but type '{1}' is not a class derived from '{2}'." }, + Property_0_is_protected_in_type_1_but_public_in_type_2: { code: 2444, category: 1, key: "Property '{0}' is protected in type '{1}' but public in type '{2}'." }, + Property_0_is_protected_and_only_accessible_within_class_1_and_its_subclasses: { code: 2445, category: 1, key: "Property '{0}' is protected and only accessible within class '{1}' and its subclasses." }, + Property_0_is_protected_and_only_accessible_through_an_instance_of_class_1: { code: 2446, category: 1, key: "Property '{0}' is protected and only accessible through an instance of class '{1}'." }, + The_0_operator_is_not_allowed_for_boolean_types_Consider_using_1_instead: { code: 2447, category: 1, key: "The '{0}' operator is not allowed for boolean types. Consider using '{1}' instead." }, + Block_scoped_variable_0_used_before_its_declaration: { code: 2448, category: 1, key: "Block-scoped variable '{0}' used before its declaration." }, + The_operand_of_an_increment_or_decrement_operator_cannot_be_a_constant: { code: 2449, category: 1, key: "The operand of an increment or decrement operator cannot be a constant." }, + Left_hand_side_of_assignment_expression_cannot_be_a_constant: { code: 2450, category: 1, key: "Left-hand side of assignment expression cannot be a constant." }, + Cannot_redeclare_block_scoped_variable_0: { code: 2451, category: 1, key: "Cannot redeclare block-scoped variable '{0}'." }, + An_enum_member_cannot_have_a_numeric_name: { code: 2452, category: 1, key: "An enum member cannot have a numeric name." }, + The_type_argument_for_type_parameter_0_cannot_be_inferred_from_the_usage_Consider_specifying_the_type_arguments_explicitly: { code: 2453, category: 1, key: "The type argument for type parameter '{0}' cannot be inferred from the usage. Consider specifying the type arguments explicitly." }, + Type_argument_candidate_1_is_not_a_valid_type_argument_because_it_is_not_a_supertype_of_candidate_0: { code: 2455, category: 1, key: "Type argument candidate '{1}' is not a valid type argument because it is not a supertype of candidate '{0}'." }, + Type_alias_0_circularly_references_itself: { code: 2456, category: 1, key: "Type alias '{0}' circularly references itself." }, + Type_alias_name_cannot_be_0: { code: 2457, category: 1, key: "Type alias name cannot be '{0}'" }, + An_AMD_module_cannot_have_multiple_name_assignments: { code: 2458, category: 1, key: "An AMD module cannot have multiple name assignments." }, + Type_0_has_no_property_1_and_no_string_index_signature: { code: 2459, category: 1, key: "Type '{0}' has no property '{1}' and no string index signature." }, + Type_0_has_no_property_1: { code: 2460, category: 1, key: "Type '{0}' has no property '{1}'." }, + Type_0_is_not_an_array_type: { code: 2461, category: 1, key: "Type '{0}' is not an array type." }, + A_rest_element_must_be_last_in_an_array_destructuring_pattern: { code: 2462, category: 1, key: "A rest element must be last in an array destructuring pattern" }, + A_binding_pattern_parameter_cannot_be_optional_in_an_implementation_signature: { code: 2463, category: 1, key: "A binding pattern parameter cannot be optional in an implementation signature." }, + A_computed_property_name_must_be_of_type_string_number_symbol_or_any: { code: 2464, category: 1, key: "A computed property name must be of type 'string', 'number', 'symbol', or 'any'." }, + this_cannot_be_referenced_in_a_computed_property_name: { code: 2465, category: 1, key: "'this' cannot be referenced in a computed property name." }, + super_cannot_be_referenced_in_a_computed_property_name: { code: 2466, category: 1, key: "'super' cannot be referenced in a computed property name." }, + A_computed_property_name_cannot_reference_a_type_parameter_from_its_containing_type: { code: 2467, category: 1, key: "A computed property name cannot reference a type parameter from its containing type." }, + Cannot_find_global_value_0: { code: 2468, category: 1, key: "Cannot find global value '{0}'." }, + The_0_operator_cannot_be_applied_to_type_symbol: { code: 2469, category: 1, key: "The '{0}' operator cannot be applied to type 'symbol'." }, + Symbol_reference_does_not_refer_to_the_global_Symbol_constructor_object: { code: 2470, category: 1, key: "'Symbol' reference does not refer to the global Symbol constructor object." }, + A_computed_property_name_of_the_form_0_must_be_of_type_symbol: { code: 2471, category: 1, key: "A computed property name of the form '{0}' must be of type 'symbol'." }, + Spread_operator_in_new_expressions_is_only_available_when_targeting_ECMAScript_6_and_higher: { code: 2472, category: 1, key: "Spread operator in 'new' expressions is only available when targeting ECMAScript 6 and higher." }, + Enum_declarations_must_all_be_const_or_non_const: { code: 2473, category: 1, key: "Enum declarations must all be const or non-const." }, + In_const_enum_declarations_member_initializer_must_be_constant_expression: { code: 2474, category: 1, key: "In 'const' enum declarations member initializer must be constant expression." }, + const_enums_can_only_be_used_in_property_or_index_access_expressions_or_the_right_hand_side_of_an_import_declaration_or_export_assignment: { code: 2475, category: 1, key: "'const' enums can only be used in property or index access expressions or the right hand side of an import declaration or export assignment." }, + A_const_enum_member_can_only_be_accessed_using_a_string_literal: { code: 2476, category: 1, key: "A const enum member can only be accessed using a string literal." }, + const_enum_member_initializer_was_evaluated_to_a_non_finite_value: { code: 2477, category: 1, key: "'const' enum member initializer was evaluated to a non-finite value." }, + const_enum_member_initializer_was_evaluated_to_disallowed_value_NaN: { code: 2478, category: 1, key: "'const' enum member initializer was evaluated to disallowed value 'NaN'." }, + Property_0_does_not_exist_on_const_enum_1: { code: 2479, category: 1, key: "Property '{0}' does not exist on 'const' enum '{1}'." }, + let_is_not_allowed_to_be_used_as_a_name_in_let_or_const_declarations: { code: 2480, category: 1, key: "'let' is not allowed to be used as a name in 'let' or 'const' declarations." }, + Cannot_initialize_outer_scoped_variable_0_in_the_same_scope_as_block_scoped_declaration_1: { code: 2481, category: 1, key: "Cannot initialize outer scoped variable '{0}' in the same scope as block scoped declaration '{1}'." }, + The_left_hand_side_of_a_for_of_statement_cannot_use_a_type_annotation: { code: 2483, category: 1, key: "The left-hand side of a 'for...of' statement cannot use a type annotation." }, + Export_declaration_conflicts_with_exported_declaration_of_0: { code: 2484, category: 1, key: "Export declaration conflicts with exported declaration of '{0}'" }, + The_left_hand_side_of_a_for_of_statement_cannot_be_a_previously_defined_constant: { code: 2485, category: 1, key: "The left-hand side of a 'for...of' statement cannot be a previously defined constant." }, + The_left_hand_side_of_a_for_in_statement_cannot_be_a_previously_defined_constant: { code: 2486, category: 1, key: "The left-hand side of a 'for...in' statement cannot be a previously defined constant." }, + Invalid_left_hand_side_in_for_of_statement: { code: 2487, category: 1, key: "Invalid left-hand side in 'for...of' statement." }, + The_right_hand_side_of_a_for_of_statement_must_have_a_Symbol_iterator_method_that_returns_an_iterator: { code: 2488, category: 1, key: "The right-hand side of a 'for...of' statement must have a '[Symbol.iterator]()' method that returns an iterator." }, + The_iterator_returned_by_the_right_hand_side_of_a_for_of_statement_must_have_a_next_method: { code: 2489, category: 1, key: "The iterator returned by the right-hand side of a 'for...of' statement must have a 'next()' method." }, + The_type_returned_by_the_next_method_of_an_iterator_must_have_a_value_property: { code: 2490, category: 1, key: "The type returned by the 'next()' method of an iterator must have a 'value' property." }, + The_left_hand_side_of_a_for_in_statement_cannot_be_a_destructuring_pattern: { code: 2491, category: 1, key: "The left-hand side of a 'for...in' statement cannot be a destructuring pattern." }, + Cannot_redeclare_identifier_0_in_catch_clause: { code: 2492, category: 1, key: "Cannot redeclare identifier '{0}' in catch clause" }, + Tuple_type_0_with_length_1_cannot_be_assigned_to_tuple_with_length_2: { code: 2493, category: 1, key: "Tuple type '{0}' with length '{1}' cannot be assigned to tuple with length '{2}'." }, + Using_a_string_in_a_for_of_statement_is_only_supported_in_ECMAScript_5_and_higher: { code: 2494, category: 1, key: "Using a string in a 'for...of' statement is only supported in ECMAScript 5 and higher." }, + Type_0_is_not_an_array_type_or_a_string_type: { code: 2461, category: 1, key: "Type '{0}' is not an array type or a string type." }, + Import_declaration_0_is_using_private_name_1: { code: 4000, category: 1, key: "Import declaration '{0}' is using private name '{1}'." }, + Type_parameter_0_of_exported_class_has_or_is_using_private_name_1: { code: 4002, category: 1, key: "Type parameter '{0}' of exported class has or is using private name '{1}'." }, + Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1: { code: 4004, category: 1, key: "Type parameter '{0}' of exported interface has or is using private name '{1}'." }, + Type_parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1: { code: 4006, category: 1, key: "Type parameter '{0}' of constructor signature from exported interface has or is using private name '{1}'." }, + Type_parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1: { code: 4008, category: 1, key: "Type parameter '{0}' of call signature from exported interface has or is using private name '{1}'." }, + Type_parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1: { code: 4010, category: 1, key: "Type parameter '{0}' of public static method from exported class has or is using private name '{1}'." }, + Type_parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1: { code: 4012, category: 1, key: "Type parameter '{0}' of public method from exported class has or is using private name '{1}'." }, + Type_parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1: { code: 4014, category: 1, key: "Type parameter '{0}' of method from exported interface has or is using private name '{1}'." }, + Type_parameter_0_of_exported_function_has_or_is_using_private_name_1: { code: 4016, category: 1, key: "Type parameter '{0}' of exported function has or is using private name '{1}'." }, + Implements_clause_of_exported_class_0_has_or_is_using_private_name_1: { code: 4019, category: 1, key: "Implements clause of exported class '{0}' has or is using private name '{1}'." }, + Extends_clause_of_exported_class_0_has_or_is_using_private_name_1: { code: 4020, category: 1, key: "Extends clause of exported class '{0}' has or is using private name '{1}'." }, + Extends_clause_of_exported_interface_0_has_or_is_using_private_name_1: { code: 4022, category: 1, key: "Extends clause of exported interface '{0}' has or is using private name '{1}'." }, + Exported_variable_0_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: { code: 4023, category: 1, key: "Exported variable '{0}' has or is using name '{1}' from external module {2} but cannot be named." }, + Exported_variable_0_has_or_is_using_name_1_from_private_module_2: { code: 4024, category: 1, key: "Exported variable '{0}' has or is using name '{1}' from private module '{2}'." }, + Exported_variable_0_has_or_is_using_private_name_1: { code: 4025, category: 1, key: "Exported variable '{0}' has or is using private name '{1}'." }, + Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: { code: 4026, category: 1, key: "Public static property '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named." }, + Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2: { code: 4027, category: 1, key: "Public static property '{0}' of exported class has or is using name '{1}' from private module '{2}'." }, + Public_static_property_0_of_exported_class_has_or_is_using_private_name_1: { code: 4028, category: 1, key: "Public static property '{0}' of exported class has or is using private name '{1}'." }, + Public_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: { code: 4029, category: 1, key: "Public property '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named." }, + Public_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2: { code: 4030, category: 1, key: "Public property '{0}' of exported class has or is using name '{1}' from private module '{2}'." }, + Public_property_0_of_exported_class_has_or_is_using_private_name_1: { code: 4031, category: 1, key: "Public property '{0}' of exported class has or is using private name '{1}'." }, + Property_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2: { code: 4032, category: 1, key: "Property '{0}' of exported interface has or is using name '{1}' from private module '{2}'." }, + Property_0_of_exported_interface_has_or_is_using_private_name_1: { code: 4033, category: 1, key: "Property '{0}' of exported interface has or is using private name '{1}'." }, + Parameter_0_of_public_static_property_setter_from_exported_class_has_or_is_using_name_1_from_private_module_2: { code: 4034, category: 1, key: "Parameter '{0}' of public static property setter from exported class has or is using name '{1}' from private module '{2}'." }, + Parameter_0_of_public_static_property_setter_from_exported_class_has_or_is_using_private_name_1: { code: 4035, category: 1, key: "Parameter '{0}' of public static property setter from exported class has or is using private name '{1}'." }, + Parameter_0_of_public_property_setter_from_exported_class_has_or_is_using_name_1_from_private_module_2: { code: 4036, category: 1, key: "Parameter '{0}' of public property setter from exported class has or is using name '{1}' from private module '{2}'." }, + Parameter_0_of_public_property_setter_from_exported_class_has_or_is_using_private_name_1: { code: 4037, category: 1, key: "Parameter '{0}' of public property setter from exported class has or is using private name '{1}'." }, + Return_type_of_public_static_property_getter_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named: { code: 4038, category: 1, key: "Return type of public static property getter from exported class has or is using name '{0}' from external module {1} but cannot be named." }, + Return_type_of_public_static_property_getter_from_exported_class_has_or_is_using_name_0_from_private_module_1: { code: 4039, category: 1, key: "Return type of public static property getter from exported class has or is using name '{0}' from private module '{1}'." }, + Return_type_of_public_static_property_getter_from_exported_class_has_or_is_using_private_name_0: { code: 4040, category: 1, key: "Return type of public static property getter from exported class has or is using private name '{0}'." }, + Return_type_of_public_property_getter_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named: { code: 4041, category: 1, key: "Return type of public property getter from exported class has or is using name '{0}' from external module {1} but cannot be named." }, + Return_type_of_public_property_getter_from_exported_class_has_or_is_using_name_0_from_private_module_1: { code: 4042, category: 1, key: "Return type of public property getter from exported class has or is using name '{0}' from private module '{1}'." }, + Return_type_of_public_property_getter_from_exported_class_has_or_is_using_private_name_0: { code: 4043, category: 1, key: "Return type of public property getter from exported class has or is using private name '{0}'." }, + Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1: { code: 4044, category: 1, key: "Return type of constructor signature from exported interface has or is using name '{0}' from private module '{1}'." }, + Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_0: { code: 4045, category: 1, key: "Return type of constructor signature from exported interface has or is using private name '{0}'." }, + Return_type_of_call_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1: { code: 4046, category: 1, key: "Return type of call signature from exported interface has or is using name '{0}' from private module '{1}'." }, + Return_type_of_call_signature_from_exported_interface_has_or_is_using_private_name_0: { code: 4047, category: 1, key: "Return type of call signature from exported interface has or is using private name '{0}'." }, + Return_type_of_index_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1: { code: 4048, category: 1, key: "Return type of index signature from exported interface has or is using name '{0}' from private module '{1}'." }, + Return_type_of_index_signature_from_exported_interface_has_or_is_using_private_name_0: { code: 4049, category: 1, key: "Return type of index signature from exported interface has or is using private name '{0}'." }, + Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named: { code: 4050, category: 1, key: "Return type of public static method from exported class has or is using name '{0}' from external module {1} but cannot be named." }, + Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_private_module_1: { code: 4051, category: 1, key: "Return type of public static method from exported class has or is using name '{0}' from private module '{1}'." }, + Return_type_of_public_static_method_from_exported_class_has_or_is_using_private_name_0: { code: 4052, category: 1, key: "Return type of public static method from exported class has or is using private name '{0}'." }, + Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named: { code: 4053, category: 1, key: "Return type of public method from exported class has or is using name '{0}' from external module {1} but cannot be named." }, + Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_private_module_1: { code: 4054, category: 1, key: "Return type of public method from exported class has or is using name '{0}' from private module '{1}'." }, + Return_type_of_public_method_from_exported_class_has_or_is_using_private_name_0: { code: 4055, category: 1, key: "Return type of public method from exported class has or is using private name '{0}'." }, + Return_type_of_method_from_exported_interface_has_or_is_using_name_0_from_private_module_1: { code: 4056, category: 1, key: "Return type of method from exported interface has or is using name '{0}' from private module '{1}'." }, + Return_type_of_method_from_exported_interface_has_or_is_using_private_name_0: { code: 4057, category: 1, key: "Return type of method from exported interface has or is using private name '{0}'." }, + Return_type_of_exported_function_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named: { code: 4058, category: 1, key: "Return type of exported function has or is using name '{0}' from external module {1} but cannot be named." }, + Return_type_of_exported_function_has_or_is_using_name_0_from_private_module_1: { code: 4059, category: 1, key: "Return type of exported function has or is using name '{0}' from private module '{1}'." }, + Return_type_of_exported_function_has_or_is_using_private_name_0: { code: 4060, category: 1, key: "Return type of exported function has or is using private name '{0}'." }, + Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: { code: 4061, category: 1, key: "Parameter '{0}' of constructor from exported class has or is using name '{1}' from external module {2} but cannot be named." }, + Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_private_module_2: { code: 4062, category: 1, key: "Parameter '{0}' of constructor from exported class has or is using name '{1}' from private module '{2}'." }, + Parameter_0_of_constructor_from_exported_class_has_or_is_using_private_name_1: { code: 4063, category: 1, key: "Parameter '{0}' of constructor from exported class has or is using private name '{1}'." }, + Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2: { code: 4064, category: 1, key: "Parameter '{0}' of constructor signature from exported interface has or is using name '{1}' from private module '{2}'." }, + Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1: { code: 4065, category: 1, key: "Parameter '{0}' of constructor signature from exported interface has or is using private name '{1}'." }, + Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2: { code: 4066, category: 1, key: "Parameter '{0}' of call signature from exported interface has or is using name '{1}' from private module '{2}'." }, + Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1: { code: 4067, category: 1, key: "Parameter '{0}' of call signature from exported interface has or is using private name '{1}'." }, + Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: { code: 4068, category: 1, key: "Parameter '{0}' of public static method from exported class has or is using name '{1}' from external module {2} but cannot be named." }, + Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_private_module_2: { code: 4069, category: 1, key: "Parameter '{0}' of public static method from exported class has or is using name '{1}' from private module '{2}'." }, + Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1: { code: 4070, category: 1, key: "Parameter '{0}' of public static method from exported class has or is using private name '{1}'." }, + Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: { code: 4071, category: 1, key: "Parameter '{0}' of public method from exported class has or is using name '{1}' from external module {2} but cannot be named." }, + Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_private_module_2: { code: 4072, category: 1, key: "Parameter '{0}' of public method from exported class has or is using name '{1}' from private module '{2}'." }, + Parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1: { code: 4073, category: 1, key: "Parameter '{0}' of public method from exported class has or is using private name '{1}'." }, + Parameter_0_of_method_from_exported_interface_has_or_is_using_name_1_from_private_module_2: { code: 4074, category: 1, key: "Parameter '{0}' of method from exported interface has or is using name '{1}' from private module '{2}'." }, + Parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1: { code: 4075, category: 1, key: "Parameter '{0}' of method from exported interface has or is using private name '{1}'." }, + Parameter_0_of_exported_function_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: { code: 4076, category: 1, key: "Parameter '{0}' of exported function has or is using name '{1}' from external module {2} but cannot be named." }, + Parameter_0_of_exported_function_has_or_is_using_name_1_from_private_module_2: { code: 4077, category: 1, key: "Parameter '{0}' of exported function has or is using name '{1}' from private module '{2}'." }, + Parameter_0_of_exported_function_has_or_is_using_private_name_1: { code: 4078, category: 1, key: "Parameter '{0}' of exported function has or is using private name '{1}'." }, + Exported_type_alias_0_has_or_is_using_private_name_1: { code: 4081, category: 1, key: "Exported type alias '{0}' has or is using private name '{1}'." }, + Loop_contains_block_scoped_variable_0_referenced_by_a_function_in_the_loop_This_is_only_supported_in_ECMAScript_6_or_higher: { code: 4091, category: 1, key: "Loop contains block-scoped variable '{0}' referenced by a function in the loop. This is only supported in ECMAScript 6 or higher." }, + The_current_host_does_not_support_the_0_option: { code: 5001, category: 1, key: "The current host does not support the '{0}' option." }, + Cannot_find_the_common_subdirectory_path_for_the_input_files: { code: 5009, category: 1, key: "Cannot find the common subdirectory path for the input files." }, + Cannot_read_file_0_Colon_1: { code: 5012, category: 1, key: "Cannot read file '{0}': {1}" }, + Unsupported_file_encoding: { code: 5013, category: 1, key: "Unsupported file encoding." }, + Unknown_compiler_option_0: { code: 5023, category: 1, key: "Unknown compiler option '{0}'." }, + Compiler_option_0_requires_a_value_of_type_1: { code: 5024, category: 1, key: "Compiler option '{0}' requires a value of type {1}." }, + Could_not_write_file_0_Colon_1: { code: 5033, category: 1, key: "Could not write file '{0}': {1}" }, + Option_mapRoot_cannot_be_specified_without_specifying_sourcemap_option: { code: 5038, category: 1, key: "Option 'mapRoot' cannot be specified without specifying 'sourcemap' option." }, + Option_sourceRoot_cannot_be_specified_without_specifying_sourcemap_option: { code: 5039, category: 1, key: "Option 'sourceRoot' cannot be specified without specifying 'sourcemap' option." }, + Option_noEmit_cannot_be_specified_with_option_out_or_outDir: { code: 5040, category: 1, key: "Option 'noEmit' cannot be specified with option 'out' or 'outDir'." }, + Option_noEmit_cannot_be_specified_with_option_declaration: { code: 5041, category: 1, key: "Option 'noEmit' cannot be specified with option 'declaration'." }, + Option_project_cannot_be_mixed_with_source_files_on_a_command_line: { code: 5042, category: 1, key: "Option 'project' cannot be mixed with source files on a command line." }, + Concatenate_and_emit_output_to_single_file: { code: 6001, category: 2, key: "Concatenate and emit output to single file." }, + Generates_corresponding_d_ts_file: { code: 6002, category: 2, key: "Generates corresponding '.d.ts' file." }, + Specifies_the_location_where_debugger_should_locate_map_files_instead_of_generated_locations: { code: 6003, category: 2, key: "Specifies the location where debugger should locate map files instead of generated locations." }, + Specifies_the_location_where_debugger_should_locate_TypeScript_files_instead_of_source_locations: { code: 6004, category: 2, key: "Specifies the location where debugger should locate TypeScript files instead of source locations." }, + Watch_input_files: { code: 6005, category: 2, key: "Watch input files." }, + Redirect_output_structure_to_the_directory: { code: 6006, category: 2, key: "Redirect output structure to the directory." }, + Do_not_erase_const_enum_declarations_in_generated_code: { code: 6007, category: 2, key: "Do not erase const enum declarations in generated code." }, + Do_not_emit_outputs_if_any_type_checking_errors_were_reported: { code: 6008, category: 2, key: "Do not emit outputs if any type checking errors were reported." }, + Do_not_emit_comments_to_output: { code: 6009, category: 2, key: "Do not emit comments to output." }, + Do_not_emit_outputs: { code: 6010, category: 2, key: "Do not emit outputs." }, + Specify_ECMAScript_target_version_Colon_ES3_default_ES5_or_ES6_experimental: { code: 6015, category: 2, key: "Specify ECMAScript target version: 'ES3' (default), 'ES5', or 'ES6' (experimental)" }, + Specify_module_code_generation_Colon_commonjs_or_amd: { code: 6016, category: 2, key: "Specify module code generation: 'commonjs' or 'amd'" }, + Print_this_message: { code: 6017, category: 2, key: "Print this message." }, + Print_the_compiler_s_version: { code: 6019, category: 2, key: "Print the compiler's version." }, + Compile_the_project_in_the_given_directory: { code: 6020, category: 2, key: "Compile the project in the given directory." }, + Syntax_Colon_0: { code: 6023, category: 2, key: "Syntax: {0}" }, + options: { code: 6024, category: 2, key: "options" }, + file: { code: 6025, category: 2, key: "file" }, + Examples_Colon_0: { code: 6026, category: 2, key: "Examples: {0}" }, + Options_Colon: { code: 6027, category: 2, key: "Options:" }, + Version_0: { code: 6029, category: 2, key: "Version {0}" }, + Insert_command_line_options_and_files_from_a_file: { code: 6030, category: 2, key: "Insert command line options and files from a file." }, + File_change_detected_Starting_incremental_compilation: { code: 6032, category: 2, key: "File change detected. Starting incremental compilation..." }, + KIND: { code: 6034, category: 2, key: "KIND" }, + FILE: { code: 6035, category: 2, key: "FILE" }, + VERSION: { code: 6036, category: 2, key: "VERSION" }, + LOCATION: { code: 6037, category: 2, key: "LOCATION" }, + DIRECTORY: { code: 6038, category: 2, key: "DIRECTORY" }, + Compilation_complete_Watching_for_file_changes: { code: 6042, category: 2, key: "Compilation complete. Watching for file changes." }, + Generates_corresponding_map_file: { code: 6043, category: 2, key: "Generates corresponding '.map' file." }, + Compiler_option_0_expects_an_argument: { code: 6044, category: 1, key: "Compiler option '{0}' expects an argument." }, + Unterminated_quoted_string_in_response_file_0: { code: 6045, category: 1, key: "Unterminated quoted string in response file '{0}'." }, + Argument_for_module_option_must_be_commonjs_or_amd: { code: 6046, category: 1, key: "Argument for '--module' option must be 'commonjs' or 'amd'." }, + Argument_for_target_option_must_be_es3_es5_or_es6: { code: 6047, category: 1, key: "Argument for '--target' option must be 'es3', 'es5', or 'es6'." }, + Locale_must_be_of_the_form_language_or_language_territory_For_example_0_or_1: { code: 6048, category: 1, key: "Locale must be of the form or -. For example '{0}' or '{1}'." }, + Unsupported_locale_0: { code: 6049, category: 1, key: "Unsupported locale '{0}'." }, + Unable_to_open_file_0: { code: 6050, category: 1, key: "Unable to open file '{0}'." }, + Corrupted_locale_file_0: { code: 6051, category: 1, key: "Corrupted locale file {0}." }, + Raise_error_on_expressions_and_declarations_with_an_implied_any_type: { code: 6052, category: 2, key: "Raise error on expressions and declarations with an implied 'any' type." }, + File_0_not_found: { code: 6053, category: 1, key: "File '{0}' not found." }, + File_0_must_have_extension_ts_or_d_ts: { code: 6054, category: 1, key: "File '{0}' must have extension '.ts' or '.d.ts'." }, + Suppress_noImplicitAny_errors_for_indexing_objects_lacking_index_signatures: { code: 6055, category: 2, key: "Suppress noImplicitAny errors for indexing objects lacking index signatures." }, + Do_not_emit_declarations_for_code_that_has_an_internal_annotation: { code: 6056, category: 2, key: "Do not emit declarations for code that has an '@internal' annotation." }, + Preserve_new_lines_when_emitting_code: { code: 6057, category: 2, key: "Preserve new-lines when emitting code." }, + Variable_0_implicitly_has_an_1_type: { code: 7005, category: 1, key: "Variable '{0}' implicitly has an '{1}' type." }, + Parameter_0_implicitly_has_an_1_type: { code: 7006, category: 1, key: "Parameter '{0}' implicitly has an '{1}' type." }, + Member_0_implicitly_has_an_1_type: { code: 7008, category: 1, key: "Member '{0}' implicitly has an '{1}' type." }, + new_expression_whose_target_lacks_a_construct_signature_implicitly_has_an_any_type: { code: 7009, category: 1, key: "'new' expression, whose target lacks a construct signature, implicitly has an 'any' type." }, + _0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type: { code: 7010, category: 1, key: "'{0}', which lacks return-type annotation, implicitly has an '{1}' return type." }, + Function_expression_which_lacks_return_type_annotation_implicitly_has_an_0_return_type: { code: 7011, category: 1, key: "Function expression, which lacks return-type annotation, implicitly has an '{0}' return type." }, + Construct_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type: { code: 7013, category: 1, key: "Construct signature, which lacks return-type annotation, implicitly has an 'any' return type." }, + Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_type_annotation: { code: 7016, category: 1, key: "Property '{0}' implicitly has type 'any', because its 'set' accessor lacks a type annotation." }, + Index_signature_of_object_type_implicitly_has_an_any_type: { code: 7017, category: 1, key: "Index signature of object type implicitly has an 'any' type." }, + Object_literal_s_property_0_implicitly_has_an_1_type: { code: 7018, category: 1, key: "Object literal's property '{0}' implicitly has an '{1}' type." }, + Rest_parameter_0_implicitly_has_an_any_type: { code: 7019, category: 1, key: "Rest parameter '{0}' implicitly has an 'any[]' type." }, + Call_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type: { code: 7020, category: 1, key: "Call signature, which lacks return-type annotation, implicitly has an 'any' return type." }, + _0_implicitly_has_type_any_because_it_is_referenced_directly_or_indirectly_in_its_own_type_annotation: { code: 7021, category: 1, key: "'{0}' implicitly has type 'any' because it is referenced directly or indirectly in its own type annotation." }, + _0_implicitly_has_type_any_because_it_is_does_not_have_a_type_annotation_and_is_referenced_directly_or_indirectly_in_its_own_initializer: { code: 7022, category: 1, key: "'{0}' implicitly has type 'any' because it is does not have a type annotation and is referenced directly or indirectly in its own initializer." }, + _0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions: { code: 7023, category: 1, key: "'{0}' implicitly has return type 'any' because it does not have a return type annotation and is referenced directly or indirectly in one of its return expressions." }, + Function_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions: { code: 7024, category: 1, key: "Function implicitly has return type 'any' because it does not have a return type annotation and is referenced directly or indirectly in one of its return expressions." }, + You_cannot_rename_this_element: { code: 8000, category: 1, key: "You cannot rename this element." }, + You_cannot_rename_elements_that_are_defined_in_the_standard_TypeScript_library: { code: 8001, category: 1, key: "You cannot rename elements that are defined in the standard TypeScript library." }, + yield_expressions_are_not_currently_supported: { code: 9000, category: 1, key: "'yield' expressions are not currently supported." }, + Generators_are_not_currently_supported: { code: 9001, category: 1, key: "Generators are not currently supported." }, + The_arguments_object_cannot_be_referenced_in_an_arrow_function_Consider_using_a_standard_function_expression: { code: 9002, category: 1, key: "The 'arguments' object cannot be referenced in an arrow function. Consider using a standard function expression." } }; })(ts || (ts = {})); var ts; @@ -4013,2806 +2067,10 @@ var ts; "|=": 62, "^=": 63 }; - var unicodeES3IdentifierStart = [ - 170, - 170, - 181, - 181, - 186, - 186, - 192, - 214, - 216, - 246, - 248, - 543, - 546, - 563, - 592, - 685, - 688, - 696, - 699, - 705, - 720, - 721, - 736, - 740, - 750, - 750, - 890, - 890, - 902, - 902, - 904, - 906, - 908, - 908, - 910, - 929, - 931, - 974, - 976, - 983, - 986, - 1011, - 1024, - 1153, - 1164, - 1220, - 1223, - 1224, - 1227, - 1228, - 1232, - 1269, - 1272, - 1273, - 1329, - 1366, - 1369, - 1369, - 1377, - 1415, - 1488, - 1514, - 1520, - 1522, - 1569, - 1594, - 1600, - 1610, - 1649, - 1747, - 1749, - 1749, - 1765, - 1766, - 1786, - 1788, - 1808, - 1808, - 1810, - 1836, - 1920, - 1957, - 2309, - 2361, - 2365, - 2365, - 2384, - 2384, - 2392, - 2401, - 2437, - 2444, - 2447, - 2448, - 2451, - 2472, - 2474, - 2480, - 2482, - 2482, - 2486, - 2489, - 2524, - 2525, - 2527, - 2529, - 2544, - 2545, - 2565, - 2570, - 2575, - 2576, - 2579, - 2600, - 2602, - 2608, - 2610, - 2611, - 2613, - 2614, - 2616, - 2617, - 2649, - 2652, - 2654, - 2654, - 2674, - 2676, - 2693, - 2699, - 2701, - 2701, - 2703, - 2705, - 2707, - 2728, - 2730, - 2736, - 2738, - 2739, - 2741, - 2745, - 2749, - 2749, - 2768, - 2768, - 2784, - 2784, - 2821, - 2828, - 2831, - 2832, - 2835, - 2856, - 2858, - 2864, - 2866, - 2867, - 2870, - 2873, - 2877, - 2877, - 2908, - 2909, - 2911, - 2913, - 2949, - 2954, - 2958, - 2960, - 2962, - 2965, - 2969, - 2970, - 2972, - 2972, - 2974, - 2975, - 2979, - 2980, - 2984, - 2986, - 2990, - 2997, - 2999, - 3001, - 3077, - 3084, - 3086, - 3088, - 3090, - 3112, - 3114, - 3123, - 3125, - 3129, - 3168, - 3169, - 3205, - 3212, - 3214, - 3216, - 3218, - 3240, - 3242, - 3251, - 3253, - 3257, - 3294, - 3294, - 3296, - 3297, - 3333, - 3340, - 3342, - 3344, - 3346, - 3368, - 3370, - 3385, - 3424, - 3425, - 3461, - 3478, - 3482, - 3505, - 3507, - 3515, - 3517, - 3517, - 3520, - 3526, - 3585, - 3632, - 3634, - 3635, - 3648, - 3654, - 3713, - 3714, - 3716, - 3716, - 3719, - 3720, - 3722, - 3722, - 3725, - 3725, - 3732, - 3735, - 3737, - 3743, - 3745, - 3747, - 3749, - 3749, - 3751, - 3751, - 3754, - 3755, - 3757, - 3760, - 3762, - 3763, - 3773, - 3773, - 3776, - 3780, - 3782, - 3782, - 3804, - 3805, - 3840, - 3840, - 3904, - 3911, - 3913, - 3946, - 3976, - 3979, - 4096, - 4129, - 4131, - 4135, - 4137, - 4138, - 4176, - 4181, - 4256, - 4293, - 4304, - 4342, - 4352, - 4441, - 4447, - 4514, - 4520, - 4601, - 4608, - 4614, - 4616, - 4678, - 4680, - 4680, - 4682, - 4685, - 4688, - 4694, - 4696, - 4696, - 4698, - 4701, - 4704, - 4742, - 4744, - 4744, - 4746, - 4749, - 4752, - 4782, - 4784, - 4784, - 4786, - 4789, - 4792, - 4798, - 4800, - 4800, - 4802, - 4805, - 4808, - 4814, - 4816, - 4822, - 4824, - 4846, - 4848, - 4878, - 4880, - 4880, - 4882, - 4885, - 4888, - 4894, - 4896, - 4934, - 4936, - 4954, - 5024, - 5108, - 5121, - 5740, - 5743, - 5750, - 5761, - 5786, - 5792, - 5866, - 6016, - 6067, - 6176, - 6263, - 6272, - 6312, - 7680, - 7835, - 7840, - 7929, - 7936, - 7957, - 7960, - 7965, - 7968, - 8005, - 8008, - 8013, - 8016, - 8023, - 8025, - 8025, - 8027, - 8027, - 8029, - 8029, - 8031, - 8061, - 8064, - 8116, - 8118, - 8124, - 8126, - 8126, - 8130, - 8132, - 8134, - 8140, - 8144, - 8147, - 8150, - 8155, - 8160, - 8172, - 8178, - 8180, - 8182, - 8188, - 8319, - 8319, - 8450, - 8450, - 8455, - 8455, - 8458, - 8467, - 8469, - 8469, - 8473, - 8477, - 8484, - 8484, - 8486, - 8486, - 8488, - 8488, - 8490, - 8493, - 8495, - 8497, - 8499, - 8505, - 8544, - 8579, - 12293, - 12295, - 12321, - 12329, - 12337, - 12341, - 12344, - 12346, - 12353, - 12436, - 12445, - 12446, - 12449, - 12538, - 12540, - 12542, - 12549, - 12588, - 12593, - 12686, - 12704, - 12727, - 13312, - 19893, - 19968, - 40869, - 40960, - 42124, - 44032, - 55203, - 63744, - 64045, - 64256, - 64262, - 64275, - 64279, - 64285, - 64285, - 64287, - 64296, - 64298, - 64310, - 64312, - 64316, - 64318, - 64318, - 64320, - 64321, - 64323, - 64324, - 64326, - 64433, - 64467, - 64829, - 64848, - 64911, - 64914, - 64967, - 65008, - 65019, - 65136, - 65138, - 65140, - 65140, - 65142, - 65276, - 65313, - 65338, - 65345, - 65370, - 65382, - 65470, - 65474, - 65479, - 65482, - 65487, - 65490, - 65495, - 65498, - 65500, - ]; - var unicodeES3IdentifierPart = [ - 170, - 170, - 181, - 181, - 186, - 186, - 192, - 214, - 216, - 246, - 248, - 543, - 546, - 563, - 592, - 685, - 688, - 696, - 699, - 705, - 720, - 721, - 736, - 740, - 750, - 750, - 768, - 846, - 864, - 866, - 890, - 890, - 902, - 902, - 904, - 906, - 908, - 908, - 910, - 929, - 931, - 974, - 976, - 983, - 986, - 1011, - 1024, - 1153, - 1155, - 1158, - 1164, - 1220, - 1223, - 1224, - 1227, - 1228, - 1232, - 1269, - 1272, - 1273, - 1329, - 1366, - 1369, - 1369, - 1377, - 1415, - 1425, - 1441, - 1443, - 1465, - 1467, - 1469, - 1471, - 1471, - 1473, - 1474, - 1476, - 1476, - 1488, - 1514, - 1520, - 1522, - 1569, - 1594, - 1600, - 1621, - 1632, - 1641, - 1648, - 1747, - 1749, - 1756, - 1759, - 1768, - 1770, - 1773, - 1776, - 1788, - 1808, - 1836, - 1840, - 1866, - 1920, - 1968, - 2305, - 2307, - 2309, - 2361, - 2364, - 2381, - 2384, - 2388, - 2392, - 2403, - 2406, - 2415, - 2433, - 2435, - 2437, - 2444, - 2447, - 2448, - 2451, - 2472, - 2474, - 2480, - 2482, - 2482, - 2486, - 2489, - 2492, - 2492, - 2494, - 2500, - 2503, - 2504, - 2507, - 2509, - 2519, - 2519, - 2524, - 2525, - 2527, - 2531, - 2534, - 2545, - 2562, - 2562, - 2565, - 2570, - 2575, - 2576, - 2579, - 2600, - 2602, - 2608, - 2610, - 2611, - 2613, - 2614, - 2616, - 2617, - 2620, - 2620, - 2622, - 2626, - 2631, - 2632, - 2635, - 2637, - 2649, - 2652, - 2654, - 2654, - 2662, - 2676, - 2689, - 2691, - 2693, - 2699, - 2701, - 2701, - 2703, - 2705, - 2707, - 2728, - 2730, - 2736, - 2738, - 2739, - 2741, - 2745, - 2748, - 2757, - 2759, - 2761, - 2763, - 2765, - 2768, - 2768, - 2784, - 2784, - 2790, - 2799, - 2817, - 2819, - 2821, - 2828, - 2831, - 2832, - 2835, - 2856, - 2858, - 2864, - 2866, - 2867, - 2870, - 2873, - 2876, - 2883, - 2887, - 2888, - 2891, - 2893, - 2902, - 2903, - 2908, - 2909, - 2911, - 2913, - 2918, - 2927, - 2946, - 2947, - 2949, - 2954, - 2958, - 2960, - 2962, - 2965, - 2969, - 2970, - 2972, - 2972, - 2974, - 2975, - 2979, - 2980, - 2984, - 2986, - 2990, - 2997, - 2999, - 3001, - 3006, - 3010, - 3014, - 3016, - 3018, - 3021, - 3031, - 3031, - 3047, - 3055, - 3073, - 3075, - 3077, - 3084, - 3086, - 3088, - 3090, - 3112, - 3114, - 3123, - 3125, - 3129, - 3134, - 3140, - 3142, - 3144, - 3146, - 3149, - 3157, - 3158, - 3168, - 3169, - 3174, - 3183, - 3202, - 3203, - 3205, - 3212, - 3214, - 3216, - 3218, - 3240, - 3242, - 3251, - 3253, - 3257, - 3262, - 3268, - 3270, - 3272, - 3274, - 3277, - 3285, - 3286, - 3294, - 3294, - 3296, - 3297, - 3302, - 3311, - 3330, - 3331, - 3333, - 3340, - 3342, - 3344, - 3346, - 3368, - 3370, - 3385, - 3390, - 3395, - 3398, - 3400, - 3402, - 3405, - 3415, - 3415, - 3424, - 3425, - 3430, - 3439, - 3458, - 3459, - 3461, - 3478, - 3482, - 3505, - 3507, - 3515, - 3517, - 3517, - 3520, - 3526, - 3530, - 3530, - 3535, - 3540, - 3542, - 3542, - 3544, - 3551, - 3570, - 3571, - 3585, - 3642, - 3648, - 3662, - 3664, - 3673, - 3713, - 3714, - 3716, - 3716, - 3719, - 3720, - 3722, - 3722, - 3725, - 3725, - 3732, - 3735, - 3737, - 3743, - 3745, - 3747, - 3749, - 3749, - 3751, - 3751, - 3754, - 3755, - 3757, - 3769, - 3771, - 3773, - 3776, - 3780, - 3782, - 3782, - 3784, - 3789, - 3792, - 3801, - 3804, - 3805, - 3840, - 3840, - 3864, - 3865, - 3872, - 3881, - 3893, - 3893, - 3895, - 3895, - 3897, - 3897, - 3902, - 3911, - 3913, - 3946, - 3953, - 3972, - 3974, - 3979, - 3984, - 3991, - 3993, - 4028, - 4038, - 4038, - 4096, - 4129, - 4131, - 4135, - 4137, - 4138, - 4140, - 4146, - 4150, - 4153, - 4160, - 4169, - 4176, - 4185, - 4256, - 4293, - 4304, - 4342, - 4352, - 4441, - 4447, - 4514, - 4520, - 4601, - 4608, - 4614, - 4616, - 4678, - 4680, - 4680, - 4682, - 4685, - 4688, - 4694, - 4696, - 4696, - 4698, - 4701, - 4704, - 4742, - 4744, - 4744, - 4746, - 4749, - 4752, - 4782, - 4784, - 4784, - 4786, - 4789, - 4792, - 4798, - 4800, - 4800, - 4802, - 4805, - 4808, - 4814, - 4816, - 4822, - 4824, - 4846, - 4848, - 4878, - 4880, - 4880, - 4882, - 4885, - 4888, - 4894, - 4896, - 4934, - 4936, - 4954, - 4969, - 4977, - 5024, - 5108, - 5121, - 5740, - 5743, - 5750, - 5761, - 5786, - 5792, - 5866, - 6016, - 6099, - 6112, - 6121, - 6160, - 6169, - 6176, - 6263, - 6272, - 6313, - 7680, - 7835, - 7840, - 7929, - 7936, - 7957, - 7960, - 7965, - 7968, - 8005, - 8008, - 8013, - 8016, - 8023, - 8025, - 8025, - 8027, - 8027, - 8029, - 8029, - 8031, - 8061, - 8064, - 8116, - 8118, - 8124, - 8126, - 8126, - 8130, - 8132, - 8134, - 8140, - 8144, - 8147, - 8150, - 8155, - 8160, - 8172, - 8178, - 8180, - 8182, - 8188, - 8255, - 8256, - 8319, - 8319, - 8400, - 8412, - 8417, - 8417, - 8450, - 8450, - 8455, - 8455, - 8458, - 8467, - 8469, - 8469, - 8473, - 8477, - 8484, - 8484, - 8486, - 8486, - 8488, - 8488, - 8490, - 8493, - 8495, - 8497, - 8499, - 8505, - 8544, - 8579, - 12293, - 12295, - 12321, - 12335, - 12337, - 12341, - 12344, - 12346, - 12353, - 12436, - 12441, - 12442, - 12445, - 12446, - 12449, - 12542, - 12549, - 12588, - 12593, - 12686, - 12704, - 12727, - 13312, - 19893, - 19968, - 40869, - 40960, - 42124, - 44032, - 55203, - 63744, - 64045, - 64256, - 64262, - 64275, - 64279, - 64285, - 64296, - 64298, - 64310, - 64312, - 64316, - 64318, - 64318, - 64320, - 64321, - 64323, - 64324, - 64326, - 64433, - 64467, - 64829, - 64848, - 64911, - 64914, - 64967, - 65008, - 65019, - 65056, - 65059, - 65075, - 65076, - 65101, - 65103, - 65136, - 65138, - 65140, - 65140, - 65142, - 65276, - 65296, - 65305, - 65313, - 65338, - 65343, - 65343, - 65345, - 65370, - 65381, - 65470, - 65474, - 65479, - 65482, - 65487, - 65490, - 65495, - 65498, - 65500, - ]; - var unicodeES5IdentifierStart = [ - 170, - 170, - 181, - 181, - 186, - 186, - 192, - 214, - 216, - 246, - 248, - 705, - 710, - 721, - 736, - 740, - 748, - 748, - 750, - 750, - 880, - 884, - 886, - 887, - 890, - 893, - 902, - 902, - 904, - 906, - 908, - 908, - 910, - 929, - 931, - 1013, - 1015, - 1153, - 1162, - 1319, - 1329, - 1366, - 1369, - 1369, - 1377, - 1415, - 1488, - 1514, - 1520, - 1522, - 1568, - 1610, - 1646, - 1647, - 1649, - 1747, - 1749, - 1749, - 1765, - 1766, - 1774, - 1775, - 1786, - 1788, - 1791, - 1791, - 1808, - 1808, - 1810, - 1839, - 1869, - 1957, - 1969, - 1969, - 1994, - 2026, - 2036, - 2037, - 2042, - 2042, - 2048, - 2069, - 2074, - 2074, - 2084, - 2084, - 2088, - 2088, - 2112, - 2136, - 2208, - 2208, - 2210, - 2220, - 2308, - 2361, - 2365, - 2365, - 2384, - 2384, - 2392, - 2401, - 2417, - 2423, - 2425, - 2431, - 2437, - 2444, - 2447, - 2448, - 2451, - 2472, - 2474, - 2480, - 2482, - 2482, - 2486, - 2489, - 2493, - 2493, - 2510, - 2510, - 2524, - 2525, - 2527, - 2529, - 2544, - 2545, - 2565, - 2570, - 2575, - 2576, - 2579, - 2600, - 2602, - 2608, - 2610, - 2611, - 2613, - 2614, - 2616, - 2617, - 2649, - 2652, - 2654, - 2654, - 2674, - 2676, - 2693, - 2701, - 2703, - 2705, - 2707, - 2728, - 2730, - 2736, - 2738, - 2739, - 2741, - 2745, - 2749, - 2749, - 2768, - 2768, - 2784, - 2785, - 2821, - 2828, - 2831, - 2832, - 2835, - 2856, - 2858, - 2864, - 2866, - 2867, - 2869, - 2873, - 2877, - 2877, - 2908, - 2909, - 2911, - 2913, - 2929, - 2929, - 2947, - 2947, - 2949, - 2954, - 2958, - 2960, - 2962, - 2965, - 2969, - 2970, - 2972, - 2972, - 2974, - 2975, - 2979, - 2980, - 2984, - 2986, - 2990, - 3001, - 3024, - 3024, - 3077, - 3084, - 3086, - 3088, - 3090, - 3112, - 3114, - 3123, - 3125, - 3129, - 3133, - 3133, - 3160, - 3161, - 3168, - 3169, - 3205, - 3212, - 3214, - 3216, - 3218, - 3240, - 3242, - 3251, - 3253, - 3257, - 3261, - 3261, - 3294, - 3294, - 3296, - 3297, - 3313, - 3314, - 3333, - 3340, - 3342, - 3344, - 3346, - 3386, - 3389, - 3389, - 3406, - 3406, - 3424, - 3425, - 3450, - 3455, - 3461, - 3478, - 3482, - 3505, - 3507, - 3515, - 3517, - 3517, - 3520, - 3526, - 3585, - 3632, - 3634, - 3635, - 3648, - 3654, - 3713, - 3714, - 3716, - 3716, - 3719, - 3720, - 3722, - 3722, - 3725, - 3725, - 3732, - 3735, - 3737, - 3743, - 3745, - 3747, - 3749, - 3749, - 3751, - 3751, - 3754, - 3755, - 3757, - 3760, - 3762, - 3763, - 3773, - 3773, - 3776, - 3780, - 3782, - 3782, - 3804, - 3807, - 3840, - 3840, - 3904, - 3911, - 3913, - 3948, - 3976, - 3980, - 4096, - 4138, - 4159, - 4159, - 4176, - 4181, - 4186, - 4189, - 4193, - 4193, - 4197, - 4198, - 4206, - 4208, - 4213, - 4225, - 4238, - 4238, - 4256, - 4293, - 4295, - 4295, - 4301, - 4301, - 4304, - 4346, - 4348, - 4680, - 4682, - 4685, - 4688, - 4694, - 4696, - 4696, - 4698, - 4701, - 4704, - 4744, - 4746, - 4749, - 4752, - 4784, - 4786, - 4789, - 4792, - 4798, - 4800, - 4800, - 4802, - 4805, - 4808, - 4822, - 4824, - 4880, - 4882, - 4885, - 4888, - 4954, - 4992, - 5007, - 5024, - 5108, - 5121, - 5740, - 5743, - 5759, - 5761, - 5786, - 5792, - 5866, - 5870, - 5872, - 5888, - 5900, - 5902, - 5905, - 5920, - 5937, - 5952, - 5969, - 5984, - 5996, - 5998, - 6000, - 6016, - 6067, - 6103, - 6103, - 6108, - 6108, - 6176, - 6263, - 6272, - 6312, - 6314, - 6314, - 6320, - 6389, - 6400, - 6428, - 6480, - 6509, - 6512, - 6516, - 6528, - 6571, - 6593, - 6599, - 6656, - 6678, - 6688, - 6740, - 6823, - 6823, - 6917, - 6963, - 6981, - 6987, - 7043, - 7072, - 7086, - 7087, - 7098, - 7141, - 7168, - 7203, - 7245, - 7247, - 7258, - 7293, - 7401, - 7404, - 7406, - 7409, - 7413, - 7414, - 7424, - 7615, - 7680, - 7957, - 7960, - 7965, - 7968, - 8005, - 8008, - 8013, - 8016, - 8023, - 8025, - 8025, - 8027, - 8027, - 8029, - 8029, - 8031, - 8061, - 8064, - 8116, - 8118, - 8124, - 8126, - 8126, - 8130, - 8132, - 8134, - 8140, - 8144, - 8147, - 8150, - 8155, - 8160, - 8172, - 8178, - 8180, - 8182, - 8188, - 8305, - 8305, - 8319, - 8319, - 8336, - 8348, - 8450, - 8450, - 8455, - 8455, - 8458, - 8467, - 8469, - 8469, - 8473, - 8477, - 8484, - 8484, - 8486, - 8486, - 8488, - 8488, - 8490, - 8493, - 8495, - 8505, - 8508, - 8511, - 8517, - 8521, - 8526, - 8526, - 8544, - 8584, - 11264, - 11310, - 11312, - 11358, - 11360, - 11492, - 11499, - 11502, - 11506, - 11507, - 11520, - 11557, - 11559, - 11559, - 11565, - 11565, - 11568, - 11623, - 11631, - 11631, - 11648, - 11670, - 11680, - 11686, - 11688, - 11694, - 11696, - 11702, - 11704, - 11710, - 11712, - 11718, - 11720, - 11726, - 11728, - 11734, - 11736, - 11742, - 11823, - 11823, - 12293, - 12295, - 12321, - 12329, - 12337, - 12341, - 12344, - 12348, - 12353, - 12438, - 12445, - 12447, - 12449, - 12538, - 12540, - 12543, - 12549, - 12589, - 12593, - 12686, - 12704, - 12730, - 12784, - 12799, - 13312, - 19893, - 19968, - 40908, - 40960, - 42124, - 42192, - 42237, - 42240, - 42508, - 42512, - 42527, - 42538, - 42539, - 42560, - 42606, - 42623, - 42647, - 42656, - 42735, - 42775, - 42783, - 42786, - 42888, - 42891, - 42894, - 42896, - 42899, - 42912, - 42922, - 43000, - 43009, - 43011, - 43013, - 43015, - 43018, - 43020, - 43042, - 43072, - 43123, - 43138, - 43187, - 43250, - 43255, - 43259, - 43259, - 43274, - 43301, - 43312, - 43334, - 43360, - 43388, - 43396, - 43442, - 43471, - 43471, - 43520, - 43560, - 43584, - 43586, - 43588, - 43595, - 43616, - 43638, - 43642, - 43642, - 43648, - 43695, - 43697, - 43697, - 43701, - 43702, - 43705, - 43709, - 43712, - 43712, - 43714, - 43714, - 43739, - 43741, - 43744, - 43754, - 43762, - 43764, - 43777, - 43782, - 43785, - 43790, - 43793, - 43798, - 43808, - 43814, - 43816, - 43822, - 43968, - 44002, - 44032, - 55203, - 55216, - 55238, - 55243, - 55291, - 63744, - 64109, - 64112, - 64217, - 64256, - 64262, - 64275, - 64279, - 64285, - 64285, - 64287, - 64296, - 64298, - 64310, - 64312, - 64316, - 64318, - 64318, - 64320, - 64321, - 64323, - 64324, - 64326, - 64433, - 64467, - 64829, - 64848, - 64911, - 64914, - 64967, - 65008, - 65019, - 65136, - 65140, - 65142, - 65276, - 65313, - 65338, - 65345, - 65370, - 65382, - 65470, - 65474, - 65479, - 65482, - 65487, - 65490, - 65495, - 65498, - 65500, - ]; - var unicodeES5IdentifierPart = [ - 170, - 170, - 181, - 181, - 186, - 186, - 192, - 214, - 216, - 246, - 248, - 705, - 710, - 721, - 736, - 740, - 748, - 748, - 750, - 750, - 768, - 884, - 886, - 887, - 890, - 893, - 902, - 902, - 904, - 906, - 908, - 908, - 910, - 929, - 931, - 1013, - 1015, - 1153, - 1155, - 1159, - 1162, - 1319, - 1329, - 1366, - 1369, - 1369, - 1377, - 1415, - 1425, - 1469, - 1471, - 1471, - 1473, - 1474, - 1476, - 1477, - 1479, - 1479, - 1488, - 1514, - 1520, - 1522, - 1552, - 1562, - 1568, - 1641, - 1646, - 1747, - 1749, - 1756, - 1759, - 1768, - 1770, - 1788, - 1791, - 1791, - 1808, - 1866, - 1869, - 1969, - 1984, - 2037, - 2042, - 2042, - 2048, - 2093, - 2112, - 2139, - 2208, - 2208, - 2210, - 2220, - 2276, - 2302, - 2304, - 2403, - 2406, - 2415, - 2417, - 2423, - 2425, - 2431, - 2433, - 2435, - 2437, - 2444, - 2447, - 2448, - 2451, - 2472, - 2474, - 2480, - 2482, - 2482, - 2486, - 2489, - 2492, - 2500, - 2503, - 2504, - 2507, - 2510, - 2519, - 2519, - 2524, - 2525, - 2527, - 2531, - 2534, - 2545, - 2561, - 2563, - 2565, - 2570, - 2575, - 2576, - 2579, - 2600, - 2602, - 2608, - 2610, - 2611, - 2613, - 2614, - 2616, - 2617, - 2620, - 2620, - 2622, - 2626, - 2631, - 2632, - 2635, - 2637, - 2641, - 2641, - 2649, - 2652, - 2654, - 2654, - 2662, - 2677, - 2689, - 2691, - 2693, - 2701, - 2703, - 2705, - 2707, - 2728, - 2730, - 2736, - 2738, - 2739, - 2741, - 2745, - 2748, - 2757, - 2759, - 2761, - 2763, - 2765, - 2768, - 2768, - 2784, - 2787, - 2790, - 2799, - 2817, - 2819, - 2821, - 2828, - 2831, - 2832, - 2835, - 2856, - 2858, - 2864, - 2866, - 2867, - 2869, - 2873, - 2876, - 2884, - 2887, - 2888, - 2891, - 2893, - 2902, - 2903, - 2908, - 2909, - 2911, - 2915, - 2918, - 2927, - 2929, - 2929, - 2946, - 2947, - 2949, - 2954, - 2958, - 2960, - 2962, - 2965, - 2969, - 2970, - 2972, - 2972, - 2974, - 2975, - 2979, - 2980, - 2984, - 2986, - 2990, - 3001, - 3006, - 3010, - 3014, - 3016, - 3018, - 3021, - 3024, - 3024, - 3031, - 3031, - 3046, - 3055, - 3073, - 3075, - 3077, - 3084, - 3086, - 3088, - 3090, - 3112, - 3114, - 3123, - 3125, - 3129, - 3133, - 3140, - 3142, - 3144, - 3146, - 3149, - 3157, - 3158, - 3160, - 3161, - 3168, - 3171, - 3174, - 3183, - 3202, - 3203, - 3205, - 3212, - 3214, - 3216, - 3218, - 3240, - 3242, - 3251, - 3253, - 3257, - 3260, - 3268, - 3270, - 3272, - 3274, - 3277, - 3285, - 3286, - 3294, - 3294, - 3296, - 3299, - 3302, - 3311, - 3313, - 3314, - 3330, - 3331, - 3333, - 3340, - 3342, - 3344, - 3346, - 3386, - 3389, - 3396, - 3398, - 3400, - 3402, - 3406, - 3415, - 3415, - 3424, - 3427, - 3430, - 3439, - 3450, - 3455, - 3458, - 3459, - 3461, - 3478, - 3482, - 3505, - 3507, - 3515, - 3517, - 3517, - 3520, - 3526, - 3530, - 3530, - 3535, - 3540, - 3542, - 3542, - 3544, - 3551, - 3570, - 3571, - 3585, - 3642, - 3648, - 3662, - 3664, - 3673, - 3713, - 3714, - 3716, - 3716, - 3719, - 3720, - 3722, - 3722, - 3725, - 3725, - 3732, - 3735, - 3737, - 3743, - 3745, - 3747, - 3749, - 3749, - 3751, - 3751, - 3754, - 3755, - 3757, - 3769, - 3771, - 3773, - 3776, - 3780, - 3782, - 3782, - 3784, - 3789, - 3792, - 3801, - 3804, - 3807, - 3840, - 3840, - 3864, - 3865, - 3872, - 3881, - 3893, - 3893, - 3895, - 3895, - 3897, - 3897, - 3902, - 3911, - 3913, - 3948, - 3953, - 3972, - 3974, - 3991, - 3993, - 4028, - 4038, - 4038, - 4096, - 4169, - 4176, - 4253, - 4256, - 4293, - 4295, - 4295, - 4301, - 4301, - 4304, - 4346, - 4348, - 4680, - 4682, - 4685, - 4688, - 4694, - 4696, - 4696, - 4698, - 4701, - 4704, - 4744, - 4746, - 4749, - 4752, - 4784, - 4786, - 4789, - 4792, - 4798, - 4800, - 4800, - 4802, - 4805, - 4808, - 4822, - 4824, - 4880, - 4882, - 4885, - 4888, - 4954, - 4957, - 4959, - 4992, - 5007, - 5024, - 5108, - 5121, - 5740, - 5743, - 5759, - 5761, - 5786, - 5792, - 5866, - 5870, - 5872, - 5888, - 5900, - 5902, - 5908, - 5920, - 5940, - 5952, - 5971, - 5984, - 5996, - 5998, - 6000, - 6002, - 6003, - 6016, - 6099, - 6103, - 6103, - 6108, - 6109, - 6112, - 6121, - 6155, - 6157, - 6160, - 6169, - 6176, - 6263, - 6272, - 6314, - 6320, - 6389, - 6400, - 6428, - 6432, - 6443, - 6448, - 6459, - 6470, - 6509, - 6512, - 6516, - 6528, - 6571, - 6576, - 6601, - 6608, - 6617, - 6656, - 6683, - 6688, - 6750, - 6752, - 6780, - 6783, - 6793, - 6800, - 6809, - 6823, - 6823, - 6912, - 6987, - 6992, - 7001, - 7019, - 7027, - 7040, - 7155, - 7168, - 7223, - 7232, - 7241, - 7245, - 7293, - 7376, - 7378, - 7380, - 7414, - 7424, - 7654, - 7676, - 7957, - 7960, - 7965, - 7968, - 8005, - 8008, - 8013, - 8016, - 8023, - 8025, - 8025, - 8027, - 8027, - 8029, - 8029, - 8031, - 8061, - 8064, - 8116, - 8118, - 8124, - 8126, - 8126, - 8130, - 8132, - 8134, - 8140, - 8144, - 8147, - 8150, - 8155, - 8160, - 8172, - 8178, - 8180, - 8182, - 8188, - 8204, - 8205, - 8255, - 8256, - 8276, - 8276, - 8305, - 8305, - 8319, - 8319, - 8336, - 8348, - 8400, - 8412, - 8417, - 8417, - 8421, - 8432, - 8450, - 8450, - 8455, - 8455, - 8458, - 8467, - 8469, - 8469, - 8473, - 8477, - 8484, - 8484, - 8486, - 8486, - 8488, - 8488, - 8490, - 8493, - 8495, - 8505, - 8508, - 8511, - 8517, - 8521, - 8526, - 8526, - 8544, - 8584, - 11264, - 11310, - 11312, - 11358, - 11360, - 11492, - 11499, - 11507, - 11520, - 11557, - 11559, - 11559, - 11565, - 11565, - 11568, - 11623, - 11631, - 11631, - 11647, - 11670, - 11680, - 11686, - 11688, - 11694, - 11696, - 11702, - 11704, - 11710, - 11712, - 11718, - 11720, - 11726, - 11728, - 11734, - 11736, - 11742, - 11744, - 11775, - 11823, - 11823, - 12293, - 12295, - 12321, - 12335, - 12337, - 12341, - 12344, - 12348, - 12353, - 12438, - 12441, - 12442, - 12445, - 12447, - 12449, - 12538, - 12540, - 12543, - 12549, - 12589, - 12593, - 12686, - 12704, - 12730, - 12784, - 12799, - 13312, - 19893, - 19968, - 40908, - 40960, - 42124, - 42192, - 42237, - 42240, - 42508, - 42512, - 42539, - 42560, - 42607, - 42612, - 42621, - 42623, - 42647, - 42655, - 42737, - 42775, - 42783, - 42786, - 42888, - 42891, - 42894, - 42896, - 42899, - 42912, - 42922, - 43000, - 43047, - 43072, - 43123, - 43136, - 43204, - 43216, - 43225, - 43232, - 43255, - 43259, - 43259, - 43264, - 43309, - 43312, - 43347, - 43360, - 43388, - 43392, - 43456, - 43471, - 43481, - 43520, - 43574, - 43584, - 43597, - 43600, - 43609, - 43616, - 43638, - 43642, - 43643, - 43648, - 43714, - 43739, - 43741, - 43744, - 43759, - 43762, - 43766, - 43777, - 43782, - 43785, - 43790, - 43793, - 43798, - 43808, - 43814, - 43816, - 43822, - 43968, - 44010, - 44012, - 44013, - 44016, - 44025, - 44032, - 55203, - 55216, - 55238, - 55243, - 55291, - 63744, - 64109, - 64112, - 64217, - 64256, - 64262, - 64275, - 64279, - 64285, - 64296, - 64298, - 64310, - 64312, - 64316, - 64318, - 64318, - 64320, - 64321, - 64323, - 64324, - 64326, - 64433, - 64467, - 64829, - 64848, - 64911, - 64914, - 64967, - 65008, - 65019, - 65024, - 65039, - 65056, - 65062, - 65075, - 65076, - 65101, - 65103, - 65136, - 65140, - 65142, - 65276, - 65296, - 65305, - 65313, - 65338, - 65343, - 65343, - 65345, - 65370, - 65382, - 65470, - 65474, - 65479, - 65482, - 65487, - 65490, - 65495, - 65498, - 65500, - ]; + var unicodeES3IdentifierStart = [170, 170, 181, 181, 186, 186, 192, 214, 216, 246, 248, 543, 546, 563, 592, 685, 688, 696, 699, 705, 720, 721, 736, 740, 750, 750, 890, 890, 902, 902, 904, 906, 908, 908, 910, 929, 931, 974, 976, 983, 986, 1011, 1024, 1153, 1164, 1220, 1223, 1224, 1227, 1228, 1232, 1269, 1272, 1273, 1329, 1366, 1369, 1369, 1377, 1415, 1488, 1514, 1520, 1522, 1569, 1594, 1600, 1610, 1649, 1747, 1749, 1749, 1765, 1766, 1786, 1788, 1808, 1808, 1810, 1836, 1920, 1957, 2309, 2361, 2365, 2365, 2384, 2384, 2392, 2401, 2437, 2444, 2447, 2448, 2451, 2472, 2474, 2480, 2482, 2482, 2486, 2489, 2524, 2525, 2527, 2529, 2544, 2545, 2565, 2570, 2575, 2576, 2579, 2600, 2602, 2608, 2610, 2611, 2613, 2614, 2616, 2617, 2649, 2652, 2654, 2654, 2674, 2676, 2693, 2699, 2701, 2701, 2703, 2705, 2707, 2728, 2730, 2736, 2738, 2739, 2741, 2745, 2749, 2749, 2768, 2768, 2784, 2784, 2821, 2828, 2831, 2832, 2835, 2856, 2858, 2864, 2866, 2867, 2870, 2873, 2877, 2877, 2908, 2909, 2911, 2913, 2949, 2954, 2958, 2960, 2962, 2965, 2969, 2970, 2972, 2972, 2974, 2975, 2979, 2980, 2984, 2986, 2990, 2997, 2999, 3001, 3077, 3084, 3086, 3088, 3090, 3112, 3114, 3123, 3125, 3129, 3168, 3169, 3205, 3212, 3214, 3216, 3218, 3240, 3242, 3251, 3253, 3257, 3294, 3294, 3296, 3297, 3333, 3340, 3342, 3344, 3346, 3368, 3370, 3385, 3424, 3425, 3461, 3478, 3482, 3505, 3507, 3515, 3517, 3517, 3520, 3526, 3585, 3632, 3634, 3635, 3648, 3654, 3713, 3714, 3716, 3716, 3719, 3720, 3722, 3722, 3725, 3725, 3732, 3735, 3737, 3743, 3745, 3747, 3749, 3749, 3751, 3751, 3754, 3755, 3757, 3760, 3762, 3763, 3773, 3773, 3776, 3780, 3782, 3782, 3804, 3805, 3840, 3840, 3904, 3911, 3913, 3946, 3976, 3979, 4096, 4129, 4131, 4135, 4137, 4138, 4176, 4181, 4256, 4293, 4304, 4342, 4352, 4441, 4447, 4514, 4520, 4601, 4608, 4614, 4616, 4678, 4680, 4680, 4682, 4685, 4688, 4694, 4696, 4696, 4698, 4701, 4704, 4742, 4744, 4744, 4746, 4749, 4752, 4782, 4784, 4784, 4786, 4789, 4792, 4798, 4800, 4800, 4802, 4805, 4808, 4814, 4816, 4822, 4824, 4846, 4848, 4878, 4880, 4880, 4882, 4885, 4888, 4894, 4896, 4934, 4936, 4954, 5024, 5108, 5121, 5740, 5743, 5750, 5761, 5786, 5792, 5866, 6016, 6067, 6176, 6263, 6272, 6312, 7680, 7835, 7840, 7929, 7936, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8023, 8025, 8025, 8027, 8027, 8029, 8029, 8031, 8061, 8064, 8116, 8118, 8124, 8126, 8126, 8130, 8132, 8134, 8140, 8144, 8147, 8150, 8155, 8160, 8172, 8178, 8180, 8182, 8188, 8319, 8319, 8450, 8450, 8455, 8455, 8458, 8467, 8469, 8469, 8473, 8477, 8484, 8484, 8486, 8486, 8488, 8488, 8490, 8493, 8495, 8497, 8499, 8505, 8544, 8579, 12293, 12295, 12321, 12329, 12337, 12341, 12344, 12346, 12353, 12436, 12445, 12446, 12449, 12538, 12540, 12542, 12549, 12588, 12593, 12686, 12704, 12727, 13312, 19893, 19968, 40869, 40960, 42124, 44032, 55203, 63744, 64045, 64256, 64262, 64275, 64279, 64285, 64285, 64287, 64296, 64298, 64310, 64312, 64316, 64318, 64318, 64320, 64321, 64323, 64324, 64326, 64433, 64467, 64829, 64848, 64911, 64914, 64967, 65008, 65019, 65136, 65138, 65140, 65140, 65142, 65276, 65313, 65338, 65345, 65370, 65382, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500,]; + var unicodeES3IdentifierPart = [170, 170, 181, 181, 186, 186, 192, 214, 216, 246, 248, 543, 546, 563, 592, 685, 688, 696, 699, 705, 720, 721, 736, 740, 750, 750, 768, 846, 864, 866, 890, 890, 902, 902, 904, 906, 908, 908, 910, 929, 931, 974, 976, 983, 986, 1011, 1024, 1153, 1155, 1158, 1164, 1220, 1223, 1224, 1227, 1228, 1232, 1269, 1272, 1273, 1329, 1366, 1369, 1369, 1377, 1415, 1425, 1441, 1443, 1465, 1467, 1469, 1471, 1471, 1473, 1474, 1476, 1476, 1488, 1514, 1520, 1522, 1569, 1594, 1600, 1621, 1632, 1641, 1648, 1747, 1749, 1756, 1759, 1768, 1770, 1773, 1776, 1788, 1808, 1836, 1840, 1866, 1920, 1968, 2305, 2307, 2309, 2361, 2364, 2381, 2384, 2388, 2392, 2403, 2406, 2415, 2433, 2435, 2437, 2444, 2447, 2448, 2451, 2472, 2474, 2480, 2482, 2482, 2486, 2489, 2492, 2492, 2494, 2500, 2503, 2504, 2507, 2509, 2519, 2519, 2524, 2525, 2527, 2531, 2534, 2545, 2562, 2562, 2565, 2570, 2575, 2576, 2579, 2600, 2602, 2608, 2610, 2611, 2613, 2614, 2616, 2617, 2620, 2620, 2622, 2626, 2631, 2632, 2635, 2637, 2649, 2652, 2654, 2654, 2662, 2676, 2689, 2691, 2693, 2699, 2701, 2701, 2703, 2705, 2707, 2728, 2730, 2736, 2738, 2739, 2741, 2745, 2748, 2757, 2759, 2761, 2763, 2765, 2768, 2768, 2784, 2784, 2790, 2799, 2817, 2819, 2821, 2828, 2831, 2832, 2835, 2856, 2858, 2864, 2866, 2867, 2870, 2873, 2876, 2883, 2887, 2888, 2891, 2893, 2902, 2903, 2908, 2909, 2911, 2913, 2918, 2927, 2946, 2947, 2949, 2954, 2958, 2960, 2962, 2965, 2969, 2970, 2972, 2972, 2974, 2975, 2979, 2980, 2984, 2986, 2990, 2997, 2999, 3001, 3006, 3010, 3014, 3016, 3018, 3021, 3031, 3031, 3047, 3055, 3073, 3075, 3077, 3084, 3086, 3088, 3090, 3112, 3114, 3123, 3125, 3129, 3134, 3140, 3142, 3144, 3146, 3149, 3157, 3158, 3168, 3169, 3174, 3183, 3202, 3203, 3205, 3212, 3214, 3216, 3218, 3240, 3242, 3251, 3253, 3257, 3262, 3268, 3270, 3272, 3274, 3277, 3285, 3286, 3294, 3294, 3296, 3297, 3302, 3311, 3330, 3331, 3333, 3340, 3342, 3344, 3346, 3368, 3370, 3385, 3390, 3395, 3398, 3400, 3402, 3405, 3415, 3415, 3424, 3425, 3430, 3439, 3458, 3459, 3461, 3478, 3482, 3505, 3507, 3515, 3517, 3517, 3520, 3526, 3530, 3530, 3535, 3540, 3542, 3542, 3544, 3551, 3570, 3571, 3585, 3642, 3648, 3662, 3664, 3673, 3713, 3714, 3716, 3716, 3719, 3720, 3722, 3722, 3725, 3725, 3732, 3735, 3737, 3743, 3745, 3747, 3749, 3749, 3751, 3751, 3754, 3755, 3757, 3769, 3771, 3773, 3776, 3780, 3782, 3782, 3784, 3789, 3792, 3801, 3804, 3805, 3840, 3840, 3864, 3865, 3872, 3881, 3893, 3893, 3895, 3895, 3897, 3897, 3902, 3911, 3913, 3946, 3953, 3972, 3974, 3979, 3984, 3991, 3993, 4028, 4038, 4038, 4096, 4129, 4131, 4135, 4137, 4138, 4140, 4146, 4150, 4153, 4160, 4169, 4176, 4185, 4256, 4293, 4304, 4342, 4352, 4441, 4447, 4514, 4520, 4601, 4608, 4614, 4616, 4678, 4680, 4680, 4682, 4685, 4688, 4694, 4696, 4696, 4698, 4701, 4704, 4742, 4744, 4744, 4746, 4749, 4752, 4782, 4784, 4784, 4786, 4789, 4792, 4798, 4800, 4800, 4802, 4805, 4808, 4814, 4816, 4822, 4824, 4846, 4848, 4878, 4880, 4880, 4882, 4885, 4888, 4894, 4896, 4934, 4936, 4954, 4969, 4977, 5024, 5108, 5121, 5740, 5743, 5750, 5761, 5786, 5792, 5866, 6016, 6099, 6112, 6121, 6160, 6169, 6176, 6263, 6272, 6313, 7680, 7835, 7840, 7929, 7936, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8023, 8025, 8025, 8027, 8027, 8029, 8029, 8031, 8061, 8064, 8116, 8118, 8124, 8126, 8126, 8130, 8132, 8134, 8140, 8144, 8147, 8150, 8155, 8160, 8172, 8178, 8180, 8182, 8188, 8255, 8256, 8319, 8319, 8400, 8412, 8417, 8417, 8450, 8450, 8455, 8455, 8458, 8467, 8469, 8469, 8473, 8477, 8484, 8484, 8486, 8486, 8488, 8488, 8490, 8493, 8495, 8497, 8499, 8505, 8544, 8579, 12293, 12295, 12321, 12335, 12337, 12341, 12344, 12346, 12353, 12436, 12441, 12442, 12445, 12446, 12449, 12542, 12549, 12588, 12593, 12686, 12704, 12727, 13312, 19893, 19968, 40869, 40960, 42124, 44032, 55203, 63744, 64045, 64256, 64262, 64275, 64279, 64285, 64296, 64298, 64310, 64312, 64316, 64318, 64318, 64320, 64321, 64323, 64324, 64326, 64433, 64467, 64829, 64848, 64911, 64914, 64967, 65008, 65019, 65056, 65059, 65075, 65076, 65101, 65103, 65136, 65138, 65140, 65140, 65142, 65276, 65296, 65305, 65313, 65338, 65343, 65343, 65345, 65370, 65381, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500,]; + var unicodeES5IdentifierStart = [170, 170, 181, 181, 186, 186, 192, 214, 216, 246, 248, 705, 710, 721, 736, 740, 748, 748, 750, 750, 880, 884, 886, 887, 890, 893, 902, 902, 904, 906, 908, 908, 910, 929, 931, 1013, 1015, 1153, 1162, 1319, 1329, 1366, 1369, 1369, 1377, 1415, 1488, 1514, 1520, 1522, 1568, 1610, 1646, 1647, 1649, 1747, 1749, 1749, 1765, 1766, 1774, 1775, 1786, 1788, 1791, 1791, 1808, 1808, 1810, 1839, 1869, 1957, 1969, 1969, 1994, 2026, 2036, 2037, 2042, 2042, 2048, 2069, 2074, 2074, 2084, 2084, 2088, 2088, 2112, 2136, 2208, 2208, 2210, 2220, 2308, 2361, 2365, 2365, 2384, 2384, 2392, 2401, 2417, 2423, 2425, 2431, 2437, 2444, 2447, 2448, 2451, 2472, 2474, 2480, 2482, 2482, 2486, 2489, 2493, 2493, 2510, 2510, 2524, 2525, 2527, 2529, 2544, 2545, 2565, 2570, 2575, 2576, 2579, 2600, 2602, 2608, 2610, 2611, 2613, 2614, 2616, 2617, 2649, 2652, 2654, 2654, 2674, 2676, 2693, 2701, 2703, 2705, 2707, 2728, 2730, 2736, 2738, 2739, 2741, 2745, 2749, 2749, 2768, 2768, 2784, 2785, 2821, 2828, 2831, 2832, 2835, 2856, 2858, 2864, 2866, 2867, 2869, 2873, 2877, 2877, 2908, 2909, 2911, 2913, 2929, 2929, 2947, 2947, 2949, 2954, 2958, 2960, 2962, 2965, 2969, 2970, 2972, 2972, 2974, 2975, 2979, 2980, 2984, 2986, 2990, 3001, 3024, 3024, 3077, 3084, 3086, 3088, 3090, 3112, 3114, 3123, 3125, 3129, 3133, 3133, 3160, 3161, 3168, 3169, 3205, 3212, 3214, 3216, 3218, 3240, 3242, 3251, 3253, 3257, 3261, 3261, 3294, 3294, 3296, 3297, 3313, 3314, 3333, 3340, 3342, 3344, 3346, 3386, 3389, 3389, 3406, 3406, 3424, 3425, 3450, 3455, 3461, 3478, 3482, 3505, 3507, 3515, 3517, 3517, 3520, 3526, 3585, 3632, 3634, 3635, 3648, 3654, 3713, 3714, 3716, 3716, 3719, 3720, 3722, 3722, 3725, 3725, 3732, 3735, 3737, 3743, 3745, 3747, 3749, 3749, 3751, 3751, 3754, 3755, 3757, 3760, 3762, 3763, 3773, 3773, 3776, 3780, 3782, 3782, 3804, 3807, 3840, 3840, 3904, 3911, 3913, 3948, 3976, 3980, 4096, 4138, 4159, 4159, 4176, 4181, 4186, 4189, 4193, 4193, 4197, 4198, 4206, 4208, 4213, 4225, 4238, 4238, 4256, 4293, 4295, 4295, 4301, 4301, 4304, 4346, 4348, 4680, 4682, 4685, 4688, 4694, 4696, 4696, 4698, 4701, 4704, 4744, 4746, 4749, 4752, 4784, 4786, 4789, 4792, 4798, 4800, 4800, 4802, 4805, 4808, 4822, 4824, 4880, 4882, 4885, 4888, 4954, 4992, 5007, 5024, 5108, 5121, 5740, 5743, 5759, 5761, 5786, 5792, 5866, 5870, 5872, 5888, 5900, 5902, 5905, 5920, 5937, 5952, 5969, 5984, 5996, 5998, 6000, 6016, 6067, 6103, 6103, 6108, 6108, 6176, 6263, 6272, 6312, 6314, 6314, 6320, 6389, 6400, 6428, 6480, 6509, 6512, 6516, 6528, 6571, 6593, 6599, 6656, 6678, 6688, 6740, 6823, 6823, 6917, 6963, 6981, 6987, 7043, 7072, 7086, 7087, 7098, 7141, 7168, 7203, 7245, 7247, 7258, 7293, 7401, 7404, 7406, 7409, 7413, 7414, 7424, 7615, 7680, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8023, 8025, 8025, 8027, 8027, 8029, 8029, 8031, 8061, 8064, 8116, 8118, 8124, 8126, 8126, 8130, 8132, 8134, 8140, 8144, 8147, 8150, 8155, 8160, 8172, 8178, 8180, 8182, 8188, 8305, 8305, 8319, 8319, 8336, 8348, 8450, 8450, 8455, 8455, 8458, 8467, 8469, 8469, 8473, 8477, 8484, 8484, 8486, 8486, 8488, 8488, 8490, 8493, 8495, 8505, 8508, 8511, 8517, 8521, 8526, 8526, 8544, 8584, 11264, 11310, 11312, 11358, 11360, 11492, 11499, 11502, 11506, 11507, 11520, 11557, 11559, 11559, 11565, 11565, 11568, 11623, 11631, 11631, 11648, 11670, 11680, 11686, 11688, 11694, 11696, 11702, 11704, 11710, 11712, 11718, 11720, 11726, 11728, 11734, 11736, 11742, 11823, 11823, 12293, 12295, 12321, 12329, 12337, 12341, 12344, 12348, 12353, 12438, 12445, 12447, 12449, 12538, 12540, 12543, 12549, 12589, 12593, 12686, 12704, 12730, 12784, 12799, 13312, 19893, 19968, 40908, 40960, 42124, 42192, 42237, 42240, 42508, 42512, 42527, 42538, 42539, 42560, 42606, 42623, 42647, 42656, 42735, 42775, 42783, 42786, 42888, 42891, 42894, 42896, 42899, 42912, 42922, 43000, 43009, 43011, 43013, 43015, 43018, 43020, 43042, 43072, 43123, 43138, 43187, 43250, 43255, 43259, 43259, 43274, 43301, 43312, 43334, 43360, 43388, 43396, 43442, 43471, 43471, 43520, 43560, 43584, 43586, 43588, 43595, 43616, 43638, 43642, 43642, 43648, 43695, 43697, 43697, 43701, 43702, 43705, 43709, 43712, 43712, 43714, 43714, 43739, 43741, 43744, 43754, 43762, 43764, 43777, 43782, 43785, 43790, 43793, 43798, 43808, 43814, 43816, 43822, 43968, 44002, 44032, 55203, 55216, 55238, 55243, 55291, 63744, 64109, 64112, 64217, 64256, 64262, 64275, 64279, 64285, 64285, 64287, 64296, 64298, 64310, 64312, 64316, 64318, 64318, 64320, 64321, 64323, 64324, 64326, 64433, 64467, 64829, 64848, 64911, 64914, 64967, 65008, 65019, 65136, 65140, 65142, 65276, 65313, 65338, 65345, 65370, 65382, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500,]; + var unicodeES5IdentifierPart = [170, 170, 181, 181, 186, 186, 192, 214, 216, 246, 248, 705, 710, 721, 736, 740, 748, 748, 750, 750, 768, 884, 886, 887, 890, 893, 902, 902, 904, 906, 908, 908, 910, 929, 931, 1013, 1015, 1153, 1155, 1159, 1162, 1319, 1329, 1366, 1369, 1369, 1377, 1415, 1425, 1469, 1471, 1471, 1473, 1474, 1476, 1477, 1479, 1479, 1488, 1514, 1520, 1522, 1552, 1562, 1568, 1641, 1646, 1747, 1749, 1756, 1759, 1768, 1770, 1788, 1791, 1791, 1808, 1866, 1869, 1969, 1984, 2037, 2042, 2042, 2048, 2093, 2112, 2139, 2208, 2208, 2210, 2220, 2276, 2302, 2304, 2403, 2406, 2415, 2417, 2423, 2425, 2431, 2433, 2435, 2437, 2444, 2447, 2448, 2451, 2472, 2474, 2480, 2482, 2482, 2486, 2489, 2492, 2500, 2503, 2504, 2507, 2510, 2519, 2519, 2524, 2525, 2527, 2531, 2534, 2545, 2561, 2563, 2565, 2570, 2575, 2576, 2579, 2600, 2602, 2608, 2610, 2611, 2613, 2614, 2616, 2617, 2620, 2620, 2622, 2626, 2631, 2632, 2635, 2637, 2641, 2641, 2649, 2652, 2654, 2654, 2662, 2677, 2689, 2691, 2693, 2701, 2703, 2705, 2707, 2728, 2730, 2736, 2738, 2739, 2741, 2745, 2748, 2757, 2759, 2761, 2763, 2765, 2768, 2768, 2784, 2787, 2790, 2799, 2817, 2819, 2821, 2828, 2831, 2832, 2835, 2856, 2858, 2864, 2866, 2867, 2869, 2873, 2876, 2884, 2887, 2888, 2891, 2893, 2902, 2903, 2908, 2909, 2911, 2915, 2918, 2927, 2929, 2929, 2946, 2947, 2949, 2954, 2958, 2960, 2962, 2965, 2969, 2970, 2972, 2972, 2974, 2975, 2979, 2980, 2984, 2986, 2990, 3001, 3006, 3010, 3014, 3016, 3018, 3021, 3024, 3024, 3031, 3031, 3046, 3055, 3073, 3075, 3077, 3084, 3086, 3088, 3090, 3112, 3114, 3123, 3125, 3129, 3133, 3140, 3142, 3144, 3146, 3149, 3157, 3158, 3160, 3161, 3168, 3171, 3174, 3183, 3202, 3203, 3205, 3212, 3214, 3216, 3218, 3240, 3242, 3251, 3253, 3257, 3260, 3268, 3270, 3272, 3274, 3277, 3285, 3286, 3294, 3294, 3296, 3299, 3302, 3311, 3313, 3314, 3330, 3331, 3333, 3340, 3342, 3344, 3346, 3386, 3389, 3396, 3398, 3400, 3402, 3406, 3415, 3415, 3424, 3427, 3430, 3439, 3450, 3455, 3458, 3459, 3461, 3478, 3482, 3505, 3507, 3515, 3517, 3517, 3520, 3526, 3530, 3530, 3535, 3540, 3542, 3542, 3544, 3551, 3570, 3571, 3585, 3642, 3648, 3662, 3664, 3673, 3713, 3714, 3716, 3716, 3719, 3720, 3722, 3722, 3725, 3725, 3732, 3735, 3737, 3743, 3745, 3747, 3749, 3749, 3751, 3751, 3754, 3755, 3757, 3769, 3771, 3773, 3776, 3780, 3782, 3782, 3784, 3789, 3792, 3801, 3804, 3807, 3840, 3840, 3864, 3865, 3872, 3881, 3893, 3893, 3895, 3895, 3897, 3897, 3902, 3911, 3913, 3948, 3953, 3972, 3974, 3991, 3993, 4028, 4038, 4038, 4096, 4169, 4176, 4253, 4256, 4293, 4295, 4295, 4301, 4301, 4304, 4346, 4348, 4680, 4682, 4685, 4688, 4694, 4696, 4696, 4698, 4701, 4704, 4744, 4746, 4749, 4752, 4784, 4786, 4789, 4792, 4798, 4800, 4800, 4802, 4805, 4808, 4822, 4824, 4880, 4882, 4885, 4888, 4954, 4957, 4959, 4992, 5007, 5024, 5108, 5121, 5740, 5743, 5759, 5761, 5786, 5792, 5866, 5870, 5872, 5888, 5900, 5902, 5908, 5920, 5940, 5952, 5971, 5984, 5996, 5998, 6000, 6002, 6003, 6016, 6099, 6103, 6103, 6108, 6109, 6112, 6121, 6155, 6157, 6160, 6169, 6176, 6263, 6272, 6314, 6320, 6389, 6400, 6428, 6432, 6443, 6448, 6459, 6470, 6509, 6512, 6516, 6528, 6571, 6576, 6601, 6608, 6617, 6656, 6683, 6688, 6750, 6752, 6780, 6783, 6793, 6800, 6809, 6823, 6823, 6912, 6987, 6992, 7001, 7019, 7027, 7040, 7155, 7168, 7223, 7232, 7241, 7245, 7293, 7376, 7378, 7380, 7414, 7424, 7654, 7676, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8023, 8025, 8025, 8027, 8027, 8029, 8029, 8031, 8061, 8064, 8116, 8118, 8124, 8126, 8126, 8130, 8132, 8134, 8140, 8144, 8147, 8150, 8155, 8160, 8172, 8178, 8180, 8182, 8188, 8204, 8205, 8255, 8256, 8276, 8276, 8305, 8305, 8319, 8319, 8336, 8348, 8400, 8412, 8417, 8417, 8421, 8432, 8450, 8450, 8455, 8455, 8458, 8467, 8469, 8469, 8473, 8477, 8484, 8484, 8486, 8486, 8488, 8488, 8490, 8493, 8495, 8505, 8508, 8511, 8517, 8521, 8526, 8526, 8544, 8584, 11264, 11310, 11312, 11358, 11360, 11492, 11499, 11507, 11520, 11557, 11559, 11559, 11565, 11565, 11568, 11623, 11631, 11631, 11647, 11670, 11680, 11686, 11688, 11694, 11696, 11702, 11704, 11710, 11712, 11718, 11720, 11726, 11728, 11734, 11736, 11742, 11744, 11775, 11823, 11823, 12293, 12295, 12321, 12335, 12337, 12341, 12344, 12348, 12353, 12438, 12441, 12442, 12445, 12447, 12449, 12538, 12540, 12543, 12549, 12589, 12593, 12686, 12704, 12730, 12784, 12799, 13312, 19893, 19968, 40908, 40960, 42124, 42192, 42237, 42240, 42508, 42512, 42539, 42560, 42607, 42612, 42621, 42623, 42647, 42655, 42737, 42775, 42783, 42786, 42888, 42891, 42894, 42896, 42899, 42912, 42922, 43000, 43047, 43072, 43123, 43136, 43204, 43216, 43225, 43232, 43255, 43259, 43259, 43264, 43309, 43312, 43347, 43360, 43388, 43392, 43456, 43471, 43481, 43520, 43574, 43584, 43597, 43600, 43609, 43616, 43638, 43642, 43643, 43648, 43714, 43739, 43741, 43744, 43759, 43762, 43766, 43777, 43782, 43785, 43790, 43793, 43798, 43808, 43814, 43816, 43822, 43968, 44010, 44012, 44013, 44016, 44025, 44032, 55203, 55216, 55238, 55243, 55291, 63744, 64109, 64112, 64217, 64256, 64262, 64275, 64279, 64285, 64296, 64298, 64310, 64312, 64316, 64318, 64318, 64320, 64321, 64323, 64324, 64326, 64433, 64467, 64829, 64848, 64911, 64914, 64967, 65008, 65019, 65024, 65039, 65056, 65062, 65075, 65076, 65101, 65103, 65136, 65140, 65142, 65276, 65296, 65305, 65313, 65338, 65343, 65343, 65345, 65370, 65382, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500,]; function lookupInUnicodeMap(code, map) { if (code < map[0]) { return false; @@ -6836,17 +2094,21 @@ var ts; return false; } function isUnicodeIdentifierStart(code, languageVersion) { - return languageVersion >= 1 ? lookupInUnicodeMap(code, unicodeES5IdentifierStart) : lookupInUnicodeMap(code, unicodeES3IdentifierStart); + return languageVersion >= 1 ? + lookupInUnicodeMap(code, unicodeES5IdentifierStart) : + lookupInUnicodeMap(code, unicodeES3IdentifierStart); } ts.isUnicodeIdentifierStart = isUnicodeIdentifierStart; function isUnicodeIdentifierPart(code, languageVersion) { - return languageVersion >= 1 ? lookupInUnicodeMap(code, unicodeES5IdentifierPart) : lookupInUnicodeMap(code, unicodeES3IdentifierPart); + return languageVersion >= 1 ? + lookupInUnicodeMap(code, unicodeES5IdentifierPart) : + lookupInUnicodeMap(code, unicodeES3IdentifierPart); } function makeReverseMap(source) { var result = []; - for (var name in source) { - if (source.hasOwnProperty(name)) { - result[source[name]] = name; + for (var _name in source) { + if (source.hasOwnProperty(_name)) { + result[source[_name]] = _name; } } return result; @@ -6913,7 +2175,9 @@ var ts; ts.getLineAndCharacterOfPosition = getLineAndCharacterOfPosition; var hasOwnProperty = Object.prototype.hasOwnProperty; function isWhiteSpace(ch) { - return ch === 32 || ch === 9 || ch === 11 || ch === 12 || ch === 160 || ch === 5760 || ch >= 8192 && ch <= 8203 || ch === 8239 || ch === 8287 || ch === 12288 || ch === 65279; + return ch === 32 || ch === 9 || ch === 11 || ch === 12 || + ch === 160 || ch === 5760 || ch >= 8192 && ch <= 8203 || + ch === 8239 || ch === 8287 || ch === 12288 || ch === 65279; } ts.isWhiteSpace = isWhiteSpace; function isLineBreak(ch) { @@ -7000,7 +2264,8 @@ var ts; return false; } } - return ch === 61 || text.charCodeAt(pos + mergeConflictMarkerLength) === 32; + return ch === 61 || + text.charCodeAt(pos + mergeConflictMarkerLength) === 32; } } return false; @@ -7019,8 +2284,8 @@ var ts; else { ts.Debug.assert(ch === 61); while (pos < len) { - var ch = text.charCodeAt(pos); - if (ch === 62 && isConflictMarkerTrivia(text, pos)) { + var _ch = text.charCodeAt(pos); + if (_ch === 62 && isConflictMarkerTrivia(text, pos)) { break; } pos++; @@ -7080,11 +2345,7 @@ var ts; if (collecting) { if (!result) result = []; - result.push({ - pos: startPos, - end: pos, - hasTrailingNewLine: hasTrailingNewLine - }); + result.push({ pos: startPos, end: pos, hasTrailingNewLine: hasTrailingNewLine }); } continue; } @@ -7111,11 +2372,15 @@ var ts; } ts.getTrailingCommentRanges = getTrailingCommentRanges; function isIdentifierStart(ch, languageVersion) { - return ch >= 65 && ch <= 90 || ch >= 97 && ch <= 122 || ch === 36 || ch === 95 || ch > 127 && isUnicodeIdentifierStart(ch, languageVersion); + return ch >= 65 && ch <= 90 || ch >= 97 && ch <= 122 || + ch === 36 || ch === 95 || + ch > 127 && isUnicodeIdentifierStart(ch, languageVersion); } ts.isIdentifierStart = isIdentifierStart; function isIdentifierPart(ch, languageVersion) { - return ch >= 65 && ch <= 90 || ch >= 97 && ch <= 122 || ch >= 48 && ch <= 57 || ch === 36 || ch === 95 || ch > 127 && isUnicodeIdentifierPart(ch, languageVersion); + return ch >= 65 && ch <= 90 || ch >= 97 && ch <= 122 || + ch >= 48 && ch <= 57 || ch === 36 || ch === 95 || + ch > 127 && isUnicodeIdentifierPart(ch, languageVersion); } ts.isIdentifierPart = isIdentifierPart; function createScanner(languageVersion, skipTrivia, text, onError) { @@ -7134,10 +2399,14 @@ var ts; } } function isIdentifierStart(ch) { - return ch >= 65 && ch <= 90 || ch >= 97 && ch <= 122 || ch === 36 || ch === 95 || ch > 127 && isUnicodeIdentifierStart(ch, languageVersion); + return ch >= 65 && ch <= 90 || ch >= 97 && ch <= 122 || + ch === 36 || ch === 95 || + ch > 127 && isUnicodeIdentifierStart(ch, languageVersion); } function isIdentifierPart(ch) { - return ch >= 65 && ch <= 90 || ch >= 97 && ch <= 122 || ch >= 48 && ch <= 57 || ch === 36 || ch === 95 || ch > 127 && isUnicodeIdentifierPart(ch, languageVersion); + return ch >= 65 && ch <= 90 || ch >= 97 && ch <= 122 || + ch >= 48 && ch <= 57 || ch === 36 || ch === 95 || + ch > 127 && isUnicodeIdentifierPart(ch, languageVersion); } function scanNumber() { var start = pos; @@ -7414,8 +2683,8 @@ var ts; return result; } function getIdentifierToken() { - var len = tokenValue.length; - if (len >= 2 && len <= 11) { + var _len = tokenValue.length; + if (_len >= 2 && _len <= 11) { var ch = tokenValue.charCodeAt(0); if (ch >= 97 && ch <= 122 && hasOwnProperty.call(textToToken, tokenValue)) { return token = textToToken[tokenValue]; @@ -7567,13 +2836,13 @@ var ts; pos += 2; var commentClosed = false; while (pos < len) { - var ch = text.charCodeAt(pos); - if (ch === 42 && text.charCodeAt(pos + 1) === 47) { + var _ch = text.charCodeAt(pos); + if (_ch === 42 && text.charCodeAt(pos + 1) === 47) { pos += 2; commentClosed = true; break; } - if (isLineBreak(ch)) { + if (isLineBreak(_ch)) { precedingLineBreak = true; } pos++; @@ -7606,22 +2875,22 @@ var ts; } else if (pos + 2 < len && (text.charCodeAt(pos + 1) === 66 || text.charCodeAt(pos + 1) === 98)) { pos += 2; - var value = scanBinaryOrOctalDigits(2); - if (value < 0) { + var _value = scanBinaryOrOctalDigits(2); + if (_value < 0) { error(ts.Diagnostics.Binary_digit_expected); - value = 0; + _value = 0; } - tokenValue = "" + value; + tokenValue = "" + _value; return token = 7; } else if (pos + 2 < len && (text.charCodeAt(pos + 1) === 79 || text.charCodeAt(pos + 1) === 111)) { pos += 2; - var value = scanBinaryOrOctalDigits(8); - if (value < 0) { + var _value_1 = scanBinaryOrOctalDigits(8); + if (_value_1 < 0) { error(ts.Diagnostics.Octal_digit_expected); - value = 0; + _value_1 = 0; } - tokenValue = "" + value; + tokenValue = "" + _value_1; return token = 7; } if (pos + 1 < len && isOctalDigit(text.charCodeAt(pos + 1))) { @@ -7720,10 +2989,10 @@ var ts; case 126: return pos++, token = 47; case 92: - var ch = peekUnicodeEscape(); - if (ch >= 0 && isIdentifierStart(ch)) { + var cookedChar = peekUnicodeEscape(); + if (cookedChar >= 0 && isIdentifierStart(cookedChar)) { pos += 6; - tokenValue = String.fromCharCode(ch) + scanIdentifierParts(); + tokenValue = String.fromCharCode(cookedChar) + scanIdentifierParts(); return token = getIdentifierToken(); } error(ts.Diagnostics.Invalid_character); @@ -7860,39 +3129,17 @@ var ts; } setText(text); return { - getStartPos: function () { - return startPos; - }, - getTextPos: function () { - return pos; - }, - getToken: function () { - return token; - }, - getTokenPos: function () { - return tokenPos; - }, - getTokenText: function () { - return text.substring(tokenPos, pos); - }, - getTokenValue: function () { - return tokenValue; - }, - hasExtendedUnicodeEscape: function () { - return hasExtendedUnicodeEscape; - }, - hasPrecedingLineBreak: function () { - return precedingLineBreak; - }, - isIdentifier: function () { - return token === 64 || token > 100; - }, - isReservedWord: function () { - return token >= 65 && token <= 100; - }, - isUnterminated: function () { - return tokenIsUnterminated; - }, + getStartPos: function () { return startPos; }, + getTextPos: function () { return pos; }, + getToken: function () { return token; }, + getTokenPos: function () { return tokenPos; }, + getTokenText: function () { return text.substring(tokenPos, pos); }, + getTokenValue: function () { return tokenValue; }, + hasExtendedUnicodeEscape: function () { return hasExtendedUnicodeEscape; }, + hasPrecedingLineBreak: function () { return precedingLineBreak; }, + isIdentifier: function () { return token === 64 || token > 100; }, + isReservedWord: function () { return token >= 65 && token <= 100; }, + isUnterminated: function () { return tokenIsUnterminated; }, reScanGreaterToken: reScanGreaterToken, reScanSlashToken: reScanSlashToken, reScanTemplateToken: reScanTemplateToken, @@ -7909,8 +3156,8 @@ var ts; (function (ts) { function getDeclarationOfKind(symbol, kind) { var declarations = symbol.declarations; - for (var i = 0; i < declarations.length; i++) { - var declaration = declarations[i]; + for (var _i = 0, _n = declarations.length; _i < _n; _i++) { + var declaration = declarations[_i]; if (declaration.kind === kind) { return declaration; } @@ -7922,13 +3169,9 @@ var ts; function getSingleLineStringWriter() { if (stringWriters.length == 0) { var str = ""; - var writeText = function (text) { - return str += text; - }; + var writeText = function (text) { return str += text; }; return { - string: function () { - return str; - }, + string: function () { return str; }, writeKeyword: writeText, writeOperator: writeText, writePunctuation: writeText, @@ -7936,18 +3179,11 @@ var ts; writeStringLiteral: writeText, writeParameter: writeText, writeSymbol: writeText, - writeLine: function () { - return str += " "; - }, - increaseIndent: function () { - }, - decreaseIndent: function () { - }, - clear: function () { - return str = ""; - }, - trackSymbol: function () { - } + writeLine: function () { return str += " "; }, + increaseIndent: function () { }, + decreaseIndent: function () { }, + clear: function () { return str = ""; }, + trackSymbol: function () { } }; } return stringWriters.pop(); @@ -7969,7 +3205,8 @@ var ts; ts.containsParseError = containsParseError; function aggregateChildData(node) { if (!(node.parserContextFlags & 64)) { - var thisNodeOrAnySubNodesHasError = ((node.parserContextFlags & 16) !== 0) || ts.forEachChild(node, containsParseError); + var thisNodeOrAnySubNodesHasError = ((node.parserContextFlags & 16) !== 0) || + ts.forEachChild(node, containsParseError); if (thisNodeOrAnySubNodesHasError) { node.parserContextFlags |= 32; } @@ -8048,7 +3285,8 @@ var ts; } ts.makeIdentifierFromModuleName = makeIdentifierFromModuleName; function isBlockOrCatchScoped(declaration) { - return (getCombinedNodeFlags(declaration) & 12288) !== 0 || isCatchClauseVariableDeclaration(declaration); + return (getCombinedNodeFlags(declaration) & 12288) !== 0 || + isCatchClauseVariableDeclaration(declaration); } ts.isBlockOrCatchScoped = isBlockOrCatchScoped; function getEnclosingBlockScopeContainer(node) { @@ -8076,7 +3314,10 @@ var ts; } ts.getEnclosingBlockScopeContainer = getEnclosingBlockScopeContainer; function isCatchClauseVariableDeclaration(declaration) { - return declaration && declaration.kind === 193 && declaration.parent && declaration.parent.kind === 217; + return declaration && + declaration.kind === 193 && + declaration.parent && + declaration.parent.kind === 217; } ts.isCatchClauseVariableDeclaration = isCatchClauseVariableDeclaration; function declarationNameToString(name) { @@ -8128,7 +3369,9 @@ var ts; if (errorNode === undefined) { return getSpanOfTokenAtPosition(sourceFile, node.pos); } - var pos = nodeIsMissing(errorNode) ? errorNode.pos : ts.skipTrivia(sourceFile.text, errorNode.pos); + var pos = nodeIsMissing(errorNode) + ? errorNode.pos + : ts.skipTrivia(sourceFile.text, errorNode.pos); return createTextSpanFromBounds(pos, errorNode.end); } ts.getErrorSpanForNode = getErrorSpanForNode; @@ -8191,7 +3434,9 @@ var ts; function getJsDocComments(node, sourceFileOfNode) { return ts.filter(getLeadingCommentRangesOfNode(node, sourceFileOfNode), isJsDocComment); function isJsDocComment(comment) { - return sourceFileOfNode.text.charCodeAt(comment.pos + 1) === 42 && sourceFileOfNode.text.charCodeAt(comment.pos + 2) === 42 && sourceFileOfNode.text.charCodeAt(comment.pos + 3) !== 47; + return sourceFileOfNode.text.charCodeAt(comment.pos + 1) === 42 && + sourceFileOfNode.text.charCodeAt(comment.pos + 2) === 42 && + sourceFileOfNode.text.charCodeAt(comment.pos + 3) !== 47; } } ts.getJsDocComments = getJsDocComments; @@ -8394,8 +3639,8 @@ var ts; } case 7: case 8: - var parent = node.parent; - switch (parent.kind) { + var _parent = node.parent; + switch (_parent.kind) { case 193: case 128: case 130: @@ -8403,7 +3648,7 @@ var ts; case 220: case 218: case 150: - return parent.initializer === node; + return _parent.initializer === node; case 177: case 178: case 179: @@ -8414,22 +3659,25 @@ var ts; case 214: case 190: case 188: - return parent.expression === node; + return _parent.expression === node; case 181: - var forStatement = parent; - return (forStatement.initializer === node && forStatement.initializer.kind !== 194) || forStatement.condition === node || forStatement.iterator === node; + var forStatement = _parent; + return (forStatement.initializer === node && forStatement.initializer.kind !== 194) || + forStatement.condition === node || + forStatement.iterator === node; case 182: case 183: - var forInStatement = parent; - return (forInStatement.initializer === node && forInStatement.initializer.kind !== 194) || forInStatement.expression === node; + var forInStatement = _parent; + return (forInStatement.initializer === node && forInStatement.initializer.kind !== 194) || + forInStatement.expression === node; case 158: - return node === parent.expression; + return node === _parent.expression; case 173: - return node === parent.expression; + return node === _parent.expression; case 126: - return node === parent.expression; + return node === _parent.expression; default: - if (isExpression(parent)) { + if (isExpression(_parent)) { return true; } } @@ -8439,7 +3687,8 @@ var ts; ts.isExpression = isExpression; function isInstantiatedModule(node, preserveConstEnums) { var moduleState = ts.getModuleInstanceState(node); - return moduleState === 1 || (preserveConstEnums && moduleState === 2); + return moduleState === 1 || + (preserveConstEnums && moduleState === 2); } ts.isInstantiatedModule = isInstantiatedModule; function isExternalModuleImportEqualsDeclaration(node) { @@ -8587,14 +3836,14 @@ var ts; if (name.kind !== 64 && name.kind !== 8 && name.kind !== 7) { return false; } - var parent = name.parent; - if (parent.kind === 208 || parent.kind === 212) { - if (parent.propertyName) { + var _parent = name.parent; + if (_parent.kind === 208 || _parent.kind === 212) { + if (_parent.propertyName) { return true; } } - if (isDeclaration(parent)) { - return parent.name === name; + if (isDeclaration(_parent)) { + return _parent.name === name; } return false; } @@ -8616,9 +3865,10 @@ var ts; ts.getInterfaceBaseTypeNodes = getInterfaceBaseTypeNodes; function getHeritageClause(clauses, kind) { if (clauses) { - for (var i = 0, n = clauses.length; i < n; i++) { - if (clauses[i].token === kind) { - return clauses[i]; + for (var _i = 0, _n = clauses.length; _i < _n; _i++) { + var clause = clauses[_i]; + if (clause.token === kind) { + return clause; } } } @@ -8686,7 +3936,9 @@ var ts; } ts.isTrivia = isTrivia; function hasDynamicName(declaration) { - return declaration.name && declaration.name.kind === 126 && !isWellKnownSymbolSyntactically(declaration.name.expression); + return declaration.name && + declaration.name.kind === 126 && + !isWellKnownSymbolSyntactically(declaration.name.expression); } ts.hasDynamicName = hasDynamicName; function isWellKnownSymbolSyntactically(node) { @@ -8790,10 +4042,7 @@ var ts; if (length < 0) { throw new Error("length < 0"); } - return { - start: start, - length: length - }; + return { start: start, length: length }; } ts.createTextSpan = createTextSpan; function createTextSpanFromBounds(start, end) { @@ -8812,10 +4061,7 @@ var ts; if (newLength < 0) { throw new Error("newLength < 0"); } - return { - span: span, - newLength: newLength - }; + return { span: span, newLength: newLength }; } ts.createTextChangeRange = createTextChangeRange; ts.unchangedTextChangeRange = createTextChangeRange(createTextSpan(0, 0), 0); @@ -8863,7 +4109,7 @@ var ts; ts.createSynthesizedNode = createSynthesizedNode; function generateUniqueName(baseName, isExistingName) { if (baseName.charCodeAt(0) !== 95) { - var baseName = "_" + baseName; + baseName = "_" + baseName; if (!isExistingName(baseName)) { return baseName; } @@ -8873,9 +4119,9 @@ var ts; } var i = 1; while (true) { - var name = baseName + i; - if (!isExistingName(name)) { - return name; + var _name = baseName + i; + if (!isExistingName(_name)) { + return _name; } i++; } @@ -8976,9 +4222,9 @@ var ts; } var nonAsciiCharacters = /[^\u0000-\u007F]/g; function escapeNonAsciiCharacters(s) { - return nonAsciiCharacters.test(s) ? s.replace(nonAsciiCharacters, function (c) { - return get16BitUnicodeEscapeSequence(c.charCodeAt(0)); - }) : s; + return nonAsciiCharacters.test(s) ? + s.replace(nonAsciiCharacters, function (c) { return get16BitUnicodeEscapeSequence(c.charCodeAt(0)); }) : + s; } ts.escapeNonAsciiCharacters = escapeNonAsciiCharacters; })(ts || (ts = {})); @@ -9006,8 +4252,9 @@ var ts; } function visitEachNode(cbNode, nodes) { if (nodes) { - for (var i = 0, len = nodes.length; i < len; i++) { - var result = cbNode(nodes[i]); + for (var _i = 0, _n = nodes.length; _i < _n; _i++) { + var node = nodes[_i]; + var result = cbNode(node); if (result) { return result; } @@ -9022,9 +4269,12 @@ var ts; var cbNodes = cbNodeArray || cbNode; switch (node.kind) { case 125: - return visitNode(cbNode, node.left) || visitNode(cbNode, node.right); + return visitNode(cbNode, node.left) || + visitNode(cbNode, node.right); case 127: - return visitNode(cbNode, node.name) || visitNode(cbNode, node.constraint) || visitNode(cbNode, node.expression); + return visitNode(cbNode, node.name) || + visitNode(cbNode, node.constraint) || + visitNode(cbNode, node.expression); case 128: case 130: case 129: @@ -9032,13 +4282,22 @@ var ts; case 219: case 193: case 150: - return visitNodes(cbNodes, node.modifiers) || visitNode(cbNode, node.propertyName) || visitNode(cbNode, node.dotDotDotToken) || visitNode(cbNode, node.name) || visitNode(cbNode, node.questionToken) || visitNode(cbNode, node.type) || visitNode(cbNode, node.initializer); + return visitNodes(cbNodes, node.modifiers) || + visitNode(cbNode, node.propertyName) || + visitNode(cbNode, node.dotDotDotToken) || + visitNode(cbNode, node.name) || + visitNode(cbNode, node.questionToken) || + visitNode(cbNode, node.type) || + visitNode(cbNode, node.initializer); case 140: case 141: case 136: case 137: case 138: - return visitNodes(cbNodes, node.modifiers) || visitNodes(cbNodes, node.typeParameters) || visitNodes(cbNodes, node.parameters) || visitNode(cbNode, node.type); + return visitNodes(cbNodes, node.modifiers) || + visitNodes(cbNodes, node.typeParameters) || + visitNodes(cbNodes, node.parameters) || + visitNode(cbNode, node.type); case 132: case 131: case 133: @@ -9047,9 +4306,17 @@ var ts; case 160: case 195: case 161: - return visitNodes(cbNodes, node.modifiers) || visitNode(cbNode, node.asteriskToken) || visitNode(cbNode, node.name) || visitNode(cbNode, node.questionToken) || visitNodes(cbNodes, node.typeParameters) || visitNodes(cbNodes, node.parameters) || visitNode(cbNode, node.type) || visitNode(cbNode, node.body); + return visitNodes(cbNodes, node.modifiers) || + visitNode(cbNode, node.asteriskToken) || + visitNode(cbNode, node.name) || + visitNode(cbNode, node.questionToken) || + visitNodes(cbNodes, node.typeParameters) || + visitNodes(cbNodes, node.parameters) || + visitNode(cbNode, node.type) || + visitNode(cbNode, node.body); case 139: - return visitNode(cbNode, node.typeName) || visitNodes(cbNodes, node.typeArguments); + return visitNode(cbNode, node.typeName) || + visitNodes(cbNodes, node.typeArguments); case 142: return visitNode(cbNode, node.exprName); case 143: @@ -9070,16 +4337,23 @@ var ts; case 152: return visitNodes(cbNodes, node.properties); case 153: - return visitNode(cbNode, node.expression) || visitNode(cbNode, node.dotToken) || visitNode(cbNode, node.name); + return visitNode(cbNode, node.expression) || + visitNode(cbNode, node.dotToken) || + visitNode(cbNode, node.name); case 154: - return visitNode(cbNode, node.expression) || visitNode(cbNode, node.argumentExpression); + return visitNode(cbNode, node.expression) || + visitNode(cbNode, node.argumentExpression); case 155: case 156: - return visitNode(cbNode, node.expression) || visitNodes(cbNodes, node.typeArguments) || visitNodes(cbNodes, node.arguments); + return visitNode(cbNode, node.expression) || + visitNodes(cbNodes, node.typeArguments) || + visitNodes(cbNodes, node.arguments); case 157: - return visitNode(cbNode, node.tag) || visitNode(cbNode, node.template); + return visitNode(cbNode, node.tag) || + visitNode(cbNode, node.template); case 158: - return visitNode(cbNode, node.type) || visitNode(cbNode, node.expression); + return visitNode(cbNode, node.type) || + visitNode(cbNode, node.expression); case 159: return visitNode(cbNode, node.expression); case 162: @@ -9091,91 +4365,142 @@ var ts; case 165: return visitNode(cbNode, node.operand); case 170: - return visitNode(cbNode, node.asteriskToken) || visitNode(cbNode, node.expression); + return visitNode(cbNode, node.asteriskToken) || + visitNode(cbNode, node.expression); case 166: return visitNode(cbNode, node.operand); case 167: - return visitNode(cbNode, node.left) || visitNode(cbNode, node.operatorToken) || visitNode(cbNode, node.right); + return visitNode(cbNode, node.left) || + visitNode(cbNode, node.operatorToken) || + visitNode(cbNode, node.right); case 168: - return visitNode(cbNode, node.condition) || visitNode(cbNode, node.questionToken) || visitNode(cbNode, node.whenTrue) || visitNode(cbNode, node.colonToken) || visitNode(cbNode, node.whenFalse); + return visitNode(cbNode, node.condition) || + visitNode(cbNode, node.questionToken) || + visitNode(cbNode, node.whenTrue) || + visitNode(cbNode, node.colonToken) || + visitNode(cbNode, node.whenFalse); case 171: return visitNode(cbNode, node.expression); case 174: case 201: return visitNodes(cbNodes, node.statements); case 221: - return visitNodes(cbNodes, node.statements) || visitNode(cbNode, node.endOfFileToken); + return visitNodes(cbNodes, node.statements) || + visitNode(cbNode, node.endOfFileToken); case 175: - return visitNodes(cbNodes, node.modifiers) || visitNode(cbNode, node.declarationList); + return visitNodes(cbNodes, node.modifiers) || + visitNode(cbNode, node.declarationList); case 194: return visitNodes(cbNodes, node.declarations); case 177: return visitNode(cbNode, node.expression); case 178: - return visitNode(cbNode, node.expression) || visitNode(cbNode, node.thenStatement) || visitNode(cbNode, node.elseStatement); + return visitNode(cbNode, node.expression) || + visitNode(cbNode, node.thenStatement) || + visitNode(cbNode, node.elseStatement); case 179: - return visitNode(cbNode, node.statement) || visitNode(cbNode, node.expression); + return visitNode(cbNode, node.statement) || + visitNode(cbNode, node.expression); case 180: - return visitNode(cbNode, node.expression) || visitNode(cbNode, node.statement); + return visitNode(cbNode, node.expression) || + visitNode(cbNode, node.statement); case 181: - return visitNode(cbNode, node.initializer) || visitNode(cbNode, node.condition) || visitNode(cbNode, node.iterator) || visitNode(cbNode, node.statement); + return visitNode(cbNode, node.initializer) || + visitNode(cbNode, node.condition) || + visitNode(cbNode, node.iterator) || + visitNode(cbNode, node.statement); case 182: - return visitNode(cbNode, node.initializer) || visitNode(cbNode, node.expression) || visitNode(cbNode, node.statement); + return visitNode(cbNode, node.initializer) || + visitNode(cbNode, node.expression) || + visitNode(cbNode, node.statement); case 183: - return visitNode(cbNode, node.initializer) || visitNode(cbNode, node.expression) || visitNode(cbNode, node.statement); + return visitNode(cbNode, node.initializer) || + visitNode(cbNode, node.expression) || + visitNode(cbNode, node.statement); case 184: case 185: return visitNode(cbNode, node.label); case 186: return visitNode(cbNode, node.expression); case 187: - return visitNode(cbNode, node.expression) || visitNode(cbNode, node.statement); + return visitNode(cbNode, node.expression) || + visitNode(cbNode, node.statement); case 188: - return visitNode(cbNode, node.expression) || visitNode(cbNode, node.caseBlock); + return visitNode(cbNode, node.expression) || + visitNode(cbNode, node.caseBlock); case 202: return visitNodes(cbNodes, node.clauses); case 214: - return visitNode(cbNode, node.expression) || visitNodes(cbNodes, node.statements); + return visitNode(cbNode, node.expression) || + visitNodes(cbNodes, node.statements); case 215: return visitNodes(cbNodes, node.statements); case 189: - return visitNode(cbNode, node.label) || visitNode(cbNode, node.statement); + return visitNode(cbNode, node.label) || + visitNode(cbNode, node.statement); case 190: return visitNode(cbNode, node.expression); case 191: - return visitNode(cbNode, node.tryBlock) || visitNode(cbNode, node.catchClause) || visitNode(cbNode, node.finallyBlock); + return visitNode(cbNode, node.tryBlock) || + visitNode(cbNode, node.catchClause) || + visitNode(cbNode, node.finallyBlock); case 217: - return visitNode(cbNode, node.variableDeclaration) || visitNode(cbNode, node.block); + return visitNode(cbNode, node.variableDeclaration) || + visitNode(cbNode, node.block); case 196: - return visitNodes(cbNodes, node.modifiers) || visitNode(cbNode, node.name) || visitNodes(cbNodes, node.typeParameters) || visitNodes(cbNodes, node.heritageClauses) || visitNodes(cbNodes, node.members); + return visitNodes(cbNodes, node.modifiers) || + visitNode(cbNode, node.name) || + visitNodes(cbNodes, node.typeParameters) || + visitNodes(cbNodes, node.heritageClauses) || + visitNodes(cbNodes, node.members); case 197: - return visitNodes(cbNodes, node.modifiers) || visitNode(cbNode, node.name) || visitNodes(cbNodes, node.typeParameters) || visitNodes(cbNodes, node.heritageClauses) || visitNodes(cbNodes, node.members); + return visitNodes(cbNodes, node.modifiers) || + visitNode(cbNode, node.name) || + visitNodes(cbNodes, node.typeParameters) || + visitNodes(cbNodes, node.heritageClauses) || + visitNodes(cbNodes, node.members); case 198: - return visitNodes(cbNodes, node.modifiers) || visitNode(cbNode, node.name) || visitNode(cbNode, node.type); + return visitNodes(cbNodes, node.modifiers) || + visitNode(cbNode, node.name) || + visitNode(cbNode, node.type); case 199: - return visitNodes(cbNodes, node.modifiers) || visitNode(cbNode, node.name) || visitNodes(cbNodes, node.members); + return visitNodes(cbNodes, node.modifiers) || + visitNode(cbNode, node.name) || + visitNodes(cbNodes, node.members); case 220: - return visitNode(cbNode, node.name) || visitNode(cbNode, node.initializer); + return visitNode(cbNode, node.name) || + visitNode(cbNode, node.initializer); case 200: - return visitNodes(cbNodes, node.modifiers) || visitNode(cbNode, node.name) || visitNode(cbNode, node.body); + return visitNodes(cbNodes, node.modifiers) || + visitNode(cbNode, node.name) || + visitNode(cbNode, node.body); case 203: - return visitNodes(cbNodes, node.modifiers) || visitNode(cbNode, node.name) || visitNode(cbNode, node.moduleReference); + return visitNodes(cbNodes, node.modifiers) || + visitNode(cbNode, node.name) || + visitNode(cbNode, node.moduleReference); case 204: - return visitNodes(cbNodes, node.modifiers) || visitNode(cbNode, node.importClause) || visitNode(cbNode, node.moduleSpecifier); + return visitNodes(cbNodes, node.modifiers) || + visitNode(cbNode, node.importClause) || + visitNode(cbNode, node.moduleSpecifier); case 205: - return visitNode(cbNode, node.name) || visitNode(cbNode, node.namedBindings); + return visitNode(cbNode, node.name) || + visitNode(cbNode, node.namedBindings); case 206: return visitNode(cbNode, node.name); case 207: case 211: return visitNodes(cbNodes, node.elements); case 210: - return visitNodes(cbNodes, node.modifiers) || visitNode(cbNode, node.exportClause) || visitNode(cbNode, node.moduleSpecifier); + return visitNodes(cbNodes, node.modifiers) || + visitNode(cbNode, node.exportClause) || + visitNode(cbNode, node.moduleSpecifier); case 208: case 212: - return visitNode(cbNode, node.propertyName) || visitNode(cbNode, node.name); + return visitNode(cbNode, node.propertyName) || + visitNode(cbNode, node.name); case 209: - return visitNodes(cbNodes, node.modifiers) || visitNode(cbNode, node.expression); + return visitNodes(cbNodes, node.modifiers) || + visitNode(cbNode, node.expression); case 169: return visitNode(cbNode, node.head) || visitNodes(cbNodes, node.templateSpans); case 173: @@ -9222,84 +4547,55 @@ var ts; })(Tristate || (Tristate = {})); function parsingContextErrors(context) { switch (context) { - case 0: - return ts.Diagnostics.Declaration_or_statement_expected; - case 1: - return ts.Diagnostics.Declaration_or_statement_expected; - case 2: - return ts.Diagnostics.Statement_expected; - case 3: - return ts.Diagnostics.case_or_default_expected; - case 4: - return ts.Diagnostics.Statement_expected; - case 5: - return ts.Diagnostics.Property_or_signature_expected; - case 6: - return ts.Diagnostics.Unexpected_token_A_constructor_method_accessor_or_property_was_expected; - case 7: - return ts.Diagnostics.Enum_member_expected; - case 8: - return ts.Diagnostics.Type_reference_expected; - case 9: - return ts.Diagnostics.Variable_declaration_expected; - case 10: - return ts.Diagnostics.Property_destructuring_pattern_expected; - case 11: - return ts.Diagnostics.Array_element_destructuring_pattern_expected; - case 12: - return ts.Diagnostics.Argument_expression_expected; - case 13: - return ts.Diagnostics.Property_assignment_expected; - case 14: - return ts.Diagnostics.Expression_or_comma_expected; - case 15: - return ts.Diagnostics.Parameter_declaration_expected; - case 16: - return ts.Diagnostics.Type_parameter_declaration_expected; - case 17: - return ts.Diagnostics.Type_argument_expected; - case 18: - return ts.Diagnostics.Type_expected; - case 19: - return ts.Diagnostics.Unexpected_token_expected; - case 20: - return ts.Diagnostics.Identifier_expected; + case 0: return ts.Diagnostics.Declaration_or_statement_expected; + case 1: return ts.Diagnostics.Declaration_or_statement_expected; + case 2: return ts.Diagnostics.Statement_expected; + case 3: return ts.Diagnostics.case_or_default_expected; + case 4: return ts.Diagnostics.Statement_expected; + case 5: return ts.Diagnostics.Property_or_signature_expected; + case 6: return ts.Diagnostics.Unexpected_token_A_constructor_method_accessor_or_property_was_expected; + case 7: return ts.Diagnostics.Enum_member_expected; + case 8: return ts.Diagnostics.Type_reference_expected; + case 9: return ts.Diagnostics.Variable_declaration_expected; + case 10: return ts.Diagnostics.Property_destructuring_pattern_expected; + case 11: return ts.Diagnostics.Array_element_destructuring_pattern_expected; + case 12: return ts.Diagnostics.Argument_expression_expected; + case 13: return ts.Diagnostics.Property_assignment_expected; + case 14: return ts.Diagnostics.Expression_or_comma_expected; + case 15: return ts.Diagnostics.Parameter_declaration_expected; + case 16: return ts.Diagnostics.Type_parameter_declaration_expected; + case 17: return ts.Diagnostics.Type_argument_expected; + case 18: return ts.Diagnostics.Type_expected; + case 19: return ts.Diagnostics.Unexpected_token_expected; + case 20: return ts.Diagnostics.Identifier_expected; } } ; function modifierToFlag(token) { switch (token) { - case 109: - return 128; - case 108: - return 16; - case 107: - return 64; - case 106: - return 32; - case 77: - return 1; - case 114: - return 2; - case 69: - return 8192; - case 72: - return 256; + case 109: return 128; + case 108: return 16; + case 107: return 64; + case 106: return 32; + case 77: return 1; + case 114: return 2; + case 69: return 8192; + case 72: return 256; } return 0; } ts.modifierToFlag = modifierToFlag; function fixupParentReferences(sourceFile) { - var parent = sourceFile; + var _parent = sourceFile; forEachChild(sourceFile, visitNode); return; function visitNode(n) { - if (n.parent !== parent) { - n.parent = parent; - var saveParent = parent; - parent = n; + if (n.parent !== _parent) { + n.parent = _parent; + var saveParent = _parent; + _parent = n; forEachChild(n, visitNode); - parent = saveParent; + _parent = saveParent; } } } @@ -9337,8 +4633,9 @@ var ts; array._children = undefined; array.pos += delta; array.end += delta; - for (var i = 0, n = array.length; i < n; i++) { - visitNode(array[i]); + for (var _i = 0, _n = array.length; _i < _n; _i++) { + var node = array[_i]; + visitNode(node); } } } @@ -9400,8 +4697,9 @@ var ts; array.intersectsChange = true; array._children = undefined; adjustIntersectingElement(array, changeStart, changeRangeOldEnd, changeRangeNewEnd, delta); - for (var i = 0, n = array.length; i < n; i++) { - visitNode(array[i]); + for (var _i = 0, _n = array.length; _i < _n; _i++) { + var node = array[_i]; + visitNode(node); } return; } @@ -9515,7 +4813,8 @@ var ts; } ts.updateSourceFile = updateSourceFile; function isEvalOrArgumentsIdentifier(node) { - return node.kind === 64 && (node.text === "eval" || node.text === "arguments"); + return node.kind === 64 && + (node.text === "eval" || node.text === "arguments"); } ts.isEvalOrArgumentsIdentifier = isEvalOrArgumentsIdentifier; function isUseStrictPrologueDirective(sourceFile, node) { @@ -9697,8 +4996,8 @@ var ts; } function parseErrorAtCurrentToken(message, arg0) { var start = scanner.getTokenPos(); - var length = scanner.getTextPos() - start; - parseErrorAtPosition(start, length, message, arg0); + var _length = scanner.getTextPos() - start; + parseErrorAtPosition(start, _length, message, arg0); } function parseErrorAtPosition(start, length, message, arg0) { var lastError = ts.lastOrUndefined(sourceFile.parseDiagnostics); @@ -9737,7 +5036,9 @@ var ts; var saveParseDiagnosticsLength = sourceFile.parseDiagnostics.length; var saveParseErrorBeforeNextFinishedNode = parseErrorBeforeNextFinishedNode; var saveContextFlags = contextFlags; - var result = isLookAhead ? scanner.lookAhead(callback) : scanner.tryScan(callback); + var result = isLookAhead + ? scanner.lookAhead(callback) + : scanner.tryScan(callback); ts.Debug.assert(saveContextFlags === contextFlags); if (!result || isLookAhead) { token = saveToken; @@ -9788,7 +5089,8 @@ var ts; return undefined; } function parseExpectedToken(t, reportAtCurrentPosition, diagnosticMessage, arg0) { - return parseOptionalToken(t) || createMissingNode(t, reportAtCurrentPosition, diagnosticMessage, arg0); + return parseOptionalToken(t) || + createMissingNode(t, reportAtCurrentPosition, diagnosticMessage, arg0); } function parseTokenNode() { var node = createNode(token); @@ -9865,7 +5167,9 @@ var ts; return createIdentifier(isIdentifierOrKeyword()); } function isLiteralPropertyName() { - return isIdentifierOrKeyword() || token === 8 || token === 7; + return isIdentifierOrKeyword() || + token === 8 || + token === 7; } function parsePropertyName() { if (token === 8 || token === 7) { @@ -9918,7 +5222,10 @@ var ts; return canFollowModifier(); } function canFollowModifier() { - return token === 18 || token === 14 || token === 35 || isLiteralPropertyName(); + return token === 18 + || token === 14 + || token === 35 + || isLiteralPropertyName(); } function nextTokenIsClassOrFunction() { nextToken(); @@ -9976,7 +5283,8 @@ var ts; return isIdentifier(); } function isNotHeritageClauseTypeName() { - if (token === 102 || token === 78) { + if (token === 102 || + token === 78) { return lookAhead(nextTokenIsIdentifier); } return false; @@ -10357,7 +5665,9 @@ var ts; var tokenPos = scanner.getTokenPos(); nextToken(); finishNode(node); - if (node.kind === 7 && sourceText.charCodeAt(tokenPos) === 48 && ts.isOctalDigit(sourceText.charCodeAt(tokenPos + 1))) { + if (node.kind === 7 + && sourceText.charCodeAt(tokenPos) === 48 + && ts.isOctalDigit(sourceText.charCodeAt(tokenPos + 1))) { node.flags |= 16384; } return node; @@ -10396,7 +5706,9 @@ var ts; } function parseParameterType() { if (parseOptional(51)) { - return token === 8 ? parseLiteralNode(true) : parseType(); + return token === 8 + ? parseLiteralNode(true) + : parseType(); } return undefined; } @@ -10511,11 +5823,11 @@ var ts; } function parsePropertyOrMethodSignature() { var fullStart = scanner.getStartPos(); - var name = parsePropertyName(); + var _name = parsePropertyName(); var questionToken = parseOptionalToken(50); if (token === 16 || token === 24) { var method = createNode(131, fullStart); - method.name = name; + method.name = _name; method.questionToken = questionToken; fillSignature(51, false, false, method); parseTypeMemberSemicolon(); @@ -10523,7 +5835,7 @@ var ts; } else { var property = createNode(129, fullStart); - property.name = name; + property.name = _name; property.questionToken = questionToken; property.type = parseTypeAnnotation(); parseTypeMemberSemicolon(); @@ -10554,7 +5866,11 @@ var ts; } function isTypeMemberWithLiteralPropertyName() { nextToken(); - return token === 16 || token === 24 || token === 50 || token === 51 || canParseSemicolon(); + return token === 16 || + token === 24 || + token === 50 || + token === 51 || + canParseSemicolon(); } function parseTypeMember() { switch (token) { @@ -10562,7 +5878,9 @@ var ts; case 24: return parseSignatureMember(136); case 18: - return isIndexSignature() ? parseIndexSignatureDeclaration(undefined) : parsePropertyOrMethodSignature(); + return isIndexSignature() + ? parseIndexSignatureDeclaration(undefined) + : parsePropertyOrMethodSignature(); case 87: if (lookAhead(isStartOfConstructSignature)) { return parseSignatureMember(137); @@ -10584,7 +5902,9 @@ var ts; } function parseIndexSignatureWithModifiers() { var modifiers = parseModifiers(); - return isIndexSignature() ? parseIndexSignatureDeclaration(modifiers) : undefined; + return isIndexSignature() + ? parseIndexSignatureDeclaration(modifiers) + : undefined; } function isStartOfConstructSignature() { nextToken(); @@ -10690,9 +6010,7 @@ var ts; function parseUnionTypeOrHigher() { var type = parseArrayTypeOrHigher(); if (token === 44) { - var types = [ - type - ]; + var types = [type]; types.pos = type.pos; while (parseOptional(44)) { types.push(parseArrayTypeOrHigher()); @@ -10717,7 +6035,9 @@ var ts; } if (isIdentifier() || ts.isModifier(token)) { nextToken(); - if (token === 51 || token === 23 || token === 50 || token === 52 || isIdentifier() || ts.isModifier(token)) { + if (token === 51 || token === 23 || + token === 50 || token === 52 || + isIdentifier() || ts.isModifier(token)) { return true; } if (token === 17) { @@ -10842,10 +6162,16 @@ var ts; nextToken(); return !scanner.hasPrecedingLineBreak() && isIdentifier(); } + function nextTokenIsIdentifierOrStartOfDestructuringOnTheSameLine() { + nextToken(); + return !scanner.hasPrecedingLineBreak() && + (isIdentifier() || token === 14 || token === 18); + } function parseYieldExpression() { var node = createNode(170); nextToken(); - if (!scanner.hasPrecedingLineBreak() && (token === 35 || isStartOfExpression())) { + if (!scanner.hasPrecedingLineBreak() && + (token === 35 || isStartOfExpression())) { node.asteriskToken = parseOptionalToken(35); node.expression = parseAssignmentExpressionOrHigher(); return finishNode(node); @@ -10860,9 +6186,7 @@ var ts; var parameter = createNode(128, identifier.pos); parameter.name = identifier; finishNode(parameter); - node.parameters = [ - parameter - ]; + node.parameters = [parameter]; node.parameters.pos = parameter.pos; node.parameters.end = parameter.end; parseExpected(32); @@ -10874,7 +6198,9 @@ var ts; if (triState === 0) { return undefined; } - var arrowFunction = triState === 1 ? parseParenthesizedArrowFunctionExpressionHead(true) : tryParse(parsePossibleParenthesizedArrowFunctionExpressionHead); + var arrowFunction = triState === 1 + ? parseParenthesizedArrowFunctionExpressionHead(true) + : tryParse(parsePossibleParenthesizedArrowFunctionExpressionHead); if (!arrowFunction) { return undefined; } @@ -11096,7 +6422,9 @@ var ts; return expression; } function parseLeftHandSideExpressionOrHigher() { - var expression = token === 90 ? parseSuperExpression() : parseMemberExpressionOrHigher(); + var expression = token === 90 + ? parseSuperExpression() + : parseMemberExpressionOrHigher(); return parseCallExpressionRest(expression); } function parseMemberExpressionOrHigher() { @@ -11150,7 +6478,9 @@ var ts; if (token === 10 || token === 11) { var tagExpression = createNode(157, expression.pos); tagExpression.tag = expression; - tagExpression.template = token === 10 ? parseLiteralNode() : parseTemplateExpression(); + tagExpression.template = token === 10 + ? parseLiteralNode() + : parseTemplateExpression(); expression = finishNode(tagExpression); continue; } @@ -11173,10 +6503,10 @@ var ts; continue; } else if (token === 16) { - var callExpr = createNode(155, expression.pos); - callExpr.expression = expression; - callExpr.arguments = parseArgumentList(); - expression = finishNode(callExpr); + var _callExpr = createNode(155, expression.pos); + _callExpr.expression = expression; + _callExpr.arguments = parseArgumentList(); + expression = finishNode(_callExpr); continue; } return expression; @@ -11196,7 +6526,9 @@ var ts; if (!parseExpected(25)) { return undefined; } - return typeArguments && canFollowTypeArgumentsInExpression() ? typeArguments : undefined; + return typeArguments && canFollowTypeArgumentsInExpression() + ? typeArguments + : undefined; } function canFollowTypeArgumentsInExpression() { switch (token) { @@ -11271,7 +6603,9 @@ var ts; return finishNode(node); } function parseArgumentOrArrayLiteralElement() { - return token === 21 ? parseSpreadElement() : token === 23 ? createNode(172) : parseAssignmentExpressionOrHigher(); + return token === 21 ? parseSpreadElement() : + token === 23 ? createNode(172) : + parseAssignmentExpressionOrHigher(); } function parseArgumentExpression() { return allowInAnd(parseArgumentOrArrayLiteralElement); @@ -11826,15 +7160,15 @@ var ts; } function parsePropertyOrMethodDeclaration(fullStart, modifiers) { var asteriskToken = parseOptionalToken(35); - var name = parsePropertyName(); + var _name = parsePropertyName(); var questionToken = parseOptionalToken(50); if (asteriskToken || token === 16 || token === 24) { - return parseMethodDeclaration(fullStart, modifiers, asteriskToken, name, questionToken, ts.Diagnostics.or_expected); + return parseMethodDeclaration(fullStart, modifiers, asteriskToken, _name, questionToken, ts.Diagnostics.or_expected); } else { var property = createNode(130, fullStart); setModifiers(property, modifiers); - property.name = name; + property.name = _name; property.questionToken = questionToken; property.type = parseTypeAnnotation(); property.initializer = allowInAnd(parseNonParameterInitializer); @@ -11921,7 +7255,11 @@ var ts; if (isIndexSignature()) { return parseIndexSignatureDeclaration(modifiers); } - if (isIdentifierOrKeyword() || token === 8 || token === 7 || token === 35 || token === 18) { + if (isIdentifierOrKeyword() || + token === 8 || + token === 7 || + token === 35 || + token === 18) { return parsePropertyOrMethodDeclaration(fullStart, modifiers); } ts.Debug.fail("Should not have attempted to parse class member declaration."); @@ -11934,7 +7272,9 @@ var ts; node.typeParameters = parseTypeParameters(); node.heritageClauses = parseHeritageClauses(true); if (parseExpected(14)) { - node.members = inGeneratorParameterContext() ? doOutsideOfYieldContext(parseClassMembers) : parseClassMembers(); + node.members = inGeneratorParameterContext() + ? doOutsideOfYieldContext(parseClassMembers) + : parseClassMembers(); parseExpected(15); } else { @@ -11944,7 +7284,9 @@ var ts; } function parseHeritageClauses(isClassHeritageClause) { if (isHeritageClause()) { - return isClassHeritageClause && inGeneratorParameterContext() ? doOutsideOfYieldContext(parseHeritageClausesWorker) : parseHeritageClausesWorker(); + return isClassHeritageClause && inGeneratorParameterContext() + ? doOutsideOfYieldContext(parseHeritageClausesWorker) + : parseHeritageClausesWorker(); } return undefined; } @@ -12023,7 +7365,9 @@ var ts; setModifiers(node, modifiers); node.flags |= flags; node.name = parseIdentifier(); - node.body = parseOptional(20) ? parseInternalModuleTail(getNodePos(), undefined, 1) : parseModuleBlock(); + node.body = parseOptional(20) + ? parseInternalModuleTail(getNodePos(), undefined, 1) + : parseModuleBlock(); return finishNode(node); } function parseAmbientExternalModuleDeclaration(fullStart, modifiers) { @@ -12035,17 +7379,21 @@ var ts; } function parseModuleDeclaration(fullStart, modifiers) { parseExpected(116); - return token === 8 ? parseAmbientExternalModuleDeclaration(fullStart, modifiers) : parseInternalModuleTail(fullStart, modifiers, modifiers ? modifiers.flags : 0); + return token === 8 + ? parseAmbientExternalModuleDeclaration(fullStart, modifiers) + : parseInternalModuleTail(fullStart, modifiers, modifiers ? modifiers.flags : 0); } function isExternalModuleReference() { - return token === 117 && lookAhead(nextTokenIsOpenParen); + return token === 117 && + lookAhead(nextTokenIsOpenParen); } function nextTokenIsOpenParen() { return nextToken() === 16; } function nextTokenIsCommaOrFromKeyword() { nextToken(); - return token === 23 || token === 123; + return token === 23 || + token === 123; } function parseImportDeclarationOrImportEqualsDeclaration(fullStart, modifiers) { parseExpected(84); @@ -12065,7 +7413,9 @@ var ts; } var importDeclaration = createNode(204, fullStart); setModifiers(importDeclaration, modifiers); - if (identifier || token === 35 || token === 14) { + if (identifier || + token === 35 || + token === 14) { importDeclaration.importClause = parseImportClause(identifier, afterImportPos); parseExpected(123); } @@ -12078,13 +7428,16 @@ var ts; if (identifier) { importClause.name = identifier; } - if (!importClause.name || parseOptional(23)) { + if (!importClause.name || + parseOptional(23)) { importClause.namedBindings = token === 35 ? parseNamespaceImport() : parseNamedImportsOrExports(207); } return finishNode(importClause); } function parseModuleReference() { - return isExternalModuleReference() ? parseExternalModuleReference() : parseEntityName(false); + return isExternalModuleReference() + ? parseExternalModuleReference() + : parseEntityName(false); } function parseExternalModuleReference() { var node = createNode(213); @@ -12172,7 +7525,7 @@ var ts; return finishNode(node); } function isLetDeclaration() { - return inStrictModeContext() || lookAhead(nextTokenIsIdentifierOnSameLine); + return inStrictModeContext() || lookAhead(nextTokenIsIdentifierOrStartOfDestructuringOnTheSameLine); } function isDeclarationStart() { switch (token) { @@ -12214,11 +7567,13 @@ var ts; } function nextTokenCanFollowImportKeyword() { nextToken(); - return isIdentifierOrKeyword() || token === 8 || token === 35 || token === 14; + return isIdentifierOrKeyword() || token === 8 || + token === 35 || token === 14; } function nextTokenCanFollowExportKeyword() { nextToken(); - return token === 52 || token === 35 || token === 14 || token === 72 || isDeclarationStart(); + return token === 52 || token === 35 || + token === 14 || token === 72 || isDeclarationStart(); } function nextTokenIsDeclarationStart() { nextToken(); @@ -12272,7 +7627,9 @@ var ts; return parseSourceElementOrModuleElement(); } function parseSourceElementOrModuleElement() { - return isDeclarationStart() ? parseDeclaration() : parseStatement(); + return isDeclarationStart() + ? parseDeclaration() + : parseStatement(); } function processReferenceComments(sourceFile) { var triviaScanner = ts.createScanner(sourceFile.languageVersion, false, sourceText); @@ -12287,10 +7644,7 @@ var ts; if (kind !== 2) { break; } - var range = { - pos: triviaScanner.getTokenPos(), - end: triviaScanner.getTextPos() - }; + var range = { pos: triviaScanner.getTokenPos(), end: triviaScanner.getTextPos() }; var comment = sourceText.substring(range.pos, range.end); var referencePathMatchResult = ts.getFileReferenceFromReferencePath(comment, range); if (referencePathMatchResult) { @@ -12321,10 +7675,7 @@ var ts; var pathMatchResult = pathRegex.exec(comment); var nameMatchResult = nameRegex.exec(comment); if (pathMatchResult) { - var amdDependency = { - path: pathMatchResult[2], - name: nameMatchResult ? nameMatchResult[2] : undefined - }; + var amdDependency = { path: pathMatchResult[2], name: nameMatchResult ? nameMatchResult[2] : undefined }; amdDependencies.push(amdDependency); } } @@ -12336,7 +7687,13 @@ var ts; } function setExternalModuleIndicator(sourceFile) { sourceFile.externalModuleIndicator = ts.forEach(sourceFile.statements, function (node) { - return node.flags & 1 || node.kind === 203 && node.moduleReference.kind === 213 || node.kind === 204 || node.kind === 209 || node.kind === 210 ? node : undefined; + return node.flags & 1 + || node.kind === 203 && node.moduleReference.kind === 213 + || node.kind === 204 + || node.kind === 209 + || node.kind === 210 + ? node + : undefined; }); } } @@ -12424,7 +7781,7 @@ var ts; } ts.bindSourceFile = bindSourceFile; function bindSourceFileWorker(file) { - var parent; + var _parent; var container; var blockScopeContainer; var lastContainer; @@ -12497,19 +7854,22 @@ var ts; } function declareSymbol(symbols, parent, node, includes, excludes) { ts.Debug.assert(!ts.hasDynamicName(node)); - var name = node.flags & 256 && parent ? "default" : getDeclarationName(node); - if (name !== undefined) { - var symbol = ts.hasProperty(symbols, name) ? symbols[name] : (symbols[name] = createSymbol(0, name)); + var _name = node.flags & 256 && parent ? "default" : getDeclarationName(node); + var symbol; + if (_name !== undefined) { + symbol = ts.hasProperty(symbols, _name) ? symbols[_name] : (symbols[_name] = createSymbol(0, _name)); if (symbol.flags & excludes) { if (node.name) { node.name.parent = node; } - var message = symbol.flags & 2 ? ts.Diagnostics.Cannot_redeclare_block_scoped_variable_0 : ts.Diagnostics.Duplicate_identifier_0; + var message = symbol.flags & 2 + ? ts.Diagnostics.Cannot_redeclare_block_scoped_variable_0 + : ts.Diagnostics.Duplicate_identifier_0; ts.forEach(symbol.declarations, function (declaration) { file.bindDiagnostics.push(ts.createDiagnosticForNode(declaration.name || declaration, message, getDisplayName(declaration))); }); file.bindDiagnostics.push(ts.createDiagnosticForNode(node.name || node, message, getDisplayName(node))); - symbol = createSymbol(0, name); + symbol = createSymbol(0, _name); } } else { @@ -12550,7 +7910,9 @@ var ts; } else { if (hasExportModifier || isAmbientContext(container)) { - var exportKind = (symbolKind & 107455 ? 1048576 : 0) | (symbolKind & 793056 ? 2097152 : 0) | (symbolKind & 1536 ? 4194304 : 0); + var exportKind = (symbolKind & 107455 ? 1048576 : 0) | + (symbolKind & 793056 ? 2097152 : 0) | + (symbolKind & 1536 ? 4194304 : 0); var local = declareSymbol(container.locals, undefined, node, exportKind, symbolExcludes); local.exportSymbol = declareSymbol(container.symbol.exports, container.symbol, node, symbolKind, symbolExcludes); node.localSymbol = local; @@ -12564,10 +7926,10 @@ var ts; if (symbolKind & 255504) { node.locals = {}; } - var saveParent = parent; + var saveParent = _parent; var saveContainer = container; var savedBlockScopeContainer = blockScopeContainer; - parent = node; + _parent = node; if (symbolKind & 262128) { container = node; if (lastContainer) { @@ -12580,7 +7942,7 @@ var ts; } ts.forEachChild(node, bind); container = saveContainer; - parent = saveParent; + _parent = saveParent; blockScopeContainer = savedBlockScopeContainer; } function bindDeclaration(node, symbolKind, symbolExcludes, isBlockScopeContainer) { @@ -12683,7 +8045,7 @@ var ts; return "__" + ts.indexOf(node.parent.parameters, node); } function bind(node) { - node.parent = parent; + node.parent = _parent; switch (node.kind) { case 127: bindDeclaration(node, 262144, 530912, false); @@ -12817,10 +8179,10 @@ var ts; bindChildren(node, 0, true); break; default: - var saveParent = parent; - parent = node; + var saveParent = _parent; + _parent = node; ts.forEachChild(node, bind); - parent = saveParent; + _parent = saveParent; } } function bindParameter(node) { @@ -12830,7 +8192,9 @@ var ts; else { bindDeclaration(node, 1, 107455, false); } - if (node.flags & 112 && node.parent.kind === 133 && node.parent.parent.kind === 196) { + if (node.flags & 112 && + node.parent.kind === 133 && + node.parent.parent.kind === 196) { var classDeclaration = node.parent.parent; declareSymbol(classDeclaration.symbol.members, classDeclaration.symbol, node, 4, 107455); } @@ -12861,25 +8225,15 @@ var ts; var compilerOptions = host.getCompilerOptions(); var languageVersion = compilerOptions.target || 0; var emitResolver = createResolver(); + var undefinedSymbol = createSymbol(4 | 67108864, "undefined"); + var argumentsSymbol = createSymbol(4 | 67108864, "arguments"); var checker = { - getNodeCount: function () { - return ts.sum(host.getSourceFiles(), "nodeCount"); - }, - getIdentifierCount: function () { - return ts.sum(host.getSourceFiles(), "identifierCount"); - }, - getSymbolCount: function () { - return ts.sum(host.getSourceFiles(), "symbolCount"); - }, - getTypeCount: function () { - return typeCount; - }, - isUndefinedSymbol: function (symbol) { - return symbol === undefinedSymbol; - }, - isArgumentsSymbol: function (symbol) { - return symbol === argumentsSymbol; - }, + getNodeCount: function () { return ts.sum(host.getSourceFiles(), "nodeCount"); }, + getIdentifierCount: function () { return ts.sum(host.getSourceFiles(), "identifierCount"); }, + getSymbolCount: function () { return ts.sum(host.getSourceFiles(), "symbolCount"); }, + getTypeCount: function () { return typeCount; }, + isUndefinedSymbol: function (symbol) { return symbol === undefinedSymbol; }, + isArgumentsSymbol: function (symbol) { return symbol === argumentsSymbol; }, getDiagnostics: getDiagnostics, getGlobalDiagnostics: getGlobalDiagnostics, getTypeOfSymbolAtLocation: getTypeOfSymbolAtLocation, @@ -12909,8 +8263,6 @@ var ts; getEmitResolver: getEmitResolver, getExportsOfExternalModule: getExportsOfExternalModule }; - var undefinedSymbol = createSymbol(4 | 67108864, "undefined"); - var argumentsSymbol = createSymbol(4 | 67108864, "arguments"); var unknownSymbol = createSymbol(4 | 67108864, "unknown"); var resolvingSymbol = createSymbol(67108864, "__resolving__"); var anyType = createIntrinsicType(1, "any"); @@ -12975,7 +8327,9 @@ var ts; return emitResolver; } function error(location, message, arg0, arg1, arg2) { - var diagnostic = location ? ts.createDiagnosticForNode(location, message, arg0, arg1, arg2) : ts.createCompilerDiagnostic(message, arg0, arg1, arg2); + var diagnostic = location + ? ts.createDiagnosticForNode(location, message, arg0, arg1, arg2) + : ts.createCompilerDiagnostic(message, arg0, arg1, arg2); diagnostics.add(diagnostic); } function createSymbol(flags, name) { @@ -13061,7 +8415,8 @@ var ts; recordMergedSymbol(target, source); } else { - var message = target.flags & 2 || source.flags & 2 ? ts.Diagnostics.Cannot_redeclare_block_scoped_variable_0 : ts.Diagnostics.Duplicate_identifier_0; + var message = target.flags & 2 || source.flags & 2 + ? ts.Diagnostics.Cannot_redeclare_block_scoped_variable_0 : ts.Diagnostics.Duplicate_identifier_0; ts.forEach(source.declarations, function (node) { error(node.name ? node.name : node, message, symbolToString(source)); }); @@ -13248,18 +8603,18 @@ var ts; } function checkResolvedBlockScopedVariable(result, errorLocation) { ts.Debug.assert((result.flags & 2) !== 0); - var declaration = ts.forEach(result.declarations, function (d) { - return ts.isBlockOrCatchScoped(d) ? d : undefined; - }); + var declaration = ts.forEach(result.declarations, function (d) { return ts.isBlockOrCatchScoped(d) ? d : undefined; }); ts.Debug.assert(declaration !== undefined, "Block-scoped variable declaration is undefined"); var isUsedBeforeDeclaration = !isDefinedBefore(declaration, errorLocation); if (!isUsedBeforeDeclaration) { var variableDeclaration = ts.getAncestor(declaration, 193); var container = ts.getEnclosingBlockScopeContainer(variableDeclaration); - if (variableDeclaration.parent.parent.kind === 175 || variableDeclaration.parent.parent.kind === 181) { + if (variableDeclaration.parent.parent.kind === 175 || + variableDeclaration.parent.parent.kind === 181) { isUsedBeforeDeclaration = isSameScopeDescendentOf(errorLocation, variableDeclaration, container); } - else if (variableDeclaration.parent.parent.kind === 183 || variableDeclaration.parent.parent.kind === 182) { + else if (variableDeclaration.parent.parent.kind === 183 || + variableDeclaration.parent.parent.kind === 182) { var expression = variableDeclaration.parent.parent.expression; isUsedBeforeDeclaration = isSameScopeDescendentOf(errorLocation, expression, container); } @@ -13280,12 +8635,15 @@ var ts; return false; } function isAliasSymbolDeclaration(node) { - return node.kind === 203 || node.kind === 205 && !!node.name || node.kind === 206 || node.kind === 208 || node.kind === 212 || node.kind === 209; + return node.kind === 203 || + node.kind === 205 && !!node.name || + node.kind === 206 || + node.kind === 208 || + node.kind === 212 || + node.kind === 209; } function getDeclarationOfAliasSymbol(symbol) { - return ts.forEach(symbol.declarations, function (d) { - return isAliasSymbolDeclaration(d) ? d : undefined; - }); + return ts.forEach(symbol.declarations, function (d) { return isAliasSymbolDeclaration(d) ? d : undefined; }); } function getTargetOfImportEqualsDeclaration(node) { if (node.moduleReference.kind === 213) { @@ -13311,11 +8669,11 @@ var ts; function getExternalModuleMember(node, specifier) { var moduleSymbol = resolveExternalModuleName(node, node.moduleSpecifier); if (moduleSymbol) { - var name = specifier.propertyName || specifier.name; - if (name.text) { - var symbol = getSymbol(getExportsOfSymbol(moduleSymbol), name.text, 107455 | 793056 | 1536); + var _name = specifier.propertyName || specifier.name; + if (_name.text) { + var symbol = getSymbol(getExportsOfSymbol(moduleSymbol), _name.text, 107455 | 793056 | 1536); if (!symbol) { - error(name, ts.Diagnostics.Module_0_has_no_exported_member_1, getFullyQualifiedName(moduleSymbol), ts.declarationNameToString(name)); + error(_name, ts.Diagnostics.Module_0_has_no_exported_member_1, getFullyQualifiedName(moduleSymbol), ts.declarationNameToString(_name)); return; } return symbol.flags & (107455 | 793056 | 1536) ? symbol : resolveAlias(symbol); @@ -13326,7 +8684,9 @@ var ts; return getExternalModuleMember(node.parent.parent.parent, node); } function getTargetOfExportSpecifier(node) { - return node.parent.parent.moduleSpecifier ? getExternalModuleMember(node.parent.parent, node) : resolveEntityName(node.propertyName || node.name, 107455 | 793056 | 1536); + return node.parent.parent.moduleSpecifier ? + getExternalModuleMember(node.parent.parent, node) : + resolveEntityName(node.propertyName || node.name, 107455 | 793056 | 1536); } function getTargetOfExportAssignment(node) { return resolveEntityName(node.expression, 107455 | 793056 | 1536); @@ -13412,8 +8772,9 @@ var ts; if (ts.getFullWidth(name) === 0) { return undefined; } + var symbol; if (name.kind === 64) { - var symbol = resolveName(name, name.text, meaning, ts.Diagnostics.Cannot_find_name_0, name); + symbol = resolveName(name, name.text, meaning, ts.Diagnostics.Cannot_find_name_0, name); if (!symbol) { return undefined; } @@ -13424,7 +8785,7 @@ var ts; return undefined; } var right = name.right; - var symbol = getSymbol(getExportsOfSymbol(namespace), right.text, meaning); + symbol = getSymbol(getExportsOfSymbol(namespace), right.text, meaning); if (!symbol) { error(right, ts.Diagnostics.Module_0_has_no_exported_member_1, getFullyQualifiedName(namespace), ts.declarationNameToString(right)); return undefined; @@ -13452,14 +8813,17 @@ var ts; return symbol; } } + var sourceFile; while (true) { var fileName = ts.normalizePath(ts.combinePaths(searchPath, moduleName)); - var sourceFile = host.getSourceFile(fileName + ".ts") || host.getSourceFile(fileName + ".d.ts"); - if (sourceFile || isRelative) + sourceFile = host.getSourceFile(fileName + ".ts") || host.getSourceFile(fileName + ".d.ts"); + if (sourceFile || isRelative) { break; + } var parentPath = ts.getDirectoryPath(searchPath); - if (parentPath === searchPath) + if (parentPath === searchPath) { break; + } searchPath = parentPath; } if (sourceFile) { @@ -13541,7 +8905,9 @@ var ts; return getMergedSymbol(symbol.parent); } function getExportSymbolOfValueSymbolIfExported(symbol) { - return symbol && (symbol.flags & 1048576) !== 0 ? getMergedSymbol(symbol.exportSymbol) : symbol; + return symbol && (symbol.flags & 1048576) !== 0 + ? getMergedSymbol(symbol.exportSymbol) + : symbol; } function symbolIsValue(symbol) { if (symbol.flags & 16777216) { @@ -13557,8 +8923,8 @@ var ts; } function findConstructorDeclaration(node) { var members = node.members; - for (var i = 0; i < members.length; i++) { - var member = members[i]; + for (var _i = 0, _n = members.length; _i < _n; _i++) { + var member = members[_i]; if (member.kind === 133 && ts.nodeIsPresent(member.body)) { return member; } @@ -13580,7 +8946,10 @@ var ts; return type; } function isReservedMemberName(name) { - return name.charCodeAt(0) === 95 && name.charCodeAt(1) === 95 && name.charCodeAt(2) !== 95 && name.charCodeAt(2) !== 64; + return name.charCodeAt(0) === 95 && + name.charCodeAt(1) === 95 && + name.charCodeAt(2) !== 95 && + name.charCodeAt(2) !== 64; } function getNamedMembers(members) { var result; @@ -13614,25 +8983,25 @@ var ts; } function forEachSymbolTableInScope(enclosingDeclaration, callback) { var result; - for (var location = enclosingDeclaration; location; location = location.parent) { - if (location.locals && !isGlobalSourceFile(location)) { - if (result = callback(location.locals)) { + for (var _location = enclosingDeclaration; _location; _location = _location.parent) { + if (_location.locals && !isGlobalSourceFile(_location)) { + if (result = callback(_location.locals)) { return result; } } - switch (location.kind) { + switch (_location.kind) { case 221: - if (!ts.isExternalModule(location)) { + if (!ts.isExternalModule(_location)) { break; } case 200: - if (result = callback(getSymbolOfNode(location).exports)) { + if (result = callback(getSymbolOfNode(_location).exports)) { return result; } break; case 196: case 197: - if (result = callback(getSymbolOfNode(location).members)) { + if (result = callback(getSymbolOfNode(_location).members)) { return result; } break; @@ -13654,28 +9023,24 @@ var ts; } function isAccessible(symbolFromSymbolTable, resolvedAliasSymbol) { if (symbol === (resolvedAliasSymbol || symbolFromSymbolTable)) { - return !ts.forEach(symbolFromSymbolTable.declarations, hasExternalModuleSymbol) && canQualifySymbol(symbolFromSymbolTable, meaning); + return !ts.forEach(symbolFromSymbolTable.declarations, hasExternalModuleSymbol) && + canQualifySymbol(symbolFromSymbolTable, meaning); } } if (isAccessible(ts.lookUp(symbols, symbol.name))) { - return [ - symbol - ]; + return [symbol]; } return ts.forEachValue(symbols, function (symbolFromSymbolTable) { if (symbolFromSymbolTable.flags & 8388608) { - if (!useOnlyExternalAliasing || ts.forEach(symbolFromSymbolTable.declarations, ts.isExternalModuleImportEqualsDeclaration)) { + if (!useOnlyExternalAliasing || + ts.forEach(symbolFromSymbolTable.declarations, ts.isExternalModuleImportEqualsDeclaration)) { var resolvedImportedSymbol = resolveAlias(symbolFromSymbolTable); if (isAccessible(symbolFromSymbolTable, resolveAlias(symbolFromSymbolTable))) { - return [ - symbolFromSymbolTable - ]; + return [symbolFromSymbolTable]; } var accessibleSymbolsFromExports = resolvedImportedSymbol.exports ? getAccessibleSymbolChainFromSymbolTable(resolvedImportedSymbol.exports) : undefined; if (accessibleSymbolsFromExports && canQualifySymbol(symbolFromSymbolTable, getQualifiedLeftMeaning(meaning))) { - return [ - symbolFromSymbolTable - ].concat(accessibleSymbolsFromExports); + return [symbolFromSymbolTable].concat(accessibleSymbolsFromExports); } } } @@ -13740,9 +9105,7 @@ var ts; errorSymbolName: symbolToString(initialSymbol, enclosingDeclaration, meaning) }; } - return { - accessibility: 0 - }; + return { accessibility: 0 }; function getExternalModuleContainer(declaration) { for (; declaration; declaration = declaration.parent) { if (hasExternalModuleSymbol(declaration)) { @@ -13752,22 +9115,20 @@ var ts; } } function hasExternalModuleSymbol(declaration) { - return (declaration.kind === 200 && declaration.name.kind === 8) || (declaration.kind === 221 && ts.isExternalModule(declaration)); + return (declaration.kind === 200 && declaration.name.kind === 8) || + (declaration.kind === 221 && ts.isExternalModule(declaration)); } function hasVisibleDeclarations(symbol) { var aliasesToMakeVisible; - if (ts.forEach(symbol.declarations, function (declaration) { - return !getIsDeclarationVisible(declaration); - })) { + if (ts.forEach(symbol.declarations, function (declaration) { return !getIsDeclarationVisible(declaration); })) { return undefined; } - return { - accessibility: 0, - aliasesToMakeVisible: aliasesToMakeVisible - }; + return { accessibility: 0, aliasesToMakeVisible: aliasesToMakeVisible }; function getIsDeclarationVisible(declaration) { if (!isDeclarationVisible(declaration)) { - if (declaration.kind === 203 && !(declaration.flags & 1) && isDeclarationVisible(declaration.parent)) { + if (declaration.kind === 203 && + !(declaration.flags & 1) && + isDeclarationVisible(declaration.parent)) { getNodeLinks(declaration).isVisible = true; if (aliasesToMakeVisible) { if (!ts.contains(aliasesToMakeVisible, declaration)) { @@ -13775,9 +9136,7 @@ var ts; } } else { - aliasesToMakeVisible = [ - declaration - ]; + aliasesToMakeVisible = [declaration]; } return true; } @@ -13791,7 +9150,8 @@ var ts; if (entityName.parent.kind === 142) { meaning = 107455 | 1048576; } - else if (entityName.kind === 125 || entityName.parent.kind === 203) { + else if (entityName.kind === 125 || + entityName.parent.kind === 203) { meaning = 1536; } else { @@ -13877,12 +9237,14 @@ var ts; function walkSymbol(symbol, meaning) { if (symbol) { var accessibleSymbolChain = getAccessibleSymbolChain(symbol, enclosingDeclaration, meaning, !!(flags & 2)); - if (!accessibleSymbolChain || needsQualification(accessibleSymbolChain[0], enclosingDeclaration, accessibleSymbolChain.length === 1 ? meaning : getQualifiedLeftMeaning(meaning))) { + if (!accessibleSymbolChain || + needsQualification(accessibleSymbolChain[0], enclosingDeclaration, accessibleSymbolChain.length === 1 ? meaning : getQualifiedLeftMeaning(meaning))) { walkSymbol(getParentOfSymbol(accessibleSymbolChain ? accessibleSymbolChain[0] : symbol), getQualifiedLeftMeaning(meaning)); } if (accessibleSymbolChain) { - for (var i = 0, n = accessibleSymbolChain.length; i < n; i++) { - appendParentTypeArgumentsAndSymbolName(accessibleSymbolChain[i]); + for (var _i = 0, _n = accessibleSymbolChain.length; _i < _n; _i++) { + var accessibleSymbol = accessibleSymbolChain[_i]; + appendParentTypeArgumentsAndSymbolName(accessibleSymbol); } } else { @@ -13909,7 +9271,8 @@ var ts; return writeType(type, globalFlags); function writeType(type, flags) { if (type.flags & 1048703) { - writer.writeKeyword(!(globalFlags & 16) && (type.flags & 1) ? "any" : type.intrinsicName); + writer.writeKeyword(!(globalFlags & 16) && + (type.flags & 1) ? "any" : type.intrinsicName); } else if (type.flags & 4096) { writeTypeReference(type, flags); @@ -14002,14 +9365,16 @@ var ts; } function shouldWriteTypeOfFunctionSymbol() { if (type.symbol) { - var isStaticMethodSymbol = !!(type.symbol.flags & 8192 && ts.forEach(type.symbol.declarations, function (declaration) { - return declaration.flags & 128; - })); - var isNonLocalFunctionSymbol = !!(type.symbol.flags & 16) && (type.symbol.parent || ts.forEach(type.symbol.declarations, function (declaration) { - return declaration.parent.kind === 221 || declaration.parent.kind === 201; - })); + var isStaticMethodSymbol = !!(type.symbol.flags & 8192 && + ts.forEach(type.symbol.declarations, function (declaration) { return declaration.flags & 128; })); + var isNonLocalFunctionSymbol = !!(type.symbol.flags & 16) && + (type.symbol.parent || + ts.forEach(type.symbol.declarations, function (declaration) { + return declaration.parent.kind === 221 || declaration.parent.kind === 201; + })); if (isStaticMethodSymbol || isNonLocalFunctionSymbol) { - return !!(flags & 2) || (typeStack && ts.contains(typeStack, type)); + return !!(flags & 2) || + (typeStack && ts.contains(typeStack, type)); } } } @@ -14061,15 +9426,17 @@ var ts; writePunctuation(writer, 14); writer.writeLine(); writer.increaseIndent(); - for (var i = 0; i < resolved.callSignatures.length; i++) { - buildSignatureDisplay(resolved.callSignatures[i], writer, enclosingDeclaration, globalFlagsToPass, typeStack); + for (var _i = 0, _a = resolved.callSignatures, _n = _a.length; _i < _n; _i++) { + var signature = _a[_i]; + buildSignatureDisplay(signature, writer, enclosingDeclaration, globalFlagsToPass, typeStack); writePunctuation(writer, 22); writer.writeLine(); } - for (var i = 0; i < resolved.constructSignatures.length; i++) { + for (var _b = 0, _c = resolved.constructSignatures, _d = _c.length; _b < _d; _b++) { + var _signature = _c[_b]; writeKeyword(writer, 87); writeSpace(writer); - buildSignatureDisplay(resolved.constructSignatures[i], writer, enclosingDeclaration, globalFlagsToPass, typeStack); + buildSignatureDisplay(_signature, writer, enclosingDeclaration, globalFlagsToPass, typeStack); writePunctuation(writer, 22); writer.writeLine(); } @@ -14099,17 +9466,18 @@ var ts; writePunctuation(writer, 22); writer.writeLine(); } - for (var i = 0; i < resolved.properties.length; i++) { - var p = resolved.properties[i]; + for (var _e = 0, _f = resolved.properties, _g = _f.length; _e < _g; _e++) { + var p = _f[_e]; var t = getTypeOfSymbol(p); if (p.flags & (16 | 8192) && !getPropertiesOfObjectType(t).length) { var signatures = getSignaturesOfType(t, 0); - for (var j = 0; j < signatures.length; j++) { + for (var _h = 0, _j = signatures.length; _h < _j; _h++) { + var _signature_1 = signatures[_h]; buildSymbolDisplay(p, writer); if (p.flags & 536870912) { writePunctuation(writer, 50); } - buildSignatureDisplay(signatures[j], writer, enclosingDeclaration, globalFlagsToPass, typeStack); + buildSignatureDisplay(_signature_1, writer, enclosingDeclaration, globalFlagsToPass, typeStack); writePunctuation(writer, 22); writer.writeLine(); } @@ -14247,10 +9615,11 @@ var ts; } function isUsedInExportAssignment(node) { var externalModule = getContainingExternalModule(node); + var exportAssignmentSymbol; + var resolvedExportSymbol; if (externalModule) { var externalModuleSymbol = getSymbolOfNode(externalModule); - var exportAssignmentSymbol = getExportAssignmentSymbol(externalModuleSymbol); - var resolvedExportSymbol; + exportAssignmentSymbol = getExportAssignmentSymbol(externalModuleSymbol); var symbolOfNode = getSymbolOfNode(node); if (isSymbolUsedInExportAssignment(symbolOfNode)) { return true; @@ -14290,11 +9659,12 @@ var ts; case 195: case 199: case 203: - var parent = getDeclarationContainer(node); - if (!(ts.getCombinedNodeFlags(node) & 1) && !(node.kind !== 203 && parent.kind !== 221 && ts.isInAmbientContext(parent))) { - return isGlobalSourceFile(parent) || isUsedInExportAssignment(node); + var _parent = getDeclarationContainer(node); + if (!(ts.getCombinedNodeFlags(node) & 1) && + !(node.kind !== 203 && _parent.kind !== 221 && ts.isInAmbientContext(_parent))) { + return isGlobalSourceFile(_parent) || isUsedInExportAssignment(node); } - return isDeclarationVisible(parent); + return isDeclarationVisible(_parent); case 130: case 129: case 134: @@ -14346,9 +9716,7 @@ var ts; } function getTypeOfPrototypeProperty(prototype) { var classType = getDeclaredTypeOfSymbol(prototype.parent); - return classType.typeParameters ? createTypeReference(classType, ts.map(classType.typeParameters, function (_) { - return anyType; - })) : classType; + return classType.typeParameters ? createTypeReference(classType, ts.map(classType.typeParameters, function (_) { return anyType; })) : classType; } function getTypeOfPropertyOfType(type, name) { var prop = getPropertyOfType(type, name); @@ -14366,11 +9734,14 @@ var ts; } return parentType; } + var type; if (pattern.kind === 148) { - var name = declaration.propertyName || declaration.name; - var type = getTypeOfPropertyOfType(parentType, name.text) || isNumericLiteralName(name.text) && getIndexTypeOfType(parentType, 1) || getIndexTypeOfType(parentType, 0); + var _name = declaration.propertyName || declaration.name; + type = getTypeOfPropertyOfType(parentType, _name.text) || + isNumericLiteralName(_name.text) && getIndexTypeOfType(parentType, 1) || + getIndexTypeOfType(parentType, 0); if (!type) { - error(name, ts.Diagnostics.Type_0_has_no_property_1_and_no_string_index_signature, typeToString(parentType), ts.declarationNameToString(name)); + error(_name, ts.Diagnostics.Type_0_has_no_property_1_and_no_string_index_signature, typeToString(parentType), ts.declarationNameToString(_name)); return unknownType; } } @@ -14381,7 +9752,7 @@ var ts; } if (!declaration.dotDotDotToken) { var propName = "" + ts.indexOf(pattern.elements, declaration); - var type = isTupleLikeType(parentType) ? getTypeOfPropertyOfType(parentType, propName) : getIndexTypeOfType(parentType, 1); + type = isTupleLikeType(parentType) ? getTypeOfPropertyOfType(parentType, propName) : getIndexTypeOfType(parentType, 1); if (!type) { if (isTupleType(parentType)) { error(declaration, ts.Diagnostics.Tuple_type_0_with_length_1_cannot_be_assigned_to_tuple_with_length_2, typeToString(parentType), parentType.elementTypes.length, pattern.elements.length); @@ -14393,7 +9764,7 @@ var ts; } } else { - var type = createArrayType(getIndexTypeOfType(parentType, 1)); + type = createArrayType(getIndexTypeOfType(parentType, 1)); } } return type; @@ -14445,8 +9816,8 @@ var ts; var members = {}; ts.forEach(pattern.elements, function (e) { var flags = 4 | 67108864 | (e.initializer ? 536870912 : 0); - var name = e.propertyName || e.name; - var symbol = createSymbol(flags, name.text); + var _name = e.propertyName || e.name; + var symbol = createSymbol(flags, _name.text); symbol.type = getTypeFromBindingElement(e); members[symbol.name] = symbol; }); @@ -14464,7 +9835,9 @@ var ts; return !elementTypes.length ? anyArrayType : hasSpreadElement ? createArrayType(getUnionType(elementTypes)) : createTupleType(elementTypes); } function getTypeFromBindingPattern(pattern) { - return pattern.kind === 148 ? getTypeFromObjectBindingPattern(pattern) : getTypeFromArrayBindingPattern(pattern); + return pattern.kind === 148 + ? getTypeFromObjectBindingPattern(pattern) + : getTypeFromArrayBindingPattern(pattern); } function getWidenedTypeForVariableLikeDeclaration(declaration, reportErrors) { var type = getTypeForVariableLikeDeclaration(declaration); @@ -14508,7 +9881,9 @@ var ts; else if (links.type === resolvingType) { links.type = anyType; if (compilerOptions.noImplicitAny) { - var diagnostic = symbol.valueDeclaration.type ? ts.Diagnostics._0_implicitly_has_type_any_because_it_is_referenced_directly_or_indirectly_in_its_own_type_annotation : ts.Diagnostics._0_implicitly_has_type_any_because_it_is_does_not_have_a_type_annotation_and_is_referenced_directly_or_indirectly_in_its_own_initializer; + var diagnostic = symbol.valueDeclaration.type ? + ts.Diagnostics._0_implicitly_has_type_any_because_it_is_referenced_directly_or_indirectly_in_its_own_type_annotation : + ts.Diagnostics._0_implicitly_has_type_any_because_it_is_does_not_have_a_type_annotation_and_is_referenced_directly_or_indirectly_in_its_own_initializer; error(symbol.valueDeclaration, diagnostic, symbolToString(symbol)); } } @@ -14569,8 +9944,8 @@ var ts; else if (links.type === resolvingType) { links.type = anyType; if (compilerOptions.noImplicitAny) { - var getter = ts.getDeclarationOfKind(symbol, 134); - error(getter, ts.Diagnostics._0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions, symbolToString(symbol)); + var _getter = ts.getDeclarationOfKind(symbol, 134); + error(_getter, ts.Diagnostics._0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions, symbolToString(symbol)); } } } @@ -14642,9 +10017,7 @@ var ts; ts.forEach(declaration.typeParameters, function (node) { var tp = getDeclaredTypeOfTypeParameter(getSymbolOfNode(node)); if (!result) { - result = [ - tp - ]; + result = [tp]; } else if (!ts.contains(result, tp)) { result.push(tp); @@ -14749,8 +10122,8 @@ var ts; } else if (links.declaredType === resolvingType) { links.declaredType = unknownType; - var declaration = ts.getDeclarationOfKind(symbol, 198); - error(declaration.name, ts.Diagnostics.Type_alias_0_circularly_references_itself, symbolToString(symbol)); + var _declaration = ts.getDeclarationOfKind(symbol, 198); + error(_declaration.name, ts.Diagnostics.Type_alias_0_circularly_references_itself, symbolToString(symbol)); } return links.declaredType; } @@ -14806,23 +10179,23 @@ var ts; } function createSymbolTable(symbols) { var result = {}; - for (var i = 0; i < symbols.length; i++) { - var symbol = symbols[i]; + for (var _i = 0, _n = symbols.length; _i < _n; _i++) { + var symbol = symbols[_i]; result[symbol.name] = symbol; } return result; } function createInstantiatedSymbolTable(symbols, mapper) { var result = {}; - for (var i = 0; i < symbols.length; i++) { - var symbol = symbols[i]; + for (var _i = 0, _n = symbols.length; _i < _n; _i++) { + var symbol = symbols[_i]; result[symbol.name] = instantiateSymbol(symbol, mapper); } return result; } function addInheritedMembers(symbols, baseSymbols) { - for (var i = 0; i < baseSymbols.length; i++) { - var s = baseSymbols[i]; + for (var _i = 0, _n = baseSymbols.length; _i < _n; _i++) { + var s = baseSymbols[_i]; if (!ts.hasProperty(symbols, s.name)) { symbols[s.name] = s; } @@ -14830,8 +10203,9 @@ var ts; } function addInheritedSignatures(signatures, baseSignatures) { if (baseSignatures) { - for (var i = 0; i < baseSignatures.length; i++) { - signatures.push(baseSignatures[i]); + for (var _i = 0, _n = baseSignatures.length; _i < _n; _i++) { + var signature = baseSignatures[_i]; + signatures.push(signature); } } } @@ -14890,15 +10264,14 @@ var ts; var baseType = classType.baseTypes[0]; var baseSignatures = getSignaturesOfType(getTypeOfSymbol(baseType.symbol), 1); return ts.map(baseSignatures, function (baseSignature) { - var signature = baseType.flags & 4096 ? getSignatureInstantiation(baseSignature, baseType.typeArguments) : cloneSignature(baseSignature); + var signature = baseType.flags & 4096 ? + getSignatureInstantiation(baseSignature, baseType.typeArguments) : cloneSignature(baseSignature); signature.typeParameters = classType.typeParameters; signature.resolvedReturnType = classType; return signature; }); } - return [ - createSignature(undefined, classType.typeParameters, emptyArray, classType, 0, false, false) - ]; + return [createSignature(undefined, classType.typeParameters, emptyArray, classType, 0, false, false)]; } function createTupleTypeMemberSymbols(memberTypes) { var members = {}; @@ -14927,17 +10300,16 @@ var ts; return true; } function getUnionSignatures(types, kind) { - var signatureLists = ts.map(types, function (t) { - return getSignaturesOfType(t, kind); - }); + var signatureLists = ts.map(types, function (t) { return getSignaturesOfType(t, kind); }); var signatures = signatureLists[0]; - for (var i = 0; i < signatures.length; i++) { - if (signatures[i].typeParameters) { + for (var _i = 0, _n = signatures.length; _i < _n; _i++) { + var signature = signatures[_i]; + if (signature.typeParameters) { return emptyArray; } } - for (var i = 1; i < signatureLists.length; i++) { - if (!signatureListsIdentical(signatures, signatureLists[i])) { + for (var _i_1 = 1; _i_1 < signatureLists.length; _i_1++) { + if (!signatureListsIdentical(signatures, signatureLists[_i_1])) { return emptyArray; } } @@ -14945,16 +10317,15 @@ var ts; for (var i = 0; i < result.length; i++) { var s = result[i]; s.resolvedReturnType = undefined; - s.unionSignatures = ts.map(signatureLists, function (signatures) { - return signatures[i]; - }); + s.unionSignatures = ts.map(signatureLists, function (signatures) { return signatures[i]; }); } return result; } function getUnionIndexType(types, kind) { var indexTypes = []; - for (var i = 0; i < types.length; i++) { - var indexType = getIndexTypeOfType(types[i], kind); + for (var _i = 0, _n = types.length; _i < _n; _i++) { + var type = types[_i]; + var indexType = getIndexTypeOfType(type, kind); if (!indexType) { return undefined; } @@ -14971,17 +10342,22 @@ var ts; } function resolveAnonymousTypeMembers(type) { var symbol = type.symbol; + var members; + var callSignatures; + var constructSignatures; + var stringIndexType; + var numberIndexType; if (symbol.flags & 2048) { - var members = symbol.members; - var callSignatures = getSignaturesOfSymbol(members["__call"]); - var constructSignatures = getSignaturesOfSymbol(members["__new"]); - var stringIndexType = getIndexTypeOfSymbol(symbol, 0); - var numberIndexType = getIndexTypeOfSymbol(symbol, 1); + members = symbol.members; + callSignatures = getSignaturesOfSymbol(members["__call"]); + constructSignatures = getSignaturesOfSymbol(members["__new"]); + stringIndexType = getIndexTypeOfSymbol(symbol, 0); + numberIndexType = getIndexTypeOfSymbol(symbol, 1); } else { - var members = emptySymbols; - var callSignatures = emptyArray; - var constructSignatures = emptyArray; + members = emptySymbols; + callSignatures = emptyArray; + constructSignatures = emptyArray; if (symbol.flags & 1952) { members = getExportsOfSymbol(symbol); } @@ -14999,8 +10375,8 @@ var ts; addInheritedMembers(members, getPropertiesOfObjectType(getTypeOfSymbol(classType.baseTypes[0].symbol))); } } - var stringIndexType = undefined; - var numberIndexType = (symbol.flags & 384) ? stringType : undefined; + stringIndexType = undefined; + numberIndexType = (symbol.flags & 384) ? stringType : undefined; } setObjectTypeMembers(type, members, callSignatures, constructSignatures, stringIndexType, numberIndexType); } @@ -15083,17 +10459,16 @@ var ts; function createUnionProperty(unionType, name) { var types = unionType.types; var props; - for (var i = 0; i < types.length; i++) { - var type = getApparentType(types[i]); + for (var _i = 0, _n = types.length; _i < _n; _i++) { + var current = types[_i]; + var type = getApparentType(current); if (type !== unknownType) { var prop = getPropertyOfType(type, name); if (!prop) { return undefined; } if (!props) { - props = [ - prop - ]; + props = [prop]; } else { props.push(prop); @@ -15102,12 +10477,12 @@ var ts; } var propTypes = []; var declarations = []; - for (var i = 0; i < props.length; i++) { - var prop = props[i]; - if (prop.declarations) { - declarations.push.apply(declarations, prop.declarations); + for (var _a = 0, _b = props.length; _a < _b; _a++) { + var _prop = props[_a]; + if (_prop.declarations) { + declarations.push.apply(declarations, _prop.declarations); } - propTypes.push(getTypeOfSymbol(prop)); + propTypes.push(getTypeOfSymbol(_prop)); } var result = createSymbol(4 | 67108864 | 268435456, name); result.unionType = unionType; @@ -15144,9 +10519,9 @@ var ts; } } if (resolved === anyFunctionType || resolved.callSignatures.length || resolved.constructSignatures.length) { - var symbol = getPropertyOfObjectType(globalFunctionType, name); - if (symbol) - return symbol; + var _symbol = getPropertyOfObjectType(globalFunctionType, name); + if (_symbol) + return _symbol; } return getPropertyOfObjectType(globalObjectType, name); } @@ -15193,7 +10568,8 @@ var ts; var links = getNodeLinks(declaration); if (!links.resolvedSignature) { var classType = declaration.kind === 133 ? getDeclaredTypeOfClass(declaration.parent.symbol) : undefined; - var typeParameters = classType ? classType.typeParameters : declaration.typeParameters ? getTypeParametersFromDeclaration(declaration.typeParameters) : undefined; + var typeParameters = classType ? classType.typeParameters : + declaration.typeParameters ? getTypeParametersFromDeclaration(declaration.typeParameters) : undefined; var parameters = []; var hasStringLiterals = false; var minArgumentCount = -1; @@ -15266,14 +10642,15 @@ var ts; function getReturnTypeOfSignature(signature) { if (!signature.resolvedReturnType) { signature.resolvedReturnType = resolvingType; + var type; if (signature.target) { - var type = instantiateType(getReturnTypeOfSignature(signature.target), signature.mapper); + type = instantiateType(getReturnTypeOfSignature(signature.target), signature.mapper); } else if (signature.unionSignatures) { - var type = getUnionType(ts.map(signature.unionSignatures, getReturnTypeOfSignature)); + type = getUnionType(ts.map(signature.unionSignatures, getReturnTypeOfSignature)); } else { - var type = getReturnTypeFromBody(signature.declaration); + type = getReturnTypeFromBody(signature.declaration); } if (signature.resolvedReturnType === resolvingType) { signature.resolvedReturnType = type; @@ -15324,12 +10701,8 @@ var ts; var type = createObjectType(32768 | 65536); type.members = emptySymbols; type.properties = emptyArray; - type.callSignatures = !isConstructor ? [ - signature - ] : emptyArray; - type.constructSignatures = isConstructor ? [ - signature - ] : emptyArray; + type.callSignatures = !isConstructor ? [signature] : emptyArray; + type.constructSignatures = isConstructor ? [signature] : emptyArray; signature.isolatedSignatureType = type; } return signature.isolatedSignatureType; @@ -15342,8 +10715,9 @@ var ts; var indexSymbol = getIndexSymbol(symbol); if (indexSymbol) { var len = indexSymbol.declarations.length; - for (var i = 0; i < len; i++) { - var node = indexSymbol.declarations[i]; + for (var _i = 0, _a = indexSymbol.declarations, _n = _a.length; _i < _n; _i++) { + var decl = _a[_i]; + var node = decl; if (node.parameters.length === 1) { var parameter = node.parameters[0]; if (parameter && parameter.type && parameter.type.kind === syntaxKind) { @@ -15356,7 +10730,9 @@ var ts; } function getIndexTypeOfSymbol(symbol, kind) { var declaration = getIndexDeclarationOfSymbol(symbol, kind); - return declaration ? declaration.type ? getTypeFromTypeNode(declaration.type) : anyType : undefined; + return declaration + ? declaration.type ? getTypeFromTypeNode(declaration.type) : anyType + : undefined; } function getConstraintOfTypeParameter(type) { if (!type.constraint) { @@ -15379,8 +10755,9 @@ var ts; default: var result = ""; for (var i = 0; i < types.length; i++) { - if (i > 0) + if (i > 0) { result += ","; + } result += types[i].id; } return result; @@ -15388,8 +10765,9 @@ var ts; } function getWideningFlagsOfTypes(types) { var result = 0; - for (var i = 0; i < types.length; i++) { - result |= types[i].flags; + for (var _i = 0, _n = types.length; _i < _n; _i++) { + var type = types[_i]; + result |= type.flags; } return result & 786432; } @@ -15410,9 +10788,7 @@ var ts; return links.isIllegalTypeReferenceInConstraint; } var currentNode = typeReferenceNode; - while (!ts.forEach(typeParameterSymbol.declarations, function (d) { - return d.parent === currentNode.parent; - })) { + while (!ts.forEach(typeParameterSymbol.declarations, function (d) { return d.parent === currentNode.parent; })) { currentNode = currentNode.parent; } links.isIllegalTypeReferenceInConstraint = currentNode.kind === 127; @@ -15426,9 +10802,7 @@ var ts; if (links.isIllegalTypeReferenceInConstraint === undefined) { var symbol = resolveName(typeParameter, n.typeName.text, 793056, undefined, undefined); if (symbol && (symbol.flags & 262144)) { - links.isIllegalTypeReferenceInConstraint = ts.forEach(symbol.declarations, function (d) { - return d.parent == typeParameter.parent; - }); + links.isIllegalTypeReferenceInConstraint = ts.forEach(symbol.declarations, function (d) { return d.parent == typeParameter.parent; }); } } if (links.isIllegalTypeReferenceInConstraint) { @@ -15446,8 +10820,8 @@ var ts; var links = getNodeLinks(node); if (!links.resolvedType) { var symbol = resolveEntityName(node.typeName, 793056); + var type; if (symbol) { - var type; if ((symbol.flags & 262144) && isTypeParameterReferenceIllegalInConstraint(node, symbol)) { type = unknownType; } @@ -15485,8 +10859,8 @@ var ts; function getTypeOfGlobalSymbol(symbol, arity) { function getTypeDeclaration(symbol) { var declarations = symbol.declarations; - for (var i = 0; i < declarations.length; i++) { - var declaration = declarations[i]; + for (var _i = 0, _n = declarations.length; _i < _n; _i++) { + var declaration = declarations[_i]; switch (declaration.kind) { case 196: case 197: @@ -15527,9 +10901,7 @@ var ts; } function createArrayType(elementType) { var arrayType = globalArrayType || getDeclaredTypeOfSymbol(globalArraySymbol); - return arrayType !== emptyObjectType ? createTypeReference(arrayType, [ - elementType - ]) : emptyObjectType; + return arrayType !== emptyObjectType ? createTypeReference(arrayType, [elementType]) : emptyObjectType; } function getTypeFromArrayTypeNode(node) { var links = getNodeLinks(node); @@ -15570,13 +10942,15 @@ var ts; } } function addTypesToSortedSet(sortedTypes, types) { - for (var i = 0, len = types.length; i < len; i++) { - addTypeToSortedSet(sortedTypes, types[i]); + for (var _i = 0, _n = types.length; _i < _n; _i++) { + var type = types[_i]; + addTypeToSortedSet(sortedTypes, type); } } function isSubtypeOfAny(candidate, types) { - for (var i = 0, len = types.length; i < len; i++) { - if (candidate !== types[i] && isTypeSubtypeOf(candidate, types[i])) { + for (var _i = 0, _n = types.length; _i < _n; _i++) { + var type = types[_i]; + if (candidate !== type && isTypeSubtypeOf(candidate, type)) { return true; } } @@ -15592,8 +10966,9 @@ var ts; } } function containsAnyType(types) { - for (var i = 0; i < types.length; i++) { - if (types[i].flags & 1) { + for (var _i = 0, _n = types.length; _i < _n; _i++) { + var type = types[_i]; + if (type.flags & 1) { return true; } } @@ -15707,59 +11082,51 @@ var ts; function instantiateList(items, mapper, instantiator) { if (items && items.length) { var result = []; - for (var i = 0; i < items.length; i++) { - result.push(instantiator(items[i], mapper)); + for (var _i = 0, _n = items.length; _i < _n; _i++) { + var v = items[_i]; + result.push(instantiator(v, mapper)); } return result; } return items; } function createUnaryTypeMapper(source, target) { - return function (t) { - return t === source ? target : t; - }; + return function (t) { return t === source ? target : t; }; } function createBinaryTypeMapper(source1, target1, source2, target2) { - return function (t) { - return t === source1 ? target1 : t === source2 ? target2 : t; - }; + return function (t) { return t === source1 ? target1 : t === source2 ? target2 : t; }; } function createTypeMapper(sources, targets) { switch (sources.length) { - case 1: - return createUnaryTypeMapper(sources[0], targets[0]); - case 2: - return createBinaryTypeMapper(sources[0], targets[0], sources[1], targets[1]); + case 1: return createUnaryTypeMapper(sources[0], targets[0]); + case 2: return createBinaryTypeMapper(sources[0], targets[0], sources[1], targets[1]); } return function (t) { for (var i = 0; i < sources.length; i++) { - if (t === sources[i]) + if (t === sources[i]) { return targets[i]; + } } return t; }; } function createUnaryTypeEraser(source) { - return function (t) { - return t === source ? anyType : t; - }; + return function (t) { return t === source ? anyType : t; }; } function createBinaryTypeEraser(source1, source2) { - return function (t) { - return t === source1 || t === source2 ? anyType : t; - }; + return function (t) { return t === source1 || t === source2 ? anyType : t; }; } function createTypeEraser(sources) { switch (sources.length) { - case 1: - return createUnaryTypeEraser(sources[0]); - case 2: - return createBinaryTypeEraser(sources[0], sources[1]); + case 1: return createUnaryTypeEraser(sources[0]); + case 2: return createBinaryTypeEraser(sources[0], sources[1]); } return function (t) { - for (var i = 0; i < sources.length; i++) { - if (t === sources[i]) + for (var _i = 0, _n = sources.length; _i < _n; _i++) { + var source = sources[_i]; + if (t === source) { return anyType; + } } return t; }; @@ -15778,9 +11145,7 @@ var ts; return type; } function combineTypeMappers(mapper1, mapper2) { - return function (t) { - return mapper2(mapper1(t)); - }; + return function (t) { return mapper2(mapper1(t)); }; } function instantiateTypeParameter(typeParameter, mapper) { var result = createType(512); @@ -15795,8 +11160,9 @@ var ts; return result; } function instantiateSignature(signature, mapper, eraseTypeParameters) { + var freshTypeParameters; if (signature.typeParameters && !eraseTypeParameters) { - var freshTypeParameters = instantiateList(signature.typeParameters, mapper, instantiateTypeParameter); + freshTypeParameters = instantiateList(signature.typeParameters, mapper, instantiateTypeParameter); mapper = combineTypeMappers(createTypeMapper(signature.typeParameters, freshTypeParameters), mapper); } var result = createSignature(signature.declaration, freshTypeParameters, instantiateList(signature.parameters, mapper, instantiateSymbol), signature.resolvedReturnType ? instantiateType(signature.resolvedReturnType, mapper) : undefined, signature.minArgumentCount, signature.hasRestParameter, signature.hasStringLiterals); @@ -15840,7 +11206,8 @@ var ts; return mapper(type); } if (type.flags & 32768) { - return type.symbol && type.symbol.flags & (16 | 8192 | 2048 | 4096) ? instantiateAnonymousType(type, mapper) : type; + return type.symbol && type.symbol.flags & (16 | 8192 | 2048 | 4096) ? + instantiateAnonymousType(type, mapper) : type; } if (type.flags & 4096) { return createTypeReference(type.target, instantiateList(type.typeArguments, mapper, instantiateType)); @@ -15865,9 +11232,11 @@ var ts; case 151: return ts.forEach(node.elements, isContextSensitive); case 168: - return isContextSensitive(node.whenTrue) || isContextSensitive(node.whenFalse); + return isContextSensitive(node.whenTrue) || + isContextSensitive(node.whenFalse); case 167: - return node.operatorToken.kind === 49 && (isContextSensitive(node.left) || isContextSensitive(node.right)); + return node.operatorToken.kind === 49 && + (isContextSensitive(node.left) || isContextSensitive(node.right)); case 218: return isContextSensitive(node.initializer); case 132: @@ -15879,9 +11248,7 @@ var ts; return false; } function isContextSensitiveFunctionLikeDeclaration(node) { - return !node.typeParameters && node.parameters.length && !ts.forEach(node.parameters, function (p) { - return p.type; - }); + return !node.typeParameters && node.parameters.length && !ts.forEach(node.parameters, function (p) { return p.type; }); } function getTypeWithoutConstructors(type) { if (type.flags & 48128) { @@ -15952,7 +11319,7 @@ var ts; } function isRelatedTo(source, target, reportErrors, headMessage, elaborateErrors) { if (elaborateErrors === void 0) { elaborateErrors = false; } - var result; + var _result; if (source === target) return -1; if (relation !== identityRelation) { @@ -15976,53 +11343,54 @@ var ts; if (source.flags & 16384 || target.flags & 16384) { if (relation === identityRelation) { if (source.flags & 16384 && target.flags & 16384) { - if (result = unionTypeRelatedToUnionType(source, target)) { - if (result &= unionTypeRelatedToUnionType(target, source)) { - return result; + if (_result = unionTypeRelatedToUnionType(source, target)) { + if (_result &= unionTypeRelatedToUnionType(target, source)) { + return _result; } } } else if (source.flags & 16384) { - if (result = unionTypeRelatedToType(source, target, reportErrors)) { - return result; + if (_result = unionTypeRelatedToType(source, target, reportErrors)) { + return _result; } } else { - if (result = unionTypeRelatedToType(target, source, reportErrors)) { - return result; + if (_result = unionTypeRelatedToType(target, source, reportErrors)) { + return _result; } } } else { if (source.flags & 16384) { - if (result = unionTypeRelatedToType(source, target, reportErrors)) { - return result; + if (_result = unionTypeRelatedToType(source, target, reportErrors)) { + return _result; } } else { - if (result = typeRelatedToUnionType(source, target, reportErrors)) { - return result; + if (_result = typeRelatedToUnionType(source, target, reportErrors)) { + return _result; } } } } else if (source.flags & 512 && target.flags & 512) { - if (result = typeParameterRelatedTo(source, target, reportErrors)) { - return result; + if (_result = typeParameterRelatedTo(source, target, reportErrors)) { + return _result; } } else { var saveErrorInfo = errorInfo; if (source.flags & 4096 && target.flags & 4096 && source.target === target.target) { - if (result = typesRelatedTo(source.typeArguments, target.typeArguments, reportErrors)) { - return result; + if (_result = typesRelatedTo(source.typeArguments, target.typeArguments, reportErrors)) { + return _result; } } var reportStructuralErrors = reportErrors && errorInfo === saveErrorInfo; var sourceOrApparentType = relation === identityRelation ? source : getApparentType(source); - if (sourceOrApparentType.flags & 48128 && target.flags & 48128 && (result = objectTypeRelatedTo(sourceOrApparentType, target, reportStructuralErrors, elaborateErrors))) { + if (sourceOrApparentType.flags & 48128 && target.flags & 48128 && + (_result = objectTypeRelatedTo(sourceOrApparentType, target, reportStructuralErrors, elaborateErrors))) { errorInfo = saveErrorInfo; - return result; + return _result; } } if (reportErrors) { @@ -16038,16 +11406,17 @@ var ts; return 0; } function unionTypeRelatedToUnionType(source, target) { - var result = -1; + var _result = -1; var sourceTypes = source.types; - for (var i = 0, len = sourceTypes.length; i < len; i++) { - var related = typeRelatedToUnionType(sourceTypes[i], target, false); + for (var _i = 0, _n = sourceTypes.length; _i < _n; _i++) { + var sourceType = sourceTypes[_i]; + var related = typeRelatedToUnionType(sourceType, target, false); if (!related) { return 0; } - result &= related; + _result &= related; } - return result; + return _result; } function typeRelatedToUnionType(source, target, reportErrors) { var targetTypes = target.types; @@ -16060,27 +11429,28 @@ var ts; return 0; } function unionTypeRelatedToType(source, target, reportErrors) { - var result = -1; + var _result = -1; var sourceTypes = source.types; - for (var i = 0, len = sourceTypes.length; i < len; i++) { - var related = isRelatedTo(sourceTypes[i], target, reportErrors); + for (var _i = 0, _n = sourceTypes.length; _i < _n; _i++) { + var sourceType = sourceTypes[_i]; + var related = isRelatedTo(sourceType, target, reportErrors); if (!related) { return 0; } - result &= related; + _result &= related; } - return result; + return _result; } function typesRelatedTo(sources, targets, reportErrors) { - var result = -1; + var _result = -1; for (var i = 0, len = sources.length; i < len; i++) { var related = isRelatedTo(sources[i], targets[i], reportErrors); if (!related) { return 0; } - result &= related; + _result &= related; } - return result; + return _result; } function typeParameterRelatedTo(source, target, reportErrors) { if (relation === identityRelation) { @@ -16146,19 +11516,20 @@ var ts; expandingFlags |= 1; if (!(expandingFlags & 2) && isDeeplyNestedGeneric(target, targetStack)) expandingFlags |= 2; + var _result; if (expandingFlags === 3) { - var result = 1; + _result = 1; } else { - var result = propertiesRelatedTo(source, target, reportErrors); - if (result) { - result &= signaturesRelatedTo(source, target, 0, reportErrors); - if (result) { - result &= signaturesRelatedTo(source, target, 1, reportErrors); - if (result) { - result &= stringIndexTypesRelatedTo(source, target, reportErrors); - if (result) { - result &= numberIndexTypesRelatedTo(source, target, reportErrors); + _result = propertiesRelatedTo(source, target, reportErrors); + if (_result) { + _result &= signaturesRelatedTo(source, target, 0, reportErrors); + if (_result) { + _result &= signaturesRelatedTo(source, target, 1, reportErrors); + if (_result) { + _result &= stringIndexTypesRelatedTo(source, target, reportErrors); + if (_result) { + _result &= numberIndexTypesRelatedTo(source, target, reportErrors); } } } @@ -16166,23 +11537,23 @@ var ts; } expandingFlags = saveExpandingFlags; depth--; - if (result) { + if (_result) { var maybeCache = maybeStack[depth]; - var destinationCache = (result === -1 || depth === 0) ? relation : maybeStack[depth - 1]; + var destinationCache = (_result === -1 || depth === 0) ? relation : maybeStack[depth - 1]; ts.copyMap(maybeCache, destinationCache); } else { relation[id] = reportErrors ? 3 : 2; } - return result; + return _result; } function isDeeplyNestedGeneric(type, stack) { if (type.flags & 4096 && depth >= 10) { - var target = type.target; + var _target = type.target; var count = 0; for (var i = 0; i < depth; i++) { var t = stack[i]; - if (t.flags & 4096 && t.target === target) { + if (t.flags & 4096 && t.target === _target) { count++; if (count >= 10) return true; @@ -16195,11 +11566,11 @@ var ts; if (relation === identityRelation) { return propertiesIdenticalTo(source, target); } - var result = -1; + var _result = -1; var properties = getPropertiesOfObjectType(target); var requireOptionalProperties = relation === subtypeRelation && !(source.flags & 131072); - for (var i = 0; i < properties.length; i++) { - var targetProp = properties[i]; + for (var _i = 0, _n = properties.length; _i < _n; _i++) { + var targetProp = properties[_i]; var sourceProp = getPropertyOfType(source, targetProp.name); if (sourceProp !== targetProp) { if (!sourceProp) { @@ -16250,7 +11621,7 @@ var ts; } return 0; } - result &= related; + _result &= related; if (sourceProp.flags & 536870912 && !(targetProp.flags & 536870912)) { if (reportErrors) { reportError(ts.Diagnostics.Property_0_is_optional_in_type_1_but_required_in_type_2, symbolToString(targetProp), typeToString(source), typeToString(target)); @@ -16260,7 +11631,7 @@ var ts; } } } - return result; + return _result; } function propertiesIdenticalTo(source, target) { var sourceProperties = getPropertiesOfObjectType(source); @@ -16268,9 +11639,9 @@ var ts; if (sourceProperties.length !== targetProperties.length) { return 0; } - var result = -1; - for (var i = 0, len = sourceProperties.length; i < len; ++i) { - var sourceProp = sourceProperties[i]; + var _result = -1; + for (var _i = 0, _n = sourceProperties.length; _i < _n; _i++) { + var sourceProp = sourceProperties[_i]; var targetProp = getPropertyOfObjectType(target, sourceProp.name); if (!targetProp) { return 0; @@ -16279,9 +11650,9 @@ var ts; if (!related) { return 0; } - result &= related; + _result &= related; } - return result; + return _result; } function signaturesRelatedTo(source, target, kind, reportErrors) { if (relation === identityRelation) { @@ -16292,18 +11663,18 @@ var ts; } var sourceSignatures = getSignaturesOfType(source, kind); var targetSignatures = getSignaturesOfType(target, kind); - var result = -1; + var _result = -1; var saveErrorInfo = errorInfo; - outer: for (var i = 0; i < targetSignatures.length; i++) { - var t = targetSignatures[i]; + outer: for (var _i = 0, _n = targetSignatures.length; _i < _n; _i++) { + var t = targetSignatures[_i]; if (!t.hasStringLiterals || target.flags & 65536) { var localErrors = reportErrors; - for (var j = 0; j < sourceSignatures.length; j++) { - var s = sourceSignatures[j]; + for (var _a = 0, _b = sourceSignatures.length; _a < _b; _a++) { + var s = sourceSignatures[_a]; if (!s.hasStringLiterals || source.flags & 65536) { var related = signatureRelatedTo(s, t, localErrors); if (related) { - result &= related; + _result &= related; errorInfo = saveErrorInfo; continue outer; } @@ -16313,7 +11684,7 @@ var ts; return 0; } } - return result; + return _result; } function signatureRelatedTo(source, target, reportErrors) { if (source === target) { @@ -16343,14 +11714,14 @@ var ts; } source = getErasedSignature(source); target = getErasedSignature(target); - var result = -1; + var _result = -1; for (var i = 0; i < checkCount; i++) { - var s = i < sourceMax ? getTypeOfSymbol(source.parameters[i]) : getRestTypeOfSignature(source); - var t = i < targetMax ? getTypeOfSymbol(target.parameters[i]) : getRestTypeOfSignature(target); + var _s = i < sourceMax ? getTypeOfSymbol(source.parameters[i]) : getRestTypeOfSignature(source); + var _t = i < targetMax ? getTypeOfSymbol(target.parameters[i]) : getRestTypeOfSignature(target); var saveErrorInfo = errorInfo; - var related = isRelatedTo(s, t, reportErrors); + var related = isRelatedTo(_s, _t, reportErrors); if (!related) { - related = isRelatedTo(t, s, false); + related = isRelatedTo(_t, _s, false); if (!related) { if (reportErrors) { reportError(ts.Diagnostics.Types_of_parameters_0_and_1_are_incompatible, source.parameters[i < sourceMax ? i : sourceMax].name, target.parameters[i < targetMax ? i : targetMax].name); @@ -16359,13 +11730,13 @@ var ts; } errorInfo = saveErrorInfo; } - result &= related; + _result &= related; } var t = getReturnTypeOfSignature(target); if (t === voidType) - return result; + return _result; var s = getReturnTypeOfSignature(source); - return result & isRelatedTo(s, t, reportErrors); + return _result & isRelatedTo(s, t, reportErrors); } function signaturesIdenticalTo(source, target, kind) { var sourceSignatures = getSignaturesOfType(source, kind); @@ -16373,15 +11744,15 @@ var ts; if (sourceSignatures.length !== targetSignatures.length) { return 0; } - var result = -1; + var _result = -1; for (var i = 0, len = sourceSignatures.length; i < len; ++i) { var related = compareSignatures(sourceSignatures[i], targetSignatures[i], true, isRelatedTo); if (!related) { return 0; } - result &= related; + _result &= related; } - return result; + return _result; } function stringIndexTypesRelatedTo(source, target, reportErrors) { if (relation === identityRelation) { @@ -16421,11 +11792,12 @@ var ts; } return 0; } + var related; if (sourceStringType && sourceNumberType) { - var related = isRelatedTo(sourceStringType, targetType, false) || isRelatedTo(sourceNumberType, targetType, reportErrors); + related = isRelatedTo(sourceStringType, targetType, false) || isRelatedTo(sourceNumberType, targetType, reportErrors); } else { - var related = isRelatedTo(sourceStringType || sourceNumberType, targetType, reportErrors); + related = isRelatedTo(sourceStringType || sourceNumberType, targetType, reportErrors); } if (!related) { if (reportErrors) { @@ -16477,7 +11849,9 @@ var ts; if (source === target) { return -1; } - if (source.parameters.length !== target.parameters.length || source.minArgumentCount !== target.minArgumentCount || source.hasRestParameter !== target.hasRestParameter) { + if (source.parameters.length !== target.parameters.length || + source.minArgumentCount !== target.minArgumentCount || + source.hasRestParameter !== target.hasRestParameter) { return 0; } var result = -1; @@ -16498,14 +11872,14 @@ var ts; } source = getErasedSignature(source); target = getErasedSignature(target); - for (var i = 0, len = source.parameters.length; i < len; i++) { - var s = source.hasRestParameter && i === len - 1 ? getRestTypeOfSignature(source) : getTypeOfSymbol(source.parameters[i]); - var t = target.hasRestParameter && i === len - 1 ? getRestTypeOfSignature(target) : getTypeOfSymbol(target.parameters[i]); - var related = compareTypes(s, t); - if (!related) { + for (var _i = 0, _len = source.parameters.length; _i < _len; _i++) { + var s = source.hasRestParameter && _i === _len - 1 ? getRestTypeOfSignature(source) : getTypeOfSymbol(source.parameters[_i]); + var t = target.hasRestParameter && _i === _len - 1 ? getRestTypeOfSignature(target) : getTypeOfSymbol(target.parameters[_i]); + var _related = compareTypes(s, t); + if (!_related) { return 0; } - result &= related; + result &= _related; } if (compareReturnTypes) { result &= compareTypes(getReturnTypeOfSignature(source), getReturnTypeOfSignature(target)); @@ -16513,16 +11887,15 @@ var ts; return result; } function isSupertypeOfEach(candidate, types) { - for (var i = 0, len = types.length; i < len; i++) { - if (candidate !== types[i] && !isTypeSubtypeOf(types[i], candidate)) + for (var _i = 0, _n = types.length; _i < _n; _i++) { + var type = types[_i]; + if (candidate !== type && !isTypeSubtypeOf(type, candidate)) return false; } return true; } function getCommonSupertype(types) { - return ts.forEach(types, function (t) { - return isSupertypeOfEach(t, types) ? t : undefined; - }); + return ts.forEach(types, function (t) { return isSupertypeOfEach(t, types) ? t : undefined; }); } function reportNoCommonSupertypeError(types, errorLocation, errorMessageChainHead) { var bestSupertype; @@ -16619,29 +11992,32 @@ var ts; return reportWideningErrorsInType(type.typeArguments[0]); } if (type.flags & 131072) { - var errorReported = false; + var _errorReported = false; ts.forEach(getPropertiesOfObjectType(type), function (p) { var t = getTypeOfSymbol(p); if (t.flags & 262144) { if (!reportWideningErrorsInType(t)) { error(p.valueDeclaration, ts.Diagnostics.Object_literal_s_property_0_implicitly_has_an_1_type, p.name, typeToString(getWidenedType(t))); } - errorReported = true; + _errorReported = true; } }); - return errorReported; + return _errorReported; } return false; } function reportImplicitAnyError(declaration, type) { var typeAsString = typeToString(getWidenedType(type)); + var diagnostic; switch (declaration.kind) { case 130: case 129: - var diagnostic = ts.Diagnostics.Member_0_implicitly_has_an_1_type; + diagnostic = ts.Diagnostics.Member_0_implicitly_has_an_1_type; break; case 128: - var diagnostic = declaration.dotDotDotToken ? ts.Diagnostics.Rest_parameter_0_implicitly_has_an_any_type : ts.Diagnostics.Parameter_0_implicitly_has_an_1_type; + diagnostic = declaration.dotDotDotToken ? + ts.Diagnostics.Rest_parameter_0_implicitly_has_an_any_type : + ts.Diagnostics.Parameter_0_implicitly_has_an_1_type; break; case 195: case 132: @@ -16654,10 +12030,10 @@ var ts; error(declaration, ts.Diagnostics.Function_expression_which_lacks_return_type_annotation_implicitly_has_an_0_return_type, typeAsString); return; } - var diagnostic = ts.Diagnostics._0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type; + diagnostic = ts.Diagnostics._0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type; break; default: - var diagnostic = ts.Diagnostics.Variable_0_implicitly_has_an_1_type; + diagnostic = ts.Diagnostics.Variable_0_implicitly_has_an_1_type; } error(declaration, diagnostic, ts.declarationNameToString(declaration.name), typeAsString); } @@ -16696,11 +12072,9 @@ var ts; } function createInferenceContext(typeParameters, inferUnionTypes) { var inferences = []; - for (var i = 0; i < typeParameters.length; i++) { - inferences.push({ - primary: undefined, - secondary: undefined - }); + for (var _i = 0, _n = typeParameters.length; _i < _n; _i++) { + var unused = typeParameters[_i]; + inferences.push({ primary: undefined, secondary: undefined }); } return { typeParameters: typeParameters, @@ -16718,19 +12092,21 @@ var ts; inferFromTypes(source, target); function isInProcess(source, target) { for (var i = 0; i < depth; i++) { - if (source === sourceStack[i] && target === targetStack[i]) + if (source === sourceStack[i] && target === targetStack[i]) { return true; + } } return false; } function isWithinDepthLimit(type, stack) { if (depth >= 5) { - var target = type.target; + var _target = type.target; var count = 0; for (var i = 0; i < depth; i++) { var t = stack[i]; - if (t.flags & 4096 && t.target === target) + if (t.flags & 4096 && t.target === _target) { count++; + } } return count < 5; } @@ -16745,7 +12121,9 @@ var ts; for (var i = 0; i < typeParameters.length; i++) { if (target === typeParameters[i]) { var inferences = context.inferences[i]; - var candidates = inferiority ? inferences.secondary || (inferences.secondary = []) : inferences.primary || (inferences.primary = []); + var candidates = inferiority ? + inferences.secondary || (inferences.secondary = []) : + inferences.primary || (inferences.primary = []); if (!ts.contains(candidates, source)) candidates.push(source); break; @@ -16755,16 +12133,16 @@ var ts; else if (source.flags & 4096 && target.flags & 4096 && source.target === target.target) { var sourceTypes = source.typeArguments; var targetTypes = target.typeArguments; - for (var i = 0; i < sourceTypes.length; i++) { - inferFromTypes(sourceTypes[i], targetTypes[i]); + for (var _i = 0; _i < sourceTypes.length; _i++) { + inferFromTypes(sourceTypes[_i], targetTypes[_i]); } } else if (target.flags & 16384) { - var targetTypes = target.types; + var _targetTypes = target.types; var typeParameterCount = 0; var typeParameter; - for (var i = 0; i < targetTypes.length; i++) { - var t = targetTypes[i]; + for (var _a = 0, _n = _targetTypes.length; _a < _n; _a++) { + var t = _targetTypes[_a]; if (t.flags & 512 && ts.contains(context.typeParameters, t)) { typeParameter = t; typeParameterCount++; @@ -16780,12 +12158,14 @@ var ts; } } else if (source.flags & 16384) { - var sourceTypes = source.types; - for (var i = 0; i < sourceTypes.length; i++) { - inferFromTypes(sourceTypes[i], target); + var _sourceTypes = source.types; + for (var _b = 0, _c = _sourceTypes.length; _b < _c; _b++) { + var sourceType = _sourceTypes[_b]; + inferFromTypes(sourceType, target); } } - else if (source.flags & 48128 && (target.flags & (4096 | 8192) || (target.flags & 32768) && target.symbol && target.symbol.flags & (8192 | 2048))) { + else if (source.flags & 48128 && (target.flags & (4096 | 8192) || + (target.flags & 32768) && target.symbol && target.symbol.flags & (8192 | 2048))) { if (!isInProcess(source, target) && isWithinDepthLimit(source, sourceStack) && isWithinDepthLimit(target, targetStack)) { if (depth === 0) { sourceStack = []; @@ -16806,8 +12186,8 @@ var ts; } function inferFromProperties(source, target) { var properties = getPropertiesOfObjectType(target); - for (var i = 0; i < properties.length; i++) { - var targetProp = properties[i]; + for (var _i = 0, _n = properties.length; _i < _n; _i++) { + var targetProp = properties[_i]; var sourceProp = getPropertyOfObjectType(source, targetProp.name); if (sourceProp) { inferFromTypes(getTypeOfSymbol(sourceProp), getTypeOfSymbol(targetProp)); @@ -16895,12 +12275,8 @@ var ts; function removeTypesFromUnionType(type, typeKind, isOfTypeKind, allowEmptyUnionResult) { if (type.flags & 16384) { var types = type.types; - if (ts.forEach(types, function (t) { - return !!(t.flags & typeKind) === isOfTypeKind; - })) { - var narrowedType = getUnionType(ts.filter(types, function (t) { - return !(t.flags & typeKind) === isOfTypeKind; - })); + if (ts.forEach(types, function (t) { return !!(t.flags & typeKind) === isOfTypeKind; })) { + var narrowedType = getUnionType(ts.filter(types, function (t) { return !(t.flags & typeKind) === isOfTypeKind; })); if (allowEmptyUnionResult || narrowedType !== emptyObjectType) { return narrowedType; } @@ -16993,14 +12369,13 @@ var ts; } function resolveLocation(node) { var containerNodes = []; - for (var parent = node.parent; parent; parent = parent.parent) { - if ((ts.isExpression(parent) || ts.isObjectLiteralMethod(node)) && isContextSensitive(parent)) { - containerNodes.unshift(parent); + for (var _parent = node.parent; _parent; _parent = _parent.parent) { + if ((ts.isExpression(_parent) || ts.isObjectLiteralMethod(node)) && + isContextSensitive(_parent)) { + containerNodes.unshift(_parent); } } - ts.forEach(containerNodes, function (node) { - getTypeOfNode(node); - }); + ts.forEach(containerNodes, function (node) { getTypeOfNode(node); }); } function getSymbolAtLocation(node) { resolveLocation(node); @@ -17129,9 +12504,7 @@ var ts; return targetType; } if (type.flags & 16384) { - return getUnionType(ts.filter(type.types, function (t) { - return isTypeSubtypeOf(t, targetType); - })); + return getUnionType(ts.filter(type.types, function (t) { return isTypeSubtypeOf(t, targetType); })); } return type; } @@ -17187,7 +12560,9 @@ var ts; return false; } function checkBlockScopedBindingCapturedInLoop(node, symbol) { - if (languageVersion >= 2 || (symbol.flags & 2) === 0 || symbol.valueDeclaration.parent.kind === 217) { + if (languageVersion >= 2 || + (symbol.flags & 2) === 0 || + symbol.valueDeclaration.parent.kind === 217) { return; } var container = symbol.valueDeclaration; @@ -17283,21 +12658,33 @@ var ts; var container = ts.getSuperContainer(node, true); if (container) { var canUseSuperExpression = false; + var needToCaptureLexicalThis; if (isCallExpression) { canUseSuperExpression = container.kind === 133; } else { - var needToCaptureLexicalThis = false; + needToCaptureLexicalThis = false; while (container && container.kind === 161) { container = ts.getSuperContainer(container, true); needToCaptureLexicalThis = true; } if (container && container.parent && container.parent.kind === 196) { if (container.flags & 128) { - canUseSuperExpression = container.kind === 132 || container.kind === 131 || container.kind === 134 || container.kind === 135; + canUseSuperExpression = + container.kind === 132 || + container.kind === 131 || + container.kind === 134 || + container.kind === 135; } else { - canUseSuperExpression = container.kind === 132 || container.kind === 131 || container.kind === 134 || container.kind === 135 || container.kind === 130 || container.kind === 129 || container.kind === 133; + canUseSuperExpression = + container.kind === 132 || + container.kind === 131 || + container.kind === 134 || + container.kind === 135 || + container.kind === 130 || + container.kind === 129 || + container.kind === 133; } } } @@ -17344,7 +12731,8 @@ var ts; if (indexOfParameter < len) { return getTypeAtPosition(contextualSignature, indexOfParameter); } - if (indexOfParameter === (func.parameters.length - 1) && funcHasRestParameters && contextualSignature.hasRestParameter && func.parameters.length >= contextualSignature.parameters.length) { + if (indexOfParameter === (func.parameters.length - 1) && + funcHasRestParameters && contextualSignature.hasRestParameter && func.parameters.length >= contextualSignature.parameters.length) { return getTypeOfSymbol(contextualSignature.parameters[contextualSignature.parameters.length - 1]); } } @@ -17422,17 +12810,15 @@ var ts; var types = type.types; var mappedType; var mappedTypes; - for (var i = 0; i < types.length; i++) { - var t = mapper(types[i]); + for (var _i = 0, _n = types.length; _i < _n; _i++) { + var current = types[_i]; + var t = mapper(current); if (t) { if (!mappedType) { mappedType = t; } else if (!mappedTypes) { - mappedTypes = [ - mappedType, - t - ]; + mappedTypes = [mappedType, t]; } else { mappedTypes.push(t); @@ -17448,17 +12834,13 @@ var ts; }); } function getIndexTypeOfContextualType(type, kind) { - return applyToContextualType(type, function (t) { - return getIndexTypeOfObjectOrUnionType(t, kind); - }); + return applyToContextualType(type, function (t) { return getIndexTypeOfObjectOrUnionType(t, kind); }); } function contextualTypeIsTupleLikeType(type) { return !!(type.flags & 16384 ? ts.forEach(type.types, isTupleLikeType) : isTupleLikeType(type)); } function contextualTypeHasIndexSignature(type, kind) { - return !!(type.flags & 16384 ? ts.forEach(type.types, function (t) { - return getIndexTypeOfObjectOrUnionType(t, kind); - }) : getIndexTypeOfObjectOrUnionType(type, kind)); + return !!(type.flags & 16384 ? ts.forEach(type.types, function (t) { return getIndexTypeOfObjectOrUnionType(t, kind); }) : getIndexTypeOfObjectOrUnionType(type, kind)); } function getContextualTypeForObjectLiteralMethod(node) { ts.Debug.assert(ts.isObjectLiteralMethod(node)); @@ -17478,7 +12860,8 @@ var ts; return propertyType; } } - return isNumericName(element.name) && getIndexTypeOfContextualType(type, 1) || getIndexTypeOfContextualType(type, 0); + return isNumericName(element.name) && getIndexTypeOfContextualType(type, 1) || + getIndexTypeOfContextualType(type, 0); } return undefined; } @@ -17487,7 +12870,9 @@ var ts; var type = getContextualType(arrayLiteral); if (type) { var index = ts.indexOf(arrayLiteral.elements, node); - return getTypeOfPropertyOfContextualType(type, "" + index) || getIndexTypeOfContextualType(type, 1) || (languageVersion >= 2 ? checkIteratedType(type, undefined) : undefined); + return getTypeOfPropertyOfContextualType(type, "" + index) + || getIndexTypeOfContextualType(type, 1) + || (languageVersion >= 2 ? checkIteratedType(type, undefined) : undefined); } return undefined; } @@ -17502,8 +12887,8 @@ var ts; if (node.contextualType) { return node.contextualType; } - var parent = node.parent; - switch (parent.kind) { + var _parent = node.parent; + switch (_parent.kind) { case 193: case 128: case 130: @@ -17515,22 +12900,22 @@ var ts; return getContextualTypeForReturnExpression(node); case 155: case 156: - return getContextualTypeForArgument(parent, node); + return getContextualTypeForArgument(_parent, node); case 158: - return getTypeFromTypeNode(parent.type); + return getTypeFromTypeNode(_parent.type); case 167: return getContextualTypeForBinaryOperand(node); case 218: - return getContextualTypeForObjectLiteralElement(parent); + return getContextualTypeForObjectLiteralElement(_parent); case 151: return getContextualTypeForElementExpression(node); case 168: return getContextualTypeForConditionalOperand(node); case 173: - ts.Debug.assert(parent.parent.kind === 169); - return getContextualTypeForSubstitutionExpression(parent.parent, node); + ts.Debug.assert(_parent.parent.kind === 169); + return getContextualTypeForSubstitutionExpression(_parent.parent, node); case 159: - return getContextualType(parent); + return getContextualType(_parent); } return undefined; } @@ -17551,7 +12936,9 @@ var ts; } function getContextualSignature(node) { ts.Debug.assert(node.kind !== 132 || ts.isObjectLiteralMethod(node)); - var type = ts.isObjectLiteralMethod(node) ? getContextualTypeForObjectLiteralMethod(node) : getContextualType(node); + var type = ts.isObjectLiteralMethod(node) + ? getContextualTypeForObjectLiteralMethod(node) + : getContextualType(node); if (!type) { return undefined; } @@ -17560,16 +12947,16 @@ var ts; } var signatureList; var types = type.types; - for (var i = 0; i < types.length; i++) { - if (signatureList && getSignaturesOfObjectOrUnionType(types[i], 0).length > 1) { + for (var _i = 0, _n = types.length; _i < _n; _i++) { + var current = types[_i]; + if (signatureList && + getSignaturesOfObjectOrUnionType(current, 0).length > 1) { return undefined; } - var signature = getNonGenericSignature(types[i]); + var signature = getNonGenericSignature(current); if (signature) { if (!signatureList) { - signatureList = [ - signature - ]; + signatureList = [signature]; } else if (!compareSignatures(signatureList[0], signature, false, compareTypes)) { return undefined; @@ -17591,15 +12978,15 @@ var ts; return mapper && mapper !== identityMapper; } function isAssignmentTarget(node) { - var parent = node.parent; - if (parent.kind === 167 && parent.operatorToken.kind === 52 && parent.left === node) { + var _parent = node.parent; + if (_parent.kind === 167 && _parent.operatorToken.kind === 52 && _parent.left === node) { return true; } - if (parent.kind === 218) { - return isAssignmentTarget(parent.parent); + if (_parent.kind === 218) { + return isAssignmentTarget(_parent.parent); } - if (parent.kind === 151) { - return isAssignmentTarget(parent); + if (_parent.kind === 151) { + return isAssignmentTarget(_parent); } return false; } @@ -17664,19 +13051,24 @@ var ts; var propertiesArray = []; var contextualType = getContextualType(node); var typeFlags; - for (var i = 0; i < node.properties.length; i++) { - var memberDecl = node.properties[i]; + for (var _i = 0, _a = node.properties, _n = _a.length; _i < _n; _i++) { + var memberDecl = _a[_i]; var member = memberDecl.symbol; - if (memberDecl.kind === 218 || memberDecl.kind === 219 || ts.isObjectLiteralMethod(memberDecl)) { + if (memberDecl.kind === 218 || + memberDecl.kind === 219 || + ts.isObjectLiteralMethod(memberDecl)) { + var type = void 0; if (memberDecl.kind === 218) { - var type = checkPropertyAssignment(memberDecl, contextualMapper); + type = checkPropertyAssignment(memberDecl, contextualMapper); } else if (memberDecl.kind === 132) { - var type = checkObjectLiteralMethod(memberDecl, contextualMapper); + type = checkObjectLiteralMethod(memberDecl, contextualMapper); } else { ts.Debug.assert(memberDecl.kind === 219); - var type = memberDecl.name.kind === 126 ? unknownType : checkExpression(memberDecl.name, contextualMapper); + type = memberDecl.name.kind === 126 + ? unknownType + : checkExpression(memberDecl.name, contextualMapper); } typeFlags |= type.flags; var prop = createSymbol(4 | 67108864 | member.flags, member.name); @@ -17709,15 +13101,15 @@ var ts; for (var i = 0; i < propertiesArray.length; i++) { var propertyDecl = node.properties[i]; if (kind === 0 || isNumericName(propertyDecl.name)) { - var type = getTypeOfSymbol(propertiesArray[i]); - if (!ts.contains(propTypes, type)) { - propTypes.push(type); + var _type = getTypeOfSymbol(propertiesArray[i]); + if (!ts.contains(propTypes, _type)) { + propTypes.push(_type); } } } - var result = propTypes.length ? getUnionType(propTypes) : undefinedType; - typeFlags |= result.flags; - return result; + var _result = propTypes.length ? getUnionType(propTypes) : undefinedType; + typeFlags |= _result.flags; + return _result; } return undefined; } @@ -17792,7 +13184,9 @@ var ts; return anyType; } function isValidPropertyAccess(node, propertyName) { - var left = node.kind === 153 ? node.expression : node.left; + var left = node.kind === 153 + ? node.expression + : node.left; var type = checkExpressionOrQualifiedName(left); if (type !== unknownType && type !== anyType) { var prop = getPropertyOfType(getWidenedType(type), propertyName); @@ -17818,9 +13212,9 @@ var ts; grammarErrorAtPos(sourceFile, start, end - start, ts.Diagnostics.new_T_cannot_be_used_to_create_an_array_Use_new_Array_T_instead); } else { - var start = node.end - "]".length; - var end = node.end; - grammarErrorAtPos(sourceFile, start, end - start, ts.Diagnostics.Expression_expected); + var _start = node.end - "]".length; + var _end = node.end; + grammarErrorAtPos(sourceFile, _start, _end - _start, ts.Diagnostics.Expression_expected); } } var objectType = getApparentType(checkExpression(node.expression)); @@ -17829,20 +13223,21 @@ var ts; return unknownType; } var isConstEnum = isConstEnumObjectType(objectType); - if (isConstEnum && (!node.argumentExpression || node.argumentExpression.kind !== 8)) { + if (isConstEnum && + (!node.argumentExpression || node.argumentExpression.kind !== 8)) { error(node.argumentExpression, ts.Diagnostics.A_const_enum_member_can_only_be_accessed_using_a_string_literal); return unknownType; } if (node.argumentExpression) { - var name = getPropertyNameForIndexedAccess(node.argumentExpression, indexType); - if (name !== undefined) { - var prop = getPropertyOfType(objectType, name); + var _name = getPropertyNameForIndexedAccess(node.argumentExpression, indexType); + if (_name !== undefined) { + var prop = getPropertyOfType(objectType, _name); if (prop) { getNodeLinks(node).resolvedSymbol = prop; return getTypeOfSymbol(prop); } else if (isConstEnum) { - error(node.argumentExpression, ts.Diagnostics.Property_0_does_not_exist_on_const_enum_1, name, symbolToString(objectType.symbol)); + error(node.argumentExpression, ts.Diagnostics.Property_0_does_not_exist_on_const_enum_1, _name, symbolToString(objectType.symbol)); return unknownType; } } @@ -17929,22 +13324,22 @@ var ts; var specializedIndex = -1; var spliceIndex; ts.Debug.assert(!result.length); - for (var i = 0; i < signatures.length; i++) { - var signature = signatures[i]; + for (var _i = 0, _n = signatures.length; _i < _n; _i++) { + var signature = signatures[_i]; var symbol = signature.declaration && getSymbolOfNode(signature.declaration); - var parent = signature.declaration && signature.declaration.parent; + var _parent = signature.declaration && signature.declaration.parent; if (!lastSymbol || symbol === lastSymbol) { - if (lastParent && parent === lastParent) { + if (lastParent && _parent === lastParent) { index++; } else { - lastParent = parent; + lastParent = _parent; index = cutoffIndex; } } else { index = cutoffIndex = result.length; - lastParent = parent; + lastParent = _parent; } lastSymbol = symbol; if (signature.hasStringLiterals) { @@ -17996,7 +13391,8 @@ var ts; callIsIncomplete = callExpression.arguments.end === callExpression.end; typeArguments = callExpression.typeArguments; } - var hasRightNumberOfTypeArgs = !typeArguments || (signature.typeParameters && typeArguments.length === signature.typeParameters.length); + var hasRightNumberOfTypeArgs = !typeArguments || + (signature.typeParameters && typeArguments.length === signature.typeParameters.length); if (!hasRightNumberOfTypeArgs) { return false; } @@ -18013,7 +13409,8 @@ var ts; function getSingleCallSignature(type) { if (type.flags & 48128) { var resolved = resolveObjectOrUnionTypeMembers(type); - if (resolved.callSignatures.length === 1 && resolved.constructSignatures.length === 0 && resolved.properties.length === 0 && !resolved.stringIndexType && !resolved.numberIndexType) { + if (resolved.callSignatures.length === 1 && resolved.constructSignatures.length === 0 && + resolved.properties.length === 0 && !resolved.stringIndexType && !resolved.numberIndexType) { return resolved.callSignatures[0]; } } @@ -18034,30 +13431,31 @@ var ts; var arg = args[i]; if (arg.kind !== 172) { var paramType = getTypeAtPosition(signature, arg.kind === 171 ? -1 : i); + var argType = void 0; if (i === 0 && args[i].parent.kind === 157) { - var argType = globalTemplateStringsArrayType; + argType = globalTemplateStringsArrayType; } else { var mapper = excludeArgument && excludeArgument[i] !== undefined ? identityMapper : inferenceMapper; - var argType = checkExpressionWithContextualType(arg, paramType, mapper); + argType = checkExpressionWithContextualType(arg, paramType, mapper); } inferTypes(context, argType, paramType); } } if (excludeArgument) { - for (var i = 0; i < args.length; i++) { - if (excludeArgument[i] === false) { - var arg = args[i]; - var paramType = getTypeAtPosition(signature, arg.kind === 171 ? -1 : i); - inferTypes(context, checkExpressionWithContextualType(arg, paramType, inferenceMapper), paramType); + for (var _i = 0; _i < args.length; _i++) { + if (excludeArgument[_i] === false) { + var _arg = args[_i]; + var _paramType = getTypeAtPosition(signature, _arg.kind === 171 ? -1 : _i); + inferTypes(context, checkExpressionWithContextualType(_arg, _paramType, inferenceMapper), _paramType); } } } var inferredTypes = getInferredTypes(context); context.failedTypeParameterIndex = ts.indexOf(inferredTypes, inferenceFailureType); - for (var i = 0; i < inferredTypes.length; i++) { - if (inferredTypes[i] === inferenceFailureType) { - inferredTypes[i] = unknownType; + for (var _i_1 = 0; _i_1 < inferredTypes.length; _i_1++) { + if (inferredTypes[_i_1] === inferenceFailureType) { + inferredTypes[_i_1] = unknownType; } } return context; @@ -18083,7 +13481,9 @@ var ts; var arg = args[i]; if (arg.kind !== 172) { var paramType = getTypeAtPosition(signature, arg.kind === 171 ? -1 : i); - var argType = i === 0 && node.kind === 157 ? globalTemplateStringsArrayType : arg.kind === 8 && !reportErrors ? getStringLiteralType(arg) : checkExpressionWithContextualType(arg, paramType, excludeArgument && excludeArgument[i] ? identityMapper : undefined); + var argType = i === 0 && node.kind === 157 ? globalTemplateStringsArrayType : + arg.kind === 8 && !reportErrors ? getStringLiteralType(arg) : + checkExpressionWithContextualType(arg, paramType, excludeArgument && excludeArgument[i] ? identityMapper : undefined); if (!checkTypeRelatedTo(argType, paramType, relation, reportErrors ? arg : undefined, ts.Diagnostics.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1)) { return false; } @@ -18095,9 +13495,7 @@ var ts; var args; if (node.kind === 157) { var template = node.template; - args = [ - template - ]; + args = [template]; if (template.kind === 169) { ts.forEach(template.templateSpans, function (span) { args.push(span.expression); @@ -18179,50 +13577,53 @@ var ts; error(node, ts.Diagnostics.Supplied_parameters_do_not_match_any_signature_of_call_target); } if (!produceDiagnostics) { - for (var i = 0, n = candidates.length; i < n; i++) { - if (hasCorrectArity(node, args, candidates[i])) { - return candidates[i]; + for (var _i = 0, _n = candidates.length; _i < _n; _i++) { + var candidate = candidates[_i]; + if (hasCorrectArity(node, args, candidate)) { + return candidate; } } } return resolveErrorCall(node); function chooseOverload(candidates, relation) { - for (var i = 0; i < candidates.length; i++) { - if (!hasCorrectArity(node, args, candidates[i])) { + for (var _a = 0, _b = candidates.length; _a < _b; _a++) { + var current = candidates[_a]; + if (!hasCorrectArity(node, args, current)) { continue; } - var originalCandidate = candidates[i]; - var inferenceResult; + var originalCandidate = current; + var inferenceResult = void 0; + var _candidate = void 0; + var typeArgumentsAreValid = void 0; while (true) { - var candidate = originalCandidate; - if (candidate.typeParameters) { - var typeArgumentTypes; - var typeArgumentsAreValid; + _candidate = originalCandidate; + if (_candidate.typeParameters) { + var typeArgumentTypes = void 0; if (typeArguments) { - typeArgumentTypes = new Array(candidate.typeParameters.length); - typeArgumentsAreValid = checkTypeArguments(candidate, typeArguments, typeArgumentTypes, false); + typeArgumentTypes = new Array(_candidate.typeParameters.length); + typeArgumentsAreValid = checkTypeArguments(_candidate, typeArguments, typeArgumentTypes, false); } else { - inferenceResult = inferTypeArguments(candidate, args, excludeArgument); + inferenceResult = inferTypeArguments(_candidate, args, excludeArgument); typeArgumentsAreValid = inferenceResult.failedTypeParameterIndex < 0; typeArgumentTypes = inferenceResult.inferredTypes; } if (!typeArgumentsAreValid) { break; } - candidate = getSignatureInstantiation(candidate, typeArgumentTypes); + _candidate = getSignatureInstantiation(_candidate, typeArgumentTypes); } - if (!checkApplicableSignature(node, args, candidate, relation, excludeArgument, false)) { + if (!checkApplicableSignature(node, args, _candidate, relation, excludeArgument, false)) { break; } var index = excludeArgument ? ts.indexOf(excludeArgument, true) : -1; if (index < 0) { - return candidate; + return _candidate; } excludeArgument[index] = false; } if (originalCandidate.typeParameters) { - var instantiatedCandidate = candidate; + var instantiatedCandidate = _candidate; if (typeArgumentsAreValid) { candidateForArgumentError = instantiatedCandidate; } @@ -18234,7 +13635,7 @@ var ts; } } else { - ts.Debug.assert(originalCandidate === candidate); + ts.Debug.assert(originalCandidate === _candidate); candidateForArgumentError = originalCandidate; } } @@ -18349,7 +13750,10 @@ var ts; } if (node.kind === 156) { var declaration = signature.declaration; - if (declaration && declaration.kind !== 133 && declaration.kind !== 137 && declaration.kind !== 141) { + if (declaration && + declaration.kind !== 133 && + declaration.kind !== 137 && + declaration.kind !== 141) { if (compilerOptions.noImplicitAny) { error(node, ts.Diagnostics.new_expression_whose_target_lacks_a_construct_signature_implicitly_has_an_any_type); } @@ -18374,9 +13778,13 @@ var ts; } function getTypeAtPosition(signature, pos) { if (pos >= 0) { - return signature.hasRestParameter ? pos < signature.parameters.length - 1 ? getTypeOfSymbol(signature.parameters[pos]) : getRestTypeOfSignature(signature) : pos < signature.parameters.length ? getTypeOfSymbol(signature.parameters[pos]) : anyType; + return signature.hasRestParameter ? + pos < signature.parameters.length - 1 ? getTypeOfSymbol(signature.parameters[pos]) : getRestTypeOfSignature(signature) : + pos < signature.parameters.length ? getTypeOfSymbol(signature.parameters[pos]) : anyType; } - return signature.hasRestParameter ? getTypeOfSymbol(signature.parameters[signature.parameters.length - 1]) : anyArrayType; + return signature.hasRestParameter ? + getTypeOfSymbol(signature.parameters[signature.parameters.length - 1]) : + anyArrayType; } function assignContextualParameterTypes(signature, context, mapper) { var len = signature.parameters.length - (signature.hasRestParameter ? 1 : 0); @@ -18386,9 +13794,9 @@ var ts; links.type = instantiateType(getTypeAtPosition(context, i), mapper); } if (signature.hasRestParameter && context.hasRestParameter && signature.parameters.length >= context.parameters.length) { - var parameter = signature.parameters[signature.parameters.length - 1]; - var links = getSymbolLinks(parameter); - links.type = instantiateType(getTypeOfSymbol(context.parameters[context.parameters.length - 1]), mapper); + var _parameter = signature.parameters[signature.parameters.length - 1]; + var _links = getSymbolLinks(_parameter); + _links.type = instantiateType(getTypeOfSymbol(context.parameters[context.parameters.length - 1]), mapper); } } function getReturnTypeFromBody(func, contextualMapper) { @@ -18396,15 +13804,16 @@ var ts; if (!func.body) { return unknownType; } + var type; if (func.body.kind !== 174) { - var type = checkExpressionCached(func.body, contextualMapper); + type = checkExpressionCached(func.body, contextualMapper); } else { var types = checkAndAggregateReturnExpressionTypes(func.body, contextualMapper); if (types.length === 0) { return voidType; } - var type = contextualSignature ? getUnionType(types) : getCommonSupertype(types); + type = contextualSignature ? getUnionType(types) : getCommonSupertype(types); if (!type) { error(func, ts.Diagnostics.No_best_common_type_exists_among_return_expressions); return unknownType; @@ -18524,12 +13933,14 @@ var ts; } function isReferenceOrErrorExpression(n) { switch (n.kind) { - case 64: + case 64: { var symbol = findSymbol(n); return !symbol || symbol === unknownSymbol || symbol === argumentsSymbol || (symbol.flags & 3) !== 0; - case 153: - var symbol = findSymbol(n); - return !symbol || symbol === unknownSymbol || (symbol.flags & ~8) !== 0; + } + case 153: { + var _symbol = findSymbol(n); + return !_symbol || _symbol === unknownSymbol || (_symbol.flags & ~8) !== 0; + } case 154: return true; case 159: @@ -18541,18 +13952,20 @@ var ts; function isConstVariableReference(n) { switch (n.kind) { case 64: - case 153: + case 153: { var symbol = findSymbol(n); return symbol && (symbol.flags & 3) !== 0 && (getDeclarationFlagsFromSymbol(symbol) & 8192) !== 0; - case 154: + } + case 154: { var index = n.argumentExpression; - var symbol = findSymbol(n.expression); - if (symbol && index && index.kind === 8) { - var name = index.text; - var prop = getPropertyOfType(getTypeOfSymbol(symbol), name); + var _symbol = findSymbol(n.expression); + if (_symbol && index && index.kind === 8) { + var _name = index.text; + var prop = getPropertyOfType(getTypeOfSymbol(_symbol), _name); return prop && (prop.flags & 3) !== 0 && (getDeclarationFlagsFromSymbol(prop) & 8192) !== 0; } return false; + } case 159: return isConstVariableReference(n.expression); default: @@ -18624,8 +14037,9 @@ var ts; } if (type.flags & 16384) { var types = type.types; - for (var i = 0; i < types.length; i++) { - if (types[i].flags & kind) { + for (var _i = 0, _n = types.length; _i < _n; _i++) { + var current = types[_i]; + if (current.flags & kind) { return true; } } @@ -18639,8 +14053,9 @@ var ts; } if (type.flags & 16384) { var types = type.types; - for (var i = 0; i < types.length; i++) { - if (!(types[i].flags & kind)) { + for (var _i = 0, _n = types.length; _i < _n; _i++) { + var current = types[_i]; + if (!(current.flags & kind)) { return false; } } @@ -18674,16 +14089,19 @@ var ts; } function checkObjectLiteralAssignment(node, sourceType, contextualMapper) { var properties = node.properties; - for (var i = 0; i < properties.length; i++) { - var p = properties[i]; + for (var _i = 0, _n = properties.length; _i < _n; _i++) { + var p = properties[_i]; if (p.kind === 218 || p.kind === 219) { - var name = p.name; - var type = sourceType.flags & 1 ? sourceType : getTypeOfPropertyOfType(sourceType, name.text) || isNumericLiteralName(name.text) && getIndexTypeOfType(sourceType, 1) || getIndexTypeOfType(sourceType, 0); + var _name = p.name; + var type = sourceType.flags & 1 ? sourceType : + getTypeOfPropertyOfType(sourceType, _name.text) || + isNumericLiteralName(_name.text) && getIndexTypeOfType(sourceType, 1) || + getIndexTypeOfType(sourceType, 0); if (type) { - checkDestructuringAssignment(p.initializer || name, type); + checkDestructuringAssignment(p.initializer || _name, type); } else { - error(name, ts.Diagnostics.Type_0_has_no_property_1_and_no_string_index_signature, typeToString(sourceType), ts.declarationNameToString(name)); + error(_name, ts.Diagnostics.Type_0_has_no_property_1_and_no_string_index_signature, typeToString(sourceType), ts.declarationNameToString(_name)); } } else { @@ -18703,7 +14121,9 @@ var ts; if (e.kind !== 172) { if (e.kind !== 171) { var propName = "" + i; - var type = sourceType.flags & 1 ? sourceType : isTupleLikeType(sourceType) ? getTypeOfPropertyOfType(sourceType, propName) : getIndexTypeOfType(sourceType, 1); + var type = sourceType.flags & 1 ? sourceType : + isTupleLikeType(sourceType) ? getTypeOfPropertyOfType(sourceType, propName) : + getIndexTypeOfType(sourceType, 1); if (type) { checkDestructuringAssignment(e, type, contextualMapper); } @@ -18784,7 +14204,9 @@ var ts; if (rightType.flags & (32 | 64)) rightType = leftType; var suggestedOperator; - if ((leftType.flags & 8) && (rightType.flags & 8) && (suggestedOperator = getSuggestedBooleanOperator(node.operatorToken.kind)) !== undefined) { + if ((leftType.flags & 8) && + (rightType.flags & 8) && + (suggestedOperator = getSuggestedBooleanOperator(node.operatorToken.kind)) !== undefined) { error(node, ts.Diagnostics.The_0_operator_is_not_allowed_for_boolean_types_Consider_using_1_instead, ts.tokenToString(node.operatorToken.kind), ts.tokenToString(suggestedOperator)); } else { @@ -18846,10 +14268,7 @@ var ts; case 48: return rightType; case 49: - return getUnionType([ - leftType, - rightType - ]); + return getUnionType([leftType, rightType]); case 52: checkAssignmentOperator(rightType); return rightType; @@ -18857,7 +14276,9 @@ var ts; return rightType; } function checkForDisallowedESSymbolOperand(operator) { - var offendingSymbolOperand = someConstituentTypeHasKind(leftType, 1048576) ? node.left : someConstituentTypeHasKind(rightType, 1048576) ? node.right : undefined; + var offendingSymbolOperand = someConstituentTypeHasKind(leftType, 1048576) ? node.left : + someConstituentTypeHasKind(rightType, 1048576) ? node.right : + undefined; if (offendingSymbolOperand) { error(offendingSymbolOperand, ts.Diagnostics.The_0_operator_cannot_be_applied_to_type_symbol, ts.tokenToString(operator)); return false; @@ -18903,10 +14324,7 @@ var ts; checkExpression(node.condition); var type1 = checkExpression(node.whenTrue, contextualMapper); var type2 = checkExpression(node.whenFalse, contextualMapper); - return getUnionType([ - type1, - type2 - ]); + return getUnionType([type1, type2]); } function checkTemplateExpression(node) { ts.forEach(node.templateSpans, function (templateSpan) { @@ -18970,7 +14388,9 @@ var ts; type = instantiateTypeWithSingleGenericCallSignature(node, uninstantiatedType, contextualMapper); } if (isConstEnumObjectType(type)) { - var ok = (node.parent.kind === 153 && node.parent.expression === node) || (node.parent.kind === 154 && node.parent.expression === node) || ((node.kind === 64 || node.kind === 125) && isInRightSideOfImportOrExportAssignment(node)); + var ok = (node.parent.kind === 153 && node.parent.expression === node) || + (node.parent.kind === 154 && node.parent.expression === node) || + ((node.kind === 64 || node.kind === 125) && isInRightSideOfImportOrExportAssignment(node)); if (!ok) { error(node, ts.Diagnostics.const_enums_can_only_be_used_in_property_or_index_access_expressions_or_the_right_hand_side_of_an_import_declaration_or_export_assignment); } @@ -19080,7 +14500,9 @@ var ts; if (node.kind === 138) { checkGrammarIndexSignature(node); } - else if (node.kind === 140 || node.kind === 195 || node.kind === 141 || node.kind === 136 || node.kind === 133 || node.kind === 137) { + else if (node.kind === 140 || node.kind === 195 || node.kind === 141 || + node.kind === 136 || node.kind === 133 || + node.kind === 137) { checkGrammarFunctionLikeDeclaration(node); } checkTypeParameters(node.typeParameters); @@ -19114,8 +14536,9 @@ var ts; if (indexSymbol) { var seenNumericIndexer = false; var seenStringIndexer = false; - for (var i = 0, len = indexSymbol.declarations.length; i < len; ++i) { - var declaration = indexSymbol.declarations[i]; + for (var _i = 0, _a = indexSymbol.declarations, _n = _a.length; _i < _n; _i++) { + var decl = _a[_i]; + var declaration = decl; if (declaration.parameters.length === 1 && declaration.parameters[0].type) { switch (declaration.parameters[0].type.kind) { case 120: @@ -19173,10 +14596,8 @@ var ts; case 160: case 195: case 161: - case 152: - return false; - default: - return ts.forEachChild(n, containsSuperCall); + case 152: return false; + default: return ts.forEachChild(n, containsSuperCall); } } function markThisReferencesAsErrors(n) { @@ -19188,13 +14609,14 @@ var ts; } } function isInstancePropertyWithInitializer(n) { - return n.kind === 130 && !(n.flags & 128) && !!n.initializer; + return n.kind === 130 && + !(n.flags & 128) && + !!n.initializer; } if (ts.getClassBaseTypeNode(node.parent)) { if (containsSuperCall(node.body)) { - var superCallShouldBeFirst = ts.forEach(node.parent.members, isInstancePropertyWithInitializer) || ts.forEach(node.parameters, function (p) { - return p.flags & (16 | 32 | 64); - }); + var superCallShouldBeFirst = ts.forEach(node.parent.members, isInstancePropertyWithInitializer) || + ts.forEach(node.parameters, function (p) { return p.flags & (16 | 32 | 64); }); if (superCallShouldBeFirst) { var statements = node.body.statements; if (!statements.length || statements[0].kind !== 177 || !isSuperCallExpression(statements[0].expression)) { @@ -19303,8 +14725,8 @@ var ts; else { signaturesToCheck = getSignaturesOfSymbol(getSymbolOfNode(signatureDeclarationNode)); } - for (var i = 0; i < signaturesToCheck.length; i++) { - var otherSignature = signaturesToCheck[i]; + for (var _i = 0, _n = signaturesToCheck.length; _i < _n; _i++) { + var otherSignature = signaturesToCheck[_i]; if (!otherSignature.hasStringLiterals && isSignatureAssignableTo(signature, otherSignature)) { return; } @@ -19384,16 +14806,16 @@ var ts; }); if (subsequentNode) { if (subsequentNode.kind === node.kind) { - var errorNode = subsequentNode.name || subsequentNode; + var _errorNode = subsequentNode.name || subsequentNode; if (node.name && subsequentNode.name && node.name.text === subsequentNode.name.text) { ts.Debug.assert(node.kind === 132 || node.kind === 131); ts.Debug.assert((node.flags & 128) !== (subsequentNode.flags & 128)); var diagnostic = node.flags & 128 ? ts.Diagnostics.Function_overload_must_be_static : ts.Diagnostics.Function_overload_must_not_be_static; - error(errorNode, diagnostic); + error(_errorNode, diagnostic); return; } else if (ts.nodeIsPresent(subsequentNode.body)) { - error(errorNode, ts.Diagnostics.Function_implementation_name_must_be_0, ts.declarationNameToString(node.name)); + error(_errorNode, ts.Diagnostics.Function_implementation_name_must_be_0, ts.declarationNameToString(node.name)); return; } } @@ -19409,8 +14831,9 @@ var ts; var isExportSymbolInsideModule = symbol.parent && symbol.parent.flags & 1536; var duplicateFunctionDeclaration = false; var multipleConstructorImplementation = false; - for (var i = 0; i < declarations.length; i++) { - var node = declarations[i]; + for (var _i = 0, _n = declarations.length; _i < _n; _i++) { + var current = declarations[_i]; + var node = current; var inAmbientContext = ts.isInAmbientContext(node); var inAmbientContextOrInterface = node.parent.kind === 197 || node.parent.kind === 143 || inAmbientContext; if (inAmbientContextOrInterface) { @@ -19467,9 +14890,10 @@ var ts; var signatures = getSignaturesOfSymbol(symbol); var bodySignature = getSignatureFromDeclaration(bodyDeclaration); if (!bodySignature.hasStringLiterals) { - for (var i = 0, len = signatures.length; i < len; ++i) { - if (!signatures[i].hasStringLiterals && !isSignatureAssignableTo(bodySignature, signatures[i])) { - error(signatures[i].declaration, ts.Diagnostics.Overload_signature_is_not_compatible_with_function_implementation); + for (var _a = 0, _b = signatures.length; _a < _b; _a++) { + var signature = signatures[_a]; + if (!signature.hasStringLiterals && !isSignatureAssignableTo(bodySignature, signature)) { + error(signature.declaration, ts.Diagnostics.Overload_signature_is_not_compatible_with_function_implementation); break; } } @@ -19481,7 +14905,6 @@ var ts; if (!produceDiagnostics) { return; } - var symbol; var symbol = node.localSymbol; if (!symbol) { symbol = getSymbolOfNode(node); @@ -19516,16 +14939,16 @@ var ts; case 197: return 2097152; case 200: - return d.name.kind === 8 || ts.getModuleInstanceState(d) !== 0 ? 4194304 | 1048576 : 4194304; + return d.name.kind === 8 || ts.getModuleInstanceState(d) !== 0 + ? 4194304 | 1048576 + : 4194304; case 196: case 199: return 2097152 | 1048576; case 203: var result = 0; var target = resolveAlias(getSymbolOfNode(d)); - ts.forEach(target.declarations, function (d) { - result |= getDeclarationSpaces(d); - }); + ts.forEach(target.declarations, function (d) { result |= getDeclarationSpaces(d); }); return result; default: return 1048576; @@ -19534,7 +14957,10 @@ var ts; } function checkFunctionDeclaration(node) { if (produceDiagnostics) { - checkFunctionLikeDeclaration(node) || checkGrammarDisallowedModifiersInBlockOrObjectLiteralExpression(node) || checkGrammarFunctionName(node.name) || checkGrammarForGenerator(node); + checkFunctionLikeDeclaration(node) || + checkGrammarDisallowedModifiersInBlockOrObjectLiteralExpression(node) || + checkGrammarFunctionName(node.name) || + checkGrammarForGenerator(node); checkCollisionWithCapturedSuperVariable(node, node.name); checkCollisionWithCapturedThisVariable(node, node.name); checkCollisionWithRequireExportsInGeneratedCode(node, node.name); @@ -19589,7 +15015,12 @@ var ts; if (!(identifier && identifier.text === name)) { return false; } - if (node.kind === 130 || node.kind === 129 || node.kind === 132 || node.kind === 131 || node.kind === 134 || node.kind === 135) { + if (node.kind === 130 || + node.kind === 129 || + node.kind === 132 || + node.kind === 131 || + node.kind === 134 || + node.kind === 135) { return false; } if (ts.isInAmbientContext(node)) { @@ -19610,8 +15041,8 @@ var ts; var current = node; while (current) { if (getNodeCheckFlags(current) & 4) { - var isDeclaration = node.kind !== 64; - if (isDeclaration) { + var _isDeclaration = node.kind !== 64; + if (_isDeclaration) { error(node.name, ts.Diagnostics.Duplicate_identifier_this_Compiler_uses_variable_declaration_this_to_capture_this_reference); } else { @@ -19631,8 +15062,8 @@ var ts; return; } if (ts.getClassBaseTypeNode(enclosingClass)) { - var isDeclaration = node.kind !== 64; - if (isDeclaration) { + var _isDeclaration = node.kind !== 64; + if (_isDeclaration) { error(node, ts.Diagnostics.Duplicate_identifier_super_Compiler_uses_super_to_capture_base_class_reference); } else { @@ -19647,8 +15078,8 @@ var ts; if (node.kind === 200 && ts.getModuleInstanceState(node) !== 1) { return; } - var parent = getDeclarationContainer(node); - if (parent.kind === 221 && ts.isExternalModule(parent)) { + var _parent = getDeclarationContainer(node); + if (_parent.kind === 221 && ts.isExternalModule(_parent)) { error(name, ts.Diagnostics.Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_an_external_module, ts.declarationNameToString(name), ts.declarationNameToString(name)); } } @@ -19657,14 +15088,20 @@ var ts; var symbol = getSymbolOfNode(node); if (symbol.flags & 1) { var localDeclarationSymbol = resolveName(node, node.name.text, 3, undefined, undefined); - if (localDeclarationSymbol && localDeclarationSymbol !== symbol && localDeclarationSymbol.flags & 2) { + if (localDeclarationSymbol && + localDeclarationSymbol !== symbol && + localDeclarationSymbol.flags & 2) { if (getDeclarationFlagsFromSymbol(localDeclarationSymbol) & 12288) { var varDeclList = ts.getAncestor(localDeclarationSymbol.valueDeclaration, 194); - var container = varDeclList.parent.kind === 175 && varDeclList.parent.parent; - var namesShareScope = container && (container.kind === 174 && ts.isFunctionLike(container.parent) || (container.kind === 201 && container.kind === 200) || container.kind === 221); + var container = varDeclList.parent.kind === 175 && + varDeclList.parent.parent; + var namesShareScope = container && + (container.kind === 174 && ts.isFunctionLike(container.parent) || + (container.kind === 201 && container.kind === 200) || + container.kind === 221); if (!namesShareScope) { - var name = symbolToString(localDeclarationSymbol); - error(node, ts.Diagnostics.Cannot_initialize_outer_scoped_variable_0_in_the_same_scope_as_block_scoped_declaration_1, name, name); + var _name = symbolToString(localDeclarationSymbol); + error(node, ts.Diagnostics.Cannot_initialize_outer_scoped_variable_0_in_the_same_scope_as_block_scoped_declaration_1, _name, _name); } } } @@ -19678,10 +15115,11 @@ var ts; return node.kind === 128; } function checkParameterInitializer(node) { - if (getRootDeclaration(node).kind === 128) { - var func = ts.getContainingFunction(node); - visit(node.initializer); + if (getRootDeclaration(node).kind !== 128) { + return; } + var func = ts.getContainingFunction(node); + visit(node.initializer); function visit(n) { if (n.kind === 64) { var referencedSymbol = getNodeLinks(n).resolvedSymbol; @@ -19877,15 +15315,17 @@ var ts; } function checkRightHandSideOfForOf(rhsExpression) { var expressionType = getTypeOfExpression(rhsExpression); - return languageVersion >= 2 ? checkIteratedType(expressionType, rhsExpression) : checkElementTypeOfArrayOrString(expressionType, rhsExpression); + return languageVersion >= 2 + ? checkIteratedType(expressionType, rhsExpression) + : checkElementTypeOfArrayOrString(expressionType, rhsExpression); } function checkIteratedType(iterable, expressionForError) { ts.Debug.assert(languageVersion >= 2); var iteratedType = getIteratedType(iterable, expressionForError); if (expressionForError && iteratedType) { - var completeIterableType = globalIterableType !== emptyObjectType ? createTypeReference(globalIterableType, [ - iteratedType - ]) : emptyObjectType; + var completeIterableType = globalIterableType !== emptyObjectType + ? createTypeReference(globalIterableType, [iteratedType]) + : emptyObjectType; checkTypeAssignableTo(iterable, completeIterableType, expressionForError); } return iteratedType; @@ -19949,7 +15389,9 @@ var ts; } if (!isArrayLikeType(arrayType)) { if (!reportedError) { - var diagnostic = hasStringConstituent ? ts.Diagnostics.Type_0_is_not_an_array_type : ts.Diagnostics.Type_0_is_not_an_array_type_or_a_string_type; + var diagnostic = hasStringConstituent + ? ts.Diagnostics.Type_0_is_not_an_array_type + : ts.Diagnostics.Type_0_is_not_an_array_type_or_a_string_type; error(expressionForError, diagnostic, typeToString(arrayType)); } return hasStringConstituent ? stringType : unknownType; @@ -19959,10 +15401,7 @@ var ts; if (arrayElementType.flags & 258) { return stringType; } - return getUnionType([ - arrayElementType, - stringType - ]); + return getUnionType([arrayElementType, stringType]); } return arrayElementType; } @@ -20110,8 +15549,8 @@ var ts; }); if (type.flags & 1024 && type.symbol.valueDeclaration.kind === 196) { var classDeclaration = type.symbol.valueDeclaration; - for (var i = 0; i < classDeclaration.members.length; i++) { - var member = classDeclaration.members[i]; + for (var _i = 0, _a = classDeclaration.members, _n = _a.length; _i < _n; _i++) { + var member = _a[_i]; if (!(member.flags & 128) && ts.hasDynamicName(member)) { var propType = getTypeOfSymbol(member.symbol); checkIndexConstraintForProperty(member.symbol, propType, type, declaredStringIndexer, stringIndexType, 0); @@ -20124,9 +15563,7 @@ var ts; if (stringIndexType && numberIndexType) { errorNode = declaredNumberIndexer || declaredStringIndexer; if (!errorNode && (type.flags & 2048)) { - var someBaseTypeHasBothIndexers = ts.forEach(type.baseTypes, function (base) { - return getIndexTypeOfType(base, 0) && getIndexTypeOfType(base, 1); - }); + var someBaseTypeHasBothIndexers = ts.forEach(type.baseTypes, function (base) { return getIndexTypeOfType(base, 0) && getIndexTypeOfType(base, 1); }); errorNode = someBaseTypeHasBothIndexers ? undefined : type.symbol.declarations[0]; } } @@ -20140,22 +15577,22 @@ var ts; if (indexKind === 1 && !isNumericName(prop.valueDeclaration.name)) { return; } - var errorNode; + var _errorNode; if (prop.valueDeclaration.name.kind === 126 || prop.parent === containingType.symbol) { - errorNode = prop.valueDeclaration; + _errorNode = prop.valueDeclaration; } else if (indexDeclaration) { - errorNode = indexDeclaration; + _errorNode = indexDeclaration; } else if (containingType.flags & 2048) { - var someBaseClassHasBothPropertyAndIndexer = ts.forEach(containingType.baseTypes, function (base) { - return getPropertyOfObjectType(base, prop.name) && getIndexTypeOfType(base, indexKind); - }); - errorNode = someBaseClassHasBothPropertyAndIndexer ? undefined : containingType.symbol.declarations[0]; + var someBaseClassHasBothPropertyAndIndexer = ts.forEach(containingType.baseTypes, function (base) { return getPropertyOfObjectType(base, prop.name) && getIndexTypeOfType(base, indexKind); }); + _errorNode = someBaseClassHasBothPropertyAndIndexer ? undefined : containingType.symbol.declarations[0]; } - if (errorNode && !isTypeAssignableTo(propertyType, indexType)) { - var errorMessage = indexKind === 0 ? ts.Diagnostics.Property_0_of_type_1_is_not_assignable_to_string_index_type_2 : ts.Diagnostics.Property_0_of_type_1_is_not_assignable_to_numeric_index_type_2; - error(errorNode, errorMessage, symbolToString(prop), typeToString(propertyType), typeToString(indexType)); + if (_errorNode && !isTypeAssignableTo(propertyType, indexType)) { + var errorMessage = indexKind === 0 + ? ts.Diagnostics.Property_0_of_type_1_is_not_assignable_to_string_index_type_2 + : ts.Diagnostics.Property_0_of_type_1_is_not_assignable_to_numeric_index_type_2; + error(_errorNode, errorMessage, symbolToString(prop), typeToString(propertyType), typeToString(indexType)); } } } @@ -20172,7 +15609,7 @@ var ts; } function checkTypeParameters(typeParameterDeclarations) { if (typeParameterDeclarations) { - for (var i = 0; i < typeParameterDeclarations.length; i++) { + for (var i = 0, n = typeParameterDeclarations.length; i < n; i++) { var node = typeParameterDeclarations[i]; checkTypeParameter(node); if (produceDiagnostics) { @@ -20244,8 +15681,9 @@ var ts; } function checkKindsOfPropertyMemberOverrides(type, baseType) { var baseProperties = getPropertiesOfObjectType(baseType); - for (var i = 0, len = baseProperties.length; i < len; ++i) { - var base = getTargetSymbol(baseProperties[i]); + for (var _i = 0, _n = baseProperties.length; _i < _n; _i++) { + var baseProperty = baseProperties[_i]; + var base = getTargetSymbol(baseProperty); if (base.flags & 134217728) { continue; } @@ -20262,7 +15700,7 @@ var ts; if ((base.flags & derived.flags & 8192) || ((base.flags & 98308) && (derived.flags & 98308))) { continue; } - var errorMessage; + var errorMessage = void 0; if (base.flags & 8192) { if (derived.flags & 98304) { errorMessage = ts.Diagnostics.Class_0_defines_instance_member_function_1_but_extended_class_2_defines_it_as_instance_member_accessor; @@ -20318,23 +15756,15 @@ var ts; return true; } var seen = {}; - ts.forEach(type.declaredProperties, function (p) { - seen[p.name] = { - prop: p, - containingType: type - }; - }); + ts.forEach(type.declaredProperties, function (p) { seen[p.name] = { prop: p, containingType: type }; }); var ok = true; - for (var i = 0, len = type.baseTypes.length; i < len; ++i) { - var base = type.baseTypes[i]; + for (var _i = 0, _a = type.baseTypes, _n = _a.length; _i < _n; _i++) { + var base = _a[_i]; var properties = getPropertiesOfObjectType(base); - for (var j = 0, proplen = properties.length; j < proplen; ++j) { - var prop = properties[j]; + for (var _b = 0, _c = properties.length; _b < _c; _b++) { + var prop = properties[_b]; if (!ts.hasProperty(seen, prop.name)) { - seen[prop.name] = { - prop: prop, - containingType: base - }; + seen[prop.name] = { prop: prop, containingType: base }; } else { var existing = seen[prop.name]; @@ -20387,8 +15817,8 @@ var ts; checkSourceElement(node.type); } function computeEnumMemberValues(node) { - var nodeLinks = getNodeLinks(node); - if (!(nodeLinks.flags & 128)) { + var _nodeLinks = getNodeLinks(node); + if (!(_nodeLinks.flags & 128)) { var enumSymbol = getSymbolOfNode(node); var enumType = getDeclaredTypeOfSymbol(enumSymbol); var autoValue = 0; @@ -20425,7 +15855,7 @@ var ts; getNodeLinks(member).enumMemberValue = autoValue++; } }); - nodeLinks.flags |= 128; + _nodeLinks.flags |= 128; } function getConstantValueForEnumMemberInitializer(initializer, enumIsConst) { return evalConstant(initializer); @@ -20437,12 +15867,9 @@ var ts; return undefined; } switch (e.operator) { - case 33: - return value; - case 34: - return -value; - case 47: - return enumIsConst ? ~value : undefined; + case 33: return value; + case 34: return -value; + case 47: return enumIsConst ? ~value : undefined; } return undefined; case 167: @@ -20458,28 +15885,17 @@ var ts; return undefined; } switch (e.operatorToken.kind) { - case 44: - return left | right; - case 43: - return left & right; - case 41: - return left >> right; - case 42: - return left >>> right; - case 40: - return left << right; - case 45: - return left ^ right; - case 35: - return left * right; - case 36: - return left / right; - case 33: - return left + right; - case 34: - return left - right; - case 37: - return left % right; + case 44: return left | right; + case 43: return left & right; + case 41: return left >> right; + case 42: return left >>> right; + case 40: return left << right; + case 45: return left ^ right; + case 35: return left * right; + case 36: return left / right; + case 33: return left + right; + case 34: return left - right; + case 37: return left % right; } return undefined; case 7: @@ -20494,32 +15910,33 @@ var ts; } var member = initializer.parent; var currentType = getTypeOfSymbol(getSymbolOfNode(member.parent)); - var enumType; + var _enumType; var propertyName; if (e.kind === 64) { - enumType = currentType; + _enumType = currentType; propertyName = e.text; } else { if (e.kind === 154) { - if (e.argumentExpression === undefined || e.argumentExpression.kind !== 8) { + if (e.argumentExpression === undefined || + e.argumentExpression.kind !== 8) { return undefined; } - var enumType = getTypeOfNode(e.expression); + _enumType = getTypeOfNode(e.expression); propertyName = e.argumentExpression.text; } else { - var enumType = getTypeOfNode(e.expression); + _enumType = getTypeOfNode(e.expression); propertyName = e.name.text; } - if (enumType !== currentType) { + if (_enumType !== currentType) { return undefined; } } if (propertyName === undefined) { return undefined; } - var property = getPropertyOfObjectType(enumType, propertyName); + var property = getPropertyOfObjectType(_enumType, propertyName); if (!property || !(property.flags & 8)) { return undefined; } @@ -20579,8 +15996,8 @@ var ts; } function getFirstNonAmbientClassOrFunctionDeclaration(symbol) { var declarations = symbol.declarations; - for (var i = 0; i < declarations.length; i++) { - var declaration = declarations[i]; + for (var _i = 0, _n = declarations.length; _i < _n; _i++) { + var declaration = declarations[_i]; if ((declaration.kind === 196 || (declaration.kind === 195 && ts.nodeIsPresent(declaration.body))) && !ts.isInAmbientContext(declaration)) { return declaration; } @@ -20598,7 +16015,10 @@ var ts; checkCollisionWithRequireExportsInGeneratedCode(node, node.name); checkExportsOnMergedDeclarations(node); var symbol = getSymbolOfNode(node); - if (symbol.flags & 512 && symbol.declarations.length > 1 && !ts.isInAmbientContext(node) && ts.isInstantiatedModule(node, compilerOptions.preserveConstEnums)) { + if (symbol.flags & 512 + && symbol.declarations.length > 1 + && !ts.isInAmbientContext(node) + && ts.isInstantiatedModule(node, compilerOptions.preserveConstEnums)) { var classOrFunc = getFirstNonAmbientClassOrFunctionDeclaration(symbol); if (classOrFunc) { if (ts.getSourceFileOfNode(node) !== ts.getSourceFileOfNode(classOrFunc)) { @@ -20634,7 +16054,9 @@ var ts; } var inAmbientExternalModule = node.parent.kind === 201 && node.parent.parent.name.kind === 8; if (node.parent.kind !== 221 && !inAmbientExternalModule) { - error(moduleName, node.kind === 210 ? ts.Diagnostics.Export_declarations_are_not_permitted_in_an_internal_module : ts.Diagnostics.Import_declarations_in_an_internal_module_cannot_reference_an_external_module); + error(moduleName, node.kind === 210 ? + ts.Diagnostics.Export_declarations_are_not_permitted_in_an_internal_module : + ts.Diagnostics.Import_declarations_in_an_internal_module_cannot_reference_an_external_module); return false; } if (inAmbientExternalModule && isExternalModuleNameRelative(moduleName.text)) { @@ -20647,9 +16069,13 @@ var ts; var symbol = getSymbolOfNode(node); var target = resolveAlias(symbol); if (target !== unknownSymbol) { - var excludedMeanings = (symbol.flags & 107455 ? 107455 : 0) | (symbol.flags & 793056 ? 793056 : 0) | (symbol.flags & 1536 ? 1536 : 0); + var excludedMeanings = (symbol.flags & 107455 ? 107455 : 0) | + (symbol.flags & 793056 ? 793056 : 0) | + (symbol.flags & 1536 ? 1536 : 0); if (target.flags & excludedMeanings) { - var message = node.kind === 212 ? ts.Diagnostics.Export_declaration_conflicts_with_exported_declaration_of_0 : ts.Diagnostics.Import_declaration_conflicts_with_local_declaration_of_0; + var message = node.kind === 212 ? + ts.Diagnostics.Export_declaration_conflicts_with_exported_declaration_of_0 : + ts.Diagnostics.Import_declaration_conflicts_with_local_declaration_of_0; error(node, message, symbolToString(symbol)); } } @@ -20747,18 +16173,19 @@ var ts; } function hasExportedMembers(moduleSymbol) { var declarations = moduleSymbol.declarations; - for (var i = 0; i < declarations.length; i++) { - var statements = getModuleStatements(declarations[i]); - for (var j = 0; j < statements.length; j++) { - var node = statements[j]; + for (var _i = 0, _n = declarations.length; _i < _n; _i++) { + var current = declarations[_i]; + var statements = getModuleStatements(current); + for (var _a = 0, _b = statements.length; _a < _b; _a++) { + var node = statements[_a]; if (node.kind === 210) { var exportClause = node.exportClause; if (!exportClause) { return true; } var specifiers = exportClause.elements; - for (var k = 0; k < specifiers.length; k++) { - var specifier = specifiers[k]; + for (var _c = 0, _d = specifiers.length; _c < _d; _c++) { + var specifier = specifiers[_c]; if (!(specifier.propertyName && specifier.name && specifier.name.text === "default")) { return true; } @@ -21082,7 +16509,9 @@ var ts; return ts.mapToArray(symbols); } function isTypeDeclarationName(name) { - return name.kind == 64 && isTypeDeclaration(name.parent) && name.parent.name === name; + return name.kind == 64 && + isTypeDeclaration(name.parent) && + name.parent.name === name; } function isTypeDeclaration(node) { switch (node.kind) { @@ -21121,21 +16550,21 @@ var ts; } case 125: ts.Debug.assert(node.kind === 64 || node.kind === 125, "'node' was expected to be a qualified name or identifier in 'isTypeNode'."); - var parent = node.parent; - if (parent.kind === 142) { + var _parent = node.parent; + if (_parent.kind === 142) { return false; } - if (139 <= parent.kind && parent.kind <= 147) { + if (139 <= _parent.kind && _parent.kind <= 147) { return true; } - switch (parent.kind) { + switch (_parent.kind) { case 127: - return node === parent.constraint; + return node === _parent.constraint; case 130: case 129: case 128: case 193: - return node === parent.type; + return node === _parent.type; case 195: case 160: case 161: @@ -21144,16 +16573,16 @@ var ts; case 131: case 134: case 135: - return node === parent.type; + return node === _parent.type; case 136: case 137: case 138: - return node === parent.type; + return node === _parent.type; case 158: - return node === parent.type; + return node === _parent.type; case 155: case 156: - return parent.typeArguments && ts.indexOf(parent.typeArguments, node) >= 0; + return _parent.typeArguments && ts.indexOf(_parent.typeArguments, node) >= 0; case 157: return false; } @@ -21176,7 +16605,8 @@ var ts; return getLeftSideOfImportEqualsOrExportAssignment(node) !== undefined; } function isRightSideOfQualifiedNameOrPropertyAccess(node) { - return (node.parent.kind === 125 && node.parent.right === node) || (node.parent.kind === 153 && node.parent.name === node); + return (node.parent.kind === 125 && node.parent.right === node) || + (node.parent.kind === 153 && node.parent.name === node); } function getSymbolOfEntityNameOrPropertyAccessExpression(entityName) { if (ts.isDeclarationName(entityName)) { @@ -21209,17 +16639,17 @@ var ts; return getNodeLinks(entityName).resolvedSymbol; } else if (entityName.kind === 125) { - var symbol = getNodeLinks(entityName).resolvedSymbol; - if (!symbol) { + var _symbol = getNodeLinks(entityName).resolvedSymbol; + if (!_symbol) { checkQualifiedName(entityName); } return getNodeLinks(entityName).resolvedSymbol; } } else if (isTypeReferenceIdentifier(entityName)) { - var meaning = entityName.parent.kind === 139 ? 793056 : 1536; - meaning |= 8388608; - return resolveEntityName(entityName, meaning); + var _meaning = entityName.parent.kind === 139 ? 793056 : 1536; + _meaning |= 8388608; + return resolveEntityName(entityName, _meaning); } return undefined; } @@ -21231,7 +16661,9 @@ var ts; return getSymbolOfNode(node.parent); } if (node.kind === 64 && isInRightSideOfImportOrExportAssignment(node)) { - return node.parent.kind === 209 ? getSymbolOfEntityNameOrPropertyAccessExpression(node) : getSymbolOfPartOfRightHandSideOfImportEquals(node); + return node.parent.kind === 209 + ? getSymbolOfEntityNameOrPropertyAccessExpression(node) + : getSymbolOfPartOfRightHandSideOfImportEquals(node); } switch (node.kind) { case 64: @@ -21250,7 +16682,10 @@ var ts; return undefined; case 8: var moduleName; - if ((ts.isExternalModuleImportEqualsDeclaration(node.parent.parent) && ts.getExternalModuleImportEqualsDeclarationExpression(node.parent.parent) === node) || ((node.parent.kind === 204 || node.parent.kind === 210) && node.parent.moduleSpecifier === node)) { + if ((ts.isExternalModuleImportEqualsDeclaration(node.parent.parent) && + ts.getExternalModuleImportEqualsDeclarationExpression(node.parent.parent) === node) || + ((node.parent.kind === 204 || node.parent.kind === 210) && + node.parent.moduleSpecifier === node)) { return resolveExternalModuleName(node, node); } case 7: @@ -21288,21 +16723,21 @@ var ts; return getDeclaredTypeOfSymbol(symbol); } if (isTypeDeclarationName(node)) { - var symbol = getSymbolInfo(node); - return symbol && getDeclaredTypeOfSymbol(symbol); + var _symbol = getSymbolInfo(node); + return _symbol && getDeclaredTypeOfSymbol(_symbol); } if (ts.isDeclaration(node)) { - var symbol = getSymbolOfNode(node); - return getTypeOfSymbol(symbol); + var _symbol_1 = getSymbolOfNode(node); + return getTypeOfSymbol(_symbol_1); } if (ts.isDeclarationName(node)) { - var symbol = getSymbolInfo(node); - return symbol && getTypeOfSymbol(symbol); + var _symbol_2 = getSymbolInfo(node); + return _symbol_2 && getTypeOfSymbol(_symbol_2); } if (isInRightSideOfImportOrExportAssignment(node)) { - var symbol = getSymbolInfo(node); - var declaredType = symbol && getDeclaredTypeOfSymbol(symbol); - return declaredType !== unknownType ? declaredType : getTypeOfSymbol(symbol); + var _symbol_3 = getSymbolInfo(node); + var declaredType = _symbol_3 && getDeclaredTypeOfSymbol(_symbol_3); + return declaredType !== unknownType ? declaredType : getTypeOfSymbol(_symbol_3); } return unknownType; } @@ -21313,7 +16748,7 @@ var ts; return checkExpression(expr); } function getAugmentedPropertiesOfType(type) { - var type = getApparentType(type); + type = getApparentType(type); var propsByName = createSymbolTable(getPropertiesOfType(type)); if (getSignaturesOfType(type, 0).length || getSignaturesOfType(type, 1).length) { ts.forEach(getPropertiesOfType(globalFunctionType), function (p) { @@ -21327,23 +16762,19 @@ var ts; function getRootSymbols(symbol) { if (symbol.flags & 268435456) { var symbols = []; - var name = symbol.name; + var _name = symbol.name; ts.forEach(getSymbolLinks(symbol).unionType.types, function (t) { - symbols.push(getPropertyOfType(t, name)); + symbols.push(getPropertyOfType(t, _name)); }); return symbols; } else if (symbol.flags & 67108864) { var target = getSymbolLinks(symbol).target; if (target) { - return [ - target - ]; + return [target]; } } - return [ - symbol - ]; + return [symbol]; } function isExternalModuleSymbol(symbol) { return symbol.flags & 512 && symbol.declarations.length === 1 && symbol.declarations[0].kind === 221; @@ -21406,8 +16837,8 @@ var ts; return ts.hasProperty(globals, name) || ts.hasProperty(sourceFile.identifiers, name) || ts.hasProperty(generatedNames, name); } function makeUniqueName(baseName) { - var name = ts.generateUniqueName(baseName, isExistingName); - return generatedNames[name] = name; + var _name = ts.generateUniqueName(baseName, isExistingName); + return generatedNames[_name] = _name; } function assignGeneratedName(node, name) { getNodeLinks(node).generatedName = ts.unescapeIdentifier(name); @@ -21419,13 +16850,14 @@ var ts; } function generateNameForModuleOrEnum(node) { if (node.name.kind === 64) { - var name = node.name.text; - assignGeneratedName(node, isUniqueLocalName(name, node) ? name : makeUniqueName(name)); + var _name = node.name.text; + assignGeneratedName(node, isUniqueLocalName(_name, node) ? _name : makeUniqueName(_name)); } } function generateNameForImportOrExportDeclaration(node) { var expr = ts.getExternalModuleName(node); - var baseName = expr.kind === 8 ? ts.escapeIdentifier(ts.makeIdentifierFromModuleName(expr.text)) : "module"; + var baseName = expr.kind === 8 ? + ts.escapeIdentifier(ts.makeIdentifierFromModuleName(expr.text)) : "module"; assignGeneratedName(node, makeUniqueName(baseName)); } function generateNameForImportDeclaration(node) { @@ -21523,7 +16955,8 @@ var ts; if (ts.nodeIsPresent(node.body)) { var symbol = getSymbolOfNode(node); var signaturesOfSymbol = getSignaturesOfSymbol(symbol); - return signaturesOfSymbol.length > 1 || (signaturesOfSymbol.length === 1 && signaturesOfSymbol[0].declaration !== node); + return signaturesOfSymbol.length > 1 || + (signaturesOfSymbol.length === 1 && signaturesOfSymbol[0].declaration !== node); } return false; } @@ -21550,7 +16983,9 @@ var ts; } function writeTypeOfDeclaration(declaration, enclosingDeclaration, flags, writer) { var symbol = getSymbolOfNode(declaration); - var type = symbol && !(symbol.flags & (2048 | 131072)) ? getTypeOfSymbol(symbol) : unknownType; + var type = symbol && !(symbol.flags & (2048 | 131072)) + ? getTypeOfSymbol(symbol) + : unknownType; getSymbolDisplayBuilder().buildTypeDisplay(type, writer, enclosingDeclaration, flags); } function writeReturnTypeOfSignatureDeclaration(signatureDeclaration, enclosingDeclaration, flags, writer) { @@ -21559,19 +16994,29 @@ var ts; } function isUnknownIdentifier(location, name) { ts.Debug.assert(!ts.nodeIsSynthesized(location), "isUnknownIdentifier called with a synthesized location"); - return !resolveName(location, name, 107455, undefined, undefined) && !ts.hasProperty(getGeneratedNamesForSourceFile(getSourceFile(location)), name); + return !resolveName(location, name, 107455, undefined, undefined) && + !ts.hasProperty(getGeneratedNamesForSourceFile(getSourceFile(location)), name); } function getBlockScopedVariableId(n) { ts.Debug.assert(!ts.nodeIsSynthesized(n)); - if (n.parent.kind === 153 && n.parent.name === n) { + if (n.parent.kind === 153 && + n.parent.name === n) { return undefined; } - if (n.parent.kind === 150 && n.parent.propertyName === n) { + if (n.parent.kind === 150 && + n.parent.propertyName === n) { return undefined; } - var declarationSymbol = (n.parent.kind === 193 && n.parent.name === n) || n.parent.kind === 150 ? getSymbolOfNode(n.parent) : undefined; - var symbol = declarationSymbol || getNodeLinks(n).resolvedSymbol || resolveName(n, n.text, 2 | 8388608, undefined, undefined); - var isLetOrConst = symbol && (symbol.flags & 2) && symbol.valueDeclaration.parent.kind !== 217; + var declarationSymbol = (n.parent.kind === 193 && n.parent.name === n) || + n.parent.kind === 150 + ? getSymbolOfNode(n.parent) + : undefined; + var symbol = declarationSymbol || + getNodeLinks(n).resolvedSymbol || + resolveName(n, n.text, 107455 | 8388608, undefined, undefined); + var isLetOrConst = symbol && + (symbol.flags & 2) && + symbol.valueDeclaration.parent.kind !== 217; if (isLetOrConst) { getSymbolLinks(symbol); return symbol.id; @@ -21662,13 +17107,13 @@ var ts; } var lastStatic, lastPrivate, lastProtected, lastDeclare; var flags = 0; - for (var i = 0, n = node.modifiers.length; i < n; i++) { - var modifier = node.modifiers[i]; + for (var _i = 0, _a = node.modifiers, _n = _a.length; _i < _n; _i++) { + var modifier = _a[_i]; switch (modifier.kind) { case 108: case 107: case 106: - var text; + var text = void 0; if (modifier.kind === 108) { text = "public"; } @@ -21861,13 +17306,14 @@ var ts; } } function checkGrammarTypeArguments(node, typeArguments) { - return checkGrammarForDisallowedTrailingComma(typeArguments) || checkGrammarForAtLeastOneTypeArgument(node, typeArguments); + return checkGrammarForDisallowedTrailingComma(typeArguments) || + checkGrammarForAtLeastOneTypeArgument(node, typeArguments); } function checkGrammarForOmittedArgument(node, arguments) { if (arguments) { var sourceFile = ts.getSourceFileOfNode(node); - for (var i = 0, n = arguments.length; i < n; i++) { - var arg = arguments[i]; + for (var _i = 0, _n = arguments.length; _i < _n; _i++) { + var arg = arguments[_i]; if (arg.kind === 172) { return grammarErrorAtPos(sourceFile, arg.pos, 0, ts.Diagnostics.Argument_expression_expected); } @@ -21875,7 +17321,8 @@ var ts; } } function checkGrammarArguments(node, arguments) { - return checkGrammarForDisallowedTrailingComma(arguments) || checkGrammarForOmittedArgument(node, arguments); + return checkGrammarForDisallowedTrailingComma(arguments) || + checkGrammarForOmittedArgument(node, arguments); } function checkGrammarHeritageClause(node) { var types = node.types; @@ -21892,9 +17339,8 @@ var ts; var seenExtendsClause = false; var seenImplementsClause = false; if (!checkGrammarModifiers(node) && node.heritageClauses) { - for (var i = 0, n = node.heritageClauses.length; i < n; i++) { - ts.Debug.assert(i <= 2); - var heritageClause = node.heritageClauses[i]; + for (var _i = 0, _a = node.heritageClauses, _n = _a.length; _i < _n; _i++) { + var heritageClause = _a[_i]; if (heritageClause.token === 78) { if (seenExtendsClause) { return grammarErrorOnFirstToken(heritageClause, ts.Diagnostics.extends_clause_already_seen); @@ -21921,9 +17367,8 @@ var ts; function checkGrammarInterfaceDeclaration(node) { var seenExtendsClause = false; if (node.heritageClauses) { - for (var i = 0, n = node.heritageClauses.length; i < n; i++) { - ts.Debug.assert(i <= 1); - var heritageClause = node.heritageClauses[i]; + for (var _i = 0, _a = node.heritageClauses, _n = _a.length; _i < _n; _i++) { + var heritageClause = _a[_i]; if (heritageClause.token === 78) { if (seenExtendsClause) { return grammarErrorOnFirstToken(heritageClause, ts.Diagnostics.extends_clause_already_seen); @@ -21968,18 +17413,19 @@ var ts; var SetAccesor = 4; var GetOrSetAccessor = GetAccessor | SetAccesor; var inStrictMode = (node.parserContextFlags & 1) !== 0; - for (var i = 0, n = node.properties.length; i < n; i++) { - var prop = node.properties[i]; - var name = prop.name; - if (prop.kind === 172 || name.kind === 126) { - checkGrammarComputedPropertyName(name); + for (var _i = 0, _a = node.properties, _n = _a.length; _i < _n; _i++) { + var prop = _a[_i]; + var _name = prop.name; + if (prop.kind === 172 || + _name.kind === 126) { + checkGrammarComputedPropertyName(_name); continue; } - var currentKind; + var currentKind = void 0; if (prop.kind === 218 || prop.kind === 219) { checkGrammarForInvalidQuestionMark(prop, prop.questionToken, ts.Diagnostics.An_object_member_cannot_be_declared_optional); - if (name.kind === 7) { - checkGrammarNumbericLiteral(name); + if (_name.kind === 7) { + checkGrammarNumbericLiteral(_name); } currentKind = Property; } @@ -21995,26 +17441,26 @@ var ts; else { ts.Debug.fail("Unexpected syntax kind:" + prop.kind); } - if (!ts.hasProperty(seen, name.text)) { - seen[name.text] = currentKind; + if (!ts.hasProperty(seen, _name.text)) { + seen[_name.text] = currentKind; } else { - var existingKind = seen[name.text]; + var existingKind = seen[_name.text]; if (currentKind === Property && existingKind === Property) { if (inStrictMode) { - grammarErrorOnNode(name, ts.Diagnostics.An_object_literal_cannot_have_multiple_properties_with_the_same_name_in_strict_mode); + grammarErrorOnNode(_name, ts.Diagnostics.An_object_literal_cannot_have_multiple_properties_with_the_same_name_in_strict_mode); } } else if ((currentKind & GetOrSetAccessor) && (existingKind & GetOrSetAccessor)) { if (existingKind !== GetOrSetAccessor && currentKind !== existingKind) { - seen[name.text] = currentKind | existingKind; + seen[_name.text] = currentKind | existingKind; } else { - return grammarErrorOnNode(name, ts.Diagnostics.An_object_literal_cannot_have_multiple_get_Slashset_accessors_with_the_same_name); + return grammarErrorOnNode(_name, ts.Diagnostics.An_object_literal_cannot_have_multiple_get_Slashset_accessors_with_the_same_name); } } else { - return grammarErrorOnNode(name, ts.Diagnostics.An_object_literal_cannot_have_property_and_accessor_with_the_same_name); + return grammarErrorOnNode(_name, ts.Diagnostics.An_object_literal_cannot_have_property_and_accessor_with_the_same_name); } } } @@ -22027,17 +17473,23 @@ var ts; var variableList = forInOrOfStatement.initializer; if (!checkGrammarVariableDeclarationList(variableList)) { if (variableList.declarations.length > 1) { - var diagnostic = forInOrOfStatement.kind === 182 ? ts.Diagnostics.Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement : ts.Diagnostics.Only_a_single_variable_declaration_is_allowed_in_a_for_of_statement; + var diagnostic = forInOrOfStatement.kind === 182 + ? ts.Diagnostics.Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement + : ts.Diagnostics.Only_a_single_variable_declaration_is_allowed_in_a_for_of_statement; return grammarErrorOnFirstToken(variableList.declarations[1], diagnostic); } var firstDeclaration = variableList.declarations[0]; if (firstDeclaration.initializer) { - var diagnostic = forInOrOfStatement.kind === 182 ? ts.Diagnostics.The_variable_declaration_of_a_for_in_statement_cannot_have_an_initializer : ts.Diagnostics.The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer; - return grammarErrorOnNode(firstDeclaration.name, diagnostic); + var _diagnostic = forInOrOfStatement.kind === 182 + ? ts.Diagnostics.The_variable_declaration_of_a_for_in_statement_cannot_have_an_initializer + : ts.Diagnostics.The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer; + return grammarErrorOnNode(firstDeclaration.name, _diagnostic); } if (firstDeclaration.type) { - var diagnostic = forInOrOfStatement.kind === 182 ? ts.Diagnostics.The_left_hand_side_of_a_for_in_statement_cannot_use_a_type_annotation : ts.Diagnostics.The_left_hand_side_of_a_for_of_statement_cannot_use_a_type_annotation; - return grammarErrorOnNode(firstDeclaration, diagnostic); + var _diagnostic_1 = forInOrOfStatement.kind === 182 + ? ts.Diagnostics.The_left_hand_side_of_a_for_in_statement_cannot_use_a_type_annotation + : ts.Diagnostics.The_left_hand_side_of_a_for_of_statement_cannot_use_a_type_annotation; + return grammarErrorOnNode(firstDeclaration, _diagnostic_1); } } } @@ -22090,7 +17542,9 @@ var ts; } } function checkGrammarMethod(node) { - if (checkGrammarDisallowedModifiersInBlockOrObjectLiteralExpression(node) || checkGrammarFunctionLikeDeclaration(node) || checkGrammarForGenerator(node)) { + if (checkGrammarDisallowedModifiersInBlockOrObjectLiteralExpression(node) || + checkGrammarFunctionLikeDeclaration(node) || + checkGrammarForGenerator(node)) { return true; } if (node.parent.kind === 152) { @@ -22141,7 +17595,8 @@ var ts; switch (current.kind) { case 189: if (node.label && current.label.text === node.label.text) { - var isMisplacedContinueLabel = node.kind === 184 && !isIterationStatement(current.statement, true); + var isMisplacedContinueLabel = node.kind === 184 + && !isIterationStatement(current.statement, true); if (isMisplacedContinueLabel) { return grammarErrorOnNode(node, ts.Diagnostics.A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement); } @@ -22162,12 +17617,16 @@ var ts; current = current.parent; } if (node.label) { - var message = node.kind === 185 ? ts.Diagnostics.A_break_statement_can_only_jump_to_a_label_of_an_enclosing_statement : ts.Diagnostics.A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement; + var message = node.kind === 185 + ? ts.Diagnostics.A_break_statement_can_only_jump_to_a_label_of_an_enclosing_statement + : ts.Diagnostics.A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement; return grammarErrorOnNode(node, message); } else { - var message = node.kind === 185 ? ts.Diagnostics.A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement : ts.Diagnostics.A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement; - return grammarErrorOnNode(node, message); + var _message = node.kind === 185 + ? ts.Diagnostics.A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement + : ts.Diagnostics.A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement; + return grammarErrorOnNode(node, _message); } } function checkGrammarBindingElement(node) { @@ -22203,7 +17662,8 @@ var ts; } } var checkLetConstNames = languageVersion >= 2 && (ts.isLet(node) || ts.isConst(node)); - return (checkLetConstNames && checkGrammarNameInLetOrConstDeclarations(node.name)) || checkGrammarEvalOrArgumentsInStrictMode(node, node.name); + return (checkLetConstNames && checkGrammarNameInLetOrConstDeclarations(node.name)) || + checkGrammarEvalOrArgumentsInStrictMode(node, node.name); } function checkGrammarNameInLetOrConstDeclarations(name) { if (name.kind === 64) { @@ -22213,8 +17673,9 @@ var ts; } else { var elements = name.elements; - for (var i = 0; i < elements.length; ++i) { - checkGrammarNameInLetOrConstDeclarations(elements[i].name); + for (var _i = 0, _n = elements.length; _i < _n; _i++) { + var element = elements[_i]; + checkGrammarNameInLetOrConstDeclarations(element.name); } } } @@ -22270,8 +17731,8 @@ var ts; if (!enumIsConst) { var inConstantEnumMemberSection = true; var inAmbientContext = ts.isInAmbientContext(enumDecl); - for (var i = 0, n = enumDecl.members.length; i < n; i++) { - var node = enumDecl.members[i]; + for (var _i = 0, _a = enumDecl.members, _n = _a.length; _i < _n; _i++) { + var node = _a[_i]; if (node.name.kind === 126) { hasError = grammarErrorOnNode(node.name, ts.Diagnostics.Computed_property_names_are_not_allowed_in_enums); } @@ -22335,7 +17796,8 @@ var ts; } function checkGrammarProperty(node) { if (node.parent.kind === 196) { - if (checkGrammarForInvalidQuestionMark(node, node.questionToken, ts.Diagnostics.A_class_member_cannot_be_declared_optional) || checkGrammarForNonSymbolComputedProperty(node.name, ts.Diagnostics.A_computed_property_name_in_a_class_property_declaration_must_directly_refer_to_a_built_in_symbol)) { + if (checkGrammarForInvalidQuestionMark(node, node.questionToken, ts.Diagnostics.A_class_member_cannot_be_declared_optional) || + checkGrammarForNonSymbolComputedProperty(node.name, ts.Diagnostics.A_computed_property_name_in_a_class_property_declaration_must_directly_refer_to_a_built_in_symbol)) { return true; } } @@ -22354,14 +17816,19 @@ var ts; } } function checkGrammarTopLevelElementForRequiredDeclareModifier(node) { - if (node.kind === 197 || node.kind === 204 || node.kind === 203 || node.kind === 210 || node.kind === 209 || (node.flags & 2)) { + if (node.kind === 197 || + node.kind === 204 || + node.kind === 203 || + node.kind === 210 || + node.kind === 209 || + (node.flags & 2)) { return false; } return grammarErrorOnFirstToken(node, ts.Diagnostics.A_declare_modifier_is_required_for_a_top_level_declaration_in_a_d_ts_file); } function checkGrammarTopLevelElementsForRequiredDeclareModifier(file) { - for (var i = 0, n = file.statements.length; i < n; i++) { - var decl = file.statements[i]; + for (var _i = 0, _a = file.statements, _n = _a.length; _i < _n; _i++) { + var decl = _a[_i]; if (ts.isDeclaration(decl) || decl.kind === 175) { if (checkGrammarTopLevelElementForRequiredDeclareModifier(decl)) { return true; @@ -22382,9 +17849,9 @@ var ts; return getNodeLinks(node).hasReportedStatementInAmbientContext = grammarErrorOnFirstToken(node, ts.Diagnostics.An_implementation_cannot_be_declared_in_ambient_contexts); } if (node.parent.kind === 174 || node.parent.kind === 201 || node.parent.kind === 221) { - var links = getNodeLinks(node.parent); - if (!links.hasReportedStatementInAmbientContext) { - return links.hasReportedStatementInAmbientContext = grammarErrorOnFirstToken(node, ts.Diagnostics.Statements_are_not_allowed_in_ambient_contexts); + var _links = getNodeLinks(node.parent); + if (!_links.hasReportedStatementInAmbientContext) { + return _links.hasReportedStatementInAmbientContext = grammarErrorOnFirstToken(node, ts.Diagnostics.Statements_are_not_allowed_in_ambient_contexts); } } else { @@ -22416,10 +17883,7 @@ var ts; })(ts || (ts = {})); var ts; (function (ts) { - var indentStrings = [ - "", - " " - ]; + var indentStrings = ["", " "]; function getIndentString(level) { if (indentStrings[level] === undefined) { indentStrings[level] = getIndentString(level - 1) + indentStrings[1]; @@ -22494,34 +17958,21 @@ var ts; writeTextOfNode: writeTextOfNode, writeLiteral: writeLiteral, writeLine: writeLine, - increaseIndent: function () { - return indent++; - }, - decreaseIndent: function () { - return indent--; - }, - getIndent: function () { - return indent; - }, - getTextPos: function () { - return output.length; - }, - getLine: function () { - return lineCount + 1; - }, - getColumn: function () { - return lineStart ? indent * getIndentSize() + 1 : output.length - linePos + 1; - }, - getText: function () { - return output; - } + increaseIndent: function () { return indent++; }, + decreaseIndent: function () { return indent--; }, + getIndent: function () { return indent; }, + getTextPos: function () { return output.length; }, + getLine: function () { return lineCount + 1; }, + getColumn: function () { return lineStart ? indent * getIndentSize() + 1 : output.length - linePos + 1; }, + getText: function () { return output; } }; } function getLineOfLocalPosition(currentSourceFile, pos) { return ts.getLineAndCharacterOfPosition(currentSourceFile, pos).line; } function emitNewLineBeforeLeadingComments(currentSourceFile, writer, node, leadingComments) { - if (leadingComments && leadingComments.length && node.pos !== leadingComments[0].pos && getLineOfLocalPosition(currentSourceFile, node.pos) !== getLineOfLocalPosition(currentSourceFile, leadingComments[0].pos)) { + if (leadingComments && leadingComments.length && node.pos !== leadingComments[0].pos && + getLineOfLocalPosition(currentSourceFile, node.pos) !== getLineOfLocalPosition(currentSourceFile, leadingComments[0].pos)) { writer.writeLine(); } } @@ -22550,7 +18001,9 @@ var ts; var lineCount = ts.getLineStarts(currentSourceFile).length; var firstCommentLineIndent; for (var pos = comment.pos, currentLine = firstCommentLineAndCharacter.line; pos < comment.end; currentLine++) { - var nextLineStart = (currentLine + 1) === lineCount ? currentSourceFile.text.length + 1 : ts.getStartPositionOfLine(currentLine + 1, currentSourceFile); + var nextLineStart = (currentLine + 1) === lineCount + ? currentSourceFile.text.length + 1 + : ts.getStartPositionOfLine(currentLine + 1, currentSourceFile); if (pos !== comment.pos) { if (firstCommentLineIndent === undefined) { firstCommentLineIndent = calculateIndent(ts.getStartPositionOfLine(firstCommentLineAndCharacter.line, currentSourceFile), comment.pos); @@ -22628,7 +18081,8 @@ var ts; } else { ts.forEach(declarations, function (member) { - if ((member.kind === 134 || member.kind === 135) && (member.flags & 128) === (accessor.flags & 128)) { + if ((member.kind === 134 || member.kind === 135) + && (member.flags & 128) === (accessor.flags & 128)) { var memberName = ts.getPropertyNameForPropertyNameNode(member.name); var accessorName = ts.getPropertyNameForPropertyNameNode(accessor.name); if (memberName === accessorName) { @@ -22658,11 +18112,12 @@ var ts; } function getOwnEmitOutputFilePath(sourceFile, host, extension) { var compilerOptions = host.getCompilerOptions(); + var emitOutputFilePathWithoutExtension; if (compilerOptions.outDir) { - var emitOutputFilePathWithoutExtension = ts.removeFileExtension(getSourceFilePathInNewDir(sourceFile, host, compilerOptions.outDir)); + emitOutputFilePathWithoutExtension = ts.removeFileExtension(getSourceFilePathInNewDir(sourceFile, host, compilerOptions.outDir)); } else { - var emitOutputFilePathWithoutExtension = ts.removeFileExtension(sourceFile.fileName); + emitOutputFilePathWithoutExtension = ts.removeFileExtension(sourceFile.fileName); } return emitOutputFilePathWithoutExtension + extension; } @@ -22684,8 +18139,7 @@ var ts; var enclosingDeclaration; var currentSourceFile; var reportedDeclarationError = false; - var emitJsDocComments = compilerOptions.removeComments ? function (declaration) { - } : writeJsDocComments; + var emitJsDocComments = compilerOptions.removeComments ? function (declaration) { } : writeJsDocComments; var emit = compilerOptions.stripInternal ? stripInternal : emitNode; var aliasDeclarationEmitInfo = []; var referencePathsOutput = ""; @@ -22694,7 +18148,9 @@ var ts; var addedGlobalFileReference = false; ts.forEach(root.referencedFiles, function (fileReference) { var referencedFile = ts.tryResolveScriptReference(host, root, fileReference); - if (referencedFile && ((referencedFile.flags & 2048) || shouldEmitToOwnFile(referencedFile, compilerOptions) || !addedGlobalFileReference)) { + if (referencedFile && ((referencedFile.flags & 2048) || + shouldEmitToOwnFile(referencedFile, compilerOptions) || + !addedGlobalFileReference)) { writeReferencePath(referencedFile); if (!isExternalModuleOrDeclarationFile(referencedFile)) { addedGlobalFileReference = true; @@ -22711,7 +18167,8 @@ var ts; if (!compilerOptions.noResolve) { ts.forEach(sourceFile.referencedFiles, function (fileReference) { var referencedFile = ts.tryResolveScriptReference(host, sourceFile, fileReference); - if (referencedFile && (isExternalModuleOrDeclarationFile(referencedFile) && !ts.contains(emittedReferencedFiles, referencedFile))) { + if (referencedFile && (isExternalModuleOrDeclarationFile(referencedFile) && + !ts.contains(emittedReferencedFiles, referencedFile))) { writeReferencePath(referencedFile); emittedReferencedFiles.push(referencedFile); } @@ -22742,17 +18199,17 @@ var ts; } } function createAndSetNewTextWriterWithSymbolWriter() { - var writer = createTextWriter(newLine); - writer.trackSymbol = trackSymbol; - writer.writeKeyword = writer.write; - writer.writeOperator = writer.write; - writer.writePunctuation = writer.write; - writer.writeSpace = writer.write; - writer.writeStringLiteral = writer.writeLiteral; - writer.writeParameter = writer.write; - writer.writeSymbol = writer.write; - setWriter(writer); - return writer; + var _writer = createTextWriter(newLine); + _writer.trackSymbol = trackSymbol; + _writer.writeKeyword = _writer.write; + _writer.writeOperator = _writer.write; + _writer.writePunctuation = _writer.write; + _writer.writeSpace = _writer.write; + _writer.writeStringLiteral = _writer.writeLiteral; + _writer.writeParameter = _writer.write; + _writer.writeSymbol = _writer.write; + setWriter(_writer); + return _writer; } function setWriter(newWriter) { writer = newWriter; @@ -22765,9 +18222,7 @@ var ts; function writeAsychronousImportEqualsDeclarations(importEqualsDeclarations) { var oldWriter = writer; ts.forEach(importEqualsDeclarations, function (aliasToWrite) { - var aliasEmitInfo = ts.forEach(aliasDeclarationEmitInfo, function (declEmitInfo) { - return declEmitInfo.declaration === aliasToWrite ? declEmitInfo : undefined; - }); + var aliasEmitInfo = ts.forEach(aliasDeclarationEmitInfo, function (declEmitInfo) { return declEmitInfo.declaration === aliasToWrite ? declEmitInfo : undefined; }); if (aliasEmitInfo) { createAndSetNewTextWriterWithSymbolWriter(); for (var declarationIndent = aliasEmitInfo.indent; declarationIndent; declarationIndent--) { @@ -22822,18 +18277,20 @@ var ts; } } function emitLines(nodes) { - for (var i = 0, n = nodes.length; i < n; i++) { - emit(nodes[i]); + for (var _i = 0, _n = nodes.length; _i < _n; _i++) { + var node = nodes[_i]; + emit(node); } } function emitSeparatedList(nodes, separator, eachNodeEmitFn) { var currentWriterPos = writer.getTextPos(); - for (var i = 0, n = nodes.length; i < n; i++) { + for (var _i = 0, _n = nodes.length; _i < _n; _i++) { + var node = nodes[_i]; if (currentWriterPos !== writer.getTextPos()) { write(separator); } currentWriterPos = writer.getTextPos(); - eachNodeEmitFn(nodes[i]); + eachNodeEmitFn(node); } } function emitCommaList(nodes, eachNodeEmitFn) { @@ -23092,8 +18549,15 @@ var ts; writeTextOfNode(currentSourceFile, node.name); if (node.constraint && !isPrivateMethodTypeParameter(node)) { write(" extends "); - if (node.parent.kind === 140 || node.parent.kind === 141 || (node.parent.parent && node.parent.parent.kind === 143)) { - ts.Debug.assert(node.parent.kind === 132 || node.parent.kind === 131 || node.parent.kind === 140 || node.parent.kind === 141 || node.parent.kind === 136 || node.parent.kind === 137); + if (node.parent.kind === 140 || + node.parent.kind === 141 || + (node.parent.parent && node.parent.parent.kind === 143)) { + ts.Debug.assert(node.parent.kind === 132 || + node.parent.kind === 131 || + node.parent.kind === 140 || + node.parent.kind === 141 || + node.parent.kind === 136 || + node.parent.kind === 137); emitType(node.constraint); } else { @@ -23156,7 +18620,9 @@ var ts; function getHeritageClauseVisibilityError(symbolAccesibilityResult) { var diagnosticMessage; if (node.parent.parent.kind === 196) { - diagnosticMessage = isImplementsList ? ts.Diagnostics.Implements_clause_of_exported_class_0_has_or_is_using_private_name_1 : ts.Diagnostics.Extends_clause_of_exported_class_0_has_or_is_using_private_name_1; + diagnosticMessage = isImplementsList ? + ts.Diagnostics.Implements_clause_of_exported_class_0_has_or_is_using_private_name_1 : + ts.Diagnostics.Extends_clause_of_exported_class_0_has_or_is_using_private_name_1; } else { diagnosticMessage = ts.Diagnostics.Extends_clause_of_exported_interface_0_has_or_is_using_private_name_1; @@ -23189,9 +18655,7 @@ var ts; emitTypeParameters(node.typeParameters); var baseTypeNode = ts.getClassBaseTypeNode(node); if (baseTypeNode) { - emitHeritageClause([ - baseTypeNode - ], false); + emitHeritageClause([baseTypeNode], false); } emitHeritageClause(ts.getClassImplementedTypeNodes(node), true); write(" {"); @@ -23251,17 +18715,31 @@ var ts; function getVariableDeclarationTypeVisibilityError(symbolAccesibilityResult) { var diagnosticMessage; if (node.kind === 193) { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 ? ts.Diagnostics.Exported_variable_0_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : ts.Diagnostics.Exported_variable_0_has_or_is_using_name_1_from_private_module_2 : ts.Diagnostics.Exported_variable_0_has_or_is_using_private_name_1; + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + symbolAccesibilityResult.accessibility === 2 ? + ts.Diagnostics.Exported_variable_0_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : + ts.Diagnostics.Exported_variable_0_has_or_is_using_name_1_from_private_module_2 : + ts.Diagnostics.Exported_variable_0_has_or_is_using_private_name_1; } else if (node.kind === 130 || node.kind === 129) { if (node.flags & 128) { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 ? ts.Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : ts.Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2 : ts.Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_private_name_1; + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + symbolAccesibilityResult.accessibility === 2 ? + ts.Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : + ts.Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2 : + ts.Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_private_name_1; } else if (node.parent.kind === 196) { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 ? ts.Diagnostics.Public_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : ts.Diagnostics.Public_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2 : ts.Diagnostics.Public_property_0_of_exported_class_has_or_is_using_private_name_1; + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + symbolAccesibilityResult.accessibility === 2 ? + ts.Diagnostics.Public_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : + ts.Diagnostics.Public_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2 : + ts.Diagnostics.Public_property_0_of_exported_class_has_or_is_using_private_name_1; } else { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? ts.Diagnostics.Property_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2 : ts.Diagnostics.Property_0_of_exported_interface_has_or_is_using_private_name_1; + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + ts.Diagnostics.Property_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2 : + ts.Diagnostics.Property_0_of_exported_interface_has_or_is_using_private_name_1; } } return diagnosticMessage !== undefined ? { @@ -23278,9 +18756,7 @@ var ts; } } function emitVariableStatement(node) { - var hasDeclarationWithEmit = ts.forEach(node.declarationList.declarations, function (varDeclaration) { - return resolver.isDeclarationVisible(varDeclaration); - }); + var hasDeclarationWithEmit = ts.forEach(node.declarationList.declarations, function (varDeclaration) { return resolver.isDeclarationVisible(varDeclaration); }); if (hasDeclarationWithEmit) { emitJsDocComments(node); emitModuleElementDeclarationFlags(node); @@ -23303,13 +18779,14 @@ var ts; return; } var accessors = getAllAccessorDeclarations(node.parent.members, node); + var accessorWithTypeAnnotation; if (node === accessors.firstAccessor) { emitJsDocComments(accessors.getAccessor); emitJsDocComments(accessors.setAccessor); emitClassMemberDeclarationFlags(node); writeTextOfNode(currentSourceFile, node.name); if (!(node.flags & 32)) { - var accessorWithTypeAnnotation = node; + accessorWithTypeAnnotation = node; var type = getTypeAnnotationFromAccessor(node); if (!type) { var anotherAccessor = node.kind === 134 ? accessors.setAccessor : accessors.getAccessor; @@ -23325,17 +18802,25 @@ var ts; } function getTypeAnnotationFromAccessor(accessor) { if (accessor) { - return accessor.kind === 134 ? accessor.type : accessor.parameters.length > 0 ? accessor.parameters[0].type : undefined; + return accessor.kind === 134 + ? accessor.type + : accessor.parameters.length > 0 + ? accessor.parameters[0].type + : undefined; } } function getAccessorDeclarationTypeVisibilityError(symbolAccesibilityResult) { var diagnosticMessage; if (accessorWithTypeAnnotation.kind === 135) { if (accessorWithTypeAnnotation.parent.flags & 128) { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? ts.Diagnostics.Parameter_0_of_public_static_property_setter_from_exported_class_has_or_is_using_name_1_from_private_module_2 : ts.Diagnostics.Parameter_0_of_public_static_property_setter_from_exported_class_has_or_is_using_private_name_1; + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + ts.Diagnostics.Parameter_0_of_public_static_property_setter_from_exported_class_has_or_is_using_name_1_from_private_module_2 : + ts.Diagnostics.Parameter_0_of_public_static_property_setter_from_exported_class_has_or_is_using_private_name_1; } else { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? ts.Diagnostics.Parameter_0_of_public_property_setter_from_exported_class_has_or_is_using_name_1_from_private_module_2 : ts.Diagnostics.Parameter_0_of_public_property_setter_from_exported_class_has_or_is_using_private_name_1; + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + ts.Diagnostics.Parameter_0_of_public_property_setter_from_exported_class_has_or_is_using_name_1_from_private_module_2 : + ts.Diagnostics.Parameter_0_of_public_property_setter_from_exported_class_has_or_is_using_private_name_1; } return { diagnosticMessage: diagnosticMessage, @@ -23345,10 +18830,18 @@ var ts; } else { if (accessorWithTypeAnnotation.flags & 128) { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 ? ts.Diagnostics.Return_type_of_public_static_property_getter_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named : ts.Diagnostics.Return_type_of_public_static_property_getter_from_exported_class_has_or_is_using_name_0_from_private_module_1 : ts.Diagnostics.Return_type_of_public_static_property_getter_from_exported_class_has_or_is_using_private_name_0; + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + symbolAccesibilityResult.accessibility === 2 ? + ts.Diagnostics.Return_type_of_public_static_property_getter_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named : + ts.Diagnostics.Return_type_of_public_static_property_getter_from_exported_class_has_or_is_using_name_0_from_private_module_1 : + ts.Diagnostics.Return_type_of_public_static_property_getter_from_exported_class_has_or_is_using_private_name_0; } else { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 ? ts.Diagnostics.Return_type_of_public_property_getter_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named : ts.Diagnostics.Return_type_of_public_property_getter_from_exported_class_has_or_is_using_name_0_from_private_module_1 : ts.Diagnostics.Return_type_of_public_property_getter_from_exported_class_has_or_is_using_private_name_0; + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + symbolAccesibilityResult.accessibility === 2 ? + ts.Diagnostics.Return_type_of_public_property_getter_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named : + ts.Diagnostics.Return_type_of_public_property_getter_from_exported_class_has_or_is_using_name_0_from_private_module_1 : + ts.Diagnostics.Return_type_of_public_property_getter_from_exported_class_has_or_is_using_private_name_0; } return { diagnosticMessage: diagnosticMessage, @@ -23362,7 +18855,8 @@ var ts; if (ts.hasDynamicName(node)) { return; } - if ((node.kind !== 195 || resolver.isDeclarationVisible(node)) && !resolver.isImplementationOfOverload(node)) { + if ((node.kind !== 195 || resolver.isDeclarationVisible(node)) && + !resolver.isImplementationOfOverload(node)) { emitJsDocComments(node); if (node.kind === 195) { emitModuleElementDeclarationFlags(node); @@ -23429,28 +18923,48 @@ var ts; var diagnosticMessage; switch (node.kind) { case 137: - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? ts.Diagnostics.Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1 : ts.Diagnostics.Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_0; + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + ts.Diagnostics.Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1 : + ts.Diagnostics.Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_0; break; case 136: - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? ts.Diagnostics.Return_type_of_call_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1 : ts.Diagnostics.Return_type_of_call_signature_from_exported_interface_has_or_is_using_private_name_0; + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + ts.Diagnostics.Return_type_of_call_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1 : + ts.Diagnostics.Return_type_of_call_signature_from_exported_interface_has_or_is_using_private_name_0; break; case 138: - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? ts.Diagnostics.Return_type_of_index_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1 : ts.Diagnostics.Return_type_of_index_signature_from_exported_interface_has_or_is_using_private_name_0; + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + ts.Diagnostics.Return_type_of_index_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1 : + ts.Diagnostics.Return_type_of_index_signature_from_exported_interface_has_or_is_using_private_name_0; break; case 132: case 131: if (node.flags & 128) { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 ? ts.Diagnostics.Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named : ts.Diagnostics.Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_private_module_1 : ts.Diagnostics.Return_type_of_public_static_method_from_exported_class_has_or_is_using_private_name_0; + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + symbolAccesibilityResult.accessibility === 2 ? + ts.Diagnostics.Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named : + ts.Diagnostics.Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_private_module_1 : + ts.Diagnostics.Return_type_of_public_static_method_from_exported_class_has_or_is_using_private_name_0; } else if (node.parent.kind === 196) { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 ? ts.Diagnostics.Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named : ts.Diagnostics.Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_private_module_1 : ts.Diagnostics.Return_type_of_public_method_from_exported_class_has_or_is_using_private_name_0; + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + symbolAccesibilityResult.accessibility === 2 ? + ts.Diagnostics.Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named : + ts.Diagnostics.Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_private_module_1 : + ts.Diagnostics.Return_type_of_public_method_from_exported_class_has_or_is_using_private_name_0; } else { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? ts.Diagnostics.Return_type_of_method_from_exported_interface_has_or_is_using_name_0_from_private_module_1 : ts.Diagnostics.Return_type_of_method_from_exported_interface_has_or_is_using_private_name_0; + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + ts.Diagnostics.Return_type_of_method_from_exported_interface_has_or_is_using_name_0_from_private_module_1 : + ts.Diagnostics.Return_type_of_method_from_exported_interface_has_or_is_using_private_name_0; } break; case 195: - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 ? ts.Diagnostics.Return_type_of_exported_function_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named : ts.Diagnostics.Return_type_of_exported_function_has_or_is_using_name_0_from_private_module_1 : ts.Diagnostics.Return_type_of_exported_function_has_or_is_using_private_name_0; + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + symbolAccesibilityResult.accessibility === 2 ? + ts.Diagnostics.Return_type_of_exported_function_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named : + ts.Diagnostics.Return_type_of_exported_function_has_or_is_using_name_0_from_private_module_1 : + ts.Diagnostics.Return_type_of_exported_function_has_or_is_using_private_name_0; break; default: ts.Debug.fail("This is unknown kind for signature: " + node.kind); @@ -23477,7 +18991,9 @@ var ts; write("?"); } decreaseIndent(); - if (node.parent.kind === 140 || node.parent.kind === 141 || node.parent.parent.kind === 143) { + if (node.parent.kind === 140 || + node.parent.kind === 141 || + node.parent.parent.kind === 143) { emitTypeOfVariableDeclarationFromTypeLiteral(node); } else if (!(node.parent.flags & 32)) { @@ -23487,28 +19003,50 @@ var ts; var diagnosticMessage; switch (node.parent.kind) { case 133: - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 ? ts.Diagnostics.Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : ts.Diagnostics.Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_private_module_2 : ts.Diagnostics.Parameter_0_of_constructor_from_exported_class_has_or_is_using_private_name_1; + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + symbolAccesibilityResult.accessibility === 2 ? + ts.Diagnostics.Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : + ts.Diagnostics.Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_private_module_2 : + ts.Diagnostics.Parameter_0_of_constructor_from_exported_class_has_or_is_using_private_name_1; break; case 137: - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? ts.Diagnostics.Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2 : ts.Diagnostics.Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1; + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + ts.Diagnostics.Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2 : + ts.Diagnostics.Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1; break; case 136: - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? ts.Diagnostics.Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2 : ts.Diagnostics.Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1; + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + ts.Diagnostics.Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2 : + ts.Diagnostics.Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1; break; case 132: case 131: if (node.parent.flags & 128) { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 ? ts.Diagnostics.Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : ts.Diagnostics.Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_private_module_2 : ts.Diagnostics.Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1; + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + symbolAccesibilityResult.accessibility === 2 ? + ts.Diagnostics.Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : + ts.Diagnostics.Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_private_module_2 : + ts.Diagnostics.Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1; } else if (node.parent.parent.kind === 196) { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 ? ts.Diagnostics.Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : ts.Diagnostics.Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_private_module_2 : ts.Diagnostics.Parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1; + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + symbolAccesibilityResult.accessibility === 2 ? + ts.Diagnostics.Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : + ts.Diagnostics.Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_private_module_2 : + ts.Diagnostics.Parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1; } else { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? ts.Diagnostics.Parameter_0_of_method_from_exported_interface_has_or_is_using_name_1_from_private_module_2 : ts.Diagnostics.Parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1; + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + ts.Diagnostics.Parameter_0_of_method_from_exported_interface_has_or_is_using_name_1_from_private_module_2 : + ts.Diagnostics.Parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1; } break; case 195: - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 ? ts.Diagnostics.Parameter_0_of_exported_function_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : ts.Diagnostics.Parameter_0_of_exported_function_has_or_is_using_name_1_from_private_module_2 : ts.Diagnostics.Parameter_0_of_exported_function_has_or_is_using_private_name_1; + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? + symbolAccesibilityResult.accessibility === 2 ? + ts.Diagnostics.Parameter_0_of_exported_function_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : + ts.Diagnostics.Parameter_0_of_exported_function_has_or_is_using_name_1_from_private_module_2 : + ts.Diagnostics.Parameter_0_of_exported_function_has_or_is_using_private_name_1; break; default: ts.Debug.fail("This is unknown parent for parameter: " + node.parent.kind); @@ -23560,7 +19098,11 @@ var ts; } } function writeReferencePath(referencedFile) { - var declFileName = referencedFile.flags & 2048 ? referencedFile.fileName : shouldEmitToOwnFile(referencedFile, compilerOptions) ? getOwnEmitOutputFilePath(referencedFile, host, ".d.ts") : ts.removeFileExtension(compilerOptions.out) + ".d.ts"; + var declFileName = referencedFile.flags & 2048 + ? referencedFile.fileName + : shouldEmitToOwnFile(referencedFile, compilerOptions) + ? getOwnEmitOutputFilePath(referencedFile, host, ".d.ts") + : ts.removeFileExtension(compilerOptions.out) + ".d.ts"; declFileName = ts.getRelativePathToDirectoryOrUrl(ts.getDirectoryPath(ts.normalizeSlashes(jsFilePath)), declFileName, host.getCurrentDirectory(), host.getCanonicalFileName, false); referencePathsOutput += "/// " + newLine; } @@ -23624,28 +19166,20 @@ var ts; var exportSpecifiers; var exportDefault; var writeEmittedFiles = writeJavaScriptFile; - var emitLeadingComments = compilerOptions.removeComments ? function (node) { - } : emitLeadingDeclarationComments; - var emitTrailingComments = compilerOptions.removeComments ? function (node) { - } : emitTrailingDeclarationComments; - var emitLeadingCommentsOfPosition = compilerOptions.removeComments ? function (pos) { - } : emitLeadingCommentsOfLocalPosition; + var emitLeadingComments = compilerOptions.removeComments ? function (node) { } : emitLeadingDeclarationComments; + var emitTrailingComments = compilerOptions.removeComments ? function (node) { } : emitTrailingDeclarationComments; + var emitLeadingCommentsOfPosition = compilerOptions.removeComments ? function (pos) { } : emitLeadingCommentsOfLocalPosition; var detachedCommentsInfo; - var emitDetachedComments = compilerOptions.removeComments ? function (node) { - } : emitDetachedCommentsAtPosition; + var emitDetachedComments = compilerOptions.removeComments ? function (node) { } : emitDetachedCommentsAtPosition; var writeComment = writeCommentRange; var emitNodeWithoutSourceMap = compilerOptions.removeComments ? emitNodeWithoutSourceMapWithoutComments : emitNodeWithoutSourceMapWithComments; var emit = emitNodeWithoutSourceMap; var emitWithoutComments = emitNodeWithoutSourceMapWithoutComments; - var emitStart = function (node) { - }; - var emitEnd = function (node) { - }; + var emitStart = function (node) { }; + var emitEnd = function (node) { }; var emitToken = emitTokenText; - var scopeEmitStart = function (scopeDeclaration, scopeName) { - }; - var scopeEmitEnd = function () { - }; + var scopeEmitStart = function (scopeDeclaration, scopeName) { }; + var scopeEmitEnd = function () { }; var sourceMapData; if (compilerOptions.sourceMap) { initializeEmitterWithSourceMaps(); @@ -23671,10 +19205,7 @@ var ts; var names = currentScopeNames; currentScopeNames = undefined; if (names) { - lastFrame = { - names: names, - previous: lastFrame - }; + lastFrame = { names: names, previous: lastFrame }; return true; } return false; @@ -23689,16 +19220,14 @@ var ts; } } function generateUniqueNameForLocation(location, baseName) { - var name; + var _name; if (!isExistingName(location, baseName)) { - name = baseName; + _name = baseName; } else { - name = ts.generateUniqueName(baseName, function (n) { - return isExistingName(location, n); - }); + _name = ts.generateUniqueName(baseName, function (n) { return isExistingName(location, n); }); } - return recordNameInCurrentScope(name); + return recordNameInCurrentScope(_name); } function recordNameInCurrentScope(name) { if (!currentScopeNames) { @@ -23796,7 +19325,12 @@ var ts; sourceLinePos.character++; var emittedLine = writer.getLine(); var emittedColumn = writer.getColumn(); - if (!lastRecordedSourceMapSpan || lastRecordedSourceMapSpan.emittedLine != emittedLine || lastRecordedSourceMapSpan.emittedColumn != emittedColumn || (lastRecordedSourceMapSpan.sourceIndex === sourceMapSourceIndex && (lastRecordedSourceMapSpan.sourceLine > sourceLinePos.line || (lastRecordedSourceMapSpan.sourceLine === sourceLinePos.line && lastRecordedSourceMapSpan.sourceColumn > sourceLinePos.character)))) { + if (!lastRecordedSourceMapSpan || + lastRecordedSourceMapSpan.emittedLine != emittedLine || + lastRecordedSourceMapSpan.emittedColumn != emittedColumn || + (lastRecordedSourceMapSpan.sourceIndex === sourceMapSourceIndex && + (lastRecordedSourceMapSpan.sourceLine > sourceLinePos.line || + (lastRecordedSourceMapSpan.sourceLine === sourceLinePos.line && lastRecordedSourceMapSpan.sourceColumn > sourceLinePos.character)))) { encodeLastRecordedSourceMapSpan(); lastRecordedSourceMapSpan = { emittedLine: emittedLine, @@ -23841,8 +19375,8 @@ var ts; if (scopeName) { var parentIndex = getSourceMapNameIndex(); if (parentIndex !== -1) { - var name = node.name; - if (!name || name.kind !== 126) { + var _name = node.name; + if (!_name || _name.kind !== 126) { scopeName = "." + scopeName; } scopeName = sourceMapData.sourceMapNames[parentIndex] + scopeName; @@ -23859,10 +19393,20 @@ var ts; if (scopeName) { recordScopeNameStart(scopeName); } - else if (node.kind === 195 || node.kind === 160 || node.kind === 132 || node.kind === 131 || node.kind === 134 || node.kind === 135 || node.kind === 200 || node.kind === 196 || node.kind === 199) { + else if (node.kind === 195 || + node.kind === 160 || + node.kind === 132 || + node.kind === 131 || + node.kind === 134 || + node.kind === 135 || + node.kind === 200 || + node.kind === 196 || + node.kind === 199) { if (node.name) { - var name = node.name; - scopeName = name.kind === 126 ? ts.getTextOfNode(name) : node.name.text; + var _name = node.name; + scopeName = _name.kind === 126 + ? ts.getTextOfNode(_name) + : node.name.text; } recordScopeNameStart(scopeName); } @@ -23976,14 +19520,18 @@ var ts; function writeJavaScriptFile(emitOutput, writeByteOrderMark) { writeFile(host, diagnostics, jsFilePath, emitOutput, writeByteOrderMark); } - function createTempVariable(location, forLoopVariable) { - var name = forLoopVariable ? "_i" : undefined; - while (true) { - if (name && !isExistingName(location, name)) { - break; + function createTempVariable(location, preferredName) { + for (var name = preferredName; !name || isExistingName(location, name); tempCount++) { + var char = 97 + tempCount; + if (char === 105 || char === 110) { + continue; + } + if (tempCount < 26) { + name = "_" + String.fromCharCode(char); + } + else { + name = "_" + (tempCount - 26); } - name = "_" + (tempCount < 25 ? String.fromCharCode(tempCount + (tempCount < 8 ? 0 : 1) + 97) : tempCount - 25); - tempCount++; } recordNameInCurrentScope(name); var result = ts.createSynthesizedNode(64); @@ -23996,8 +19544,8 @@ var ts; } tempVariables.push(name); } - function createAndRecordTempVariable(location) { - var temp = createTempVariable(location, false); + function createAndRecordTempVariable(location, preferredName) { + var temp = createTempVariable(location, preferredName); recordTempDeclaration(temp); return temp; } @@ -24205,7 +19753,8 @@ var ts; if (node.template.kind === 169) { ts.forEach(node.template.templateSpans, function (templateSpan) { write(", "); - var needsParens = templateSpan.expression.kind === 167 && templateSpan.expression.operatorToken.kind === 23; + var needsParens = templateSpan.expression.kind === 167 + && templateSpan.expression.operatorToken.kind === 23; emitParenthesizedIf(templateSpan.expression, needsParens); }); } @@ -24216,7 +19765,8 @@ var ts; ts.forEachChild(node, emit); return; } - var emitOuterParens = ts.isExpression(node.parent) && templateNeedsParens(node, node.parent); + var emitOuterParens = ts.isExpression(node.parent) + && templateNeedsParens(node, node.parent); if (emitOuterParens) { write("("); } @@ -24225,9 +19775,10 @@ var ts; emitLiteral(node.head); headEmitted = true; } - for (var i = 0; i < node.templateSpans.length; i++) { + for (var i = 0, n = node.templateSpans.length; i < n; i++) { var templateSpan = node.templateSpans[i]; - var needsParens = templateSpan.expression.kind !== 159 && comparePrecedenceToBinaryPlus(templateSpan.expression) !== 1; + var needsParens = templateSpan.expression.kind !== 159 + && comparePrecedenceToBinaryPlus(templateSpan.expression) !== 1; if (i > 0 || headEmitted) { write(" + "); } @@ -24301,8 +19852,8 @@ var ts; } } function isNotExpressionIdentifier(node) { - var parent = node.parent; - switch (parent.kind) { + var _parent = node.parent; + switch (_parent.kind) { case 128: case 193: case 150: @@ -24322,7 +19873,7 @@ var ts; case 199: case 200: case 203: - return parent.name === node; + return _parent.name === node; case 185: case 184: case 209: @@ -24429,8 +19980,8 @@ var ts; function emitListWithSpread(elements, multiLine, trailingComma) { var pos = 0; var group = 0; - var length = elements.length; - while (pos < length) { + var _length = elements.length; + while (pos < _length) { if (group === 1) { write(".concat("); } @@ -24445,14 +19996,14 @@ var ts; } else { var i = pos; - while (i < length && elements[i].kind !== 171) { + while (i < _length && elements[i].kind !== 171) { i++; } write("["); if (multiLine) { increaseIndent(); } - emitList(elements, pos, i - pos, multiLine, trailingComma && i === length); + emitList(elements, pos, i - pos, multiLine, trailingComma && i === _length); if (multiLine) { decreaseIndent(); } @@ -24528,8 +20079,8 @@ var ts; var propertyDescriptor = ts.createSynthesizedNode(152); var descriptorProperties = []; if (getAccessor) { - var getProperty = createPropertyAssignment(createIdentifier("get"), createFunctionExpression(getAccessor.parameters, getAccessor.body)); - descriptorProperties.push(getProperty); + var _getProperty = createPropertyAssignment(createIdentifier("get"), createFunctionExpression(getAccessor.parameters, getAccessor.body)); + descriptorProperties.push(_getProperty); } if (setAccessor) { var setProperty = createPropertyAssignment(createIdentifier("set"), createFunctionExpression(setAccessor.parameters, setAccessor.body)); @@ -24642,7 +20193,6 @@ var ts; } } write("{"); - var properties = node.properties; if (properties.length) { emitLinePreservingList(node, properties, languageVersion >= 1, true); } @@ -24725,9 +20275,7 @@ var ts; write("]"); } function hasSpreadElement(elements) { - return ts.forEach(elements, function (e) { - return e.kind === 171; - }); + return ts.forEach(elements, function (e) { return e.kind === 171; }); } function skipParentheses(node) { while (node.kind === 159 || node.kind === 158) { @@ -24840,7 +20388,14 @@ var ts; while (operand.kind == 158) { operand = operand.expression; } - if (operand.kind !== 165 && operand.kind !== 164 && operand.kind !== 163 && operand.kind !== 162 && operand.kind !== 166 && operand.kind !== 156 && !(operand.kind === 155 && node.parent.kind === 156) && !(operand.kind === 160 && node.parent.kind === 155)) { + if (operand.kind !== 165 && + operand.kind !== 164 && + operand.kind !== 163 && + operand.kind !== 162 && + operand.kind !== 166 && + operand.kind !== 156 && + !(operand.kind === 155 && node.parent.kind === 156) && + !(operand.kind === 160 && node.parent.kind === 155)) { emit(operand); return; } @@ -24883,7 +20438,8 @@ var ts; write(ts.tokenToString(node.operator)); } function emitBinaryExpression(node) { - if (languageVersion < 2 && node.operatorToken.kind === 52 && (node.left.kind === 152 || node.left.kind === 151)) { + if (languageVersion < 2 && node.operatorToken.kind === 52 && + (node.left.kind === 152 || node.left.kind === 151)) { emitDestructuring(node, node.parent.kind === 177); } else { @@ -25081,8 +20637,9 @@ var ts; write(" "); endPos = emitToken(16, endPos); var rhsIsIdentifier = node.expression.kind === 64; - var counter = createTempVariable(node, true); - var rhsReference = rhsIsIdentifier ? node.expression : createTempVariable(node, false); + var counter = createTempVariable(node, "_i"); + var rhsReference = rhsIsIdentifier ? node.expression : createTempVariable(node); + var cachedLength = compilerOptions.cacheDownlevelForOfLength ? createTempVariable(node, "_n") : undefined; emitStart(node.expression); write("var "); emitNodeWithoutSourceMap(counter); @@ -25096,12 +20653,24 @@ var ts; emitNodeWithoutSourceMap(node.expression); emitEnd(node.expression); } + if (cachedLength) { + write(", "); + emitNodeWithoutSourceMap(cachedLength); + write(" = "); + emitNodeWithoutSourceMap(rhsReference); + write(".length"); + } write("; "); emitStart(node.initializer); emitNodeWithoutSourceMap(counter); write(" < "); - emitNodeWithoutSourceMap(rhsReference); - write(".length"); + if (cachedLength) { + emitNodeWithoutSourceMap(cachedLength); + } + else { + emitNodeWithoutSourceMap(rhsReference); + write(".length"); + } emitEnd(node.initializer); write("; "); emitStart(node.initializer); @@ -25129,7 +20698,7 @@ var ts; } } else { - emitNodeWithoutSourceMap(createTempVariable(node, false)); + emitNodeWithoutSourceMap(createTempVariable(node)); write(" = "); emitNodeWithoutSourceMap(rhsIterationValue); } @@ -25190,13 +20759,16 @@ var ts; emitToken(15, node.clauses.end); } function nodeStartPositionsAreOnSameLine(node1, node2) { - return getLineOfLocalPosition(currentSourceFile, ts.skipTrivia(currentSourceFile.text, node1.pos)) === getLineOfLocalPosition(currentSourceFile, ts.skipTrivia(currentSourceFile.text, node2.pos)); + return getLineOfLocalPosition(currentSourceFile, ts.skipTrivia(currentSourceFile.text, node1.pos)) === + getLineOfLocalPosition(currentSourceFile, ts.skipTrivia(currentSourceFile.text, node2.pos)); } function nodeEndPositionsAreOnSameLine(node1, node2) { - return getLineOfLocalPosition(currentSourceFile, node1.end) === getLineOfLocalPosition(currentSourceFile, node2.end); + return getLineOfLocalPosition(currentSourceFile, node1.end) === + getLineOfLocalPosition(currentSourceFile, node2.end); } function nodeEndIsOnSameLineAsNodeStart(node1, node2) { - return getLineOfLocalPosition(currentSourceFile, node1.end) === getLineOfLocalPosition(currentSourceFile, ts.skipTrivia(currentSourceFile.text, node2.pos)); + return getLineOfLocalPosition(currentSourceFile, node1.end) === + getLineOfLocalPosition(currentSourceFile, ts.skipTrivia(currentSourceFile.text, node2.pos)); } function emitCaseOrDefaultClause(node) { if (node.kind === 214) { @@ -25294,7 +20866,7 @@ var ts; } function emitDestructuring(root, isAssignmentExpressionStatement, value, lowestNonSynthesizedAncestor) { var emitCount = 0; - var isDeclaration = (root.kind === 193 && !(ts.getCombinedNodeFlags(root) & 1)) || root.kind === 128; + var _isDeclaration = (root.kind === 193 && !(ts.getCombinedNodeFlags(root) & 1)) || root.kind === 128; if (root.kind === 167) { emitAssignmentExpression(root); } @@ -25319,7 +20891,7 @@ var ts; function ensureIdentifier(expr) { if (expr.kind !== 64) { var identifier = createTempVariable(lowestNonSynthesizedAncestor || root); - if (!isDeclaration) { + if (!_isDeclaration) { recordTempDeclaration(identifier); } emitAssignment(identifier, expr); @@ -25374,8 +20946,8 @@ var ts; if (properties.length !== 1) { value = ensureIdentifier(value); } - for (var i = 0; i < properties.length; i++) { - var p = properties[i]; + for (var _i = 0, _n = properties.length; _i < _n; _i++) { + var p = properties[_i]; if (p.kind === 218 || p.kind === 219) { var propName = (p.name); emitDestructuringAssignment(p.initializer || propName, createPropertyAccess(value, propName)); @@ -25420,18 +20992,18 @@ var ts; } function emitAssignmentExpression(root) { var target = root.left; - var value = root.right; + var _value = root.right; if (isAssignmentExpressionStatement) { - emitDestructuringAssignment(target, value); + emitDestructuringAssignment(target, _value); } else { if (root.parent.kind !== 159) { write("("); } - value = ensureIdentifier(value); - emitDestructuringAssignment(target, value); + _value = ensureIdentifier(_value); + emitDestructuringAssignment(target, _value); write(", "); - emit(value); + emit(_value); if (root.parent.kind !== 159) { write(")"); } @@ -25490,8 +21062,11 @@ var ts; emitModuleMemberName(node); var initializer = node.initializer; if (!initializer && languageVersion < 2) { - var isUninitializedLet = (resolver.getNodeCheckFlags(node) & 256) && (getCombinedFlagsForIdentifier(node.name) & 4096); - if (isUninitializedLet && node.parent.parent.kind !== 182 && node.parent.parent.kind !== 183) { + var isUninitializedLet = (resolver.getNodeCheckFlags(node) & 256) && + (getCombinedFlagsForIdentifier(node.name) & 4096); + if (isUninitializedLet && + node.parent.parent.kind !== 182 && + node.parent.parent.kind !== 183) { initializer = createVoidZero(); } } @@ -25499,12 +21074,12 @@ var ts; } } function emitExportVariableAssignments(node) { - var name = node.name; - if (name.kind === 64) { - emitExportMemberAssignments(name); + var _name = node.name; + if (_name.kind === 64) { + emitExportMemberAssignments(_name); } - else if (ts.isBindingPattern(name)) { - ts.forEach(name.elements, emitExportVariableAssignments); + else if (ts.isBindingPattern(_name)) { + ts.forEach(_name.elements, emitExportVariableAssignments); } } function getCombinedFlagsForIdentifier(node) { @@ -25514,7 +21089,10 @@ var ts; return ts.getCombinedNodeFlags(node.parent); } function renameNonTopLevelLetAndConst(node) { - if (languageVersion >= 2 || ts.nodeIsSynthesized(node) || node.kind !== 64 || (node.parent.kind !== 193 && node.parent.kind !== 150)) { + if (languageVersion >= 2 || + ts.nodeIsSynthesized(node) || + node.kind !== 64 || + (node.parent.kind !== 193 && node.parent.kind !== 150)) { return; } var combinedFlags = getCombinedFlagsForIdentifier(node); @@ -25526,8 +21104,10 @@ var ts; return; } var blockScopeContainer = ts.getEnclosingBlockScopeContainer(node); - var parent = blockScopeContainer.kind === 221 ? blockScopeContainer : blockScopeContainer.parent; - var generatedName = generateUniqueNameForLocation(parent, node.text); + var _parent = blockScopeContainer.kind === 221 + ? blockScopeContainer + : blockScopeContainer.parent; + var generatedName = generateUniqueNameForLocation(_parent, node.text); var variableId = resolver.getBlockScopedVariableId(node); if (!generatedBlockScopeNames) { generatedBlockScopeNames = []; @@ -25547,12 +21127,12 @@ var ts; function emitParameter(node) { if (languageVersion < 2) { if (ts.isBindingPattern(node.name)) { - var name = createTempVariable(node); + var _name = createTempVariable(node); if (!tempParameters) { tempParameters = []; } - tempParameters.push(name); - emit(name); + tempParameters.push(_name); + emit(_name); } else { emit(node.name); @@ -25599,7 +21179,7 @@ var ts; if (languageVersion < 2 && ts.hasRestParameters(node)) { var restIndex = node.parameters.length - 1; var restParam = node.parameters[restIndex]; - var tempName = createTempVariable(node, true).text; + var tempName = createTempVariable(node, "_i").text; writeLine(); emitLeadingComments(restParam); emitStart(restParam); @@ -25798,9 +21378,10 @@ var ts; decreaseIndent(); var preambleEmitted = writer.getTextPos() !== initialTextPos; if (preserveNewLines && !preambleEmitted && nodeEndIsOnSameLineAsNodeStart(body, body)) { - for (var i = 0, n = body.statements.length; i < n; i++) { + for (var _i = 0, _a = body.statements, _n = _a.length; _i < _n; _i++) { + var statement = _a[_i]; write(" "); - emit(body.statements[i]); + emit(statement); } emitTempDeclarations(false); write(" "); @@ -26038,11 +21619,12 @@ var ts; emitDetachedComments(ctor.body.statements); } emitCaptureThisForNodeIfNecessary(node); + var superCall; if (ctor) { emitDefaultValueAssignments(ctor); emitRestParameter(ctor); if (baseTypeNode) { - var superCall = findInitialSuperCall(ctor); + superCall = findInitialSuperCall(ctor); if (superCall) { writeLine(); emit(superCall); @@ -26287,7 +21869,8 @@ var ts; emitImportDeclaration(node); return; } - if (resolver.isReferencedAliasDeclaration(node) || (!ts.isExternalModule(currentSourceFile) && resolver.isTopLevelValueImportEqualsWithEntityName(node))) { + if (resolver.isReferencedAliasDeclaration(node) || + (!ts.isExternalModule(currentSourceFile) && resolver.isTopLevelValueImportEqualsWithEntityName(node))) { emitLeadingComments(node); emitStart(node); if (!(node.flags & 1)) @@ -26389,8 +21972,8 @@ var ts; if (specifier.name.text === "default") { exportDefault = exportDefault || specifier; } - var name = (specifier.propertyName || specifier.name).text; - (exportSpecifiers[name] || (exportSpecifiers[name] = [])).push(specifier); + var _name = (specifier.propertyName || specifier.name).text; + (exportSpecifiers[_name] || (exportSpecifiers[_name] = [])).push(specifier); }); } else if (node.kind === 209) { @@ -26413,8 +21996,8 @@ var ts; } function getExternalImportInfo(node) { if (externalImports) { - for (var i = 0; i < externalImports.length; i++) { - var info = externalImports[i]; + for (var _i = 0, _n = externalImports.length; _i < _n; _i++) { + var info = externalImports[_i]; if (info.rootNode === node) { return info; } @@ -26575,12 +22158,12 @@ var ts; if (node.flags & 2) { return emitPinnedOrTripleSlashComments(node); } - var emitComments = shouldEmitLeadingAndTrailingComments(node); - if (emitComments) { + var _emitComments = shouldEmitLeadingAndTrailingComments(node); + if (_emitComments) { emitLeadingComments(node); } emitJavaScriptWorker(node); - if (emitComments) { + if (_emitComments) { emitTrailingComments(node); } } @@ -26809,10 +22392,7 @@ var ts; else { leadingComments = ts.getLeadingCommentRanges(currentSourceFile.text, pos); } - emitNewLineBeforeLeadingComments(currentSourceFile, writer, { - pos: pos, - end: pos - }, leadingComments); + emitNewLineBeforeLeadingComments(currentSourceFile, writer, { pos: pos, end: pos }, leadingComments); emitComments(currentSourceFile, writer, leadingComments, true, newLine, writeComment); } function emitDetachedCommentsAtPosition(node) { @@ -26837,17 +22417,12 @@ var ts; if (nodeLine >= lastCommentLine + 2) { emitNewLineBeforeLeadingComments(currentSourceFile, writer, node, leadingComments); emitComments(currentSourceFile, writer, detachedComments, true, newLine, writeComment); - var currentDetachedCommentInfo = { - nodePos: node.pos, - detachedCommentEndPos: detachedComments[detachedComments.length - 1].end - }; + var currentDetachedCommentInfo = { nodePos: node.pos, detachedCommentEndPos: detachedComments[detachedComments.length - 1].end }; if (detachedCommentsInfo) { detachedCommentsInfo.push(currentDetachedCommentInfo); } else { - detachedCommentsInfo = [ - currentDetachedCommentInfo - ]; + detachedCommentsInfo = [currentDetachedCommentInfo]; } } } @@ -26859,7 +22434,10 @@ var ts; if (currentSourceFile.text.charCodeAt(comment.pos + 1) === 42) { return currentSourceFile.text.charCodeAt(comment.pos + 2) === 33; } - else if (currentSourceFile.text.charCodeAt(comment.pos + 1) === 47 && comment.pos + 2 < comment.end && currentSourceFile.text.charCodeAt(comment.pos + 2) === 47 && currentSourceFile.text.substring(comment.pos, comment.end).match(ts.fullTripleSlashReferencePathRegEx)) { + else if (currentSourceFile.text.charCodeAt(comment.pos + 1) === 47 && + comment.pos + 2 < comment.end && + currentSourceFile.text.charCodeAt(comment.pos + 2) === 47 && + currentSourceFile.text.substring(comment.pos, comment.end).match(ts.fullTripleSlashReferencePathRegEx)) { return true; } } @@ -26905,14 +22483,17 @@ var ts; } var unsupportedFileEncodingErrorCode = -2147024809; function getSourceFile(fileName, languageVersion, onError) { + var text; try { var start = new Date().getTime(); - var text = ts.sys.readFile(fileName, options.charset); + text = ts.sys.readFile(fileName, options.charset); ts.ioReadTime += new Date().getTime() - start; } catch (e) { if (onError) { - onError(e.number === unsupportedFileEncodingErrorCode ? ts.createCompilerDiagnostic(ts.Diagnostics.Unsupported_file_encoding).messageText : e.message); + onError(e.number === unsupportedFileEncodingErrorCode + ? ts.createCompilerDiagnostic(ts.Diagnostics.Unsupported_file_encoding).messageText + : e.message); } text = ""; } @@ -26948,20 +22529,12 @@ var ts; } return { getSourceFile: getSourceFile, - getDefaultLibFileName: function (options) { - return ts.combinePaths(ts.getDirectoryPath(ts.normalizePath(ts.sys.getExecutingFilePath())), ts.getDefaultLibFileName(options)); - }, + getDefaultLibFileName: function (options) { return ts.combinePaths(ts.getDirectoryPath(ts.normalizePath(ts.sys.getExecutingFilePath())), ts.getDefaultLibFileName(options)); }, writeFile: writeFile, - getCurrentDirectory: function () { - return currentDirectory || (currentDirectory = ts.sys.getCurrentDirectory()); - }, - useCaseSensitiveFileNames: function () { - return ts.sys.useCaseSensitiveFileNames; - }, + getCurrentDirectory: function () { return currentDirectory || (currentDirectory = ts.sys.getCurrentDirectory()); }, + useCaseSensitiveFileNames: function () { return ts.sys.useCaseSensitiveFileNames; }, getCanonicalFileName: getCanonicalFileName, - getNewLine: function () { - return ts.sys.newLine; - } + getNewLine: function () { return ts.sys.newLine; } }; } ts.createCompilerHost = createCompilerHost; @@ -27001,9 +22574,7 @@ var ts; var seenNoDefaultLib = options.noLib; var commonSourceDirectory; host = host || createCompilerHost(options); - ts.forEach(rootNames, function (name) { - return processRootFile(name, false); - }); + ts.forEach(rootNames, function (name) { return processRootFile(name, false); }); if (!seenNoDefaultLib) { processRootFile(host.getDefaultLibFileName(options), true); } @@ -27012,35 +22583,21 @@ var ts; var noDiagnosticsTypeChecker; program = { getSourceFile: getSourceFile, - getSourceFiles: function () { - return files; - }, - getCompilerOptions: function () { - return options; - }, + getSourceFiles: function () { return files; }, + getCompilerOptions: function () { return options; }, getSyntacticDiagnostics: getSyntacticDiagnostics, getGlobalDiagnostics: getGlobalDiagnostics, getSemanticDiagnostics: getSemanticDiagnostics, getDeclarationDiagnostics: getDeclarationDiagnostics, getTypeChecker: getTypeChecker, getDiagnosticsProducingTypeChecker: getDiagnosticsProducingTypeChecker, - getCommonSourceDirectory: function () { - return commonSourceDirectory; - }, + getCommonSourceDirectory: function () { return commonSourceDirectory; }, emit: emit, getCurrentDirectory: host.getCurrentDirectory, - getNodeCount: function () { - return getDiagnosticsProducingTypeChecker().getNodeCount(); - }, - getIdentifierCount: function () { - return getDiagnosticsProducingTypeChecker().getIdentifierCount(); - }, - getSymbolCount: function () { - return getDiagnosticsProducingTypeChecker().getSymbolCount(); - }, - getTypeCount: function () { - return getDiagnosticsProducingTypeChecker().getTypeCount(); - } + getNodeCount: function () { return getDiagnosticsProducingTypeChecker().getNodeCount(); }, + getIdentifierCount: function () { return getDiagnosticsProducingTypeChecker().getIdentifierCount(); }, + getSymbolCount: function () { return getDiagnosticsProducingTypeChecker().getSymbolCount(); }, + getTypeCount: function () { return getDiagnosticsProducingTypeChecker().getTypeCount(); } }; return program; function getEmitHost(writeFileCallback) { @@ -27067,11 +22624,7 @@ var ts; } function emit(sourceFile, writeFileCallback) { if (options.noEmitOnError && getPreEmitDiagnostics(this).length > 0) { - return { - diagnostics: [], - sourceMaps: undefined, - emitSkipped: true - }; + return { diagnostics: [], sourceMaps: undefined, emitSkipped: true }; } var emitResolver = getDiagnosticsProducingTypeChecker().getEmitResolver(sourceFile); var start = new Date().getTime(); @@ -27124,9 +22677,11 @@ var ts; processSourceFile(ts.normalizePath(fileName), isDefaultLib); } function processSourceFile(fileName, isDefaultLib, refFile, refPos, refEnd) { + var start; + var _length; if (refEnd !== undefined && refPos !== undefined) { - var start = refPos; - var length = refEnd - refPos; + start = refPos; + _length = refEnd - refPos; } var diagnostic; if (hasExtension(fileName)) { @@ -27151,7 +22706,7 @@ var ts; } if (diagnostic) { if (refFile) { - diagnostics.add(ts.createFileDiagnostic(refFile, start, length, diagnostic, fileName)); + diagnostics.add(ts.createFileDiagnostic(refFile, start, _length, diagnostic, fileName)); } else { diagnostics.add(ts.createCompilerDiagnostic(diagnostic, fileName)); @@ -27192,17 +22747,17 @@ var ts; files.push(file); } } + return file; } - return file; function getSourceFileFromCache(fileName, canonicalName, useAbsolutePath) { - var file = filesByName[canonicalName]; - if (file && host.useCaseSensitiveFileNames()) { - var sourceFileName = useAbsolutePath ? ts.getNormalizedAbsolutePath(file.fileName, host.getCurrentDirectory()) : file.fileName; + var _file = filesByName[canonicalName]; + if (_file && host.useCaseSensitiveFileNames()) { + var sourceFileName = useAbsolutePath ? ts.getNormalizedAbsolutePath(_file.fileName, host.getCurrentDirectory()) : _file.fileName; if (canonicalName !== sourceFileName) { diagnostics.add(ts.createFileDiagnostic(refFile, refStart, refLength, ts.Diagnostics.File_name_0_differs_from_already_included_file_name_1_only_in_casing, fileName, sourceFileName)); } } - return file; + return _file; } } function processReferencedFiles(file, basePath) { @@ -27235,14 +22790,15 @@ var ts; } else if (node.kind === 200 && node.name.kind === 8 && (node.flags & 2 || ts.isDeclarationFile(file))) { ts.forEachChild(node.body, function (node) { - if (ts.isExternalModuleImportEqualsDeclaration(node) && ts.getExternalModuleImportEqualsDeclarationExpression(node).kind === 8) { + if (ts.isExternalModuleImportEqualsDeclaration(node) && + ts.getExternalModuleImportEqualsDeclarationExpression(node).kind === 8) { var nameLiteral = ts.getExternalModuleImportEqualsDeclarationExpression(node); var moduleName = nameLiteral.text; if (moduleName) { - var searchName = ts.normalizePath(ts.combinePaths(basePath, moduleName)); - var tsFile = findModuleSourceFile(searchName + ".ts", nameLiteral); + var _searchName = ts.normalizePath(ts.combinePaths(basePath, moduleName)); + var tsFile = findModuleSourceFile(_searchName + ".ts", nameLiteral); if (!tsFile) { - findModuleSourceFile(searchName + ".d.ts", nameLiteral); + findModuleSourceFile(_searchName + ".d.ts", nameLiteral); } } } @@ -27263,17 +22819,19 @@ var ts; } return; } - var firstExternalModuleSourceFile = ts.forEach(files, function (f) { - return ts.isExternalModule(f) ? f : undefined; - }); + var firstExternalModuleSourceFile = ts.forEach(files, function (f) { return ts.isExternalModule(f) ? f : undefined; }); if (firstExternalModuleSourceFile && !options.module) { var span = ts.getErrorSpanForNode(firstExternalModuleSourceFile, firstExternalModuleSourceFile.externalModuleIndicator); diagnostics.add(ts.createFileDiagnostic(firstExternalModuleSourceFile, span.start, span.length, ts.Diagnostics.Cannot_compile_external_modules_unless_the_module_flag_is_provided)); } - if (options.outDir || options.sourceRoot || (options.mapRoot && (!options.out || firstExternalModuleSourceFile !== undefined))) { + if (options.outDir || + options.sourceRoot || + (options.mapRoot && + (!options.out || firstExternalModuleSourceFile !== undefined))) { var commonPathComponents; ts.forEach(files, function (sourceFile) { - if (!(sourceFile.flags & 2048) && !ts.fileExtensionIs(sourceFile.fileName, ".js")) { + if (!(sourceFile.flags & 2048) + && !ts.fileExtensionIs(sourceFile.fileName, ".js")) { var sourcePathComponents = ts.getNormalizedPathComponents(sourceFile.fileName, host.getCurrentDirectory()); sourcePathComponents.pop(); if (commonPathComponents) { @@ -27457,14 +23015,16 @@ var ts; description: ts.Diagnostics.Preserve_new_lines_when_emitting_code, experimental: true }, + { + name: "cacheDownlevelForOfLength", + type: "boolean", + description: "Cache length access when downlevel emitting for-of statements", + experimental: true + }, { name: "target", shortName: "t", - type: { - "es3": 0, - "es5": 1, - "es6": 2 - }, + type: { "es3": 0, "es5": 1, "es6": 2 }, description: ts.Diagnostics.Specify_ECMAScript_target_version_Colon_ES3_default_ES5_or_ES6_experimental, paramType: ts.Diagnostics.VERSION, error: ts.Diagnostics.Argument_for_target_option_must_be_es3_es5_or_es6 @@ -27644,9 +23204,7 @@ var ts; var files = []; if (ts.hasProperty(json, "files")) { if (json["files"] instanceof Array) { - var files = ts.map(json["files"], function (s) { - return ts.combinePaths(basePath, s); - }); + var files = ts.map(json["files"], function (s) { return ts.combinePaths(basePath, s); }); } } else { @@ -27693,17 +23251,24 @@ var ts; switch (n.kind) { case 174: if (!ts.isFunctionBlock(n)) { - var parent = n.parent; + var _parent = n.parent; var openBrace = ts.findChildOfKind(n, 14, sourceFile); var closeBrace = ts.findChildOfKind(n, 15, sourceFile); - if (parent.kind === 179 || parent.kind === 182 || parent.kind === 183 || parent.kind === 181 || parent.kind === 178 || parent.kind === 180 || parent.kind === 187 || parent.kind === 217) { - addOutliningSpan(parent, openBrace, closeBrace, autoCollapse(n)); + if (_parent.kind === 179 || + _parent.kind === 182 || + _parent.kind === 183 || + _parent.kind === 181 || + _parent.kind === 178 || + _parent.kind === 180 || + _parent.kind === 187 || + _parent.kind === 217) { + addOutliningSpan(_parent, openBrace, closeBrace, autoCollapse(n)); break; } - if (parent.kind === 191) { - var tryStatement = parent; + if (_parent.kind === 191) { + var tryStatement = _parent; if (tryStatement.tryBlock === n) { - addOutliningSpan(parent, openBrace, closeBrace, autoCollapse(n)); + addOutliningSpan(_parent, openBrace, closeBrace, autoCollapse(n)); break; } else if (tryStatement.finallyBlock === n) { @@ -27723,20 +23288,22 @@ var ts; }); break; } - case 201: - var openBrace = ts.findChildOfKind(n, 14, sourceFile); - var closeBrace = ts.findChildOfKind(n, 15, sourceFile); - addOutliningSpan(n.parent, openBrace, closeBrace, autoCollapse(n)); + case 201: { + var _openBrace = ts.findChildOfKind(n, 14, sourceFile); + var _closeBrace = ts.findChildOfKind(n, 15, sourceFile); + addOutliningSpan(n.parent, _openBrace, _closeBrace, autoCollapse(n)); break; + } case 196: case 197: case 199: case 152: - case 202: - var openBrace = ts.findChildOfKind(n, 14, sourceFile); - var closeBrace = ts.findChildOfKind(n, 15, sourceFile); - addOutliningSpan(n, openBrace, closeBrace, autoCollapse(n)); + case 202: { + var _openBrace_1 = ts.findChildOfKind(n, 14, sourceFile); + var _closeBrace_1 = ts.findChildOfKind(n, 15, sourceFile); + addOutliningSpan(n, _openBrace_1, _closeBrace_1, autoCollapse(n)); break; + } case 151: var openBracket = ts.findChildOfKind(n, 18, sourceFile); var closeBracket = ts.findChildOfKind(n, 19, sourceFile); @@ -27763,8 +23330,8 @@ var ts; ts.forEach(program.getSourceFiles(), function (sourceFile) { cancellationToken.throwIfCancellationRequested(); var declarations = sourceFile.getNamedDeclarations(); - for (var i = 0, n = declarations.length; i < n; i++) { - var declaration = declarations[i]; + for (var _i = 0, _n = declarations.length; _i < _n; _i++) { + var declaration = declarations[_i]; var name = getDeclarationName(declaration); if (name !== undefined) { var matches = patternMatcher.getMatchesForLastSegmentOfPattern(name); @@ -27783,13 +23350,7 @@ var ts; } var fileName = sourceFile.fileName; var matchKind = bestMatchKind(matches); - rawItems.push({ - name: name, - fileName: fileName, - matchKind: matchKind, - isCaseSensitive: allMatchesAreCaseSensitive(matches), - declaration: declaration - }); + rawItems.push({ name: name, fileName: fileName, matchKind: matchKind, isCaseSensitive: allMatchesAreCaseSensitive(matches), declaration: declaration }); } } }); @@ -27801,8 +23362,9 @@ var ts; return items; function allMatchesAreCaseSensitive(matches) { ts.Debug.assert(matches.length > 0); - for (var i = 0, n = matches.length; i < n; i++) { - if (!matches[i].isCaseSensitive) { + for (var _i = 0, _n = matches.length; _i < _n; _i++) { + var match = matches[_i]; + if (!match.isCaseSensitive) { return false; } } @@ -27823,7 +23385,9 @@ var ts; return undefined; } function getTextOfIdentifierOrLiteral(node) { - if (node.kind === 64 || node.kind === 8 || node.kind === 7) { + if (node.kind === 64 || + node.kind === 8 || + node.kind === 7) { return node.text; } return undefined; @@ -27878,20 +23442,21 @@ var ts; } function bestMatchKind(matches) { ts.Debug.assert(matches.length > 0); - var bestMatchKind = 3; - for (var i = 0, n = matches.length; i < n; i++) { - var kind = matches[i].kind; - if (kind < bestMatchKind) { - bestMatchKind = kind; + var _bestMatchKind = 3; + for (var _i = 0, _n = matches.length; _i < _n; _i++) { + var match = matches[_i]; + var kind = match.kind; + if (kind < _bestMatchKind) { + _bestMatchKind = kind; } } - return bestMatchKind; + return _bestMatchKind; } - var baseSensitivity = { - sensitivity: "base" - }; + var baseSensitivity = { sensitivity: "base" }; function compareNavigateToItems(i1, i2) { - return i1.matchKind - i2.matchKind || i1.name.localeCompare(i2.name, undefined, baseSensitivity) || i1.name.localeCompare(i2.name); + return i1.matchKind - i2.matchKind || + i1.name.localeCompare(i2.name, undefined, baseSensitivity) || + i1.name.localeCompare(i2.name); } function createNavigateToItem(rawItem) { var declaration = rawItem.declaration; @@ -28015,8 +23580,8 @@ var ts; } function addTopLevelNodes(nodes, topLevelNodes) { nodes = sortNodes(nodes); - for (var i = 0, n = nodes.length; i < n; i++) { - var node = nodes[i]; + for (var _i = 0, _n = nodes.length; _i < _n; _i++) { + var node = nodes[_i]; switch (node.kind) { case 196: case 199: @@ -28041,9 +23606,7 @@ var ts; function isTopLevelFunctionDeclaration(functionDeclaration) { if (functionDeclaration.kind === 195) { if (functionDeclaration.body && functionDeclaration.body.kind === 174) { - if (ts.forEach(functionDeclaration.body.statements, function (s) { - return s.kind === 195 && !isEmpty(s.name.text); - })) { + if (ts.forEach(functionDeclaration.body.statements, function (s) { return s.kind === 195 && !isEmpty(s.name.text); })) { return true; } if (!ts.isFunctionBlock(functionDeclaration.parent)) { @@ -28056,19 +23619,19 @@ var ts; function getItemsWorker(nodes, createItem) { var items = []; var keyToItem = {}; - for (var i = 0, n = nodes.length; i < n; i++) { - var child = nodes[i]; - var item = createItem(child); - if (item !== undefined) { - if (item.text.length > 0) { - var key = item.text + "-" + item.kind + "-" + item.indent; + for (var _i = 0, _n = nodes.length; _i < _n; _i++) { + var child = nodes[_i]; + var _item = createItem(child); + if (_item !== undefined) { + if (_item.text.length > 0) { + var key = _item.text + "-" + _item.kind + "-" + _item.indent; var itemWithSameName = keyToItem[key]; if (itemWithSameName) { - merge(itemWithSameName, item); + merge(itemWithSameName, _item); } else { - keyToItem[key] = item; - items.push(item); + keyToItem[key] = _item; + items.push(_item); } } } @@ -28081,10 +23644,10 @@ var ts; if (!target.childItems) { target.childItems = []; } - outer: for (var i = 0, n = source.childItems.length; i < n; i++) { - var sourceChild = source.childItems[i]; - for (var j = 0, m = target.childItems.length; j < m; j++) { - var targetChild = target.childItems[j]; + outer: for (var _i = 0, _a = source.childItems, _n = _a.length; _i < _n; _i++) { + var sourceChild = _a[_i]; + for (var _b = 0, _c = target.childItems, _d = _c.length; _b < _d; _b++) { + var targetChild = _c[_b]; if (targetChild.text === sourceChild.text && targetChild.kind === sourceChild.kind) { merge(targetChild, sourceChild); continue outer; @@ -28127,9 +23690,9 @@ var ts; case 193: case 150: var variableDeclarationNode; - var name; + var _name; if (node.kind === 150) { - name = node.name; + _name = node.name; variableDeclarationNode = node; while (variableDeclarationNode && variableDeclarationNode.kind !== 193) { variableDeclarationNode = variableDeclarationNode.parent; @@ -28139,16 +23702,16 @@ var ts; else { ts.Debug.assert(!ts.isBindingPattern(node.name)); variableDeclarationNode = node; - name = node.name; + _name = node.name; } if (ts.isConst(variableDeclarationNode)) { - return createItem(node, getTextOfNode(name), ts.ScriptElementKind.constElement); + return createItem(node, getTextOfNode(_name), ts.ScriptElementKind.constElement); } else if (ts.isLet(variableDeclarationNode)) { - return createItem(node, getTextOfNode(name), ts.ScriptElementKind.letElement); + return createItem(node, getTextOfNode(_name), ts.ScriptElementKind.letElement); } else { - return createItem(node, getTextOfNode(name), ts.ScriptElementKind.variableElement); + return createItem(node, getTextOfNode(_name), ts.ScriptElementKind.variableElement); } case 133: return createItem(node, "constructor", ts.ScriptElementKind.constructorImplementationElement); @@ -28161,9 +23724,7 @@ var ts; } return undefined; function createItem(node, name, scriptElementKind) { - return getNavigationBarItem(name, scriptElementKind, ts.getNodeModifiers(node), [ - getNodeSpan(node) - ]); + return getNavigationBarItem(name, scriptElementKind, ts.getNodeModifiers(node), [getNodeSpan(node)]); } } function isEmpty(text) { @@ -28217,16 +23778,12 @@ var ts; function createModuleItem(node) { var moduleName = getModuleName(node); var childItems = getItemsWorker(getChildNodes(getInnermostModule(node).body.statements), createChildItem); - return getNavigationBarItem(moduleName, ts.ScriptElementKind.moduleElement, ts.getNodeModifiers(node), [ - getNodeSpan(node) - ], childItems, getIndent(node)); + return getNavigationBarItem(moduleName, ts.ScriptElementKind.moduleElement, ts.getNodeModifiers(node), [getNodeSpan(node)], childItems, getIndent(node)); } function createFunctionItem(node) { if (node.name && node.body && node.body.kind === 174) { var childItems = getItemsWorker(sortNodes(node.body.statements), createChildItem); - return getNavigationBarItem(node.name.text, ts.ScriptElementKind.functionElement, ts.getNodeModifiers(node), [ - getNodeSpan(node) - ], childItems, getIndent(node)); + return getNavigationBarItem(node.name.text, ts.ScriptElementKind.functionElement, ts.getNodeModifiers(node), [getNodeSpan(node)], childItems, getIndent(node)); } return undefined; } @@ -28236,10 +23793,10 @@ var ts; return undefined; } hasGlobalNode = true; - var rootName = ts.isExternalModule(node) ? "\"" + ts.escapeString(ts.getBaseFileName(ts.removeFileExtension(ts.normalizePath(node.fileName)))) + "\"" : ""; - return getNavigationBarItem(rootName, ts.ScriptElementKind.moduleElement, ts.ScriptElementKindModifier.none, [ - getNodeSpan(node) - ], childItems); + var rootName = ts.isExternalModule(node) + ? "\"" + ts.escapeString(ts.getBaseFileName(ts.removeFileExtension(ts.normalizePath(node.fileName)))) + "\"" + : ""; + return getNavigationBarItem(rootName, ts.ScriptElementKind.moduleElement, ts.ScriptElementKindModifier.none, [getNodeSpan(node)], childItems); } function createClassItem(node) { if (!node.name) { @@ -28252,38 +23809,26 @@ var ts; }); var nodes = removeDynamicallyNamedProperties(node); if (constructor) { - nodes.push.apply(nodes, ts.filter(constructor.parameters, function (p) { - return !ts.isBindingPattern(p.name); - })); + nodes.push.apply(nodes, ts.filter(constructor.parameters, function (p) { return !ts.isBindingPattern(p.name); })); } - var childItems = getItemsWorker(sortNodes(nodes), createChildItem); + childItems = getItemsWorker(sortNodes(nodes), createChildItem); } - return getNavigationBarItem(node.name.text, ts.ScriptElementKind.classElement, ts.getNodeModifiers(node), [ - getNodeSpan(node) - ], childItems, getIndent(node)); + return getNavigationBarItem(node.name.text, ts.ScriptElementKind.classElement, ts.getNodeModifiers(node), [getNodeSpan(node)], childItems, getIndent(node)); } function createEnumItem(node) { var childItems = getItemsWorker(sortNodes(removeComputedProperties(node)), createChildItem); - return getNavigationBarItem(node.name.text, ts.ScriptElementKind.enumElement, ts.getNodeModifiers(node), [ - getNodeSpan(node) - ], childItems, getIndent(node)); + return getNavigationBarItem(node.name.text, ts.ScriptElementKind.enumElement, ts.getNodeModifiers(node), [getNodeSpan(node)], childItems, getIndent(node)); } function createIterfaceItem(node) { var childItems = getItemsWorker(sortNodes(removeDynamicallyNamedProperties(node)), createChildItem); - return getNavigationBarItem(node.name.text, ts.ScriptElementKind.interfaceElement, ts.getNodeModifiers(node), [ - getNodeSpan(node) - ], childItems, getIndent(node)); + return getNavigationBarItem(node.name.text, ts.ScriptElementKind.interfaceElement, ts.getNodeModifiers(node), [getNodeSpan(node)], childItems, getIndent(node)); } } function removeComputedProperties(node) { - return ts.filter(node.members, function (member) { - return member.name === undefined || member.name.kind !== 126; - }); + return ts.filter(node.members, function (member) { return member.name === undefined || member.name.kind !== 126; }); } function removeDynamicallyNamedProperties(node) { - return ts.filter(node.members, function (member) { - return !ts.hasDynamicName(member); - }); + return ts.filter(node.members, function (member) { return !ts.hasDynamicName(member); }); } function getInnermostModule(node) { while (node.body.kind === 200) { @@ -28292,7 +23837,9 @@ var ts; return node; } function getNodeSpan(node) { - return node.kind === 221 ? ts.createTextSpanFromBounds(node.getFullStart(), node.getEnd()) : ts.createTextSpanFromBounds(node.getStart(), node.getEnd()); + return node.kind === 221 + ? ts.createTextSpanFromBounds(node.getFullStart(), node.getEnd()) + : ts.createTextSpanFromBounds(node.getStart(), node.getEnd()); } function getTextOfNode(node) { return ts.getTextOfNodeFromSourceText(sourceFile.text, node); @@ -28322,9 +23869,7 @@ var ts; var stringToWordSpans = {}; pattern = pattern.trim(); var fullPatternSegment = createSegment(pattern); - var dotSeparatedSegments = pattern.split(".").map(function (p) { - return createSegment(p.trim()); - }); + var dotSeparatedSegments = pattern.split(".").map(function (p) { return createSegment(p.trim()); }); var invalidPattern = dotSeparatedSegments.length === 0 || ts.forEach(dotSeparatedSegments, segmentIsInvalid); return { getMatches: getMatches, @@ -28384,8 +23929,8 @@ var ts; if (isLowercase) { if (index > 0) { var wordSpans = getWordSpans(candidate); - for (var i = 0, n = wordSpans.length; i < n; i++) { - var span = wordSpans[i]; + for (var _i = 0, _n = wordSpans.length; _i < _n; _i++) { + var span = wordSpans[_i]; if (partStartsWith(candidate, span, chunk.text, true)) { return createPatternMatch(2, punctuationStripped, partStartsWith(candidate, span, chunk.text, false)); } @@ -28432,15 +23977,13 @@ var ts; if (!containsSpaceOrAsterisk(segment.totalTextChunk.text)) { var match = matchTextChunk(candidate, segment.totalTextChunk, false); if (match) { - return [ - match - ]; + return [match]; } } var subWordTextChunks = segment.subWordTextChunks; var matches = undefined; - for (var i = 0, n = subWordTextChunks.length; i < n; i++) { - var subWordTextChunk = subWordTextChunks[i]; + for (var _i = 0, _n = subWordTextChunks.length; _i < _n; _i++) { + var subWordTextChunk = subWordTextChunks[_i]; var result = matchTextChunk(candidate, subWordTextChunk, true); if (!result) { return undefined; @@ -28466,10 +24009,10 @@ var ts; } } else { - for (var i = 0; i < patternPartLength; i++) { - var ch1 = pattern.charCodeAt(patternPartStart + i); - var ch2 = candidate.charCodeAt(candidateSpan.start + i); - if (ch1 !== ch2) { + for (var _i = 0; _i < patternPartLength; _i++) { + var _ch1 = pattern.charCodeAt(patternPartStart + _i); + var _ch2 = candidate.charCodeAt(candidateSpan.start + _i); + if (_ch1 !== _ch2) { return false; } } @@ -28501,7 +24044,8 @@ var ts; for (; currentChunkSpan < chunkCharacterSpans.length; currentChunkSpan++) { var chunkCharacterSpan = chunkCharacterSpans[currentChunkSpan]; if (gotOneMatchThisCandidate) { - if (!isUpperCaseLetter(chunk.text.charCodeAt(chunkCharacterSpans[currentChunkSpan - 1].start)) || !isUpperCaseLetter(chunk.text.charCodeAt(chunkCharacterSpans[currentChunkSpan].start))) { + if (!isUpperCaseLetter(chunk.text.charCodeAt(chunkCharacterSpans[currentChunkSpan - 1].start)) || + !isUpperCaseLetter(chunk.text.charCodeAt(chunkCharacterSpans[currentChunkSpan].start))) { break; } } @@ -28522,7 +24066,10 @@ var ts; } ts.createPatternMatcher = createPatternMatcher; function patternMatchCompareTo(match1, match2) { - return compareType(match1, match2) || compareCamelCase(match1, match2) || compareCase(match1, match2) || comparePunctuation(match1, match2); + return compareType(match1, match2) || + compareCamelCase(match1, match2) || + compareCase(match1, match2) || + comparePunctuation(match1, match2); } function comparePunctuation(result1, result2) { if (result1.punctuationStripped !== result2.punctuationStripped) { @@ -28671,7 +24218,11 @@ var ts; var currentIsDigit = isDigit(identifier.charCodeAt(i)); var hasTransitionFromLowerToUpper = transitionFromLowerToUpper(identifier, word, i); var hasTransitionFromUpperToLower = transitionFromUpperToLower(identifier, word, i, wordStart); - if (charIsPunctuation(identifier.charCodeAt(i - 1)) || charIsPunctuation(identifier.charCodeAt(i)) || lastIsDigit != currentIsDigit || hasTransitionFromLowerToUpper || hasTransitionFromUpperToLower) { + if (charIsPunctuation(identifier.charCodeAt(i - 1)) || + charIsPunctuation(identifier.charCodeAt(i)) || + lastIsDigit != currentIsDigit || + hasTransitionFromLowerToUpper || + hasTransitionFromUpperToLower) { if (!isAllPunctuation(identifier, wordStart, i)) { result.push(ts.createTextSpan(wordStart, i - wordStart)); } @@ -28723,7 +24274,8 @@ var ts; } function transitionFromUpperToLower(identifier, word, index, wordStart) { if (word) { - if (index != wordStart && index + 1 < identifier.length) { + if (index != wordStart && + index + 1 < identifier.length) { var currentIsUpper = isUpperCaseLetter(identifier.charCodeAt(index)); var nextIsLower = isLowerCaseLetter(identifier.charCodeAt(index + 1)); if (currentIsUpper && nextIsLower) { @@ -28741,7 +24293,9 @@ var ts; function transitionFromLowerToUpper(identifier, word, index) { var lastIsUpper = isUpperCaseLetter(identifier.charCodeAt(index - 1)); var currentIsUpper = isUpperCaseLetter(identifier.charCodeAt(index)); - var transition = word ? (currentIsUpper && !lastIsUpper) : currentIsUpper; + var transition = word + ? (currentIsUpper && !lastIsUpper) + : currentIsUpper; return transition; } })(ts || (ts = {})); @@ -28777,7 +24331,8 @@ var ts; function getImmediatelyContainingArgumentInfo(node) { if (node.parent.kind === 155 || node.parent.kind === 156) { var callExpression = node.parent; - if (node.kind === 24 || node.kind === 16) { + if (node.kind === 24 || + node.kind === 16) { var list = getChildListThatStartsWithOpenerToken(callExpression, node, sourceFile); var isTypeArgList = callExpression.typeArguments && callExpression.typeArguments.pos === list.pos; ts.Debug.assert(list !== undefined); @@ -28791,15 +24346,15 @@ var ts; } var listItemInfo = ts.findListItemInfo(node); if (listItemInfo) { - var list = listItemInfo.list; - var isTypeArgList = callExpression.typeArguments && callExpression.typeArguments.pos === list.pos; - var argumentIndex = getArgumentIndex(list, node); - var argumentCount = getArgumentCount(list); + var _list = listItemInfo.list; + var _isTypeArgList = callExpression.typeArguments && callExpression.typeArguments.pos === _list.pos; + var argumentIndex = getArgumentIndex(_list, node); + var argumentCount = getArgumentCount(_list); ts.Debug.assert(argumentIndex === 0 || argumentIndex < argumentCount, "argumentCount < argumentIndex, " + argumentCount + " < " + argumentIndex); return { - kind: isTypeArgList ? 0 : 1, + kind: _isTypeArgList ? 0 : 1, invocation: callExpression, - argumentsSpan: getApplicableSpanForArguments(list), + argumentsSpan: getApplicableSpanForArguments(_list), argumentIndex: argumentIndex, argumentCount: argumentCount }; @@ -28814,28 +24369,28 @@ var ts; var templateExpression = node.parent; var tagExpression = templateExpression.parent; ts.Debug.assert(templateExpression.kind === 169); - var argumentIndex = ts.isInsideTemplateLiteral(node, position) ? 0 : 1; - return getArgumentListInfoForTemplate(tagExpression, argumentIndex); + var _argumentIndex = ts.isInsideTemplateLiteral(node, position) ? 0 : 1; + return getArgumentListInfoForTemplate(tagExpression, _argumentIndex); } else if (node.parent.kind === 173 && node.parent.parent.parent.kind === 157) { var templateSpan = node.parent; - var templateExpression = templateSpan.parent; - var tagExpression = templateExpression.parent; - ts.Debug.assert(templateExpression.kind === 169); + var _templateExpression = templateSpan.parent; + var _tagExpression = _templateExpression.parent; + ts.Debug.assert(_templateExpression.kind === 169); if (node.kind === 13 && !ts.isInsideTemplateLiteral(node, position)) { return undefined; } - var spanIndex = templateExpression.templateSpans.indexOf(templateSpan); - var argumentIndex = getArgumentIndexForTemplatePiece(spanIndex, node); - return getArgumentListInfoForTemplate(tagExpression, argumentIndex); + var spanIndex = _templateExpression.templateSpans.indexOf(templateSpan); + var _argumentIndex_1 = getArgumentIndexForTemplatePiece(spanIndex, node); + return getArgumentListInfoForTemplate(_tagExpression, _argumentIndex_1); } return undefined; } function getArgumentIndex(argumentsList, node) { var argumentIndex = 0; var listChildren = argumentsList.getChildren(); - for (var i = 0, n = listChildren.length; i < n; i++) { - var child = listChildren[i]; + for (var _i = 0, _n = listChildren.length; _i < _n; _i++) { + var child = listChildren[_i]; if (child === node) { break; } @@ -28847,9 +24402,7 @@ var ts; } function getArgumentCount(argumentsList) { var listChildren = argumentsList.getChildren(); - var argumentCount = ts.countWhere(listChildren, function (arg) { - return arg.kind !== 23; - }); + var argumentCount = ts.countWhere(listChildren, function (arg) { return arg.kind !== 23; }); if (listChildren.length > 0 && ts.lastOrUndefined(listChildren).kind === 23) { argumentCount++; } @@ -28866,7 +24419,9 @@ var ts; return spanIndex + 1; } function getArgumentListInfoForTemplate(tagExpression, argumentIndex) { - var argumentCount = tagExpression.template.kind === 10 ? 1 : tagExpression.template.templateSpans.length + 1; + var argumentCount = tagExpression.template.kind === 10 + ? 1 + : tagExpression.template.templateSpans.length + 1; ts.Debug.assert(argumentIndex === 0 || argumentIndex < argumentCount, "argumentCount < argumentIndex, " + argumentCount + " < " + argumentIndex); return { kind: 2, @@ -28901,9 +24456,9 @@ var ts; if (n.pos < n.parent.pos || n.end > n.parent.end) { ts.Debug.fail("Node of kind " + n.kind + " is not a subspan of its parent of kind " + n.parent.kind); } - var argumentInfo = getImmediatelyContainingArgumentInfo(n); - if (argumentInfo) { - return argumentInfo; + var _argumentInfo = getImmediatelyContainingArgumentInfo(n); + if (_argumentInfo) { + return _argumentInfo; } } return undefined; @@ -28971,10 +24526,7 @@ var ts; isVariadic: candidateSignature.hasRestParameter, prefixDisplayParts: prefixDisplayParts, suffixDisplayParts: suffixDisplayParts, - separatorDisplayParts: [ - ts.punctuationPart(23), - ts.spacePart() - ], + separatorDisplayParts: [ts.punctuationPart(23), ts.spacePart()], parameters: signatureHelpParameters, documentation: candidateSignature.getDocumentationComment() }; @@ -29083,9 +24635,7 @@ var ts; } ts.findListItemInfo = findListItemInfo; function findChildOfKind(n, kind, sourceFile) { - return ts.forEach(n.getChildren(sourceFile), function (c) { - return c.kind === kind && c; - }); + return ts.forEach(n.getChildren(sourceFile), function (c) { return c.kind === kind && c; }); } ts.findChildOfKind = findChildOfKind; function findContainingList(node) { @@ -29099,15 +24649,11 @@ var ts; } ts.findContainingList = findContainingList; function getTouchingWord(sourceFile, position) { - return getTouchingToken(sourceFile, position, function (n) { - return isWord(n.kind); - }); + return getTouchingToken(sourceFile, position, function (n) { return isWord(n.kind); }); } ts.getTouchingWord = getTouchingWord; function getTouchingPropertyName(sourceFile, position) { - return getTouchingToken(sourceFile, position, function (n) { - return isPropertyName(n.kind); - }); + return getTouchingToken(sourceFile, position, function (n) { return isPropertyName(n.kind); }); } ts.getTouchingPropertyName = getTouchingPropertyName; function getTouchingToken(sourceFile, position, includeItemAtEndPosition) { @@ -29159,9 +24705,10 @@ var ts; return n; } var children = n.getChildren(); - for (var i = 0, len = children.length; i < len; ++i) { - var child = children[i]; - var shouldDiveInChildNode = (child.pos <= previousToken.pos && child.end > previousToken.end) || (child.pos === previousToken.end); + for (var _i = 0, _n = children.length; _i < _n; _i++) { + var child = children[_i]; + var shouldDiveInChildNode = (child.pos <= previousToken.pos && child.end > previousToken.end) || + (child.pos === previousToken.end); if (shouldDiveInChildNode && nodeHasTokens(child)) { return find(child); } @@ -29185,7 +24732,7 @@ var ts; return n; } var children = n.getChildren(); - for (var i = 0, len = children.length; i < len; ++i) { + for (var i = 0, len = children.length; i < len; i++) { var child = children[i]; if (nodeHasTokens(child)) { if (position <= child.end) { @@ -29201,8 +24748,8 @@ var ts; } ts.Debug.assert(startNode !== undefined || n.kind === 221); if (children.length) { - var candidate = findRightmostChildNodeWithTokens(children, children.length); - return candidate && findRightmostToken(candidate); + var _candidate = findRightmostChildNodeWithTokens(children, children.length); + return _candidate && findRightmostToken(_candidate); } } function findRightmostChildNodeWithTokens(children, exclusiveStartPosition) { @@ -29264,7 +24811,8 @@ var ts; } ts.isPunctuation = isPunctuation; function isInsideTemplateLiteral(node, position) { - return ts.isTemplateLiteralKind(node.kind) && (node.getStart() < position && position < node.getEnd()) || (!!node.isUnterminated && position === node.getEnd()); + return ts.isTemplateLiteralKind(node.kind) + && (node.getStart() < position && position < node.getEnd()) || (!!node.isUnterminated && position === node.getEnd()); } ts.isInsideTemplateLiteral = isInsideTemplateLiteral; function compareDataObjects(dst, src) { @@ -29297,38 +24845,19 @@ var ts; var indent; resetWriter(); return { - displayParts: function () { - return displayParts; - }, - writeKeyword: function (text) { - return writeKind(text, 5); - }, - writeOperator: function (text) { - return writeKind(text, 12); - }, - writePunctuation: function (text) { - return writeKind(text, 15); - }, - writeSpace: function (text) { - return writeKind(text, 16); - }, - writeStringLiteral: function (text) { - return writeKind(text, 8); - }, - writeParameter: function (text) { - return writeKind(text, 13); - }, + displayParts: function () { return displayParts; }, + writeKeyword: function (text) { return writeKind(text, 5); }, + writeOperator: function (text) { return writeKind(text, 12); }, + writePunctuation: function (text) { return writeKind(text, 15); }, + writeSpace: function (text) { return writeKind(text, 16); }, + writeStringLiteral: function (text) { return writeKind(text, 8); }, + writeParameter: function (text) { return writeKind(text, 13); }, writeSymbol: writeSymbol, writeLine: writeLine, - increaseIndent: function () { - indent++; - }, - decreaseIndent: function () { - indent--; - }, + increaseIndent: function () { indent++; }, + decreaseIndent: function () { indent--; }, clear: resetWriter, - trackSymbol: function () { - } + trackSymbol: function () { } }; function writeIndent() { if (lineStart) { @@ -29489,9 +25018,7 @@ var ts; advance: advance, readTokenInfo: readTokenInfo, isOnToken: isOnToken, - lastTrailingTriviaWasNewLine: function () { - return wasNewLine; - }, + lastTrailingTriviaWasNewLine: function () { return wasNewLine; }, close: function () { lastTokenInfo = undefined; scanner.setText(undefined); @@ -29517,21 +25044,21 @@ var ts; var t; var pos = scanner.getStartPos(); while (pos < endPos) { - var t = scanner.getToken(); - if (!ts.isTrivia(t)) { + var _t = scanner.getToken(); + if (!ts.isTrivia(_t)) { break; } scanner.scan(); - var item = { + var _item = { pos: pos, end: scanner.getStartPos(), - kind: t + kind: _t }; pos = scanner.getStartPos(); if (!leadingTrivia) { leadingTrivia = []; } - leadingTrivia.push(item); + leadingTrivia.push(_item); } savedPos = scanner.getStartPos(); } @@ -29552,7 +25079,8 @@ var ts; return container.kind === 9; } function shouldRescanTemplateToken(container) { - return container.kind === 12 || container.kind === 13; + return container.kind === 12 || + container.kind === 13; } function startsWithSlashToken(t) { return t === 36 || t === 56; @@ -29565,7 +25093,13 @@ var ts; token: undefined }; } - var expectedScanAction = shouldRescanGreaterThanToken(n) ? 1 : shouldRescanSlashToken(n) ? 2 : shouldRescanTemplateToken(n) ? 3 : 0; + var expectedScanAction = shouldRescanGreaterThanToken(n) + ? 1 + : shouldRescanSlashToken(n) + ? 2 + : shouldRescanTemplateToken(n) + ? 3 + : 0; if (lastTokenInfo && expectedScanAction === lastScanAction) { return fixTokenKind(lastTokenInfo, n); } @@ -29628,8 +25162,8 @@ var ts; } function isOnToken() { var current = (lastTokenInfo && lastTokenInfo.token.kind) || scanner.getToken(); - var startPos = (lastTokenInfo && lastTokenInfo.token.pos) || scanner.getStartPos(); - return startPos < endPos && current !== 1 && !ts.isTrivia(current); + var _startPos = (lastTokenInfo && lastTokenInfo.token.pos) || scanner.getStartPos(); + return _startPos < endPos && current !== 1 && !ts.isTrivia(current); } function fixTokenKind(tokenInfo, container) { if (ts.isToken(container) && tokenInfo.token.kind !== container.kind) { @@ -29745,7 +25279,9 @@ var ts; this.Flag = Flag; } Rule.prototype.toString = function () { - return "[desc=" + this.Descriptor + "," + "operation=" + this.Operation + "," + "flag=" + this.Flag + "]"; + return "[desc=" + this.Descriptor + "," + + "operation=" + this.Operation + "," + + "flag=" + this.Flag + "]"; }; return Rule; })(); @@ -29775,7 +25311,8 @@ var ts; this.RightTokenRange = RightTokenRange; } RuleDescriptor.prototype.toString = function () { - return "[leftRange=" + this.LeftTokenRange + "," + "rightRange=" + this.RightTokenRange + "]"; + return "[leftRange=" + this.LeftTokenRange + "," + + "rightRange=" + this.RightTokenRange + "]"; }; RuleDescriptor.create1 = function (left, right) { return RuleDescriptor.create4(formatting.Shared.TokenRange.FromToken(left), formatting.Shared.TokenRange.FromToken(right)); @@ -29815,7 +25352,8 @@ var ts; this.Action = null; } RuleOperation.prototype.toString = function () { - return "[context=" + this.Context + "," + "action=" + this.Action + "]"; + return "[context=" + this.Context + "," + + "action=" + this.Action + "]"; }; RuleOperation.create1 = function (action) { return RuleOperation.create2(formatting.RuleOperationContext.Any, action); @@ -29850,8 +25388,9 @@ var ts; if (this.IsAny()) { return true; } - for (var i = 0, len = this.customContextChecks.length; i < len; i++) { - if (!this.customContextChecks[i](context)) { + for (var _i = 0, _a = this.customContextChecks, _n = _a.length; _i < _n; _i++) { + var check = _a[_i]; + if (!check(context)) { return false; } } @@ -29881,12 +25420,7 @@ var ts; this.SpaceAfterCloseBrace = new formatting.Rule(formatting.RuleDescriptor.create3(15, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsAfterCodeBlockContext), 2)); this.SpaceBetweenCloseBraceAndElse = new formatting.Rule(formatting.RuleDescriptor.create1(15, 75), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2)); this.SpaceBetweenCloseBraceAndWhile = new formatting.Rule(formatting.RuleDescriptor.create1(15, 99), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2)); - this.NoSpaceAfterCloseBrace = new formatting.Rule(formatting.RuleDescriptor.create3(15, formatting.Shared.TokenRange.FromTokens([ - 17, - 19, - 23, - 22 - ])), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); + this.NoSpaceAfterCloseBrace = new formatting.Rule(formatting.RuleDescriptor.create3(15, formatting.Shared.TokenRange.FromTokens([17, 19, 23, 22])), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); this.NoSpaceBeforeDot = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Any, 20), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); this.NoSpaceAfterDot = new formatting.Rule(formatting.RuleDescriptor.create3(20, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); this.NoSpaceBeforeOpenBracket = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Any, 18), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); @@ -29895,19 +25429,9 @@ var ts; this.NoSpaceAfterCloseBracket = new formatting.Rule(formatting.RuleDescriptor.create3(19, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); this.FunctionOpenBraceLeftTokenRange = formatting.Shared.TokenRange.AnyIncludingMultilineComments; this.SpaceBeforeOpenBraceInFunction = new formatting.Rule(formatting.RuleDescriptor.create2(this.FunctionOpenBraceLeftTokenRange, 14), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsFunctionDeclContext, Rules.IsBeforeBlockContext, Rules.IsNotFormatOnEnter, Rules.IsSameLineTokenOrBeforeMultilineBlockContext), 2), 1); - this.TypeScriptOpenBraceLeftTokenRange = formatting.Shared.TokenRange.FromTokens([ - 64, - 3 - ]); + this.TypeScriptOpenBraceLeftTokenRange = formatting.Shared.TokenRange.FromTokens([64, 3]); this.SpaceBeforeOpenBraceInTypeScriptDeclWithBlock = new formatting.Rule(formatting.RuleDescriptor.create2(this.TypeScriptOpenBraceLeftTokenRange, 14), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsTypeScriptDeclWithBlockContext, Rules.IsNotFormatOnEnter, Rules.IsSameLineTokenOrBeforeMultilineBlockContext), 2), 1); - this.ControlOpenBraceLeftTokenRange = formatting.Shared.TokenRange.FromTokens([ - 17, - 3, - 74, - 95, - 80, - 75 - ]); + this.ControlOpenBraceLeftTokenRange = formatting.Shared.TokenRange.FromTokens([17, 3, 74, 95, 80, 75]); this.SpaceBeforeOpenBraceInControl = new formatting.Rule(formatting.RuleDescriptor.create2(this.ControlOpenBraceLeftTokenRange, 14), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsControlDeclContext, Rules.IsNotFormatOnEnter, Rules.IsSameLineTokenOrBeforeMultilineBlockContext), 2), 1); this.SpaceAfterOpenBrace = new formatting.Rule(formatting.RuleDescriptor.create3(14, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSingleLineBlockContext), 2)); this.SpaceBeforeCloseBrace = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Any, 15), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSingleLineBlockContext), 2)); @@ -29926,151 +25450,79 @@ var ts; this.SpaceAfterSubtractWhenFollowedByUnaryMinus = new formatting.Rule(formatting.RuleDescriptor.create1(34, 34), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsBinaryOpContext), 2)); this.SpaceAfterSubtractWhenFollowedByPredecrement = new formatting.Rule(formatting.RuleDescriptor.create1(34, 39), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsBinaryOpContext), 2)); this.NoSpaceBeforeComma = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Any, 23), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); - this.SpaceAfterCertainKeywords = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.FromTokens([ - 97, - 93, - 87, - 73, - 89, - 96 - ]), formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2)); - this.SpaceAfterLetConstInVariableDeclaration = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.FromTokens([ - 104, - 69 - ]), formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsStartOfVariableDeclarationList), 2)); + this.SpaceAfterCertainKeywords = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.FromTokens([97, 93, 87, 73, 89, 96]), formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2)); + this.SpaceAfterLetConstInVariableDeclaration = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.FromTokens([104, 69]), formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsStartOfVariableDeclarationList), 2)); this.NoSpaceBeforeOpenParenInFuncCall = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Any, 16), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsFunctionCallOrNewContext, Rules.IsPreviousTokenNotComma), 8)); this.SpaceAfterFunctionInFuncDecl = new formatting.Rule(formatting.RuleDescriptor.create3(82, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsFunctionDeclContext), 2)); this.NoSpaceBeforeOpenParenInFuncDecl = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Any, 16), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsFunctionDeclContext), 8)); this.SpaceAfterVoidOperator = new formatting.Rule(formatting.RuleDescriptor.create3(98, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsVoidOpContext), 2)); this.NoSpaceBetweenReturnAndSemicolon = new formatting.Rule(formatting.RuleDescriptor.create1(89, 22), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); - this.SpaceBetweenStatements = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.FromTokens([ - 17, - 74, - 75, - 66 - ]), formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsNotForContext), 2)); - this.SpaceAfterTryFinally = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.FromTokens([ - 95, - 80 - ]), 14), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2)); - this.SpaceAfterGetSetInMember = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.FromTokens([ - 115, - 119 - ]), 64), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsFunctionDeclContext), 2)); + this.SpaceBetweenStatements = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.FromTokens([17, 74, 75, 66]), formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsNotForContext), 2)); + this.SpaceAfterTryFinally = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.FromTokens([95, 80]), 14), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2)); + this.SpaceAfterGetSetInMember = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.FromTokens([115, 119]), 64), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsFunctionDeclContext), 2)); this.SpaceBeforeBinaryKeywordOperator = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.Any, formatting.Shared.TokenRange.BinaryKeywordOperators), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsBinaryOpContext), 2)); this.SpaceAfterBinaryKeywordOperator = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.BinaryKeywordOperators, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsBinaryOpContext), 2)); this.NoSpaceAfterConstructor = new formatting.Rule(formatting.RuleDescriptor.create1(113, 16), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); - this.NoSpaceAfterModuleImport = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.FromTokens([ - 116, - 117 - ]), 16), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); - this.SpaceAfterCertainTypeScriptKeywords = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.FromTokens([ - 68, - 114, - 76, - 77, - 78, - 115, - 102, - 84, - 103, - 116, - 106, - 108, - 119, - 109 - ]), formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2)); - this.SpaceBeforeCertainTypeScriptKeywords = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.Any, formatting.Shared.TokenRange.FromTokens([ - 78, - 102 - ])), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2)); + this.NoSpaceAfterModuleImport = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.FromTokens([116, 117]), 16), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); + this.SpaceAfterCertainTypeScriptKeywords = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.FromTokens([68, 114, 76, 77, 78, 115, 102, 84, 103, 116, 106, 108, 119, 109]), formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2)); + this.SpaceBeforeCertainTypeScriptKeywords = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.Any, formatting.Shared.TokenRange.FromTokens([78, 102])), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2)); this.SpaceAfterModuleName = new formatting.Rule(formatting.RuleDescriptor.create1(8, 14), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsModuleDeclContext), 2)); this.SpaceAfterArrow = new formatting.Rule(formatting.RuleDescriptor.create3(32, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2)); this.NoSpaceAfterEllipsis = new formatting.Rule(formatting.RuleDescriptor.create1(21, 64), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); - this.NoSpaceAfterOptionalParameters = new formatting.Rule(formatting.RuleDescriptor.create3(50, formatting.Shared.TokenRange.FromTokens([ - 17, - 23 - ])), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsNotBinaryOpContext), 8)); + this.NoSpaceAfterOptionalParameters = new formatting.Rule(formatting.RuleDescriptor.create3(50, formatting.Shared.TokenRange.FromTokens([17, 23])), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsNotBinaryOpContext), 8)); this.NoSpaceBeforeOpenAngularBracket = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.TypeNames, 24), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsTypeArgumentOrParameterContext), 8)); this.NoSpaceBetweenCloseParenAndAngularBracket = new formatting.Rule(formatting.RuleDescriptor.create1(17, 24), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsTypeArgumentOrParameterContext), 8)); this.NoSpaceAfterOpenAngularBracket = new formatting.Rule(formatting.RuleDescriptor.create3(24, formatting.Shared.TokenRange.TypeNames), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsTypeArgumentOrParameterContext), 8)); this.NoSpaceBeforeCloseAngularBracket = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Any, 25), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsTypeArgumentOrParameterContext), 8)); - this.NoSpaceAfterCloseAngularBracket = new formatting.Rule(formatting.RuleDescriptor.create3(25, formatting.Shared.TokenRange.FromTokens([ - 16, - 18, - 25, - 23 - ])), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsTypeArgumentOrParameterContext), 8)); + this.NoSpaceAfterCloseAngularBracket = new formatting.Rule(formatting.RuleDescriptor.create3(25, formatting.Shared.TokenRange.FromTokens([16, 18, 25, 23])), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsTypeArgumentOrParameterContext), 8)); this.NoSpaceBetweenEmptyInterfaceBraceBrackets = new formatting.Rule(formatting.RuleDescriptor.create1(14, 15), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsObjectTypeContext), 8)); - this.HighPriorityCommonRules = [ - this.IgnoreBeforeComment, - this.IgnoreAfterLineComment, - this.NoSpaceBeforeColon, - this.SpaceAfterColon, - this.NoSpaceBeforeQuestionMark, - this.SpaceAfterQuestionMarkInConditionalOperator, - this.NoSpaceAfterQuestionMark, - this.NoSpaceBeforeDot, - this.NoSpaceAfterDot, - this.NoSpaceAfterUnaryPrefixOperator, - this.NoSpaceAfterUnaryPreincrementOperator, - this.NoSpaceAfterUnaryPredecrementOperator, - this.NoSpaceBeforeUnaryPostincrementOperator, - this.NoSpaceBeforeUnaryPostdecrementOperator, - this.SpaceAfterPostincrementWhenFollowedByAdd, - this.SpaceAfterAddWhenFollowedByUnaryPlus, - this.SpaceAfterAddWhenFollowedByPreincrement, - this.SpaceAfterPostdecrementWhenFollowedBySubtract, - this.SpaceAfterSubtractWhenFollowedByUnaryMinus, - this.SpaceAfterSubtractWhenFollowedByPredecrement, - this.NoSpaceAfterCloseBrace, - this.SpaceAfterOpenBrace, - this.SpaceBeforeCloseBrace, - this.NewLineBeforeCloseBraceInBlockContext, - this.SpaceAfterCloseBrace, - this.SpaceBetweenCloseBraceAndElse, - this.SpaceBetweenCloseBraceAndWhile, - this.NoSpaceBetweenEmptyBraceBrackets, - this.SpaceAfterFunctionInFuncDecl, - this.NewLineAfterOpenBraceInBlockContext, - this.SpaceAfterGetSetInMember, - this.NoSpaceBetweenReturnAndSemicolon, - this.SpaceAfterCertainKeywords, - this.SpaceAfterLetConstInVariableDeclaration, - this.NoSpaceBeforeOpenParenInFuncCall, - this.SpaceBeforeBinaryKeywordOperator, - this.SpaceAfterBinaryKeywordOperator, - this.SpaceAfterVoidOperator, - this.NoSpaceAfterConstructor, - this.NoSpaceAfterModuleImport, - this.SpaceAfterCertainTypeScriptKeywords, - this.SpaceBeforeCertainTypeScriptKeywords, - this.SpaceAfterModuleName, - this.SpaceAfterArrow, - this.NoSpaceAfterEllipsis, - this.NoSpaceAfterOptionalParameters, - this.NoSpaceBetweenEmptyInterfaceBraceBrackets, - this.NoSpaceBeforeOpenAngularBracket, - this.NoSpaceBetweenCloseParenAndAngularBracket, - this.NoSpaceAfterOpenAngularBracket, - this.NoSpaceBeforeCloseAngularBracket, - this.NoSpaceAfterCloseAngularBracket - ]; - this.LowPriorityCommonRules = [ - this.NoSpaceBeforeSemicolon, - this.SpaceBeforeOpenBraceInControl, - this.SpaceBeforeOpenBraceInFunction, - this.SpaceBeforeOpenBraceInTypeScriptDeclWithBlock, - this.NoSpaceBeforeComma, - this.NoSpaceBeforeOpenBracket, - this.NoSpaceAfterOpenBracket, - this.NoSpaceBeforeCloseBracket, - this.NoSpaceAfterCloseBracket, - this.SpaceAfterSemicolon, - this.NoSpaceBeforeOpenParenInFuncDecl, - this.SpaceBetweenStatements, - this.SpaceAfterTryFinally - ]; + this.HighPriorityCommonRules = + [ + this.IgnoreBeforeComment, this.IgnoreAfterLineComment, + this.NoSpaceBeforeColon, this.SpaceAfterColon, this.NoSpaceBeforeQuestionMark, this.SpaceAfterQuestionMarkInConditionalOperator, + this.NoSpaceAfterQuestionMark, + this.NoSpaceBeforeDot, this.NoSpaceAfterDot, + this.NoSpaceAfterUnaryPrefixOperator, + this.NoSpaceAfterUnaryPreincrementOperator, this.NoSpaceAfterUnaryPredecrementOperator, + this.NoSpaceBeforeUnaryPostincrementOperator, this.NoSpaceBeforeUnaryPostdecrementOperator, + this.SpaceAfterPostincrementWhenFollowedByAdd, + this.SpaceAfterAddWhenFollowedByUnaryPlus, this.SpaceAfterAddWhenFollowedByPreincrement, + this.SpaceAfterPostdecrementWhenFollowedBySubtract, + this.SpaceAfterSubtractWhenFollowedByUnaryMinus, this.SpaceAfterSubtractWhenFollowedByPredecrement, + this.NoSpaceAfterCloseBrace, + this.SpaceAfterOpenBrace, this.SpaceBeforeCloseBrace, this.NewLineBeforeCloseBraceInBlockContext, + this.SpaceAfterCloseBrace, this.SpaceBetweenCloseBraceAndElse, this.SpaceBetweenCloseBraceAndWhile, this.NoSpaceBetweenEmptyBraceBrackets, + this.SpaceAfterFunctionInFuncDecl, this.NewLineAfterOpenBraceInBlockContext, this.SpaceAfterGetSetInMember, + this.NoSpaceBetweenReturnAndSemicolon, + this.SpaceAfterCertainKeywords, + this.SpaceAfterLetConstInVariableDeclaration, + this.NoSpaceBeforeOpenParenInFuncCall, + this.SpaceBeforeBinaryKeywordOperator, this.SpaceAfterBinaryKeywordOperator, + this.SpaceAfterVoidOperator, + this.NoSpaceAfterConstructor, this.NoSpaceAfterModuleImport, + this.SpaceAfterCertainTypeScriptKeywords, this.SpaceBeforeCertainTypeScriptKeywords, + this.SpaceAfterModuleName, + this.SpaceAfterArrow, + this.NoSpaceAfterEllipsis, + this.NoSpaceAfterOptionalParameters, + this.NoSpaceBetweenEmptyInterfaceBraceBrackets, + this.NoSpaceBeforeOpenAngularBracket, + this.NoSpaceBetweenCloseParenAndAngularBracket, + this.NoSpaceAfterOpenAngularBracket, + this.NoSpaceBeforeCloseAngularBracket, + this.NoSpaceAfterCloseAngularBracket + ]; + this.LowPriorityCommonRules = + [ + this.NoSpaceBeforeSemicolon, + this.SpaceBeforeOpenBraceInControl, this.SpaceBeforeOpenBraceInFunction, this.SpaceBeforeOpenBraceInTypeScriptDeclWithBlock, + this.NoSpaceBeforeComma, + this.NoSpaceBeforeOpenBracket, this.NoSpaceAfterOpenBracket, + this.NoSpaceBeforeCloseBracket, this.NoSpaceAfterCloseBracket, + this.SpaceAfterSemicolon, + this.NoSpaceBeforeOpenParenInFuncDecl, + this.SpaceBetweenStatements, this.SpaceAfterTryFinally + ]; this.SpaceAfterComma = new formatting.Rule(formatting.RuleDescriptor.create3(23, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2)); this.NoSpaceAfterComma = new formatting.Rule(formatting.RuleDescriptor.create3(23, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); this.SpaceBeforeBinaryOperator = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.Any, formatting.Shared.TokenRange.BinaryOperators), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsBinaryOpContext), 2)); @@ -30094,9 +25546,9 @@ var ts; } Rules.prototype.getRuleName = function (rule) { var o = this; - for (var name in o) { - if (o[name] === rule) { - return name; + for (var _name in o) { + if (o[_name] === rule) { + return _name; } } throw new Error("Unknown rule"); @@ -30244,7 +25696,8 @@ var ts; return context.TokensAreOnSameLine(); }; Rules.IsStartOfVariableDeclarationList = function (context) { - return context.currentTokenParent.kind === 194 && context.currentTokenParent.getStart(context.sourceFile) === context.currentTokenSpan.pos; + return context.currentTokenParent.kind === 194 && + context.currentTokenParent.getStart(context.sourceFile) === context.currentTokenSpan.pos; }; Rules.IsNotFormatOnEnter = function (context) { return context.formattingRequestKind != 2; @@ -30278,7 +25731,8 @@ var ts; } }; Rules.IsTypeArgumentOrParameterContext = function (context) { - return Rules.IsTypeArgumentOrParameter(context.currentTokenSpan, context.currentTokenParent) || Rules.IsTypeArgumentOrParameter(context.nextTokenSpan, context.nextTokenParent); + return Rules.IsTypeArgumentOrParameter(context.currentTokenSpan, context.currentTokenParent) || + Rules.IsTypeArgumentOrParameter(context.nextTokenSpan, context.nextTokenParent); }; Rules.IsVoidOpContext = function (context) { return context.currentTokenSpan.kind === 98 && context.currentTokenParent.kind === 164; @@ -30321,7 +25775,8 @@ var ts; }; RulesMap.prototype.FillRule = function (rule, rulesBucketConstructionStateList) { var _this = this; - var specificRule = rule.Descriptor.LeftTokenRange != formatting.Shared.TokenRange.Any && rule.Descriptor.RightTokenRange != formatting.Shared.TokenRange.Any; + var specificRule = rule.Descriptor.LeftTokenRange != formatting.Shared.TokenRange.Any && + rule.Descriptor.RightTokenRange != formatting.Shared.TokenRange.Any; rule.Descriptor.LeftTokenRange.GetTokens().forEach(function (left) { rule.Descriptor.RightTokenRange.GetTokens().forEach(function (right) { var rulesBucketIndex = _this.GetRuleBucketIndex(left, right); @@ -30337,10 +25792,11 @@ var ts; var bucketIndex = this.GetRuleBucketIndex(context.currentTokenSpan.kind, context.nextTokenSpan.kind); var bucket = this.map[bucketIndex]; if (bucket != null) { - for (var i = 0, len = bucket.Rules().length; i < len; i++) { - var rule = bucket.Rules()[i]; - if (rule.Operation.Context.InContext(context)) + for (var _i = 0, _a = bucket.Rules(), _n = _a.length; _i < _n; _i++) { + var rule = _a[_i]; + if (rule.Operation.Context.InContext(context)) { return rule; + } } } return null; @@ -30395,13 +25851,19 @@ var ts; RulesBucket.prototype.AddRule = function (rule, specificTokens, constructionState, rulesBucketIndex) { var position; if (rule.Operation.Action == 1) { - position = specificTokens ? 0 : RulesPosition.IgnoreRulesAny; + position = specificTokens ? + 0 : + RulesPosition.IgnoreRulesAny; } else if (!rule.Operation.Context.IsAny()) { - position = specificTokens ? RulesPosition.ContextRulesSpecific : RulesPosition.ContextRulesAny; + position = specificTokens ? + RulesPosition.ContextRulesSpecific : + RulesPosition.ContextRulesAny; } else { - position = specificTokens ? RulesPosition.NoContextRulesSpecific : RulesPosition.NoContextRulesAny; + position = specificTokens ? + RulesPosition.NoContextRulesSpecific : + RulesPosition.NoContextRulesAny; } var state = constructionState[rulesBucketIndex]; if (state === undefined) { @@ -30458,9 +25920,7 @@ var ts; this.token = token; } TokenSingleValueAccess.prototype.GetTokens = function () { - return [ - this.token - ]; + return [this.token]; }; TokenSingleValueAccess.prototype.Contains = function (tokenValue) { return tokenValue == this.token; @@ -30514,68 +25974,18 @@ var ts; return this.tokenAccess.toString(); }; TokenRange.Any = TokenRange.AllTokens(); - TokenRange.AnyIncludingMultilineComments = TokenRange.FromTokens(TokenRange.Any.GetTokens().concat([ - 3 - ])); + TokenRange.AnyIncludingMultilineComments = TokenRange.FromTokens(TokenRange.Any.GetTokens().concat([3])); TokenRange.Keywords = TokenRange.FromRange(65, 124); TokenRange.BinaryOperators = TokenRange.FromRange(24, 63); - TokenRange.BinaryKeywordOperators = TokenRange.FromTokens([ - 85, - 86, - 124 - ]); - TokenRange.UnaryPrefixOperators = TokenRange.FromTokens([ - 38, - 39, - 47, - 46 - ]); - TokenRange.UnaryPrefixExpressions = TokenRange.FromTokens([ - 7, - 64, - 16, - 18, - 14, - 92, - 87 - ]); - TokenRange.UnaryPreincrementExpressions = TokenRange.FromTokens([ - 64, - 16, - 92, - 87 - ]); - TokenRange.UnaryPostincrementExpressions = TokenRange.FromTokens([ - 64, - 17, - 19, - 87 - ]); - TokenRange.UnaryPredecrementExpressions = TokenRange.FromTokens([ - 64, - 16, - 92, - 87 - ]); - TokenRange.UnaryPostdecrementExpressions = TokenRange.FromTokens([ - 64, - 17, - 19, - 87 - ]); - TokenRange.Comments = TokenRange.FromTokens([ - 2, - 3 - ]); - TokenRange.TypeNames = TokenRange.FromTokens([ - 64, - 118, - 120, - 112, - 121, - 98, - 111 - ]); + TokenRange.BinaryKeywordOperators = TokenRange.FromTokens([85, 86, 124]); + TokenRange.UnaryPrefixOperators = TokenRange.FromTokens([38, 39, 47, 46]); + TokenRange.UnaryPrefixExpressions = TokenRange.FromTokens([7, 64, 16, 18, 14, 92, 87]); + TokenRange.UnaryPreincrementExpressions = TokenRange.FromTokens([64, 16, 92, 87]); + TokenRange.UnaryPostincrementExpressions = TokenRange.FromTokens([64, 17, 19, 87]); + TokenRange.UnaryPredecrementExpressions = TokenRange.FromTokens([64, 16, 92, 87]); + TokenRange.UnaryPostdecrementExpressions = TokenRange.FromTokens([64, 17, 19, 87]); + TokenRange.Comments = TokenRange.FromTokens([2, 3]); + TokenRange.TypeNames = TokenRange.FromTokens([64, 118, 120, 112, 121, 98, 111]); return TokenRange; })(); Shared.TokenRange = TokenRange; @@ -30712,23 +26122,28 @@ var ts; } formatting.formatSelection = formatSelection; function formatOutermostParent(position, expectedLastToken, sourceFile, options, rulesProvider, requestKind) { - var parent = findOutermostParent(position, expectedLastToken, sourceFile); - if (!parent) { + var _parent = findOutermostParent(position, expectedLastToken, sourceFile); + if (!_parent) { return []; } var span = { - pos: ts.getLineStartPositionForPosition(parent.getStart(sourceFile), sourceFile), - end: parent.end + pos: ts.getLineStartPositionForPosition(_parent.getStart(sourceFile), sourceFile), + end: _parent.end }; return formatSpan(span, sourceFile, options, rulesProvider, requestKind); } function findOutermostParent(position, expectedTokenKind, sourceFile) { var precedingToken = ts.findPrecedingToken(position, sourceFile); - if (!precedingToken || precedingToken.kind !== expectedTokenKind || position !== precedingToken.getEnd()) { + if (!precedingToken || + precedingToken.kind !== expectedTokenKind || + position !== precedingToken.getEnd()) { return undefined; } var current = precedingToken; - while (current && current.parent && current.parent.end === precedingToken.end && !isListElement(current.parent, current)) { + while (current && + current.parent && + current.parent.end === precedingToken.end && + !isListElement(current.parent, current)) { current = current.parent; } return current; @@ -30753,9 +26168,7 @@ var ts; function findEnclosingNode(range, sourceFile) { return find(sourceFile); function find(n) { - var candidate = ts.forEachChild(n, function (c) { - return ts.startEndContainsRange(c.getStart(sourceFile), c.end, range) && c; - }); + var candidate = ts.forEachChild(n, function (c) { return ts.startEndContainsRange(c.getStart(sourceFile), c.end, range) && c; }); if (candidate) { var result = find(candidate); if (result) { @@ -30769,11 +26182,9 @@ var ts; if (!errors.length) { return rangeHasNoErrors; } - var sorted = errors.filter(function (d) { - return ts.rangeOverlapsWithStartEnd(originalRange, d.start, d.start + d.length); - }).sort(function (e1, e2) { - return e1.start - e2.start; - }); + var sorted = errors + .filter(function (d) { return ts.rangeOverlapsWithStartEnd(originalRange, d.start, d.start + d.length); }) + .sort(function (e1, e2) { return e1.start - e2.start; }); if (!sorted.length) { return rangeHasNoErrors; } @@ -30854,10 +26265,10 @@ var ts; } } else { - var startLine = sourceFile.getLineAndCharacterOfPosition(startPos).line; + var _startLine = sourceFile.getLineAndCharacterOfPosition(startPos).line; var startLinePosition = ts.getLineStartPositionForPosition(startPos, sourceFile); var column = formatting.SmartIndenter.findFirstNonWhitespaceColumn(startLinePosition, startPos, sourceFile, options); - if (startLine !== parentStartLine || startPos === column) { + if (_startLine !== parentStartLine || startPos === column) { return column; } } @@ -30867,7 +26278,10 @@ var ts; var indentation = inheritedIndentation; if (indentation === -1) { if (isSomeBlock(node.kind)) { - if (isSomeBlock(parent.kind) || parent.kind === 221 || parent.kind === 214 || parent.kind === 215) { + if (isSomeBlock(parent.kind) || + parent.kind === 221 || + parent.kind === 214 || + parent.kind === 215) { indentation = parentDynamicIndentation.getIndentation() + parentDynamicIndentation.getDelta(); } else { @@ -30916,12 +26330,8 @@ var ts; return nodeStartLine !== line ? indentation + delta : indentation; } }, - getIndentation: function () { - return indentation; - }, - getDelta: function () { - return delta; - }, + getIndentation: function () { return indentation; }, + getDelta: function () { return delta; }, recomputeIndentation: function (lineAdded) { if (node.parent && formatting.SmartIndenter.shouldIndentChildNode(node.parent.kind, node.kind)) { if (lineAdded) { @@ -30975,19 +26385,19 @@ var ts; return inheritedIndentation; } while (formattingScanner.isOnToken()) { - var tokenInfo = formattingScanner.readTokenInfo(node); - if (tokenInfo.token.end > childStartPos) { + var _tokenInfo = formattingScanner.readTokenInfo(node); + if (_tokenInfo.token.end > childStartPos) { break; } - consumeTokenAndAdvanceScanner(tokenInfo, node, parentDynamicIndentation); + consumeTokenAndAdvanceScanner(_tokenInfo, node, parentDynamicIndentation); } if (!formattingScanner.isOnToken()) { return inheritedIndentation; } if (ts.isToken(child)) { - var tokenInfo = formattingScanner.readTokenInfo(child); - ts.Debug.assert(tokenInfo.token.end === child.end); - consumeTokenAndAdvanceScanner(tokenInfo, node, parentDynamicIndentation); + var _tokenInfo_1 = formattingScanner.readTokenInfo(child); + ts.Debug.assert(_tokenInfo_1.token.end === child.end); + consumeTokenAndAdvanceScanner(_tokenInfo_1, node, parentDynamicIndentation); return inheritedIndentation; } var childIndentation = computeIndentation(child, childStart.line, childIndentationAmount, node, parentDynamicIndentation, parentStartLine); @@ -30999,33 +26409,34 @@ var ts; var listStartToken = getOpenTokenForList(parent, nodes); var listEndToken = getCloseTokenForOpenToken(listStartToken); var listDynamicIndentation = parentDynamicIndentation; - var startLine = parentStartLine; + var _startLine = parentStartLine; if (listStartToken !== 0) { while (formattingScanner.isOnToken()) { - var tokenInfo = formattingScanner.readTokenInfo(parent); - if (tokenInfo.token.end > nodes.pos) { + var _tokenInfo = formattingScanner.readTokenInfo(parent); + if (_tokenInfo.token.end > nodes.pos) { break; } - else if (tokenInfo.token.kind === listStartToken) { - startLine = sourceFile.getLineAndCharacterOfPosition(tokenInfo.token.pos).line; - var indentation = computeIndentation(tokenInfo.token, startLine, -1, parent, parentDynamicIndentation, startLine); - listDynamicIndentation = getDynamicIndentation(parent, parentStartLine, indentation.indentation, indentation.delta); - consumeTokenAndAdvanceScanner(tokenInfo, parent, listDynamicIndentation); + else if (_tokenInfo.token.kind === listStartToken) { + _startLine = sourceFile.getLineAndCharacterOfPosition(_tokenInfo.token.pos).line; + var _indentation = computeIndentation(_tokenInfo.token, _startLine, -1, parent, parentDynamicIndentation, _startLine); + listDynamicIndentation = getDynamicIndentation(parent, parentStartLine, _indentation.indentation, _indentation.delta); + consumeTokenAndAdvanceScanner(_tokenInfo, parent, listDynamicIndentation); } else { - consumeTokenAndAdvanceScanner(tokenInfo, parent, parentDynamicIndentation); + consumeTokenAndAdvanceScanner(_tokenInfo, parent, parentDynamicIndentation); } } } var inheritedIndentation = -1; - for (var i = 0, len = nodes.length; i < len; ++i) { - inheritedIndentation = processChildNode(nodes[i], inheritedIndentation, node, listDynamicIndentation, startLine, true); + for (var _i = 0, _n = nodes.length; _i < _n; _i++) { + var child = nodes[_i]; + inheritedIndentation = processChildNode(child, inheritedIndentation, node, listDynamicIndentation, _startLine, true); } if (listEndToken !== 0) { if (formattingScanner.isOnToken()) { - var tokenInfo = formattingScanner.readTokenInfo(parent); - if (tokenInfo.token.kind === listEndToken && ts.rangeContainsRange(parent, tokenInfo.token)) { - consumeTokenAndAdvanceScanner(tokenInfo, parent, listDynamicIndentation); + var _tokenInfo_1 = formattingScanner.readTokenInfo(parent); + if (_tokenInfo_1.token.kind === listEndToken && ts.rangeContainsRange(parent, _tokenInfo_1.token)) { + consumeTokenAndAdvanceScanner(_tokenInfo_1, parent, listDynamicIndentation); } } } @@ -31062,8 +26473,8 @@ var ts; if (indentToken) { var indentNextTokenOrTrivia = true; if (currentTokenInfo.leadingTrivia) { - for (var i = 0, len = currentTokenInfo.leadingTrivia.length; i < len; ++i) { - var triviaItem = currentTokenInfo.leadingTrivia[i]; + for (var _i = 0, _a = currentTokenInfo.leadingTrivia, _n = _a.length; _i < _n; _i++) { + var triviaItem = _a[_i]; if (!ts.rangeContainsRange(originalRange, triviaItem)) { continue; } @@ -31076,8 +26487,8 @@ var ts; break; case 2: if (indentNextTokenOrTrivia) { - var commentIndentation = dynamicIndentation.getIndentationForComment(currentTokenInfo.token.kind); - insertIndentation(triviaItem.pos, commentIndentation, false); + var _commentIndentation = dynamicIndentation.getIndentationForComment(currentTokenInfo.token.kind); + insertIndentation(triviaItem.pos, _commentIndentation, false); indentNextTokenOrTrivia = false; } break; @@ -31097,8 +26508,8 @@ var ts; } } function processTrivia(trivia, parent, contextNode, dynamicIndentation) { - for (var i = 0, len = trivia.length; i < len; ++i) { - var triviaItem = trivia[i]; + for (var _i = 0, _n = trivia.length; _i < _n; _i++) { + var triviaItem = trivia[_i]; if (ts.isComment(triviaItem.kind) && ts.rangeContainsRange(originalRange, triviaItem)) { var triviaItemStart = sourceFile.getLineAndCharacterOfPosition(triviaItem.pos); processRange(triviaItem, triviaItemStart, parent, contextNode, dynamicIndentation); @@ -31114,7 +26525,8 @@ var ts; trimTrailingWhitespacesForLines(originalStart.line, rangeStart.line); } else { - lineAdded = processPair(range, rangeStart.line, parent, previousRange, previousRangeStartLine, previousParent, contextNode, dynamicIndentation); + lineAdded = + processPair(range, rangeStart.line, parent, previousRange, previousRangeStartLine, previousParent, contextNode, dynamicIndentation); } } previousRange = range; @@ -31142,7 +26554,9 @@ var ts; dynamicIndentation.recomputeIndentation(true); } } - trimTrailingWhitespaces = (rule.Operation.Action & (4 | 2)) && rule.Flag !== 1; + trimTrailingWhitespaces = + (rule.Operation.Action & (4 | 2)) && + rule.Flag !== 1; } else { trimTrailingWhitespaces = true; @@ -31166,31 +26580,26 @@ var ts; } } function indentMultilineComment(commentRange, indentation, firstLineIsIndented) { - var startLine = sourceFile.getLineAndCharacterOfPosition(commentRange.pos).line; + var _startLine = sourceFile.getLineAndCharacterOfPosition(commentRange.pos).line; var endLine = sourceFile.getLineAndCharacterOfPosition(commentRange.end).line; - if (startLine === endLine) { + var parts; + if (_startLine === endLine) { if (!firstLineIsIndented) { insertIndentation(commentRange.pos, indentation, false); } return; } else { - var parts = []; + parts = []; var startPos = commentRange.pos; - for (var line = startLine; line < endLine; ++line) { + for (var line = _startLine; line < endLine; ++line) { var endOfLine = ts.getEndLinePosition(line, sourceFile); - parts.push({ - pos: startPos, - end: endOfLine - }); + parts.push({ pos: startPos, end: endOfLine }); startPos = ts.getStartPositionOfLine(line + 1, sourceFile); } - parts.push({ - pos: startPos, - end: commentRange.end - }); + parts.push({ pos: startPos, end: commentRange.end }); } - var startLinePos = ts.getStartPositionOfLine(startLine, sourceFile); + var startLinePos = ts.getStartPositionOfLine(_startLine, sourceFile); var nonWhitespaceColumnInFirstPart = formatting.SmartIndenter.findFirstNonWhitespaceCharacterAndColumn(startLinePos, parts[0].pos, sourceFile, options); if (indentation === nonWhitespaceColumnInFirstPart.column) { return; @@ -31198,19 +26607,21 @@ var ts; var startIndex = 0; if (firstLineIsIndented) { startIndex = 1; - startLine++; + _startLine++; } - var delta = indentation - nonWhitespaceColumnInFirstPart.column; - for (var i = startIndex, len = parts.length; i < len; ++i, ++startLine) { - var startLinePos = ts.getStartPositionOfLine(startLine, sourceFile); - var nonWhitespaceCharacterAndColumn = i === 0 ? nonWhitespaceColumnInFirstPart : formatting.SmartIndenter.findFirstNonWhitespaceCharacterAndColumn(parts[i].pos, parts[i].end, sourceFile, options); - var newIndentation = nonWhitespaceCharacterAndColumn.column + delta; + var _delta = indentation - nonWhitespaceColumnInFirstPart.column; + for (var i = startIndex, len = parts.length; i < len; ++i, ++_startLine) { + var _startLinePos = ts.getStartPositionOfLine(_startLine, sourceFile); + var nonWhitespaceCharacterAndColumn = i === 0 + ? nonWhitespaceColumnInFirstPart + : formatting.SmartIndenter.findFirstNonWhitespaceCharacterAndColumn(parts[i].pos, parts[i].end, sourceFile, options); + var newIndentation = nonWhitespaceCharacterAndColumn.column + _delta; if (newIndentation > 0) { var indentationString = getIndentationString(newIndentation, options); - recordReplace(startLinePos, nonWhitespaceCharacterAndColumn.character, indentationString); + recordReplace(_startLinePos, nonWhitespaceCharacterAndColumn.character, indentationString); } else { - recordDelete(startLinePos, nonWhitespaceCharacterAndColumn.character); + recordDelete(_startLinePos, nonWhitespaceCharacterAndColumn.character); } } } @@ -31232,10 +26643,7 @@ var ts; } } function newTextChange(start, len, newText) { - return { - span: ts.createTextSpan(start, len), - newText: newText - }; + return { span: ts.createTextSpan(start, len), newText: newText }; } function recordDelete(start, len) { if (len) { @@ -31389,7 +26797,12 @@ var ts; if (!precedingToken) { return 0; } - var precedingTokenIsLiteral = precedingToken.kind === 8 || precedingToken.kind === 9 || precedingToken.kind === 10 || precedingToken.kind === 11 || precedingToken.kind === 12 || precedingToken.kind === 13; + var precedingTokenIsLiteral = precedingToken.kind === 8 || + precedingToken.kind === 9 || + precedingToken.kind === 10 || + precedingToken.kind === 11 || + precedingToken.kind === 12 || + precedingToken.kind === 13; if (precedingTokenIsLiteral && precedingToken.getStart(sourceFile) <= position && precedingToken.end > position) { return 0; } @@ -31415,9 +26828,9 @@ var ts; } break; } - var actualIndentation = getActualIndentationForListItem(current, sourceFile, options); - if (actualIndentation !== -1) { - return actualIndentation; + var _actualIndentation = getActualIndentationForListItem(current, sourceFile, options); + if (_actualIndentation !== -1) { + return _actualIndentation; } previous = current; current = current.parent; @@ -31434,9 +26847,9 @@ var ts; } SmartIndenter.getIndentationForNode = getIndentationForNode; function getIndentationForNodeWorker(current, currentStart, ignoreActualIndentationRange, indentationDelta, sourceFile, options) { - var parent = current.parent; + var _parent = current.parent; var parentStart; - while (parent) { + while (_parent) { var useActualIndentation = true; if (ignoreActualIndentationRange) { var start = current.getStart(sourceFile); @@ -31448,20 +26861,21 @@ var ts; return actualIndentation + indentationDelta; } } - parentStart = getParentStart(parent, current, sourceFile); - var parentAndChildShareLine = parentStart.line === currentStart.line || childStartsOnTheSameLineWithElseInIfStatement(parent, current, currentStart.line, sourceFile); + parentStart = getParentStart(_parent, current, sourceFile); + var parentAndChildShareLine = parentStart.line === currentStart.line || + childStartsOnTheSameLineWithElseInIfStatement(_parent, current, currentStart.line, sourceFile); if (useActualIndentation) { - var actualIndentation = getActualIndentationForNode(current, parent, currentStart, parentAndChildShareLine, sourceFile, options); - if (actualIndentation !== -1) { - return actualIndentation + indentationDelta; + var _actualIndentation = getActualIndentationForNode(current, _parent, currentStart, parentAndChildShareLine, sourceFile, options); + if (_actualIndentation !== -1) { + return _actualIndentation + indentationDelta; } } - if (shouldIndentChildNode(parent.kind, current.kind) && !parentAndChildShareLine) { + if (shouldIndentChildNode(_parent.kind, current.kind) && !parentAndChildShareLine) { indentationDelta += options.IndentSize; } - current = parent; + current = _parent; currentStart = parentStart; - parent = current.parent; + _parent = current.parent; } return indentationDelta; } @@ -31482,7 +26896,8 @@ var ts; } } function getActualIndentationForNode(current, parent, currentLineAndChar, parentAndChildShareLine, sourceFile, options) { - var useActualIndentation = (ts.isDeclaration(current) || ts.isStatement(current)) && (parent.kind === 221 || !parentAndChildShareLine); + var useActualIndentation = (ts.isDeclaration(current) || ts.isStatement(current)) && + (parent.kind === 221 || !parentAndChildShareLine); if (!useActualIndentation) { return -1; } @@ -31522,7 +26937,8 @@ var ts; if (node.parent) { switch (node.parent.kind) { case 139: - if (node.parent.typeArguments && ts.rangeContainsStartEnd(node.parent.typeArguments, node.getStart(sourceFile), node.getEnd())) { + if (node.parent.typeArguments && + ts.rangeContainsStartEnd(node.parent.typeArguments, node.getStart(sourceFile), node.getEnd())) { return node.parent.typeArguments; } break; @@ -31536,25 +26952,30 @@ var ts; case 132: case 131: case 136: - case 137: + case 137: { var start = node.getStart(sourceFile); - if (node.parent.typeParameters && ts.rangeContainsStartEnd(node.parent.typeParameters, start, node.getEnd())) { + if (node.parent.typeParameters && + ts.rangeContainsStartEnd(node.parent.typeParameters, start, node.getEnd())) { return node.parent.typeParameters; } if (ts.rangeContainsStartEnd(node.parent.parameters, start, node.getEnd())) { return node.parent.parameters; } break; + } case 156: - case 155: - var start = node.getStart(sourceFile); - if (node.parent.typeArguments && ts.rangeContainsStartEnd(node.parent.typeArguments, start, node.getEnd())) { + case 155: { + var _start = node.getStart(sourceFile); + if (node.parent.typeArguments && + ts.rangeContainsStartEnd(node.parent.typeArguments, _start, node.getEnd())) { return node.parent.typeArguments; } - if (node.parent.arguments && ts.rangeContainsStartEnd(node.parent.arguments, start, node.getEnd())) { + if (node.parent.arguments && + ts.rangeContainsStartEnd(node.parent.arguments, _start, node.getEnd())) { return node.parent.arguments; } break; + } } } return undefined; @@ -31603,10 +27024,7 @@ var ts; } character++; } - return { - column: column, - character: character - }; + return { column: column, character: character }; } SmartIndenter.findFirstNonWhitespaceCharacterAndColumn = findFirstNonWhitespaceCharacterAndColumn; function findFirstNonWhitespaceColumn(startPos, endPos, sourceFile, options) { @@ -31823,8 +27241,8 @@ var ts; var list = createNode(222, nodes.pos, nodes.end, 1024, this); list._children = []; var pos = nodes.pos; - for (var i = 0, len = nodes.length; i < len; i++) { - var node = nodes[i]; + for (var _i = 0, _n = nodes.length; _i < _n; _i++) { + var node = nodes[_i]; if (pos < node.pos) { pos = this.addSyntheticNodes(list._children, pos, node.pos); } @@ -31838,9 +27256,10 @@ var ts; }; NodeObject.prototype.createChildren = function (sourceFile) { var _this = this; + var children; if (this.kind >= 125) { scanner.setText((sourceFile || this.getSourceFile()).text); - var children = []; + children = []; var pos = this.pos; var processNode = function (node) { if (pos < node.pos) { @@ -31881,8 +27300,8 @@ var ts; }; NodeObject.prototype.getFirstToken = function (sourceFile) { var children = this.getChildren(); - for (var i = 0; i < children.length; i++) { - var child = children[i]; + for (var _i = 0, _n = children.length; _i < _n; _i++) { + var child = children[_i]; if (child.kind < 125) { return child; } @@ -31989,7 +27408,10 @@ var ts; return pos; } function isName(pos, end, sourceFile, name) { - return pos + name.length < end && sourceFile.text.substr(pos, name.length) === name && (ts.isWhiteSpace(sourceFile.text.charCodeAt(pos + name.length)) || ts.isLineBreak(sourceFile.text.charCodeAt(pos + name.length))); + return pos + name.length < end && + sourceFile.text.substr(pos, name.length) === name && + (ts.isWhiteSpace(sourceFile.text.charCodeAt(pos + name.length)) || + ts.isLineBreak(sourceFile.text.charCodeAt(pos + name.length))); } function isParamTag(pos, end, sourceFile) { return isName(pos, end, sourceFile, paramTag); @@ -32001,7 +27423,7 @@ var ts; } function getCleanedJsDocComment(pos, end, sourceFile) { var spacesToRemoveAfterAsterisk; - var docComments = []; + var _docComments = []; var blankLineCount = 0; var isInParamTag = false; while (pos < end) { @@ -32036,14 +27458,14 @@ var ts; } pos = consumeLineBreaks(pos, end, sourceFile); if (docCommentTextOfLine) { - pushDocCommentLineText(docComments, docCommentTextOfLine, blankLineCount); + pushDocCommentLineText(_docComments, docCommentTextOfLine, blankLineCount); blankLineCount = 0; } - else if (!isInParamTag && docComments.length) { + else if (!isInParamTag && _docComments.length) { blankLineCount++; } } - return docComments; + return _docComments; } function getCleanedParamJsDocComment(pos, end, sourceFile) { var paramHelpStringMargin; @@ -32144,8 +27566,8 @@ var ts; } var consumedSpaces = pos - startOfLinePos; if (consumedSpaces < paramHelpStringMargin) { - var ch = sourceFile.text.charCodeAt(pos); - if (ch === 42) { + var _ch = sourceFile.text.charCodeAt(pos); + if (_ch === 42) { pos = consumeWhiteSpacesOnTheLine(pos + 1, end, sourceFile, paramHelpStringMargin - consumedSpaces - 1); } } @@ -32205,9 +27627,7 @@ var ts; }; SignatureObject.prototype.getDocumentationComment = function () { if (this.documentationComment === undefined) { - this.documentationComment = this.declaration ? getJsDocCommentsFromDeclarations([ - this.declaration - ], undefined, false) : []; + this.documentationComment = this.declaration ? getJsDocCommentsFromDeclarations([this.declaration], undefined, false) : []; } return this.documentationComment; }; @@ -32241,7 +27661,9 @@ var ts; case 131: var functionDeclaration = node; if (functionDeclaration.name && functionDeclaration.name.getFullWidth() > 0) { - var lastDeclaration = namedDeclarations.length > 0 ? namedDeclarations[namedDeclarations.length - 1] : undefined; + var lastDeclaration = namedDeclarations.length > 0 ? + namedDeclarations[namedDeclarations.length - 1] : + undefined; if (lastDeclaration && functionDeclaration.symbol === lastDeclaration.symbol) { if (functionDeclaration.body && !lastDeclaration.body) { namedDeclarations[namedDeclarations.length - 1] = functionDeclaration; @@ -32455,9 +27877,7 @@ var ts; ts.ClassificationTypeNames = ClassificationTypeNames; function displayPartsToString(displayParts) { if (displayParts) { - return ts.map(displayParts, function (displayPart) { - return displayPart.text; - }).join(""); + return ts.map(displayParts, function (displayPart) { return displayPart.text; }).join(""); } return ""; } @@ -32473,8 +27893,8 @@ var ts; if (declaration.kind !== 193 && declaration.kind !== 195) { return false; } - for (var parent = declaration.parent; !ts.isFunctionBlock(parent); parent = parent.parent) { - if (parent.kind === 221 || parent.kind === 201) { + for (var _parent = declaration.parent; !ts.isFunctionBlock(_parent); _parent = _parent.parent) { + if (_parent.kind === 221 || _parent.kind === 201) { return false; } } @@ -32515,8 +27935,9 @@ var ts; this.host = host; this.fileNameToEntry = {}; var rootFileNames = host.getScriptFileNames(); - for (var i = 0, n = rootFileNames.length; i < n; i++) { - this.createEntry(rootFileNames[i]); + for (var _i = 0, _n = rootFileNames.length; _i < _n; _i++) { + var fileName = rootFileNames[_i]; + this.createEntry(fileName); } this._compilationSettings = host.getCompilationSettings() || getDefaultCompilerOptions(); } @@ -32575,17 +27996,17 @@ var ts; if (!scriptSnapshot) { throw new Error("Could not find file: '" + fileName + "'."); } - var version = this.host.getScriptVersion(fileName); + var _version = this.host.getScriptVersion(fileName); var sourceFile; if (this.currentFileName !== fileName) { - sourceFile = createLanguageServiceSourceFile(fileName, scriptSnapshot, 2, version, true); + sourceFile = createLanguageServiceSourceFile(fileName, scriptSnapshot, 2, _version, true); } - else if (this.currentFileVersion !== version) { + else if (this.currentFileVersion !== _version) { var editRange = scriptSnapshot.getChangeRange(this.currentFileScriptSnapshot); - sourceFile = updateLanguageServiceSourceFile(this.currentSourceFile, scriptSnapshot, version, editRange); + sourceFile = updateLanguageServiceSourceFile(this.currentSourceFile, scriptSnapshot, _version, editRange); } if (sourceFile) { - this.currentFileVersion = version; + this.currentFileVersion = _version; this.currentFileName = fileName; this.currentFileScriptSnapshot = scriptSnapshot; this.currentSourceFile = sourceFile; @@ -32634,9 +28055,7 @@ var ts; return bucket; } function reportStats() { - var bucketInfoArray = Object.keys(buckets).filter(function (name) { - return name && name.charAt(0) === '_'; - }).map(function (name) { + var bucketInfoArray = Object.keys(buckets).filter(function (name) { return name && name.charAt(0) === '_'; }).map(function (name) { var entries = ts.lookUp(buckets, name); var sourceFiles = []; for (var i in entries) { @@ -32647,9 +28066,7 @@ var ts; references: entry.owners.slice(0) }); } - sourceFiles.sort(function (x, y) { - return y.refCount - x.refCount; - }); + sourceFiles.sort(function (x, y) { return y.refCount - x.refCount; }); return { bucket: name, sourceFiles: sourceFiles @@ -32838,11 +28255,7 @@ var ts; processImport(); } processTripleSlashDirectives(); - return { - referencedFiles: referencedFiles, - importedFiles: importedFiles, - isLibFile: isNoDefaultLib - }; + return { referencedFiles: referencedFiles, importedFiles: importedFiles, isLibFile: isNoDefaultLib }; } ts.preProcessFile = preProcessFile; function getTargetLabel(referenceNode, labelName) { @@ -32855,10 +28268,14 @@ var ts; return undefined; } function isJumpStatementTarget(node) { - return node.kind === 64 && (node.parent.kind === 185 || node.parent.kind === 184) && node.parent.label === node; + return node.kind === 64 && + (node.parent.kind === 185 || node.parent.kind === 184) && + node.parent.label === node; } function isLabelOfLabeledStatement(node) { - return node.kind === 64 && node.parent.kind === 189 && node.parent.label === node; + return node.kind === 64 && + node.parent.kind === 189 && + node.parent.label === node; } function isLabeledBy(node, labelName) { for (var owner = node.parent; owner.kind === 189; owner = owner.parent) { @@ -32893,10 +28310,12 @@ var ts; return node.parent.kind === 200 && node.parent.name === node; } function isNameOfFunctionDeclaration(node) { - return node.kind === 64 && ts.isFunctionLike(node.parent) && node.parent.name === node; + return node.kind === 64 && + ts.isFunctionLike(node.parent) && node.parent.name === node; } function isNameOfPropertyAssignment(node) { - return (node.kind === 64 || node.kind === 8 || node.kind === 7) && (node.parent.kind === 218 || node.parent.kind === 219) && node.parent.name === node; + return (node.kind === 64 || node.kind === 8 || node.kind === 7) && + (node.parent.kind === 218 || node.parent.kind === 219) && node.parent.name === node; } function isLiteralNameOfPropertyDeclarationOrIndexAccess(node) { if (node.kind === 8 || node.kind === 7) { @@ -32919,12 +28338,15 @@ var ts; } function isNameOfExternalModuleImportOrDeclaration(node) { if (node.kind === 8) { - return isNameOfModuleDeclaration(node) || (ts.isExternalModuleImportEqualsDeclaration(node.parent.parent) && ts.getExternalModuleImportEqualsDeclarationExpression(node.parent.parent) === node); + return isNameOfModuleDeclaration(node) || + (ts.isExternalModuleImportEqualsDeclaration(node.parent.parent) && ts.getExternalModuleImportEqualsDeclarationExpression(node.parent.parent) === node); } return false; } function isInsideComment(sourceFile, token, position) { - return position <= token.getStart(sourceFile) && (isInsideCommentRange(ts.getTrailingCommentRanges(sourceFile.text, token.getFullStart())) || isInsideCommentRange(ts.getLeadingCommentRanges(sourceFile.text, token.getFullStart()))); + return position <= token.getStart(sourceFile) && + (isInsideCommentRange(ts.getTrailingCommentRanges(sourceFile.text, token.getFullStart())) || + isInsideCommentRange(ts.getLeadingCommentRanges(sourceFile.text, token.getFullStart()))); function isInsideCommentRange(comments) { return ts.forEach(comments, function (comment) { if (comment.pos < position && position < comment.end) { @@ -32937,7 +28359,8 @@ var ts; return true; } else { - return !(text.charCodeAt(comment.end - 1) === 47 && text.charCodeAt(comment.end - 2) === 42); + return !(text.charCodeAt(comment.end - 1) === 47 && + text.charCodeAt(comment.end - 2) === 42); } } return false; @@ -32992,44 +28415,33 @@ var ts; ts.getContainerNode = getContainerNode; function getNodeKind(node) { switch (node.kind) { - case 200: - return ScriptElementKind.moduleElement; - case 196: - return ScriptElementKind.classElement; - case 197: - return ScriptElementKind.interfaceElement; - case 198: - return ScriptElementKind.typeElement; - case 199: - return ScriptElementKind.enumElement; + case 200: return ScriptElementKind.moduleElement; + case 196: return ScriptElementKind.classElement; + case 197: return ScriptElementKind.interfaceElement; + case 198: return ScriptElementKind.typeElement; + case 199: return ScriptElementKind.enumElement; case 193: - return ts.isConst(node) ? ScriptElementKind.constElement : ts.isLet(node) ? ScriptElementKind.letElement : ScriptElementKind.variableElement; - case 195: - return ScriptElementKind.functionElement; - case 134: - return ScriptElementKind.memberGetAccessorElement; - case 135: - return ScriptElementKind.memberSetAccessorElement; + return ts.isConst(node) + ? ScriptElementKind.constElement + : ts.isLet(node) + ? ScriptElementKind.letElement + : ScriptElementKind.variableElement; + case 195: return ScriptElementKind.functionElement; + case 134: return ScriptElementKind.memberGetAccessorElement; + case 135: return ScriptElementKind.memberSetAccessorElement; case 132: case 131: return ScriptElementKind.memberFunctionElement; case 130: case 129: return ScriptElementKind.memberVariableElement; - case 138: - return ScriptElementKind.indexSignatureElement; - case 137: - return ScriptElementKind.constructSignatureElement; - case 136: - return ScriptElementKind.callSignatureElement; - case 133: - return ScriptElementKind.constructorImplementationElement; - case 127: - return ScriptElementKind.typeParameterElement; - case 220: - return ScriptElementKind.variableElement; - case 128: - return (node.flags & 112) ? ScriptElementKind.memberVariableElement : ScriptElementKind.parameterElement; + case 138: return ScriptElementKind.indexSignatureElement; + case 137: return ScriptElementKind.constructSignatureElement; + case 136: return ScriptElementKind.callSignatureElement; + case 133: return ScriptElementKind.constructorImplementationElement; + case 127: return ScriptElementKind.typeParameterElement; + case 220: return ScriptElementKind.variableElement; + case 128: return (node.flags & 112) ? ScriptElementKind.memberVariableElement : ScriptElementKind.parameterElement; case 203: case 208: case 205: @@ -33085,31 +28497,19 @@ var ts; var changesInCompilationSettingsAffectSyntax = oldSettings && oldSettings.target !== newSettings.target; var newProgram = ts.createProgram(hostCache.getRootFileNames(), newSettings, { getSourceFile: getOrCreateSourceFile, - getCancellationToken: function () { - return cancellationToken; - }, - getCanonicalFileName: function (fileName) { - return useCaseSensitivefileNames ? fileName : fileName.toLowerCase(); - }, - useCaseSensitiveFileNames: function () { - return useCaseSensitivefileNames; - }, - getNewLine: function () { - return host.getNewLine ? host.getNewLine() : "\r\n"; - }, - getDefaultLibFileName: function (options) { - return host.getDefaultLibFileName(options); - }, - writeFile: function (fileName, data, writeByteOrderMark) { - }, - getCurrentDirectory: function () { - return host.getCurrentDirectory(); - } + getCancellationToken: function () { return cancellationToken; }, + getCanonicalFileName: function (fileName) { return useCaseSensitivefileNames ? fileName : fileName.toLowerCase(); }, + useCaseSensitiveFileNames: function () { return useCaseSensitivefileNames; }, + getNewLine: function () { return host.getNewLine ? host.getNewLine() : "\r\n"; }, + getDefaultLibFileName: function (options) { return host.getDefaultLibFileName(options); }, + writeFile: function (fileName, data, writeByteOrderMark) { }, + getCurrentDirectory: function () { return host.getCurrentDirectory(); } }); if (program) { var oldSourceFiles = program.getSourceFiles(); - for (var i = 0, n = oldSourceFiles.length; i < n; i++) { - var fileName = oldSourceFiles[i].fileName; + for (var _i = 0, _n = oldSourceFiles.length; _i < _n; _i++) { + var oldSourceFile = oldSourceFiles[_i]; + var fileName = oldSourceFile.fileName; if (!newProgram.getSourceFile(fileName) || changesInCompilationSettingsAffectSyntax) { documentRegistry.releaseDocument(fileName, oldSettings); } @@ -33124,8 +28524,8 @@ var ts; return undefined; } if (!changesInCompilationSettingsAffectSyntax) { - var oldSourceFile = program && program.getSourceFile(fileName); - if (oldSourceFile) { + var _oldSourceFile = program && program.getSourceFile(fileName); + if (_oldSourceFile) { return documentRegistry.updateDocument(fileName, newSettings, hostFileInformation.scriptSnapshot, hostFileInformation.version); } } @@ -33142,8 +28542,9 @@ var ts; if (program.getSourceFiles().length !== rootFileNames.length) { return false; } - for (var i = 0, n = rootFileNames.length; i < n; i++) { - if (!sourceFileUpToDate(program.getSourceFile(rootFileNames[i]))) { + for (var _a = 0, _b = rootFileNames.length; _a < _b; _a++) { + var _fileName = rootFileNames[_a]; + if (!sourceFileUpToDate(program.getSourceFile(_fileName))) { return false; } } @@ -33191,12 +28592,13 @@ var ts; if ((symbol.flags & 1536) && (firstCharCode === 39 || firstCharCode === 34)) { return undefined; } - if (displayName && displayName.length >= 2 && firstCharCode === displayName.charCodeAt(displayName.length - 1) && (firstCharCode === 39 || firstCharCode === 34)) { + if (displayName && displayName.length >= 2 && firstCharCode === displayName.charCodeAt(displayName.length - 1) && + (firstCharCode === 39 || firstCharCode === 34)) { displayName = displayName.substring(1, displayName.length - 1); } var isValid = ts.isIdentifierStart(displayName.charCodeAt(0), target); - for (var i = 1, n = displayName.length; isValid && i < n; i++) { - isValid = ts.isIdentifierPart(displayName.charCodeAt(i), target); + for (var _i = 1, n = displayName.length; isValid && _i < n; _i++) { + isValid = ts.isIdentifierPart(displayName.charCodeAt(_i), target); } if (isValid) { return ts.unescapeIdentifier(displayName); @@ -33222,20 +28624,20 @@ var ts; var start = new Date().getTime(); var currentToken = ts.getTokenAtPosition(sourceFile, position); log("getCompletionsAtPosition: Get current token: " + (new Date().getTime() - start)); - var start = new Date().getTime(); + start = new Date().getTime(); var insideComment = isInsideComment(sourceFile, currentToken, position); log("getCompletionsAtPosition: Is inside comment: " + (new Date().getTime() - start)); if (insideComment) { log("Returning an empty list because completion was inside a comment."); return undefined; } - var start = new Date().getTime(); + start = new Date().getTime(); var previousToken = ts.findPrecedingToken(position, sourceFile); log("getCompletionsAtPosition: Get previous token 1: " + (new Date().getTime() - start)); if (previousToken && position <= previousToken.end && previousToken.kind === 64) { - var start = new Date().getTime(); + var _start = new Date().getTime(); previousToken = ts.findPrecedingToken(previousToken.pos, sourceFile); - log("getCompletionsAtPosition: Get previous token 2: " + (new Date().getTime() - start)); + log("getCompletionsAtPosition: Get previous token 2: " + (new Date().getTime() - _start)); } if (previousToken && isCompletionListBlocker(previousToken)) { log("Returning an empty list because completion was requested in an invalid position."); @@ -33263,12 +28665,14 @@ var ts; typeChecker: typeInfoResolver }; log("getCompletionsAtPosition: Syntactic work: " + (new Date().getTime() - syntacticStart)); - var location = ts.getTouchingPropertyName(sourceFile, position); + var _location = ts.getTouchingPropertyName(sourceFile, position); var semanticStart = new Date().getTime(); + var isMemberCompletion; + var isNewIdentifierLocation; if (isRightOfDot) { var symbols = []; - var isMemberCompletion = true; - var isNewIdentifierLocation = false; + isMemberCompletion = true; + isNewIdentifierLocation = false; if (node.kind === 64 || node.kind === 125 || node.kind === 153) { var symbol = typeInfoResolver.getSymbolAtLocation(node); if (symbol && symbol.flags & 8388608) { @@ -33322,8 +28726,8 @@ var ts; isMemberCompletion = false; isNewIdentifierLocation = isNewIdentifierDefinitionLocation(previousToken); var symbolMeanings = 793056 | 107455 | 1536 | 8388608; - var symbols = typeInfoResolver.getSymbolsInScope(node, symbolMeanings); - getCompletionEntriesFromSymbols(symbols, activeCompletionSession); + var _symbols = typeInfoResolver.getSymbolsInScope(node, symbolMeanings); + getCompletionEntriesFromSymbols(_symbols, activeCompletionSession); } } if (!isMemberCompletion) { @@ -33337,9 +28741,9 @@ var ts; entries: activeCompletionSession.entries }; function getCompletionEntriesFromSymbols(symbols, session) { - var start = new Date().getTime(); + var _start_1 = new Date().getTime(); ts.forEach(symbols, function (symbol) { - var entry = createCompletionEntry(symbol, session.typeChecker, location); + var entry = createCompletionEntry(symbol, session.typeChecker, _location); if (entry) { var id = ts.escapeIdentifier(entry.name); if (!ts.lookUp(session.symbols, id)) { @@ -33348,12 +28752,14 @@ var ts; } } }); - log("getCompletionsAtPosition: getCompletionEntriesFromSymbols: " + (new Date().getTime() - start)); + log("getCompletionsAtPosition: getCompletionEntriesFromSymbols: " + (new Date().getTime() - _start_1)); } function isCompletionListBlocker(previousToken) { - var start = new Date().getTime(); - var result = isInStringOrRegularExpressionOrTemplateLiteral(previousToken) || isIdentifierDefinitionLocation(previousToken) || isRightOfIllegalDot(previousToken); - log("getCompletionsAtPosition: isCompletionListBlocker: " + (new Date().getTime() - start)); + var _start_1 = new Date().getTime(); + var result = isInStringOrRegularExpressionOrTemplateLiteral(previousToken) || + isIdentifierDefinitionLocation(previousToken) || + isRightOfIllegalDot(previousToken); + log("getCompletionsAtPosition: isCompletionListBlocker: " + (new Date().getTime() - _start_1)); return result; } function showCompletionsInImportsClause(node) { @@ -33369,9 +28775,16 @@ var ts; var containingNodeKind = previousToken.parent.kind; switch (previousToken.kind) { case 23: - return containingNodeKind === 155 || containingNodeKind === 133 || containingNodeKind === 156 || containingNodeKind === 151 || containingNodeKind === 167; + return containingNodeKind === 155 + || containingNodeKind === 133 + || containingNodeKind === 156 + || containingNodeKind === 151 + || containingNodeKind === 167; case 16: - return containingNodeKind === 155 || containingNodeKind === 133 || containingNodeKind === 156 || containingNodeKind === 159; + return containingNodeKind === 155 + || containingNodeKind === 133 + || containingNodeKind === 156 + || containingNodeKind === 159; case 18: return containingNodeKind === 151; case 116: @@ -33381,7 +28794,8 @@ var ts; case 14: return containingNodeKind === 196; case 52: - return containingNodeKind === 193 || containingNodeKind === 167; + return containingNodeKind === 193 + || containingNodeKind === 167; case 11: return containingNodeKind === 169; case 12: @@ -33401,10 +28815,12 @@ var ts; return false; } function isInStringOrRegularExpressionOrTemplateLiteral(previousToken) { - if (previousToken.kind === 8 || previousToken.kind === 9 || ts.isTemplateLiteralKind(previousToken.kind)) { - var start = previousToken.getStart(); + if (previousToken.kind === 8 + || previousToken.kind === 9 + || ts.isTemplateLiteralKind(previousToken.kind)) { + var _start_1 = previousToken.getStart(); var end = previousToken.getEnd(); - if (start < position && position < end) { + if (_start_1 < position && position < end) { return true; } else if (position === end) { @@ -33415,12 +28831,12 @@ var ts; } function getContainingObjectLiteralApplicableForCompletion(previousToken) { if (previousToken) { - var parent = previousToken.parent; + var _parent = previousToken.parent; switch (previousToken.kind) { case 14: case 23: - if (parent && parent.kind === 152) { - return parent; + if (_parent && _parent.kind === 152) { + return _parent; } break; } @@ -33448,23 +28864,43 @@ var ts; var containingNodeKind = previousToken.parent.kind; switch (previousToken.kind) { case 23: - return containingNodeKind === 193 || containingNodeKind === 194 || containingNodeKind === 175 || containingNodeKind === 199 || isFunction(containingNodeKind) || containingNodeKind === 196 || containingNodeKind === 195 || containingNodeKind === 197 || containingNodeKind === 149 || containingNodeKind === 148; + return containingNodeKind === 193 || + containingNodeKind === 194 || + containingNodeKind === 175 || + containingNodeKind === 199 || + isFunction(containingNodeKind) || + containingNodeKind === 196 || + containingNodeKind === 195 || + containingNodeKind === 197 || + containingNodeKind === 149 || + containingNodeKind === 148; case 20: return containingNodeKind === 149; case 18: return containingNodeKind === 149; case 16: - return containingNodeKind === 217 || isFunction(containingNodeKind); + return containingNodeKind === 217 || + isFunction(containingNodeKind); case 14: - return containingNodeKind === 199 || containingNodeKind === 197 || containingNodeKind === 143 || containingNodeKind === 148; + return containingNodeKind === 199 || + containingNodeKind === 197 || + containingNodeKind === 143 || + containingNodeKind === 148; case 22: - return containingNodeKind === 129 && (previousToken.parent.parent.kind === 197 || previousToken.parent.parent.kind === 143); + return containingNodeKind === 129 && + (previousToken.parent.parent.kind === 197 || + previousToken.parent.parent.kind === 143); case 24: - return containingNodeKind === 196 || containingNodeKind === 195 || containingNodeKind === 197 || isFunction(containingNodeKind); + return containingNodeKind === 196 || + containingNodeKind === 195 || + containingNodeKind === 197 || + isFunction(containingNodeKind); case 109: return containingNodeKind === 130; case 21: - return containingNodeKind === 128 || containingNodeKind === 133 || (previousToken.parent.parent.kind === 149); + return containingNodeKind === 128 || + containingNodeKind === 133 || + (previousToken.parent.parent.kind === 149); case 108: case 106: case 107: @@ -33509,18 +28945,17 @@ var ts; if (!importDeclaration.importClause) { return exports; } - if (importDeclaration.importClause.namedBindings && importDeclaration.importClause.namedBindings.kind === 207) { + if (importDeclaration.importClause.namedBindings && + importDeclaration.importClause.namedBindings.kind === 207) { ts.forEach(importDeclaration.importClause.namedBindings.elements, function (el) { - var name = el.propertyName || el.name; - exisingImports[name.text] = true; + var _name = el.propertyName || el.name; + exisingImports[_name.text] = true; }); } if (ts.isEmpty(exisingImports)) { return exports; } - return ts.filter(exports, function (e) { - return !ts.lookUp(exisingImports, e.name); - }); + return ts.filter(exports, function (e) { return !ts.lookUp(exisingImports, e.name); }); } function filterContextualMembersList(contextualMemberSymbols, existingMembers) { if (!existingMembers || existingMembers.length === 0) { @@ -33536,13 +28971,13 @@ var ts; } existingMemberNames[m.name.text] = true; }); - var filteredMembers = []; + var _filteredMembers = []; ts.forEach(contextualMemberSymbols, function (s) { if (!existingMemberNames[s.name]) { - filteredMembers.push(s); + _filteredMembers.push(s); } }); - return filteredMembers; + return _filteredMembers; } } function getCompletionEntryDetails(fileName, position, entryName) { @@ -33553,10 +28988,10 @@ var ts; } var symbol = ts.lookUp(activeCompletionSession.symbols, ts.escapeIdentifier(entryName)); if (symbol) { - var location = ts.getTouchingPropertyName(sourceFile, position); - var completionEntry = createCompletionEntry(symbol, session.typeChecker, location); - ts.Debug.assert(session.typeChecker.getTypeOfSymbolAtLocation(symbol, location) !== undefined, "Could not find type for symbol"); - var displayPartsDocumentationsAndSymbolKind = getSymbolDisplayPartsDocumentationAndSymbolKind(symbol, getValidSourceFile(fileName), location, session.typeChecker, location, 7); + var _location = ts.getTouchingPropertyName(sourceFile, position); + var completionEntry = createCompletionEntry(symbol, session.typeChecker, _location); + ts.Debug.assert(session.typeChecker.getTypeOfSymbolAtLocation(symbol, _location) !== undefined, "Could not find type for symbol"); + var displayPartsDocumentationsAndSymbolKind = getSymbolDisplayPartsDocumentationAndSymbolKind(symbol, getValidSourceFile(fileName), _location, session.typeChecker, _location, 7); return { name: entryName, kind: displayPartsDocumentationsAndSymbolKind.symbolKind, @@ -33570,9 +29005,7 @@ var ts; name: entryName, kind: ScriptElementKind.keyword, kindModifiers: ScriptElementKindModifier.none, - displayParts: [ - ts.displayPart(entryName, 5) - ], + displayParts: [ts.displayPart(entryName, 5)], documentation: undefined }; } @@ -33670,7 +29103,9 @@ var ts; return ScriptElementKind.unknown; } function getSymbolModifiers(symbol) { - return symbol && symbol.declarations && symbol.declarations.length > 0 ? ts.getNodeModifiers(symbol.declarations[0]) : ScriptElementKindModifier.none; + return symbol && symbol.declarations && symbol.declarations.length > 0 + ? ts.getNodeModifiers(symbol.declarations[0]) + : ScriptElementKindModifier.none; } function getSymbolDisplayPartsDocumentationAndSymbolKind(symbol, sourceFile, enclosingDeclaration, typeResolver, location, semanticMeaning) { if (semanticMeaning === void 0) { semanticMeaning = getMeaningFromLocation(location); } @@ -33679,11 +29114,13 @@ var ts; var symbolFlags = symbol.flags; var symbolKind = getSymbolKindOfConstructorPropertyMethodAccessorFunctionOrVar(symbol, symbolFlags, typeResolver, location); var hasAddedSymbolInfo; + var type; if (symbolKind !== ScriptElementKind.unknown || symbolFlags & 32 || symbolFlags & 8388608) { if (symbolKind === ScriptElementKind.memberGetAccessorElement || symbolKind === ScriptElementKind.memberSetAccessorElement) { symbolKind = ScriptElementKind.memberVariableElement; } - var type = typeResolver.getTypeOfSymbolAtLocation(symbol, location); + var signature; + type = typeResolver.getTypeOfSymbolAtLocation(symbol, location); if (type) { if (location.parent && location.parent.kind === 153) { var right = location.parent.name; @@ -33753,24 +29190,25 @@ var ts; hasAddedSymbolInfo = true; } } - else if ((isNameOfFunctionDeclaration(location) && !(symbol.flags & 98304)) || (location.kind === 113 && location.parent.kind === 133)) { - var signature; + else if ((isNameOfFunctionDeclaration(location) && !(symbol.flags & 98304)) || + (location.kind === 113 && location.parent.kind === 133)) { var functionDeclaration = location.parent; - var allSignatures = functionDeclaration.kind === 133 ? type.getConstructSignatures() : type.getCallSignatures(); + var _allSignatures = functionDeclaration.kind === 133 ? type.getConstructSignatures() : type.getCallSignatures(); if (!typeResolver.isImplementationOfOverload(functionDeclaration)) { signature = typeResolver.getSignatureFromDeclaration(functionDeclaration); } else { - signature = allSignatures[0]; + signature = _allSignatures[0]; } if (functionDeclaration.kind === 133) { symbolKind = ScriptElementKind.constructorImplementationElement; addPrefixForAnyFunctionOrVar(type.symbol, symbolKind); } else { - addPrefixForAnyFunctionOrVar(functionDeclaration.kind === 136 && !(type.symbol.flags & 2048 || type.symbol.flags & 4096) ? type.symbol : symbol, symbolKind); + addPrefixForAnyFunctionOrVar(functionDeclaration.kind === 136 && + !(type.symbol.flags & 2048 || type.symbol.flags & 4096) ? type.symbol : symbol, symbolKind); } - addSignatureDisplayParts(signature, allSignatures); + addSignatureDisplayParts(signature, _allSignatures); hasAddedSymbolInfo = true; } } @@ -33830,7 +29268,7 @@ var ts; } else { var signatureDeclaration = ts.getDeclarationOfKind(symbol, 127).parent; - var signature = typeResolver.getSignatureFromDeclaration(signatureDeclaration); + var _signature = typeResolver.getSignatureFromDeclaration(signatureDeclaration); if (signatureDeclaration.kind === 137) { displayParts.push(ts.keywordPart(87)); displayParts.push(ts.spacePart()); @@ -33838,7 +29276,7 @@ var ts; else if (signatureDeclaration.kind !== 136 && signatureDeclaration.name) { addFullSymbolName(signatureDeclaration.symbol); } - displayParts.push.apply(displayParts, ts.signatureToDisplayParts(typeResolver, signature, sourceFile, 32)); + displayParts.push.apply(displayParts, ts.signatureToDisplayParts(typeResolver, _signature, sourceFile, 32)); } } if (symbolFlags & 8) { @@ -33888,7 +29326,9 @@ var ts; if (symbolKind !== ScriptElementKind.unknown) { if (type) { addPrefixForAnyFunctionOrVar(symbol, symbolKind); - if (symbolKind === ScriptElementKind.memberVariableElement || symbolFlags & 3 || symbolKind === ScriptElementKind.localVariableElement) { + if (symbolKind === ScriptElementKind.memberVariableElement || + symbolFlags & 3 || + symbolKind === ScriptElementKind.localVariableElement) { displayParts.push(ts.punctuationPart(51)); displayParts.push(ts.spacePart()); if (type.symbol && type.symbol.flags & 262144) { @@ -33901,9 +29341,14 @@ var ts; displayParts.push.apply(displayParts, ts.typeToDisplayParts(typeResolver, type, enclosingDeclaration)); } } - else if (symbolFlags & 16 || symbolFlags & 8192 || symbolFlags & 16384 || symbolFlags & 131072 || symbolFlags & 98304 || symbolKind === ScriptElementKind.memberFunctionElement) { - var allSignatures = type.getCallSignatures(); - addSignatureDisplayParts(allSignatures[0], allSignatures); + else if (symbolFlags & 16 || + symbolFlags & 8192 || + symbolFlags & 16384 || + symbolFlags & 131072 || + symbolFlags & 98304 || + symbolKind === ScriptElementKind.memberFunctionElement) { + var _allSignatures_1 = type.getCallSignatures(); + addSignatureDisplayParts(_allSignatures_1[0], _allSignatures_1); } } } @@ -33914,11 +29359,7 @@ var ts; if (!documentation) { documentation = symbol.getDocumentationComment(); } - return { - displayParts: displayParts, - documentation: documentation, - symbolKind: symbolKind - }; + return { displayParts: displayParts, documentation: documentation, symbolKind: symbolKind }; function addNewLineIfDisplayPartsExist() { if (displayParts.length) { displayParts.push(ts.lineBreakPart()); @@ -33952,10 +29393,10 @@ var ts; documentation = signature.getDocumentationComment(); } function writeTypeParametersOfSymbol(symbol, enclosingDeclaration) { - var typeParameterParts = ts.mapToDisplayParts(function (writer) { + var _typeParameterParts = ts.mapToDisplayParts(function (writer) { typeResolver.getSymbolDisplayBuilder().buildTypeParameterDisplayFromSymbol(symbol, writer, enclosingDeclaration); }); - displayParts.push.apply(displayParts, typeParameterParts); + displayParts.push.apply(displayParts, _typeParameterParts); } } function getQuickInfoAtPosition(fileName, position) { @@ -34005,26 +29446,20 @@ var ts; if (isJumpStatementTarget(node)) { var labelName = node.text; var label = getTargetLabel(node.parent, node.text); - return label ? [ - getDefinitionInfo(label, ScriptElementKind.label, labelName, undefined) - ] : undefined; + return label ? [getDefinitionInfo(label, ScriptElementKind.label, labelName, undefined)] : undefined; } - var comment = ts.forEach(sourceFile.referencedFiles, function (r) { - return (r.pos <= position && position < r.end) ? r : undefined; - }); + var comment = ts.forEach(sourceFile.referencedFiles, function (r) { return (r.pos <= position && position < r.end) ? r : undefined; }); if (comment) { var referenceFile = ts.tryResolveScriptReference(program, sourceFile, comment); if (referenceFile) { - return [ - { + return [{ fileName: referenceFile.fileName, textSpan: ts.createTextSpanFromBounds(0, 0), kind: ScriptElementKind.scriptElement, name: comment.fileName, containerName: undefined, containerKind: undefined - } - ]; + }]; } return undefined; } @@ -34055,7 +29490,8 @@ var ts; var symbolKind = getSymbolKind(symbol, typeInfoResolver, node); var containerSymbol = symbol.parent; var containerName = containerSymbol ? typeInfoResolver.symbolToString(containerSymbol, node) : ""; - if (!tryAddConstructSignature(symbol, node, symbolKind, symbolName, containerName, result) && !tryAddCallSignature(symbol, node, symbolKind, symbolName, containerName, result)) { + if (!tryAddConstructSignature(symbol, node, symbolKind, symbolName, containerName, result) && + !tryAddCallSignature(symbol, node, symbolKind, symbolName, containerName, result)) { ts.forEach(declarations, function (declaration) { result.push(getDefinitionInfo(declaration, symbolKind, symbolName, containerName)); }); @@ -34072,11 +29508,12 @@ var ts; }; } function tryAddSignature(signatureDeclarations, selectConstructors, symbolKind, symbolName, containerName, result) { - var declarations = []; + var _declarations = []; var definition; ts.forEach(signatureDeclarations, function (d) { - if ((selectConstructors && d.kind === 133) || (!selectConstructors && (d.kind === 195 || d.kind === 132 || d.kind === 131))) { - declarations.push(d); + if ((selectConstructors && d.kind === 133) || + (!selectConstructors && (d.kind === 195 || d.kind === 132 || d.kind === 131))) { + _declarations.push(d); if (d.body) definition = d; } @@ -34085,8 +29522,8 @@ var ts; result.push(getDefinitionInfo(definition, symbolKind, symbolName, containerName)); return true; } - else if (declarations.length) { - result.push(getDefinitionInfo(declarations[declarations.length - 1], symbolKind, symbolName, containerName)); + else if (_declarations.length) { + result.push(getDefinitionInfo(_declarations[_declarations.length - 1], symbolKind, symbolName, containerName)); return true; } return false; @@ -34115,10 +29552,9 @@ var ts; if (!node) { return undefined; } - if (node.kind === 64 || node.kind === 92 || node.kind === 90 || isLiteralNameOfPropertyDeclarationOrIndexAccess(node) || isNameOfExternalModuleImportOrDeclaration(node)) { - return getReferencesForNode(node, [ - sourceFile - ], true, false, false); + if (node.kind === 64 || node.kind === 92 || node.kind === 90 || + isLiteralNameOfPropertyDeclarationOrIndexAccess(node) || isNameOfExternalModuleImportOrDeclaration(node)) { + return getReferencesForNode(node, [sourceFile], true, false, false); } switch (node.kind) { case 83: @@ -34166,7 +29602,9 @@ var ts; } break; case 81: - if (hasKind(node.parent, 181) || hasKind(node.parent, 182) || hasKind(node.parent, 183)) { + if (hasKind(node.parent, 181) || + hasKind(node.parent, 182) || + hasKind(node.parent, 183)) { return getLoopBreakContinueOccurrences(node.parent); } break; @@ -34187,7 +29625,8 @@ var ts; return getGetAndSetOccurrences(node.parent); } default: - if (ts.isModifier(node.kind) && node.parent && (ts.isDeclaration(node.parent) || node.parent.kind === 175)) { + if (ts.isModifier(node.kind) && node.parent && + (ts.isDeclaration(node.parent) || node.parent.kind === 175)) { return getModifierOccurrences(node.kind, node.parent); } } @@ -34200,8 +29639,8 @@ var ts; while (ifStatement) { var children = ifStatement.getChildren(); pushKeywordIf(keywords, children[0], 83); - for (var i = children.length - 1; i >= 0; i--) { - if (pushKeywordIf(keywords, children[i], 75)) { + for (var _i = children.length - 1; _i >= 0; _i--) { + if (pushKeywordIf(keywords, children[_i], 75)) { break; } } @@ -34211,10 +29650,10 @@ var ts; ifStatement = ifStatement.elseStatement; } var result = []; - for (var i = 0; i < keywords.length; i++) { - if (keywords[i].kind === 75 && i < keywords.length - 1) { - var elseKeyword = keywords[i]; - var ifKeyword = keywords[i + 1]; + for (var _i_1 = 0; _i_1 < keywords.length; _i_1++) { + if (keywords[_i_1].kind === 75 && _i_1 < keywords.length - 1) { + var elseKeyword = keywords[_i_1]; + var ifKeyword = keywords[_i_1 + 1]; var shouldHighlightNextKeyword = true; for (var j = ifKeyword.getStart() - 1; j >= elseKeyword.end; j--) { if (!ts.isWhiteSpace(sourceFile.text.charCodeAt(j))) { @@ -34228,11 +29667,11 @@ var ts; textSpan: ts.createTextSpanFromBounds(elseKeyword.getStart(), ifKeyword.end), isWriteAccess: false }); - i++; + _i_1++; continue; } } - result.push(getReferenceEntryFromNode(keywords[i])); + result.push(getReferenceEntryFromNode(keywords[_i_1])); } return result; } @@ -34295,17 +29734,17 @@ var ts; function getThrowStatementOwner(throwStatement) { var child = throwStatement; while (child.parent) { - var parent = child.parent; - if (ts.isFunctionBlock(parent) || parent.kind === 221) { - return parent; + var _parent = child.parent; + if (ts.isFunctionBlock(_parent) || _parent.kind === 221) { + return _parent; } - if (parent.kind === 191) { - var tryStatement = parent; + if (_parent.kind === 191) { + var tryStatement = _parent; if (tryStatement.tryBlock === child && tryStatement.catchClause) { return child; } } - child = parent; + child = _parent; } return undefined; } @@ -34326,8 +29765,8 @@ var ts; if (pushKeywordIf(keywords, loopNode.getFirstToken(), 81, 99, 74)) { if (loopNode.kind === 179) { var loopTokens = loopNode.getChildren(); - for (var i = loopTokens.length - 1; i >= 0; i--) { - if (pushKeywordIf(keywords, loopTokens[i], 99)) { + for (var _i = loopTokens.length - 1; _i >= 0; _i--) { + if (pushKeywordIf(keywords, loopTokens[_i], 99)) { break; } } @@ -34390,8 +29829,8 @@ var ts; return actualOwner && actualOwner === owner; } function getBreakOrContinueOwner(statement) { - for (var node = statement.parent; node; node = node.parent) { - switch (node.kind) { + for (var _node = statement.parent; _node; _node = _node.parent) { + switch (_node.kind) { case 188: if (statement.kind === 184) { continue; @@ -34401,12 +29840,12 @@ var ts; case 183: case 180: case 179: - if (!statement.label || isLabeledBy(node, statement.label.text)) { - return node; + if (!statement.label || isLabeledBy(_node, statement.label.text)) { + return _node; } break; default: - if (ts.isFunctionLike(node)) { + if (ts.isFunctionLike(_node)) { return undefined; } break; @@ -34432,16 +29871,15 @@ var ts; function tryPushAccessorKeyword(accessorSymbol, accessorKind) { var accessor = ts.getDeclarationOfKind(accessorSymbol, accessorKind); if (accessor) { - ts.forEach(accessor.getChildren(), function (child) { - return pushKeywordIf(keywords, child, 115, 119); - }); + ts.forEach(accessor.getChildren(), function (child) { return pushKeywordIf(keywords, child, 115, 119); }); } } } function getModifierOccurrences(modifier, declaration) { var container = declaration.parent; if (declaration.flags & 112) { - if (!(container.kind === 196 || (declaration.kind === 128 && hasKind(container, 133)))) { + if (!(container.kind === 196 || + (declaration.kind === 128 && hasKind(container, 133)))) { return undefined; } } @@ -34485,9 +29923,7 @@ var ts; } ts.forEach(nodes, function (node) { if (node.modifiers && node.flags & modifierFlag) { - ts.forEach(node.modifiers, function (child) { - return pushKeywordIf(keywords, child, modifier); - }); + ts.forEach(node.modifiers, function (child) { return pushKeywordIf(keywords, child, modifier); }); } }); return ts.map(keywords, getReferenceEntryFromNode); @@ -34541,7 +29977,9 @@ var ts; if (!node) { return undefined; } - if (node.kind !== 64 && !isLiteralNameOfPropertyDeclarationOrIndexAccess(node) && !isNameOfExternalModuleImportOrDeclaration(node)) { + if (node.kind !== 64 && + !isLiteralNameOfPropertyDeclarationOrIndexAccess(node) && + !isNameOfExternalModuleImportOrDeclaration(node)) { return undefined; } ts.Debug.assert(node.kind === 64 || node.kind === 7 || node.kind === 8); @@ -34551,9 +29989,7 @@ var ts; if (isLabelName(node)) { if (isJumpStatementTarget(node)) { var labelDefinition = getTargetLabel(node.parent, node.text); - return labelDefinition ? getLabelReferencesInNode(labelDefinition.parent, labelDefinition) : [ - getReferenceEntryFromNode(node) - ]; + return labelDefinition ? getLabelReferencesInNode(labelDefinition.parent, labelDefinition) : [getReferenceEntryFromNode(node)]; } else { return getLabelReferencesInNode(node.parent, node); @@ -34567,9 +30003,7 @@ var ts; } var symbol = typeInfoResolver.getSymbolAtLocation(node); if (!symbol) { - return [ - getReferenceEntryFromNode(node) - ]; + return [getReferenceEntryFromNode(node)]; } var declarations = symbol.declarations; if (!declarations || !declarations.length) { @@ -34603,7 +30037,9 @@ var ts; } return result; function isImportOrExportSpecifierName(location) { - return location.parent && (location.parent.kind === 208 || location.parent.kind === 212) && location.parent.propertyName === location; + return location.parent && + (location.parent.kind === 208 || location.parent.kind === 212) && + location.parent.propertyName === location; } function isImportOrExportSpecifierImportSymbol(symbol) { return (symbol.flags & 8388608) && ts.forEach(symbol.declarations, function (declaration) { @@ -34611,46 +30047,38 @@ var ts; }); } function getDeclaredName(symbol, location) { - var functionExpression = ts.forEach(symbol.declarations, function (d) { - return d.kind === 160 ? d : undefined; - }); + var functionExpression = ts.forEach(symbol.declarations, function (d) { return d.kind === 160 ? d : undefined; }); + var _name; if (functionExpression && functionExpression.name) { - var name = functionExpression.name.text; + _name = functionExpression.name.text; } if (isImportOrExportSpecifierName(location)) { return location.getText(); } - var name = typeInfoResolver.symbolToString(symbol); - return stripQuotes(name); + _name = typeInfoResolver.symbolToString(symbol); + return stripQuotes(_name); } function getInternedName(symbol, location, declarations) { if (isImportOrExportSpecifierName(location)) { return location.getText(); } - var functionExpression = ts.forEach(declarations, function (d) { - return d.kind === 160 ? d : undefined; - }); - if (functionExpression && functionExpression.name) { - var name = functionExpression.name.text; - } - else { - var name = symbol.name; - } - return stripQuotes(name); + var functionExpression = ts.forEach(declarations, function (d) { return d.kind === 160 ? d : undefined; }); + var _name = functionExpression && functionExpression.name + ? functionExpression.name.text + : symbol.name; + return stripQuotes(_name); } function stripQuotes(name) { - var length = name.length; - if (length >= 2 && name.charCodeAt(0) === 34 && name.charCodeAt(length - 1) === 34) { - return name.substring(1, length - 1); + var _length = name.length; + if (_length >= 2 && name.charCodeAt(0) === 34 && name.charCodeAt(_length - 1) === 34) { + return name.substring(1, _length - 1); } ; return name; } function getSymbolScope(symbol) { if (symbol.flags & (4 | 8192)) { - var privateDeclaration = ts.forEach(symbol.getDeclarations(), function (d) { - return (d.flags & 32) ? d : undefined; - }); + var privateDeclaration = ts.forEach(symbol.getDeclarations(), function (d) { return (d.flags & 32) ? d : undefined; }); if (privateDeclaration) { return ts.getAncestor(privateDeclaration, 196); } @@ -34661,24 +30089,25 @@ var ts; if (symbol.parent || (symbol.flags & 268435456)) { return undefined; } - var scope = undefined; - var declarations = symbol.getDeclarations(); - if (declarations) { - for (var i = 0, n = declarations.length; i < n; i++) { - var container = getContainerNode(declarations[i]); + var _scope = undefined; + var _declarations = symbol.getDeclarations(); + if (_declarations) { + for (var _i = 0, _n = _declarations.length; _i < _n; _i++) { + var declaration = _declarations[_i]; + var container = getContainerNode(declaration); if (!container) { return undefined; } - if (scope && scope !== container) { + if (_scope && _scope !== container) { return undefined; } if (container.kind === 221 && !ts.isExternalModule(container)) { return undefined; } - scope = container; + _scope = container; } } - return scope; + return _scope; } function getPossibleSymbolReferencePositions(sourceFile, symbolName, start, end) { var positions = []; @@ -34694,7 +30123,8 @@ var ts; if (position > end) break; var endPosition = position + symbolNameLength; - if ((position === 0 || !ts.isIdentifierPart(text.charCodeAt(position - 1), 2)) && (endPosition === sourceLength || !ts.isIdentifierPart(text.charCodeAt(endPosition), 2))) { + if ((position === 0 || !ts.isIdentifierPart(text.charCodeAt(position - 1), 2)) && + (endPosition === sourceLength || !ts.isIdentifierPart(text.charCodeAt(endPosition), 2))) { positions.push(position); } position = text.indexOf(symbolName, position + symbolNameLength + 1); @@ -34702,21 +30132,22 @@ var ts; return positions; } function getLabelReferencesInNode(container, targetLabel) { - var result = []; + var _result = []; var sourceFile = container.getSourceFile(); var labelName = targetLabel.text; var possiblePositions = getPossibleSymbolReferencePositions(sourceFile, labelName, container.getStart(), container.getEnd()); ts.forEach(possiblePositions, function (position) { cancellationToken.throwIfCancellationRequested(); - var node = ts.getTouchingWord(sourceFile, position); - if (!node || node.getWidth() !== labelName.length) { + var _node = ts.getTouchingWord(sourceFile, position); + if (!_node || _node.getWidth() !== labelName.length) { return; } - if (node === targetLabel || (isJumpStatementTarget(node) && getTargetLabel(node, labelName) === targetLabel)) { - result.push(getReferenceEntryFromNode(node)); + if (_node === targetLabel || + (isJumpStatementTarget(_node) && getTargetLabel(_node, labelName) === targetLabel)) { + _result.push(getReferenceEntryFromNode(_node)); } }); - return result; + return _result; } function isValidReferencePosition(node, searchSymbolName) { if (node) { @@ -34724,7 +30155,8 @@ var ts; case 64: return node.getWidth() === searchSymbolName.length; case 8: - if (isLiteralNameOfPropertyDeclarationOrIndexAccess(node) || isNameOfExternalModuleImportOrDeclaration(node)) { + if (isLiteralNameOfPropertyDeclarationOrIndexAccess(node) || + isNameOfExternalModuleImportOrDeclaration(node)) { return node.getWidth() === searchSymbolName.length + 2; } break; @@ -34747,7 +30179,8 @@ var ts; cancellationToken.throwIfCancellationRequested(); var referenceLocation = ts.getTouchingPropertyName(sourceFile, position); if (!isValidReferencePosition(referenceLocation, searchText)) { - if ((findInStrings && isInString(position)) || (findInComments && isInComment(position))) { + if ((findInStrings && isInString(position)) || + (findInComments && isInComment(position))) { result.push({ fileName: sourceFile.fileName, textSpan: ts.createTextSpan(position, searchText.length), @@ -34812,21 +30245,21 @@ var ts; default: return undefined; } - var result = []; + var _result = []; var sourceFile = searchSpaceNode.getSourceFile(); var possiblePositions = getPossibleSymbolReferencePositions(sourceFile, "super", searchSpaceNode.getStart(), searchSpaceNode.getEnd()); ts.forEach(possiblePositions, function (position) { cancellationToken.throwIfCancellationRequested(); - var node = ts.getTouchingWord(sourceFile, position); - if (!node || node.kind !== 90) { + var _node = ts.getTouchingWord(sourceFile, position); + if (!_node || _node.kind !== 90) { return; } - var container = ts.getSuperContainer(node, false); + var container = ts.getSuperContainer(_node, false); if (container && (128 & container.flags) === staticFlag && container.parent.symbol === searchSpaceNode.symbol) { - result.push(getReferenceEntryFromNode(node)); + _result.push(getReferenceEntryFromNode(_node)); } }); - return result; + return _result; } function getReferencesForThisKeyword(thisOrSuperKeyword, sourceFiles) { var searchSpaceNode = ts.getThisContainer(thisOrSuperKeyword, false); @@ -34855,48 +30288,49 @@ var ts; default: return undefined; } - var result = []; + var _result = []; + var possiblePositions; if (searchSpaceNode.kind === 221) { ts.forEach(sourceFiles, function (sourceFile) { - var possiblePositions = getPossibleSymbolReferencePositions(sourceFile, "this", sourceFile.getStart(), sourceFile.getEnd()); - getThisReferencesInFile(sourceFile, sourceFile, possiblePositions, result); + possiblePositions = getPossibleSymbolReferencePositions(sourceFile, "this", sourceFile.getStart(), sourceFile.getEnd()); + getThisReferencesInFile(sourceFile, sourceFile, possiblePositions, _result); }); } else { var sourceFile = searchSpaceNode.getSourceFile(); - var possiblePositions = getPossibleSymbolReferencePositions(sourceFile, "this", searchSpaceNode.getStart(), searchSpaceNode.getEnd()); - getThisReferencesInFile(sourceFile, searchSpaceNode, possiblePositions, result); + possiblePositions = getPossibleSymbolReferencePositions(sourceFile, "this", searchSpaceNode.getStart(), searchSpaceNode.getEnd()); + getThisReferencesInFile(sourceFile, searchSpaceNode, possiblePositions, _result); } - return result; + return _result; function getThisReferencesInFile(sourceFile, searchSpaceNode, possiblePositions, result) { ts.forEach(possiblePositions, function (position) { cancellationToken.throwIfCancellationRequested(); - var node = ts.getTouchingWord(sourceFile, position); - if (!node || node.kind !== 92) { + var _node = ts.getTouchingWord(sourceFile, position); + if (!_node || _node.kind !== 92) { return; } - var container = ts.getThisContainer(node, false); + var container = ts.getThisContainer(_node, false); switch (searchSpaceNode.kind) { case 160: case 195: if (searchSpaceNode.symbol === container.symbol) { - result.push(getReferenceEntryFromNode(node)); + result.push(getReferenceEntryFromNode(_node)); } break; case 132: case 131: if (ts.isObjectLiteralMethod(searchSpaceNode) && searchSpaceNode.symbol === container.symbol) { - result.push(getReferenceEntryFromNode(node)); + result.push(getReferenceEntryFromNode(_node)); } break; case 196: if (container.parent && searchSpaceNode.symbol === container.parent.symbol && (container.flags & 128) === staticFlag) { - result.push(getReferenceEntryFromNode(node)); + result.push(getReferenceEntryFromNode(_node)); } break; case 221: if (container.kind === 221 && !ts.isExternalModule(container)) { - result.push(getReferenceEntryFromNode(node)); + result.push(getReferenceEntryFromNode(_node)); } break; } @@ -34904,30 +30338,28 @@ var ts; } } function populateSearchSymbolSet(symbol, location) { - var result = [ - symbol - ]; + var _result = [symbol]; if (isImportOrExportSpecifierImportSymbol(symbol)) { - result.push(typeInfoResolver.getAliasedSymbol(symbol)); + _result.push(typeInfoResolver.getAliasedSymbol(symbol)); } if (isNameOfPropertyAssignment(location)) { ts.forEach(getPropertySymbolsFromContextualType(location), function (contextualSymbol) { - result.push.apply(result, typeInfoResolver.getRootSymbols(contextualSymbol)); + _result.push.apply(_result, typeInfoResolver.getRootSymbols(contextualSymbol)); }); var shorthandValueSymbol = typeInfoResolver.getShorthandAssignmentValueSymbol(location.parent); if (shorthandValueSymbol) { - result.push(shorthandValueSymbol); + _result.push(shorthandValueSymbol); } } ts.forEach(typeInfoResolver.getRootSymbols(symbol), function (rootSymbol) { if (rootSymbol !== symbol) { - result.push(rootSymbol); + _result.push(rootSymbol); } if (rootSymbol.parent && rootSymbol.parent.flags & (32 | 64)) { - getPropertySymbolsFromBaseTypes(rootSymbol.parent, rootSymbol.getName(), result); + getPropertySymbolsFromBaseTypes(rootSymbol.parent, rootSymbol.getName(), _result); } }); - return result; + return _result; } function getPropertySymbolsFromBaseTypes(symbol, propertyName, result) { if (symbol && symbol.flags & (32 | 64)) { @@ -34959,14 +30391,13 @@ var ts; if (searchSymbols.indexOf(referenceSymbol) >= 0) { return true; } - if (isImportOrExportSpecifierImportSymbol(referenceSymbol) && searchSymbols.indexOf(typeInfoResolver.getAliasedSymbol(referenceSymbol)) >= 0) { + if (isImportOrExportSpecifierImportSymbol(referenceSymbol) && + searchSymbols.indexOf(typeInfoResolver.getAliasedSymbol(referenceSymbol)) >= 0) { return true; } if (isNameOfPropertyAssignment(referenceLocation)) { return ts.forEach(getPropertySymbolsFromContextualType(referenceLocation), function (contextualSymbol) { - return ts.forEach(typeInfoResolver.getRootSymbols(contextualSymbol), function (s) { - return searchSymbols.indexOf(s) >= 0; - }); + return ts.forEach(typeInfoResolver.getRootSymbols(contextualSymbol), function (s) { return searchSymbols.indexOf(s) >= 0; }); }); } return ts.forEach(typeInfoResolver.getRootSymbols(referenceSymbol), function (rootSymbol) { @@ -34974,11 +30405,9 @@ var ts; return true; } if (rootSymbol.parent && rootSymbol.parent.flags & (32 | 64)) { - var result = []; - getPropertySymbolsFromBaseTypes(rootSymbol.parent, rootSymbol.getName(), result); - return ts.forEach(result, function (s) { - return searchSymbols.indexOf(s) >= 0; - }); + var _result = []; + getPropertySymbolsFromBaseTypes(rootSymbol.parent, rootSymbol.getName(), _result); + return ts.forEach(_result, function (s) { return searchSymbols.indexOf(s) >= 0; }); } return false; }); @@ -34987,32 +30416,28 @@ var ts; if (isNameOfPropertyAssignment(node)) { var objectLiteral = node.parent.parent; var contextualType = typeInfoResolver.getContextualType(objectLiteral); - var name = node.text; + var _name = node.text; if (contextualType) { if (contextualType.flags & 16384) { - var unionProperty = contextualType.getProperty(name); + var unionProperty = contextualType.getProperty(_name); if (unionProperty) { - return [ - unionProperty - ]; + return [unionProperty]; } else { - var result = []; + var _result = []; ts.forEach(contextualType.types, function (t) { - var symbol = t.getProperty(name); - if (symbol) { - result.push(symbol); + var _symbol = t.getProperty(_name); + if (_symbol) { + _result.push(_symbol); } }); - return result; + return _result; } } else { - var symbol = contextualType.getProperty(name); - if (symbol) { - return [ - symbol - ]; + var _symbol = contextualType.getProperty(_name); + if (_symbol) { + return [_symbol]; } } } @@ -35021,10 +30446,12 @@ var ts; } function getIntersectingMeaningFromDeclarations(meaning, declarations) { if (declarations) { + var lastIterationMeaning; do { - var lastIterationMeaning = meaning; - for (var i = 0, n = declarations.length; i < n; i++) { - var declarationMeaning = getMeaningFromDeclaration(declarations[i]); + lastIterationMeaning = meaning; + for (var _i = 0, _n = declarations.length; _i < _n; _i++) { + var declaration = declarations[_i]; + var declarationMeaning = getMeaningFromDeclaration(declaration); if (declarationMeaning & meaning) { meaning |= declarationMeaning; } @@ -35051,13 +30478,13 @@ var ts; if (node.kind === 64 && ts.isDeclarationName(node)) { return true; } - var parent = node.parent; - if (parent) { - if (parent.kind === 166 || parent.kind === 165) { + var _parent = node.parent; + if (_parent) { + if (_parent.kind === 166 || _parent.kind === 165) { return true; } - else if (parent.kind === 167 && parent.left === node) { - var operator = parent.operatorToken.kind; + else if (_parent.kind === 167 && _parent.left === node) { + var operator = _parent.operatorToken.kind; return 52 <= operator && operator <= 63; } } @@ -35068,9 +30495,7 @@ var ts; return ts.NavigateTo.getNavigateToItems(program, cancellationToken, searchValue, maxResultCount); } function containErrors(diagnostics) { - return ts.forEach(diagnostics, function (diagnostic) { - return diagnostic.category === 1; - }); + return ts.forEach(diagnostics, function (diagnostic) { return diagnostic.category === 1; }); } function getEmitOutput(fileName) { synchronizeHostData(); @@ -35164,7 +30589,9 @@ var ts; } function getMeaningFromRightHandSideOfImportEquals(node) { ts.Debug.assert(node.kind === 64); - if (node.parent.kind === 125 && node.parent.right === node && node.parent.parent.kind === 203) { + if (node.parent.kind === 125 && + node.parent.right === node && + node.parent.parent.kind === 203) { return 1 | 2 | 4; } return 4; @@ -35223,7 +30650,8 @@ var ts; nodeForStartPos = nodeForStartPos.parent; } else if (isNameOfModuleDeclaration(nodeForStartPos)) { - if (nodeForStartPos.parent.parent.kind === 200 && nodeForStartPos.parent.parent.body === nodeForStartPos.parent) { + if (nodeForStartPos.parent.parent.kind === 200 && + nodeForStartPos.parent.parent.body === nodeForStartPos.parent) { nodeForStartPos = nodeForStartPos.parent.parent.name; } else { @@ -35270,7 +30698,8 @@ var ts; } } else if (flags & 1536) { - if (meaningAtPosition & 4 || (meaningAtPosition & 1 && hasValueSideModule(symbol))) { + if (meaningAtPosition & 4 || + (meaningAtPosition & 1 && hasValueSideModule(symbol))) { return ClassificationTypeNames.moduleName; } } @@ -35395,11 +30824,16 @@ var ts; if (ts.isPunctuation(tokenKind)) { if (token) { if (tokenKind === 52) { - if (token.parent.kind === 193 || token.parent.kind === 130 || token.parent.kind === 128) { + if (token.parent.kind === 193 || + token.parent.kind === 130 || + token.parent.kind === 128) { return ClassificationTypeNames.operator; } } - if (token.parent.kind === 167 || token.parent.kind === 165 || token.parent.kind === 166 || token.parent.kind === 168) { + if (token.parent.kind === 167 || + token.parent.kind === 165 || + token.parent.kind === 166 || + token.parent.kind === 168) { return ClassificationTypeNames.operator; } } @@ -35453,8 +30887,8 @@ var ts; function processElement(element) { if (ts.textSpanIntersectsWith(span, element.getFullStart(), element.getFullWidth())) { var children = element.getChildren(); - for (var i = 0, n = children.length; i < n; i++) { - var child = children[i]; + for (var _i = 0, _n = children.length; _i < _n; _i++) { + var child = children[_i]; if (ts.isToken(child)) { classifyToken(child); } @@ -35478,8 +30912,8 @@ var ts; if (matchKind) { var parentElement = token.parent; var childNodes = parentElement.getChildren(sourceFile); - for (var i = 0, n = childNodes.length; i < n; i++) { - var current = childNodes[i]; + for (var _i = 0, _n = childNodes.length; _i < _n; _i++) { + var current = childNodes[_i]; if (current.kind === matchKind) { var range1 = ts.createTextSpan(token.getStart(sourceFile), token.getWidth(sourceFile)); var range2 = ts.createTextSpan(current.getStart(sourceFile), current.getWidth(sourceFile)); @@ -35497,22 +30931,14 @@ var ts; return result; function getMatchingTokenKind(token) { switch (token.kind) { - case 14: - return 15; - case 16: - return 17; - case 18: - return 19; - case 24: - return 25; - case 15: - return 14; - case 17: - return 16; - case 19: - return 18; - case 25: - return 24; + case 14: return 15; + case 16: return 17; + case 18: return 19; + case 24: return 25; + case 15: return 14; + case 17: return 16; + case 19: return 18; + case 25: return 24; } return undefined; } @@ -35521,7 +30947,7 @@ var ts; var start = new Date().getTime(); var sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName); log("getIndentationAtPosition: getCurrentSourceFile: " + (new Date().getTime() - start)); - var start = new Date().getTime(); + start = new Date().getTime(); var result = ts.formatting.SmartIndenter.getIndentation(position, sourceFile, editorOptions); log("getIndentationAtPosition: computeIndentation : " + (new Date().getTime() - start)); return result; @@ -35567,9 +30993,9 @@ var ts; continue; } var descriptor = undefined; - for (var i = 0, n = descriptors.length; i < n; i++) { - if (matchArray[i + firstDescriptorCaptureIndex]) { - descriptor = descriptors[i]; + for (var _i = 0, n = descriptors.length; _i < n; _i++) { + if (matchArray[_i + firstDescriptorCaptureIndex]) { + descriptor = descriptors[_i]; } } ts.Debug.assert(descriptor !== undefined); @@ -35592,18 +31018,18 @@ var ts; var singleLineCommentStart = /(?:\/\/+\s*)/.source; var multiLineCommentStart = /(?:\/\*+\s*)/.source; var anyNumberOfSpacesAndAsterixesAtStartOfLine = /(?:^(?:\s|\*)*)/.source; - var preamble = "(" + anyNumberOfSpacesAndAsterixesAtStartOfLine + "|" + singleLineCommentStart + "|" + multiLineCommentStart + ")"; - var literals = "(?:" + ts.map(descriptors, function (d) { - return "(" + escapeRegExp(d.text) + ")"; - }).join("|") + ")"; + var _preamble = "(" + anyNumberOfSpacesAndAsterixesAtStartOfLine + "|" + singleLineCommentStart + "|" + multiLineCommentStart + ")"; + var literals = "(?:" + ts.map(descriptors, function (d) { return "(" + escapeRegExp(d.text) + ")"; }).join("|") + ")"; var endOfLineOrEndOfComment = /(?:$|\*\/)/.source; var messageRemainder = /(?:.*?)/.source; var messagePortion = "(" + literals + messageRemainder + ")"; - var regExpString = preamble + messagePortion + endOfLineOrEndOfComment; + var regExpString = _preamble + messagePortion + endOfLineOrEndOfComment; return new RegExp(regExpString, "gim"); } function isLetterOrDigit(char) { - return (char >= 97 && char <= 122) || (char >= 65 && char <= 90) || (char >= 48 && char <= 57); + return (char >= 97 && char <= 122) || + (char >= 65 && char <= 90) || + (char >= 48 && char <= 57); } } function getRenameInfo(fileName, position) { @@ -35617,9 +31043,10 @@ var ts; if (declarations && declarations.length > 0) { var defaultLibFileName = host.getDefaultLibFileName(host.getCompilationSettings()); if (defaultLibFileName) { - for (var i = 0; i < declarations.length; i++) { - var sourceFile = declarations[i].getSourceFile(); - if (sourceFile && getCanonicalFileName(ts.normalizePath(sourceFile.fileName)) === getCanonicalFileName(ts.normalizePath(defaultLibFileName))) { + for (var _i = 0, _n = declarations.length; _i < _n; _i++) { + var current = declarations[_i]; + var _sourceFile = current.getSourceFile(); + if (_sourceFile && getCanonicalFileName(ts.normalizePath(_sourceFile.fileName)) === getCanonicalFileName(ts.normalizePath(defaultLibFileName))) { return getRenameInfoError(ts.getLocaleSpecificMessage(ts.Diagnostics.You_cannot_rename_elements_that_are_defined_in_the_standard_TypeScript_library.key)); } } @@ -35704,7 +31131,9 @@ var ts; break; case 8: case 7: - if (ts.isDeclarationName(node) || node.parent.kind === 213 || isArgumentOfElementAccessExpression(node)) { + if (ts.isDeclarationName(node) || + node.parent.kind === 213 || + isArgumentOfElementAccessExpression(node)) { nameTable[node.text] = node.text; } break; @@ -35714,10 +31143,13 @@ var ts; } } function isArgumentOfElementAccessExpression(node) { - return node && node.parent && node.parent.kind === 154 && node.parent.argumentExpression === node; + return node && + node.parent && + node.parent.kind === 154 && + node.parent.argumentExpression === node; } function createClassifier() { - var scanner = ts.createScanner(2, false); + var _scanner = ts.createScanner(2, false); var noRegexTable = []; noRegexTable[64] = true; noRegexTable[8] = true; @@ -35743,7 +31175,10 @@ var ts; } function canFollow(keyword1, keyword2) { if (isAccessibilityModifier(keyword1)) { - if (keyword2 === 115 || keyword2 === 119 || keyword2 === 113 || keyword2 === 109) { + if (keyword2 === 115 || + keyword2 === 119 || + keyword2 === 113 || + keyword2 === 109) { return true; } return false; @@ -35781,17 +31216,17 @@ var ts; templateStack.push(11); break; } - scanner.setText(text); + _scanner.setText(text); var result = { finalLexState: 0, entries: [] }; var angleBracketStack = 0; do { - token = scanner.scan(); + token = _scanner.scan(); if (!ts.isTrivia(token)) { if ((token === 36 || token === 56) && !noRegexTable[lastNonTriviaToken]) { - if (scanner.reScanSlashToken() === 9) { + if (_scanner.reScanSlashToken() === 9) { token = 9; } } @@ -35801,13 +31236,18 @@ var ts; else if (isKeyword(lastNonTriviaToken) && isKeyword(token) && !canFollow(lastNonTriviaToken, token)) { token = 64; } - else if (lastNonTriviaToken === 64 && token === 24) { + else if (lastNonTriviaToken === 64 && + token === 24) { angleBracketStack++; } else if (token === 25 && angleBracketStack > 0) { angleBracketStack--; } - else if (token === 111 || token === 120 || token === 118 || token === 112 || token === 121) { + else if (token === 111 || + token === 120 || + token === 118 || + token === 112 || + token === 121) { if (angleBracketStack > 0 && !syntacticClassifierAbsent) { token = 64; } @@ -35824,7 +31264,7 @@ var ts; if (templateStack.length > 0) { var lastTemplateStackToken = ts.lastOrUndefined(templateStack); if (lastTemplateStackToken === 11) { - token = scanner.reScanTemplateToken(); + token = _scanner.reScanTemplateToken(); if (token === 13) { templateStack.pop(); } @@ -35844,13 +31284,13 @@ var ts; } while (token !== 1); return result; function processToken() { - var start = scanner.getTokenPos(); - var end = scanner.getTextPos(); + var start = _scanner.getTokenPos(); + var end = _scanner.getTextPos(); addResult(end - start, classFromKind(token)); if (end >= text.length) { if (token === 8) { - var tokenText = scanner.getTokenText(); - if (scanner.isUnterminated()) { + var tokenText = _scanner.getTokenText(); + if (_scanner.isUnterminated()) { var lastCharIndex = tokenText.length - 1; var numBackslashes = 0; while (tokenText.charCodeAt(lastCharIndex - numBackslashes) === 92) { @@ -35858,17 +31298,19 @@ var ts; } if (numBackslashes & 1) { var quoteChar = tokenText.charCodeAt(0); - result.finalLexState = quoteChar === 34 ? 3 : 2; + result.finalLexState = quoteChar === 34 + ? 3 + : 2; } } } else if (token === 3) { - if (scanner.isUnterminated()) { + if (_scanner.isUnterminated()) { result.finalLexState = 1; } } else if (ts.isTemplateLiteralKind(token)) { - if (scanner.isUnterminated()) { + if (_scanner.isUnterminated()) { if (token === 13) { result.finalLexState = 5; } @@ -35890,10 +31332,7 @@ var ts; if (result.entries.length === 0) { length -= offset; } - result.entries.push({ - length: length, - classification: classification - }); + result.entries.push({ length: length, classification: classification }); } } } @@ -35988,9 +31427,7 @@ var ts; return 5; } } - return { - getClassificationsForLine: getClassificationsForLine - }; + return { getClassificationsForLine: getClassificationsForLine }; } ts.createClassifier = createClassifier; function getDefaultLibFilePath(options) { @@ -36014,15 +31451,9 @@ var ts; Node.prototype = proto; return Node; }, - getSymbolConstructor: function () { - return SymbolObject; - }, - getTypeConstructor: function () { - return TypeObject; - }, - getSignatureConstructor: function () { - return SignatureObject; - } + getSymbolConstructor: function () { return SymbolObject; }, + getTypeConstructor: function () { return TypeObject; }, + getSignatureConstructor: function () { return SignatureObject; } }; } initializeServices(); @@ -36196,12 +31627,17 @@ var ts; } } function spanInVariableDeclaration(variableDeclaration) { - if (variableDeclaration.parent.parent.kind === 182 || variableDeclaration.parent.parent.kind === 183) { + if (variableDeclaration.parent.parent.kind === 182 || + variableDeclaration.parent.parent.kind === 183) { return spanInNode(variableDeclaration.parent.parent); } var isParentVariableStatement = variableDeclaration.parent.parent.kind === 175; var isDeclarationOfForStatement = variableDeclaration.parent.parent.kind === 181 && ts.contains(variableDeclaration.parent.parent.initializer.declarations, variableDeclaration); - var declarations = isParentVariableStatement ? variableDeclaration.parent.parent.declarationList.declarations : isDeclarationOfForStatement ? variableDeclaration.parent.parent.initializer.declarations : undefined; + var declarations = isParentVariableStatement + ? variableDeclaration.parent.parent.declarationList.declarations + : isDeclarationOfForStatement + ? variableDeclaration.parent.parent.initializer.declarations + : undefined; if (variableDeclaration.initializer || (variableDeclaration.flags & 1)) { if (declarations && declarations[0] === variableDeclaration) { if (isParentVariableStatement) { @@ -36222,7 +31658,8 @@ var ts; } } function canHaveSpanInParameterDeclaration(parameter) { - return !!parameter.initializer || parameter.dotDotDotToken !== undefined || !!(parameter.flags & 16) || !!(parameter.flags & 32); + return !!parameter.initializer || parameter.dotDotDotToken !== undefined || + !!(parameter.flags & 16) || !!(parameter.flags & 32); } function spanInParameterDeclaration(parameter) { if (canHaveSpanInParameterDeclaration(parameter)) { @@ -36240,7 +31677,8 @@ var ts; } } function canFunctionHaveSpanInWholeDeclaration(functionDeclaration) { - return !!(functionDeclaration.flags & 1) || (functionDeclaration.parent.kind === 196 && functionDeclaration.kind !== 133); + return !!(functionDeclaration.flags & 1) || + (functionDeclaration.parent.kind === 196 && functionDeclaration.kind !== 133); } function spanInFunctionDeclaration(functionDeclaration) { if (!functionDeclaration.body) { @@ -36492,21 +31930,15 @@ var ts; function forwardJSONCall(logger, actionDescription, action) { try { var result = simpleForwardCall(logger, actionDescription, action); - return JSON.stringify({ - result: result - }); + return JSON.stringify({ result: result }); } catch (err) { if (err instanceof ts.OperationCanceledException) { - return JSON.stringify({ - canceled: true - }); + return JSON.stringify({ canceled: true }); } logInternalError(logger, err); err.description = actionDescription; - return JSON.stringify({ - error: err - }); + return JSON.stringify({ error: err }); } } var ShimBase = (function () { @@ -36556,9 +31988,7 @@ var ts; LanguageServiceShimObject.prototype.realizeDiagnostics = function (diagnostics) { var _this = this; var newLine = this.getNewLine(); - return diagnostics.map(function (d) { - return _this.realizeDiagnostic(d, newLine); - }); + return diagnostics.map(function (d) { return _this.realizeDiagnostic(d, newLine); }); }; LanguageServiceShimObject.prototype.realizeDiagnostic = function (diagnostic, newLine) { return { diff --git a/bin/typescriptServices_internal.d.ts b/bin/typescriptServices_internal.d.ts index a899c1e240b..7fba731f25e 100644 --- a/bin/typescriptServices_internal.d.ts +++ b/bin/typescriptServices_internal.d.ts @@ -62,7 +62,7 @@ declare module ts { * index in the array will be the one associated with the produced key. */ function arrayToMap(array: T[], makeKey: (value: T) => string): Map; - var localizedDiagnosticMessages: Map; + let localizedDiagnosticMessages: Map; function getLocaleSpecificMessage(message: string): string; function createFileDiagnostic(file: SourceFile, start: number, length: number, message: DiagnosticMessage, ...args: any[]): Diagnostic; function createCompilerDiagnostic(message: DiagnosticMessage, ...args: any[]): Diagnostic; @@ -74,7 +74,7 @@ declare module ts { function deduplicateSortedDiagnostics(diagnostics: Diagnostic[]): Diagnostic[]; function normalizeSlashes(path: string): string; function getRootLength(path: string): number; - var directorySeparator: string; + let directorySeparator: string; function normalizePath(path: string): string; function getDirectoryPath(path: string): string; function isUrl(path: string): boolean; @@ -94,7 +94,7 @@ declare module ts { getTypeConstructor(): new (checker: TypeChecker, flags: TypeFlags) => Type; getSignatureConstructor(): new (checker: TypeChecker) => Signature; } - var objectAllocator: ObjectAllocator; + let objectAllocator: ObjectAllocator; const enum AssertionLevel { None = 0, Normal = 1, @@ -186,7 +186,7 @@ declare module ts { function isPrologueDirective(node: Node): boolean; function getLeadingCommentRangesOfNode(node: Node, sourceFileOfNode?: SourceFile): CommentRange[]; function getJsDocComments(node: Node, sourceFileOfNode: SourceFile): CommentRange[]; - var fullTripleSlashReferencePathRegEx: RegExp; + let fullTripleSlashReferencePathRegEx: RegExp; function forEachReturnStatement(body: Block, visitor: (stmt: ReturnStatement) => T): T; function isFunctionLike(node: Node): boolean; function isFunctionBlock(node: Node): boolean; @@ -257,7 +257,7 @@ declare module ts { function textChangeRangeNewSpan(range: TextChangeRange): TextSpan; function textChangeRangeIsUnchanged(range: TextChangeRange): boolean; function createTextChangeRange(span: TextSpan, newLength: number): TextChangeRange; - var unchangedTextChangeRange: TextChangeRange; + let unchangedTextChangeRange: TextChangeRange; /** * Called to merge all the changes that occurred across several versions of a script snapshot * into a single change. i.e. if a user keeps making successive edits to a script we will diff --git a/bin/typescript_internal.d.ts b/bin/typescript_internal.d.ts index d01fe853505..2d5973e5877 100644 --- a/bin/typescript_internal.d.ts +++ b/bin/typescript_internal.d.ts @@ -62,7 +62,7 @@ declare module "typescript" { * index in the array will be the one associated with the produced key. */ function arrayToMap(array: T[], makeKey: (value: T) => string): Map; - var localizedDiagnosticMessages: Map; + let localizedDiagnosticMessages: Map; function getLocaleSpecificMessage(message: string): string; function createFileDiagnostic(file: SourceFile, start: number, length: number, message: DiagnosticMessage, ...args: any[]): Diagnostic; function createCompilerDiagnostic(message: DiagnosticMessage, ...args: any[]): Diagnostic; @@ -74,7 +74,7 @@ declare module "typescript" { function deduplicateSortedDiagnostics(diagnostics: Diagnostic[]): Diagnostic[]; function normalizeSlashes(path: string): string; function getRootLength(path: string): number; - var directorySeparator: string; + let directorySeparator: string; function normalizePath(path: string): string; function getDirectoryPath(path: string): string; function isUrl(path: string): boolean; @@ -94,7 +94,7 @@ declare module "typescript" { getTypeConstructor(): new (checker: TypeChecker, flags: TypeFlags) => Type; getSignatureConstructor(): new (checker: TypeChecker) => Signature; } - var objectAllocator: ObjectAllocator; + let objectAllocator: ObjectAllocator; const enum AssertionLevel { None = 0, Normal = 1, @@ -186,7 +186,7 @@ declare module "typescript" { function isPrologueDirective(node: Node): boolean; function getLeadingCommentRangesOfNode(node: Node, sourceFileOfNode?: SourceFile): CommentRange[]; function getJsDocComments(node: Node, sourceFileOfNode: SourceFile): CommentRange[]; - var fullTripleSlashReferencePathRegEx: RegExp; + let fullTripleSlashReferencePathRegEx: RegExp; function forEachReturnStatement(body: Block, visitor: (stmt: ReturnStatement) => T): T; function isFunctionLike(node: Node): boolean; function isFunctionBlock(node: Node): boolean; @@ -257,7 +257,7 @@ declare module "typescript" { function textChangeRangeNewSpan(range: TextChangeRange): TextSpan; function textChangeRangeIsUnchanged(range: TextChangeRange): boolean; function createTextChangeRange(span: TextSpan, newLength: number): TextChangeRange; - var unchangedTextChangeRange: TextChangeRange; + let unchangedTextChangeRange: TextChangeRange; /** * Called to merge all the changes that occurred across several versions of a script snapshot * into a single change. i.e. if a user keeps making successive edits to a script we will diff --git a/src/compiler/binder.ts b/src/compiler/binder.ts index af496db7ded..f951fe49269 100644 --- a/src/compiler/binder.ts +++ b/src/compiler/binder.ts @@ -1,7 +1,7 @@ /// module ts { - /* @internal */ export var bindTime = 0; + /* @internal */ export let bindTime = 0; export const enum ModuleInstanceState { NonInstantiated = 0, @@ -25,7 +25,7 @@ module ts { } // 4. other uninstantiated module declarations. else if (node.kind === SyntaxKind.ModuleBlock) { - var state = ModuleInstanceState.NonInstantiated; + let state = ModuleInstanceState.NonInstantiated; forEachChild(node, n => { switch (getModuleInstanceState(n)) { case ModuleInstanceState.NonInstantiated: @@ -52,18 +52,18 @@ module ts { } export function bindSourceFile(file: SourceFile): void { - var start = new Date().getTime(); + let start = new Date().getTime(); bindSourceFileWorker(file); bindTime += new Date().getTime() - start; } function bindSourceFileWorker(file: SourceFile): void { - var parent: Node; - var container: Node; - var blockScopeContainer: Node; - var lastContainer: Node; - var symbolCount = 0; - var Symbol = objectAllocator.getSymbolConstructor(); + let parent: Node; + let container: Node; + let blockScopeContainer: Node; + let lastContainer: Node; + let symbolCount = 0; + let Symbol = objectAllocator.getSymbolConstructor(); if (!file.locals) { file.locals = {}; @@ -103,7 +103,7 @@ module ts { return '"' + (node.name).text + '"'; } if (node.name.kind === SyntaxKind.ComputedPropertyName) { - var nameExpression = (node.name).expression; + let nameExpression = (node.name).expression; Debug.assert(isWellKnownSymbolSyntactically(nameExpression)); return getPropertyNameForKnownSymbolName((nameExpression).name.text); } @@ -138,10 +138,11 @@ module ts { Debug.assert(!hasDynamicName(node)); // The exported symbol for an export default function/class node is always named "default" - var name = node.flags & NodeFlags.Default && parent ? "default" : getDeclarationName(node); + let name = node.flags & NodeFlags.Default && parent ? "default" : getDeclarationName(node); + let symbol: Symbol; if (name !== undefined) { - var symbol = hasProperty(symbols, name) ? symbols[name] : (symbols[name] = createSymbol(0, name)); + symbol = hasProperty(symbols, name) ? symbols[name] : (symbols[name] = createSymbol(0, name)); if (symbol.flags & excludes) { if (node.name) { node.name.parent = node; @@ -149,7 +150,7 @@ module ts { // Report errors every position with duplicate declaration // Report errors on previous encountered declarations - var message = symbol.flags & SymbolFlags.BlockScopedVariable + let message = symbol.flags & SymbolFlags.BlockScopedVariable ? Diagnostics.Cannot_redeclare_block_scoped_variable_0 : Diagnostics.Duplicate_identifier_0; @@ -172,7 +173,7 @@ module ts { // Every class automatically contains a static property member named 'prototype', // the type of which is an instantiation of the class type with type Any supplied as a type argument for each type parameter. // It is an error to explicitly declare a static property member with the name 'prototype'. - var prototypeSymbol = createSymbol(SymbolFlags.Property | SymbolFlags.Prototype, "prototype"); + let prototypeSymbol = createSymbol(SymbolFlags.Property | SymbolFlags.Prototype, "prototype"); if (hasProperty(symbol.exports, prototypeSymbol.name)) { if (node.name) { node.name.parent = node; @@ -196,7 +197,7 @@ module ts { } function declareModuleMember(node: Declaration, symbolKind: SymbolFlags, symbolExcludes: SymbolFlags) { - var hasExportModifier = getCombinedNodeFlags(node) & NodeFlags.Export; + let hasExportModifier = getCombinedNodeFlags(node) & NodeFlags.Export; if (symbolKind & SymbolFlags.Alias) { if (node.kind === SyntaxKind.ExportSpecifier || (node.kind === SyntaxKind.ImportEqualsDeclaration && hasExportModifier)) { declareSymbol(container.symbol.exports, container.symbol, node, symbolKind, symbolExcludes); @@ -218,10 +219,10 @@ module ts { // but return the export symbol (by calling getExportSymbolOfValueSymbolIfExported). That way // when the emitter comes back to it, it knows not to qualify the name if it was found in a containing scope. if (hasExportModifier || isAmbientContext(container)) { - var exportKind = (symbolKind & SymbolFlags.Value ? SymbolFlags.ExportValue : 0) | + let exportKind = (symbolKind & SymbolFlags.Value ? SymbolFlags.ExportValue : 0) | (symbolKind & SymbolFlags.Type ? SymbolFlags.ExportType : 0) | (symbolKind & SymbolFlags.Namespace ? SymbolFlags.ExportNamespace : 0); - var local = declareSymbol(container.locals, undefined, node, exportKind, symbolExcludes); + let local = declareSymbol(container.locals, undefined, node, exportKind, symbolExcludes); local.exportSymbol = declareSymbol(container.symbol.exports, container.symbol, node, symbolKind, symbolExcludes); node.localSymbol = local; } @@ -238,9 +239,9 @@ module ts { node.locals = {}; } - var saveParent = parent; - var saveContainer = container; - var savedBlockScopeContainer = blockScopeContainer; + let saveParent = parent; + let saveContainer = container; + let savedBlockScopeContainer = blockScopeContainer; parent = node; if (symbolKind & SymbolFlags.IsContainer) { container = node; @@ -315,7 +316,7 @@ module ts { bindDeclaration(node, SymbolFlags.ValueModule, SymbolFlags.ValueModuleExcludes, /*isBlockScopeContainer*/ true); } else { - var state = getModuleInstanceState(node); + let state = getModuleInstanceState(node); if (state === ModuleInstanceState.NonInstantiated) { bindDeclaration(node, SymbolFlags.NamespaceModule, SymbolFlags.NamespaceModuleExcludes, /*isBlockScopeContainer*/ true); } @@ -341,18 +342,18 @@ module ts { // symbol as its sole member. To the rest of the system, this symbol will be indistinguishable // from an actual type literal symbol you would have gotten had you used the long form. - var symbol = createSymbol(SymbolFlags.Signature, getDeclarationName(node)); + let symbol = createSymbol(SymbolFlags.Signature, getDeclarationName(node)); addDeclarationToSymbol(symbol, node, SymbolFlags.Signature); bindChildren(node, SymbolFlags.Signature, /*isBlockScopeContainer:*/ false); - var typeLiteralSymbol = createSymbol(SymbolFlags.TypeLiteral, "__type"); + let typeLiteralSymbol = createSymbol(SymbolFlags.TypeLiteral, "__type"); addDeclarationToSymbol(typeLiteralSymbol, node, SymbolFlags.TypeLiteral); typeLiteralSymbol.members = {}; typeLiteralSymbol.members[node.kind === SyntaxKind.FunctionType ? "__call" : "__new"] = symbol } function bindAnonymousDeclaration(node: Declaration, symbolKind: SymbolFlags, name: string, isBlockScopeContainer: boolean) { - var symbol = createSymbol(symbolKind, name); + let symbol = createSymbol(symbolKind, name); addDeclarationToSymbol(symbol, node, symbolKind); bindChildren(node, symbolKind, isBlockScopeContainer); } @@ -525,9 +526,9 @@ module ts { // Otherwise this won't be considered as redeclaration of a block scoped local: // function foo() { // let x; - // var x; + // let x; // } - // 'var x' will be placed into the function locals and 'let x' - into the locals of the block + // 'let x' will be placed into the function locals and 'let x' - into the locals of the block bindChildren(node, 0, /*isBlockScopeContainer*/ !isFunctionLike(node.parent)); break; case SyntaxKind.CatchClause: @@ -538,7 +539,7 @@ module ts { bindChildren(node, 0, /*isBlockScopeContainer*/ true); break; default: - var saveParent = parent; + let saveParent = parent; parent = node; forEachChild(node, bind); parent = saveParent; @@ -559,7 +560,7 @@ module ts { node.parent.kind === SyntaxKind.Constructor && node.parent.parent.kind === SyntaxKind.ClassDeclaration) { - var classDeclaration = node.parent.parent; + let classDeclaration = node.parent.parent; declareSymbol(classDeclaration.symbol.members, classDeclaration.symbol, node, SymbolFlags.Property, SymbolFlags.PropertyExcludes); } } diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index a8713c50afc..c79ca2f1fd2 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -1,28 +1,31 @@ /// module ts { - var nextSymbolId = 1; - var nextNodeId = 1; - var nextMergeId = 1; + let nextSymbolId = 1; + let nextNodeId = 1; + let nextMergeId = 1; - /* @internal */ export var checkTime = 0; + /* @internal */ export let checkTime = 0; export function createTypeChecker(host: TypeCheckerHost, produceDiagnostics: boolean): TypeChecker { - var Symbol = objectAllocator.getSymbolConstructor(); - var Type = objectAllocator.getTypeConstructor(); - var Signature = objectAllocator.getSignatureConstructor(); + let Symbol = objectAllocator.getSymbolConstructor(); + let Type = objectAllocator.getTypeConstructor(); + let Signature = objectAllocator.getSignatureConstructor(); - var typeCount = 0; + let typeCount = 0; - var emptyArray: any[] = []; - var emptySymbols: SymbolTable = {}; + let emptyArray: any[] = []; + let emptySymbols: SymbolTable = {}; - var compilerOptions = host.getCompilerOptions(); - var languageVersion = compilerOptions.target || ScriptTarget.ES3; + let compilerOptions = host.getCompilerOptions(); + let languageVersion = compilerOptions.target || ScriptTarget.ES3; - var emitResolver = createResolver(); + let emitResolver = createResolver(); - var checker: TypeChecker = { + let undefinedSymbol = createSymbol(SymbolFlags.Property | SymbolFlags.Transient, "undefined"); + let argumentsSymbol = createSymbol(SymbolFlags.Property | SymbolFlags.Transient, "arguments"); + + let checker: TypeChecker = { getNodeCount: () => sum(host.getSourceFiles(), "nodeCount"), getIdentifierCount: () => sum(host.getSourceFiles(), "identifierCount"), getSymbolCount: () => sum(host.getSourceFiles(), "symbolCount"), @@ -59,61 +62,59 @@ module ts { getExportsOfExternalModule, }; - var undefinedSymbol = createSymbol(SymbolFlags.Property | SymbolFlags.Transient, "undefined"); - var argumentsSymbol = createSymbol(SymbolFlags.Property | SymbolFlags.Transient, "arguments"); - var unknownSymbol = createSymbol(SymbolFlags.Property | SymbolFlags.Transient, "unknown"); - var resolvingSymbol = createSymbol(SymbolFlags.Transient, "__resolving__"); + let unknownSymbol = createSymbol(SymbolFlags.Property | SymbolFlags.Transient, "unknown"); + let resolvingSymbol = createSymbol(SymbolFlags.Transient, "__resolving__"); - var anyType = createIntrinsicType(TypeFlags.Any, "any"); - var stringType = createIntrinsicType(TypeFlags.String, "string"); - var numberType = createIntrinsicType(TypeFlags.Number, "number"); - var booleanType = createIntrinsicType(TypeFlags.Boolean, "boolean"); - var esSymbolType = createIntrinsicType(TypeFlags.ESSymbol, "symbol"); - var voidType = createIntrinsicType(TypeFlags.Void, "void"); - var undefinedType = createIntrinsicType(TypeFlags.Undefined | TypeFlags.ContainsUndefinedOrNull, "undefined"); - var nullType = createIntrinsicType(TypeFlags.Null | TypeFlags.ContainsUndefinedOrNull, "null"); - var unknownType = createIntrinsicType(TypeFlags.Any, "unknown"); - var resolvingType = createIntrinsicType(TypeFlags.Any, "__resolving__"); + let anyType = createIntrinsicType(TypeFlags.Any, "any"); + let stringType = createIntrinsicType(TypeFlags.String, "string"); + let numberType = createIntrinsicType(TypeFlags.Number, "number"); + let booleanType = createIntrinsicType(TypeFlags.Boolean, "boolean"); + let esSymbolType = createIntrinsicType(TypeFlags.ESSymbol, "symbol"); + let voidType = createIntrinsicType(TypeFlags.Void, "void"); + let undefinedType = createIntrinsicType(TypeFlags.Undefined | TypeFlags.ContainsUndefinedOrNull, "undefined"); + let nullType = createIntrinsicType(TypeFlags.Null | TypeFlags.ContainsUndefinedOrNull, "null"); + let unknownType = createIntrinsicType(TypeFlags.Any, "unknown"); + let resolvingType = createIntrinsicType(TypeFlags.Any, "__resolving__"); - var emptyObjectType = createAnonymousType(undefined, emptySymbols, emptyArray, emptyArray, undefined, undefined); - var anyFunctionType = createAnonymousType(undefined, emptySymbols, emptyArray, emptyArray, undefined, undefined); - var noConstraintType = createAnonymousType(undefined, emptySymbols, emptyArray, emptyArray, undefined, undefined); - var inferenceFailureType = createAnonymousType(undefined, emptySymbols, emptyArray, emptyArray, undefined, undefined); + let emptyObjectType = createAnonymousType(undefined, emptySymbols, emptyArray, emptyArray, undefined, undefined); + let anyFunctionType = createAnonymousType(undefined, emptySymbols, emptyArray, emptyArray, undefined, undefined); + let noConstraintType = createAnonymousType(undefined, emptySymbols, emptyArray, emptyArray, undefined, undefined); + let inferenceFailureType = createAnonymousType(undefined, emptySymbols, emptyArray, emptyArray, undefined, undefined); - var anySignature = createSignature(undefined, undefined, emptyArray, anyType, 0, false, false); - var unknownSignature = createSignature(undefined, undefined, emptyArray, unknownType, 0, false, false); + let anySignature = createSignature(undefined, undefined, emptyArray, anyType, 0, false, false); + let unknownSignature = createSignature(undefined, undefined, emptyArray, unknownType, 0, false, false); - var globals: SymbolTable = {}; + let globals: SymbolTable = {}; - var globalArraySymbol: Symbol; - var globalESSymbolConstructorSymbol: Symbol; + let globalArraySymbol: Symbol; + let globalESSymbolConstructorSymbol: Symbol; - var globalObjectType: ObjectType; - var globalFunctionType: ObjectType; - var globalArrayType: ObjectType; - var globalStringType: ObjectType; - var globalNumberType: ObjectType; - var globalBooleanType: ObjectType; - var globalRegExpType: ObjectType; - var globalTemplateStringsArrayType: ObjectType; - var globalESSymbolType: ObjectType; - var globalIterableType: ObjectType; + let globalObjectType: ObjectType; + let globalFunctionType: ObjectType; + let globalArrayType: ObjectType; + let globalStringType: ObjectType; + let globalNumberType: ObjectType; + let globalBooleanType: ObjectType; + let globalRegExpType: ObjectType; + let globalTemplateStringsArrayType: ObjectType; + let globalESSymbolType: ObjectType; + let globalIterableType: ObjectType; - var anyArrayType: Type; + let anyArrayType: Type; - var tupleTypes: Map = {}; - var unionTypes: Map = {}; - var stringLiteralTypes: Map = {}; - var emitExtends = false; + let tupleTypes: Map = {}; + let unionTypes: Map = {}; + let stringLiteralTypes: Map = {}; + let emitExtends = false; - var mergedSymbols: Symbol[] = []; - var symbolLinks: SymbolLinks[] = []; - var nodeLinks: NodeLinks[] = []; - var potentialThisCollisions: Node[] = []; + let mergedSymbols: Symbol[] = []; + let symbolLinks: SymbolLinks[] = []; + let nodeLinks: NodeLinks[] = []; + let potentialThisCollisions: Node[] = []; - var diagnostics = createDiagnosticCollection(); + let diagnostics = createDiagnosticCollection(); - var primitiveTypeInfo: Map<{ type: Type; flags: TypeFlags }> = { + let primitiveTypeInfo: Map<{ type: Type; flags: TypeFlags }> = { "string": { type: stringType, flags: TypeFlags.StringLike @@ -140,7 +141,7 @@ module ts { } function error(location: Node, message: DiagnosticMessage, arg0?: any, arg1?: any, arg2?: any): void { - var diagnostic = location + let diagnostic = location ? createDiagnosticForNode(location, message, arg0, arg1, arg2) : createCompilerDiagnostic(message, arg0, arg1, arg2); diagnostics.add(diagnostic); @@ -151,7 +152,7 @@ module ts { } function getExcludedSymbolFlags(flags: SymbolFlags): SymbolFlags { - var result: SymbolFlags = 0; + let result: SymbolFlags = 0; if (flags & SymbolFlags.BlockScopedVariable) result |= SymbolFlags.BlockScopedVariableExcludes; if (flags & SymbolFlags.FunctionScopedVariable) result |= SymbolFlags.FunctionScopedVariableExcludes; if (flags & SymbolFlags.Property) result |= SymbolFlags.PropertyExcludes; @@ -177,7 +178,7 @@ module ts { } function cloneSymbol(symbol: Symbol): Symbol { - var result = createSymbol(symbol.flags | SymbolFlags.Merged, symbol.name); + let result = createSymbol(symbol.flags | SymbolFlags.Merged, symbol.name); result.declarations = symbol.declarations.slice(0); result.parent = symbol.parent; if (symbol.valueDeclaration) result.valueDeclaration = symbol.valueDeclaration; @@ -210,7 +211,7 @@ module ts { recordMergedSymbol(target, source); } else { - var message = target.flags & SymbolFlags.BlockScopedVariable || source.flags & SymbolFlags.BlockScopedVariable + let message = target.flags & SymbolFlags.BlockScopedVariable || source.flags & SymbolFlags.BlockScopedVariable ? Diagnostics.Cannot_redeclare_block_scoped_variable_0 : Diagnostics.Duplicate_identifier_0; forEach(source.declarations, node => { error(node.name ? node.name : node, message, symbolToString(source)); @@ -222,8 +223,8 @@ module ts { } function cloneSymbolTable(symbolTable: SymbolTable): SymbolTable { - var result: SymbolTable = {}; - for (var id in symbolTable) { + let result: SymbolTable = {}; + for (let id in symbolTable) { if (hasProperty(symbolTable, id)) { result[id] = symbolTable[id]; } @@ -232,13 +233,13 @@ module ts { } function mergeSymbolTable(target: SymbolTable, source: SymbolTable) { - for (var id in source) { + for (let id in source) { if (hasProperty(source, id)) { if (!hasProperty(target, id)) { target[id] = source[id]; } else { - var symbol = target[id]; + let symbol = target[id]; if (!(symbol.flags & SymbolFlags.Merged)) { target[id] = symbol = cloneSymbol(symbol); } @@ -269,14 +270,14 @@ module ts { function getSymbol(symbols: SymbolTable, name: string, meaning: SymbolFlags): Symbol { if (meaning && hasProperty(symbols, name)) { - var symbol = symbols[name]; + let symbol = symbols[name]; Debug.assert((symbol.flags & SymbolFlags.Instantiated) === 0, "Should never get an instantiated symbol here."); if (symbol.flags & meaning) { return symbol; } if (symbol.flags & SymbolFlags.Alias) { - var target = resolveAlias(symbol); + let target = resolveAlias(symbol); // Unknown symbol means an error occurred in alias resolution, treat it as positive answer to avoid cascading errors if (target === unknownSymbol || target.flags & meaning) { return symbol; @@ -289,8 +290,8 @@ module ts { /** Returns true if node1 is defined before node 2**/ function isDefinedBefore(node1: Node, node2: Node): boolean { - var file1 = getSourceFileOfNode(node1); - var file2 = getSourceFileOfNode(node2); + let file1 = getSourceFileOfNode(node1); + let file2 = getSourceFileOfNode(node2); if (file1 === file2) { return node1.pos <= node2.pos; } @@ -299,7 +300,7 @@ module ts { return true; } - var sourceFiles = host.getSourceFiles(); + let sourceFiles = host.getSourceFiles(); return sourceFiles.indexOf(file1) <= sourceFiles.indexOf(file2); } @@ -307,10 +308,10 @@ module ts { // the nameNotFoundMessage argument is not undefined. Returns the resolved symbol, or undefined if no symbol with // the given name can be found. function resolveName(location: Node, name: string, meaning: SymbolFlags, nameNotFoundMessage: DiagnosticMessage, nameArg: string | Identifier): Symbol { - var result: Symbol; - var lastLocation: Node; - var propertyWithInvalidInitializer: Node; - var errorLocation = location; + let result: Symbol; + let lastLocation: Node; + let propertyWithInvalidInitializer: Node; + let errorLocation = location; loop: while (location) { // Locals of a source file are not in scope (because they get merged into the global symbol table) @@ -344,7 +345,7 @@ module ts { // by the same name as a constructor parameter or local variable are inaccessible // in initializer expressions for instance member variables. if (location.parent.kind === SyntaxKind.ClassDeclaration && !(location.flags & NodeFlags.Static)) { - var ctor = findConstructorDeclaration(location.parent); + let ctor = findConstructorDeclaration(location.parent); if (ctor && ctor.locals) { if (getSymbol(ctor.locals, name, meaning & SymbolFlags.Value)) { // Remember the property node, it will be used later to report appropriate error @@ -376,7 +377,7 @@ module ts { // } // case SyntaxKind.ComputedPropertyName: - var grandparent = location.parent.parent; + let grandparent = location.parent.parent; if (grandparent.kind === SyntaxKind.ClassDeclaration || grandparent.kind === SyntaxKind.InterfaceDeclaration) { // A reference to this grandparent's type parameters would be an error if (result = getSymbol(getSymbolOfNode(grandparent).members, name, meaning & SymbolFlags.Type)) { @@ -402,7 +403,7 @@ module ts { result = argumentsSymbol; break loop; } - var id = (location).name; + let id = (location).name; if (id && name === id.text) { result = location.symbol; break loop; @@ -429,7 +430,7 @@ module ts { if (propertyWithInvalidInitializer) { // We have a match, but the reference occurred within a property initializer and the identifier also binds // to a local variable in the constructor where the code will be emitted. - var propertyName = (propertyWithInvalidInitializer).name; + let propertyName = (propertyWithInvalidInitializer).name; error(errorLocation, Diagnostics.Initializer_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor, declarationNameToString(propertyName), typeof nameArg === "string" ? nameArg : declarationNameToString(nameArg)); return undefined; @@ -444,12 +445,12 @@ module ts { function checkResolvedBlockScopedVariable(result: Symbol, errorLocation: Node): void { Debug.assert((result.flags & SymbolFlags.BlockScopedVariable) !== 0) // Block-scoped variables cannot be used before their definition - var declaration = forEach(result.declarations, d => isBlockOrCatchScoped(d) ? d : undefined); + let declaration = forEach(result.declarations, d => isBlockOrCatchScoped(d) ? d : undefined); Debug.assert(declaration !== undefined, "Block-scoped variable declaration is undefined"); // first check if usage is lexically located after the declaration - var isUsedBeforeDeclaration = !isDefinedBefore(declaration, errorLocation); + let isUsedBeforeDeclaration = !isDefinedBefore(declaration, errorLocation); if (!isUsedBeforeDeclaration) { // lexical check succeeded however code still can be illegal. // - block scoped variables cannot be used in its initializers @@ -459,8 +460,8 @@ module ts { // for (let x of x) // climb up to the variable declaration skipping binding patterns - var variableDeclaration = getAncestor(declaration, SyntaxKind.VariableDeclaration); - var container = getEnclosingBlockScopeContainer(variableDeclaration); + let variableDeclaration = getAncestor(declaration, SyntaxKind.VariableDeclaration); + let container = getEnclosingBlockScopeContainer(variableDeclaration); if (variableDeclaration.parent.parent.kind === SyntaxKind.VariableStatement || variableDeclaration.parent.parent.kind === SyntaxKind.ForStatement) { @@ -471,7 +472,7 @@ module ts { else if (variableDeclaration.parent.parent.kind === SyntaxKind.ForOfStatement || variableDeclaration.parent.parent.kind === SyntaxKind.ForInStatement) { // ForIn/ForOf case - use site should not be used in expression part - var expression = (variableDeclaration.parent.parent).expression; + let expression = (variableDeclaration.parent.parent).expression; isUsedBeforeDeclaration = isSameScopeDescendentOf(errorLocation, expression, container); } } @@ -488,7 +489,7 @@ module ts { if (!parent) { return false; } - for (var current = initial; current && current !== stopAt && !isFunctionLike(current); current = current.parent) { + for (let current = initial; current && current !== stopAt && !isFunctionLike(current); current = current.parent) { if (current === parent) { return true; } @@ -518,17 +519,17 @@ module ts { function getTargetOfImportEqualsDeclaration(node: ImportEqualsDeclaration): Symbol { if (node.moduleReference.kind === SyntaxKind.ExternalModuleReference) { - var moduleSymbol = resolveExternalModuleName(node, getExternalModuleImportEqualsDeclarationExpression(node)); - var exportAssignmentSymbol = moduleSymbol && getResolvedExportAssignmentSymbol(moduleSymbol); + let moduleSymbol = resolveExternalModuleName(node, getExternalModuleImportEqualsDeclarationExpression(node)); + let exportAssignmentSymbol = moduleSymbol && getResolvedExportAssignmentSymbol(moduleSymbol); return exportAssignmentSymbol || moduleSymbol; } return getSymbolOfPartOfRightHandSideOfImportEquals(node.moduleReference, node); } function getTargetOfImportClause(node: ImportClause): Symbol { - var moduleSymbol = resolveExternalModuleName(node, (node.parent).moduleSpecifier); + let moduleSymbol = resolveExternalModuleName(node, (node.parent).moduleSpecifier); if (moduleSymbol) { - var exportAssignmentSymbol = getResolvedExportAssignmentSymbol(moduleSymbol); + let exportAssignmentSymbol = getResolvedExportAssignmentSymbol(moduleSymbol); if (!exportAssignmentSymbol) { error(node.name, Diagnostics.External_module_0_has_no_default_export_or_export_assignment, symbolToString(moduleSymbol)); } @@ -541,11 +542,11 @@ module ts { } function getExternalModuleMember(node: ImportDeclaration | ExportDeclaration, specifier: ImportOrExportSpecifier): Symbol { - var moduleSymbol = resolveExternalModuleName(node, node.moduleSpecifier); + let moduleSymbol = resolveExternalModuleName(node, node.moduleSpecifier); if (moduleSymbol) { - var name = specifier.propertyName || specifier.name; + let name = specifier.propertyName || specifier.name; if (name.text) { - var symbol = getSymbol(getExportsOfSymbol(moduleSymbol), name.text, SymbolFlags.Value | SymbolFlags.Type | SymbolFlags.Namespace); + let symbol = getSymbol(getExportsOfSymbol(moduleSymbol), name.text, SymbolFlags.Value | SymbolFlags.Type | SymbolFlags.Namespace); if (!symbol) { error(name, Diagnostics.Module_0_has_no_exported_member_1, getFullyQualifiedName(moduleSymbol), declarationNameToString(name)); return; @@ -588,11 +589,11 @@ module ts { function resolveAlias(symbol: Symbol): Symbol { Debug.assert((symbol.flags & SymbolFlags.Alias) !== 0, "Should only get Alias here."); - var links = getSymbolLinks(symbol); + let links = getSymbolLinks(symbol); if (!links.target) { links.target = resolvingSymbol; - var node = getDeclarationOfAliasSymbol(symbol); - var target = getTargetOfImportDeclaration(node); + let node = getDeclarationOfAliasSymbol(symbol); + let target = getTargetOfImportDeclaration(node); if (links.target === resolvingSymbol) { links.target = target || unknownSymbol; } @@ -607,8 +608,8 @@ module ts { } function markExportAsReferenced(node: ImportEqualsDeclaration | ExportAssignment | ExportSpecifier) { - var symbol = getSymbolOfNode(node); - var target = resolveAlias(symbol); + let symbol = getSymbolOfNode(node); + let target = resolveAlias(symbol); if (target && target !== unknownSymbol && target.flags & SymbolFlags.Value && !isConstEnumOrConstEnumOnlyModule(target)) { markAliasSymbolAsReferenced(symbol); } @@ -618,10 +619,10 @@ module ts { // we reach a non-alias or an exported entity (which is always considered referenced). We do this by checking the target of // the alias as an expression (which recursively takes us back here if the target references another alias). function markAliasSymbolAsReferenced(symbol: Symbol) { - var links = getSymbolLinks(symbol); + let links = getSymbolLinks(symbol); if (!links.referenced) { links.referenced = true; - var node = getDeclarationOfAliasSymbol(symbol); + let node = getDeclarationOfAliasSymbol(symbol); if (node.kind === SyntaxKind.ExportAssignment && (node).expression) { // export default checkExpressionCached((node).expression); @@ -673,19 +674,21 @@ module ts { if (getFullWidth(name) === 0) { return undefined; } + + let symbol: Symbol; if (name.kind === SyntaxKind.Identifier) { - var symbol = resolveName(name, (name).text, meaning, Diagnostics.Cannot_find_name_0, name); + symbol = resolveName(name, (name).text, meaning, Diagnostics.Cannot_find_name_0, name); if (!symbol) { return undefined; } } else if (name.kind === SyntaxKind.QualifiedName) { - var namespace = resolveEntityName((name).left, SymbolFlags.Namespace); + let namespace = resolveEntityName((name).left, SymbolFlags.Namespace); if (!namespace || namespace === unknownSymbol || getFullWidth((name).right) === 0) { return undefined; } - var right = (name).right; - var symbol = getSymbol(getExportsOfSymbol(namespace), right.text, meaning); + let right = (name).right; + symbol = getSymbol(getExportsOfSymbol(namespace), right.text, meaning); if (!symbol) { error(right, Diagnostics.Module_0_has_no_exported_member_1, getFullyQualifiedName(namespace), declarationNameToString(right)); return undefined; @@ -706,27 +709,35 @@ module ts { return; } - var moduleReferenceLiteral = moduleReferenceExpression; - var searchPath = getDirectoryPath(getSourceFile(location).fileName); + let moduleReferenceLiteral = moduleReferenceExpression; + let searchPath = getDirectoryPath(getSourceFile(location).fileName); // Module names are escaped in our symbol table. However, string literal values aren't. // Escape the name in the "require(...)" clause to ensure we find the right symbol. - var moduleName = escapeIdentifier(moduleReferenceLiteral.text); + let moduleName = escapeIdentifier(moduleReferenceLiteral.text); if (!moduleName) return; - var isRelative = isExternalModuleNameRelative(moduleName); + let isRelative = isExternalModuleNameRelative(moduleName); if (!isRelative) { - var symbol = getSymbol(globals, '"' + moduleName + '"', SymbolFlags.ValueModule); + let symbol = getSymbol(globals, '"' + moduleName + '"', SymbolFlags.ValueModule); if (symbol) { return symbol; } } + + let sourceFile: SourceFile; while (true) { - var fileName = normalizePath(combinePaths(searchPath, moduleName)); - var sourceFile = host.getSourceFile(fileName + ".ts") || host.getSourceFile(fileName + ".d.ts"); - if (sourceFile || isRelative) break; - var parentPath = getDirectoryPath(searchPath); - if (parentPath === searchPath) break; + let fileName = normalizePath(combinePaths(searchPath, moduleName)); + sourceFile = host.getSourceFile(fileName + ".ts") || host.getSourceFile(fileName + ".d.ts"); + if (sourceFile || isRelative) { + break; + } + + let parentPath = getDirectoryPath(searchPath); + if (parentPath === searchPath) { + break; + } + searchPath = parentPath; } if (sourceFile) { @@ -744,7 +755,7 @@ module ts { } function getResolvedExportAssignmentSymbol(moduleSymbol: Symbol): Symbol { - var symbol = getExportAssignmentSymbol(moduleSymbol); + let symbol = getExportAssignmentSymbol(moduleSymbol); if (symbol) { if (symbol.flags & (SymbolFlags.Value | SymbolFlags.Type | SymbolFlags.Namespace)) { return symbol; @@ -760,12 +771,12 @@ module ts { } function getExportsOfModule(moduleSymbol: Symbol): SymbolTable { - var links = getSymbolLinks(moduleSymbol); + let links = getSymbolLinks(moduleSymbol); return links.resolvedExports || (links.resolvedExports = getExportsForModule(moduleSymbol)); } function extendExportSymbols(target: SymbolTable, source: SymbolTable) { - for (var id in source) { + for (let id in source) { if (id !== "default" && !hasProperty(target, id)) { target[id] = source[id]; } @@ -775,15 +786,15 @@ module ts { function getExportsForModule(moduleSymbol: Symbol): SymbolTable { if (compilerOptions.target < ScriptTarget.ES6) { // A default export hides all other exports in CommonJS and AMD modules - var defaultSymbol = getExportAssignmentSymbol(moduleSymbol); + let defaultSymbol = getExportAssignmentSymbol(moduleSymbol); if (defaultSymbol) { return { "default": defaultSymbol }; } } - var result: SymbolTable; - var visitedSymbols: Symbol[] = []; + let result: SymbolTable; + let visitedSymbols: Symbol[] = []; visit(moduleSymbol); return result || moduleSymbol.exports; @@ -799,7 +810,7 @@ module ts { extendExportSymbols(result, symbol.exports); } // All export * declarations are collected in an __export symbol by the binder - var exportStars = symbol.exports["__export"]; + let exportStars = symbol.exports["__export"]; if (exportStars) { forEach(exportStars.declarations, node => { visit(resolveExternalModuleName(node, (node).moduleSpecifier)); @@ -810,7 +821,7 @@ module ts { } function getMergedSymbol(symbol: Symbol): Symbol { - var merged: Symbol; + let merged: Symbol; return symbol && symbol.mergeId && (merged = mergedSymbols[symbol.mergeId]) ? merged : symbol; } @@ -849,9 +860,8 @@ module ts { } function findConstructorDeclaration(node: ClassDeclaration): ConstructorDeclaration { - var members = node.members; - for (var i = 0; i < members.length; i++) { - var member = members[i]; + let members = node.members; + for (let member of members) { if (member.kind === SyntaxKind.Constructor && nodeIsPresent((member).body)) { return member; } @@ -859,19 +869,19 @@ module ts { } function createType(flags: TypeFlags): Type { - var result = new Type(checker, flags); + let result = new Type(checker, flags); result.id = typeCount++; return result; } function createIntrinsicType(kind: TypeFlags, intrinsicName: string): IntrinsicType { - var type = createType(kind); + let type = createType(kind); type.intrinsicName = intrinsicName; return type; } function createObjectType(kind: TypeFlags, symbol?: Symbol): ObjectType { - var type = createType(kind); + let type = createType(kind); type.symbol = symbol; return type; } @@ -888,12 +898,12 @@ module ts { } function getNamedMembers(members: SymbolTable): Symbol[] { - var result: Symbol[]; - for (var id in members) { + let result: Symbol[]; + for (let id in members) { if (hasProperty(members, id)) { if (!isReservedMemberName(id)) { if (!result) result = []; - var symbol = members[id]; + let symbol = members[id]; if (symbolIsValue(symbol)) { result.push(symbol); } @@ -919,8 +929,8 @@ module ts { } function forEachSymbolTableInScope(enclosingDeclaration: Node, callback: (symbolTable: SymbolTable) => T): T { - var result: T; - for (var location = enclosingDeclaration; location; location = location.parent) { + let result: T; + for (let location = enclosingDeclaration; location; location = location.parent) { // Locals of a source file are not in scope (because they get merged into the global symbol table) if (location.locals && !isGlobalSourceFile(location)) { if (result = callback(location.locals)) { @@ -963,7 +973,7 @@ module ts { } // If symbol needs qualification, make sure that parent is accessible, if it is then this symbol is accessible too - var accessibleParent = getAccessibleSymbolChain(symbolFromSymbolTable.parent, enclosingDeclaration, getQualifiedLeftMeaning(meaning), useOnlyExternalAliasing); + let accessibleParent = getAccessibleSymbolChain(symbolFromSymbolTable.parent, enclosingDeclaration, getQualifiedLeftMeaning(meaning), useOnlyExternalAliasing); return !!accessibleParent; } @@ -989,14 +999,14 @@ module ts { // Is this external alias, then use it to name ts.forEach(symbolFromSymbolTable.declarations, isExternalModuleImportEqualsDeclaration)) { - var resolvedImportedSymbol = resolveAlias(symbolFromSymbolTable); + let resolvedImportedSymbol = resolveAlias(symbolFromSymbolTable); if (isAccessible(symbolFromSymbolTable, resolveAlias(symbolFromSymbolTable))) { return [symbolFromSymbolTable]; } // Look in the exported members, if we can find accessibleSymbolChain, symbol is accessible using this chain // but only if the symbolFromSymbolTable can be qualified - var accessibleSymbolsFromExports = resolvedImportedSymbol.exports ? getAccessibleSymbolChainFromSymbolTable(resolvedImportedSymbol.exports) : undefined; + let accessibleSymbolsFromExports = resolvedImportedSymbol.exports ? getAccessibleSymbolChainFromSymbolTable(resolvedImportedSymbol.exports) : undefined; if (accessibleSymbolsFromExports && canQualifySymbol(symbolFromSymbolTable, getQualifiedLeftMeaning(meaning))) { return [symbolFromSymbolTable].concat(accessibleSymbolsFromExports); } @@ -1011,7 +1021,7 @@ module ts { } function needsQualification(symbol: Symbol, enclosingDeclaration: Node, meaning: SymbolFlags) { - var qualify = false; + let qualify = false; forEachSymbolTableInScope(enclosingDeclaration, symbolTable => { // If symbol of this name is not available in the symbol table we are ok if (!hasProperty(symbolTable, symbol.name)) { @@ -1019,7 +1029,7 @@ module ts { return false; } // If the symbol with this name is present it should refer to the symbol - var symbolFromSymbolTable = symbolTable[symbol.name]; + let symbolFromSymbolTable = symbolTable[symbol.name]; if (symbolFromSymbolTable === symbol) { // No need to qualify return true; @@ -1041,13 +1051,13 @@ module ts { function isSymbolAccessible(symbol: Symbol, enclosingDeclaration: Node, meaning: SymbolFlags): SymbolAccessiblityResult { if (symbol && enclosingDeclaration && !(symbol.flags & SymbolFlags.TypeParameter)) { - var initialSymbol = symbol; - var meaningToLook = meaning; + let initialSymbol = symbol; + let meaningToLook = meaning; while (symbol) { // Symbol is accessible if it by itself is accessible - var accessibleSymbolChain = getAccessibleSymbolChain(symbol, enclosingDeclaration, meaningToLook, /*useOnlyExternalAliasing*/ false); + let accessibleSymbolChain = getAccessibleSymbolChain(symbol, enclosingDeclaration, meaningToLook, /*useOnlyExternalAliasing*/ false); if (accessibleSymbolChain) { - var hasAccessibleDeclarations = hasVisibleDeclarations(accessibleSymbolChain[0]); + let hasAccessibleDeclarations = hasVisibleDeclarations(accessibleSymbolChain[0]); if (!hasAccessibleDeclarations) { return { accessibility: SymbolAccessibility.NotAccessible, @@ -1065,7 +1075,7 @@ module ts { // export class c { // } // } - // var x: typeof m.c + // let x: typeof m.c // In the above example when we start with checking if typeof m.c symbol is accessible, // we are going to see if c can be accessed in scope directly. // But it can't, hence the accessible is going to be undefined, but that doesn't mean m.c is inaccessible @@ -1076,9 +1086,9 @@ module ts { // This could be a symbol that is not exported in the external module // or it could be a symbol from different external module that is not aliased and hence cannot be named - var symbolExternalModule = forEach(initialSymbol.declarations, getExternalModuleContainer); + let symbolExternalModule = forEach(initialSymbol.declarations, getExternalModuleContainer); if (symbolExternalModule) { - var enclosingExternalModule = getExternalModuleContainer(enclosingDeclaration); + let enclosingExternalModule = getExternalModuleContainer(enclosingDeclaration); if (symbolExternalModule !== enclosingExternalModule) { // name from different external module that is not visible return { @@ -1113,7 +1123,7 @@ module ts { } function hasVisibleDeclarations(symbol: Symbol): SymbolVisibilityResult { - var aliasesToMakeVisible: ImportEqualsDeclaration[]; + let aliasesToMakeVisible: ImportEqualsDeclaration[]; if (forEach(symbol.declarations, declaration => !getIsDeclarationVisible(declaration))) { return undefined; } @@ -1148,7 +1158,7 @@ module ts { function isEntityNameVisible(entityName: EntityName, enclosingDeclaration: Node): SymbolVisibilityResult { // get symbol of the first identifier of the entityName - var meaning: SymbolFlags; + let meaning: SymbolFlags; if (entityName.parent.kind === SyntaxKind.TypeQuery) { // Typeof value meaning = SymbolFlags.Value | SymbolFlags.ExportValue; @@ -1164,8 +1174,8 @@ module ts { meaning = SymbolFlags.Type; } - var firstIdentifier = getFirstIdentifier(entityName); - var symbol = resolveName(enclosingDeclaration, (firstIdentifier).text, meaning, /*nodeNotFoundErrorMessage*/ undefined, /*nameArg*/ undefined); + let firstIdentifier = getFirstIdentifier(entityName); + let symbol = resolveName(enclosingDeclaration, (firstIdentifier).text, meaning, /*nodeNotFoundErrorMessage*/ undefined, /*nameArg*/ undefined); // Verify if the symbol is accessible return (symbol && hasVisibleDeclarations(symbol)) || { @@ -1188,23 +1198,23 @@ module ts { } function symbolToString(symbol: Symbol, enclosingDeclaration?: Node, meaning?: SymbolFlags): string { - var writer = getSingleLineStringWriter(); + let writer = getSingleLineStringWriter(); getSymbolDisplayBuilder().buildSymbolDisplay(symbol, writer, enclosingDeclaration, meaning); - var result = writer.string(); + let result = writer.string(); releaseStringWriter(writer); return result; } function typeToString(type: Type, enclosingDeclaration?: Node, flags?: TypeFormatFlags): string { - var writer = getSingleLineStringWriter(); + let writer = getSingleLineStringWriter(); getSymbolDisplayBuilder().buildTypeDisplay(type, writer, enclosingDeclaration, flags); - var result = writer.string(); + let result = writer.string(); releaseStringWriter(writer); - var maxLength = compilerOptions.noErrorTruncation || flags & TypeFormatFlags.NoTruncation ? undefined : 100; + let maxLength = compilerOptions.noErrorTruncation || flags & TypeFormatFlags.NoTruncation ? undefined : 100; if (maxLength && result.length >= maxLength) { result = result.substr(0, maxLength - "...".length) + "..."; } @@ -1214,7 +1224,7 @@ module ts { function getTypeAliasForTypeLiteral(type: Type): Symbol { if (type.symbol && type.symbol.flags & SymbolFlags.TypeLiteral) { - var node = type.symbol.declarations[0].parent; + let node = type.symbol.declarations[0].parent; while (node.kind === SyntaxKind.ParenthesizedType) { node = node.parent; } @@ -1226,7 +1236,7 @@ module ts { } // This is for caching the result of getSymbolDisplayBuilder. Do not access directly. - var _displayBuilder: SymbolDisplayBuilder; + let _displayBuilder: SymbolDisplayBuilder; function getSymbolDisplayBuilder(): SymbolDisplayBuilder { /** * Writes only the name of the symbol out to the writer. Uses the original source text @@ -1234,7 +1244,7 @@ module ts { */ function appendSymbolNameOnly(symbol: Symbol, writer: SymbolWriter): void { if (symbol.declarations && symbol.declarations.length > 0) { - var declaration = symbol.declarations[0]; + let declaration = symbol.declarations[0]; if (declaration.name) { writer.writeSymbol(declarationNameToString(declaration.name), symbol); return; @@ -1249,7 +1259,7 @@ module ts { * Meaning needs to be specified if the enclosing declaration is given */ function buildSymbolDisplay(symbol: Symbol, writer: SymbolWriter, enclosingDeclaration?: Node, meaning?: SymbolFlags, flags?: SymbolFormatFlags, typeFlags?: TypeFormatFlags): void { - var parentSymbol: Symbol; + let parentSymbol: Symbol; function appendParentTypeArgumentsAndSymbolName(symbol: Symbol): void { if (parentSymbol) { // Write type arguments of instantiated class/interface here @@ -1278,7 +1288,7 @@ module ts { writer.trackSymbol(symbol, enclosingDeclaration, meaning); function walkSymbol(symbol: Symbol, meaning: SymbolFlags): void { if (symbol) { - var accessibleSymbolChain = getAccessibleSymbolChain(symbol, enclosingDeclaration, meaning, !!(flags & SymbolFormatFlags.UseOnlyExternalAliasing)); + let accessibleSymbolChain = getAccessibleSymbolChain(symbol, enclosingDeclaration, meaning, !!(flags & SymbolFormatFlags.UseOnlyExternalAliasing)); if (!accessibleSymbolChain || needsQualification(accessibleSymbolChain[0], enclosingDeclaration, accessibleSymbolChain.length === 1 ? meaning : getQualifiedLeftMeaning(meaning))) { @@ -1290,8 +1300,8 @@ module ts { } if (accessibleSymbolChain) { - for (var i = 0, n = accessibleSymbolChain.length; i < n; i++) { - appendParentTypeArgumentsAndSymbolName(accessibleSymbolChain[i]); + for (let accessibleSymbol of accessibleSymbolChain) { + appendParentTypeArgumentsAndSymbolName(accessibleSymbol); } } else { @@ -1313,8 +1323,8 @@ module ts { // Get qualified name if the symbol is not a type parameter // and there is an enclosing declaration or we specifically // asked for it - var isTypeParameter = symbol.flags & SymbolFlags.TypeParameter; - var typeFormatFlag = TypeFormatFlags.UseFullyQualifiedType & typeFlags; + let isTypeParameter = symbol.flags & SymbolFlags.TypeParameter; + let typeFormatFlag = TypeFormatFlags.UseFullyQualifiedType & typeFlags; if (!isTypeParameter && (enclosingDeclaration || typeFormatFlag)) { walkSymbol(symbol, meaning); return; @@ -1324,7 +1334,7 @@ module ts { } function buildTypeDisplay(type: Type, writer: SymbolWriter, enclosingDeclaration?: Node, globalFlags?: TypeFormatFlags, typeStack?: Type[]) { - var globalFlagsToPass = globalFlags & TypeFormatFlags.WriteOwnNameForAnyLike; + let globalFlagsToPass = globalFlags & TypeFormatFlags.WriteOwnNameForAnyLike; return writeType(type, globalFlags); function writeType(type: Type, flags: TypeFormatFlags) { @@ -1365,7 +1375,7 @@ module ts { } function writeTypeList(types: Type[], union: boolean) { - for (var i = 0; i < types.length; i++) { + for (let i = 0; i < types.length; i++) { if (i > 0) { if (union) { writeSpace(writer); @@ -1418,7 +1428,7 @@ module ts { } else if (typeStack && contains(typeStack, type)) { // If type is an anonymous type literal in a type alias declaration, use type alias name - var typeAlias = getTypeAliasForTypeLiteral(type); + let typeAlias = getTypeAliasForTypeLiteral(type); if (typeAlias) { // The specified symbol flags need to be reinterpreted as type flags buildSymbolDisplay(typeAlias, writer, enclosingDeclaration, SymbolFlags.Type, SymbolFormatFlags.None, flags); @@ -1439,9 +1449,9 @@ module ts { function shouldWriteTypeOfFunctionSymbol() { if (type.symbol) { - var isStaticMethodSymbol = !!(type.symbol.flags & SymbolFlags.Method && // typeof static method + let isStaticMethodSymbol = !!(type.symbol.flags & SymbolFlags.Method && // typeof static method ts.forEach(type.symbol.declarations, declaration => declaration.flags & NodeFlags.Static)); - var isNonLocalFunctionSymbol = !!(type.symbol.flags & SymbolFlags.Function) && + let isNonLocalFunctionSymbol = !!(type.symbol.flags & SymbolFlags.Function) && (type.symbol.parent || // is exported function symbol ts.forEach(type.symbol.declarations, declaration => declaration.parent.kind === SyntaxKind.SourceFile || declaration.parent.kind === SyntaxKind.ModuleBlock)); @@ -1462,7 +1472,7 @@ module ts { } function getIndexerParameterName(type: ObjectType, indexKind: IndexKind, fallbackName: string): string { - var declaration = getIndexDeclarationOfSymbol(type.symbol, indexKind); + let declaration = getIndexDeclarationOfSymbol(type.symbol, indexKind); if (!declaration) { // declaration might not be found if indexer was added from the contextual type. // in this case use fallback name @@ -1473,7 +1483,7 @@ module ts { } function writeLiteralType(type: ObjectType, flags: TypeFormatFlags) { - var resolved = resolveObjectOrUnionTypeMembers(type); + let resolved = resolveObjectOrUnionTypeMembers(type); if (!resolved.properties.length && !resolved.stringIndexType && !resolved.numberIndexType) { if (!resolved.callSignatures.length && !resolved.constructSignatures.length) { writePunctuation(writer, SyntaxKind.OpenBraceToken); @@ -1508,16 +1518,16 @@ module ts { writePunctuation(writer, SyntaxKind.OpenBraceToken); writer.writeLine(); writer.increaseIndent(); - for (var i = 0; i < resolved.callSignatures.length; i++) { - buildSignatureDisplay(resolved.callSignatures[i], writer, enclosingDeclaration, globalFlagsToPass, typeStack); + for (let signature of resolved.callSignatures) { + buildSignatureDisplay(signature, writer, enclosingDeclaration, globalFlagsToPass, typeStack); writePunctuation(writer, SyntaxKind.SemicolonToken); writer.writeLine(); } - for (var i = 0; i < resolved.constructSignatures.length; i++) { + for (let signature of resolved.constructSignatures) { writeKeyword(writer, SyntaxKind.NewKeyword); writeSpace(writer); - buildSignatureDisplay(resolved.constructSignatures[i], writer, enclosingDeclaration, globalFlagsToPass, typeStack); + buildSignatureDisplay(signature, writer, enclosingDeclaration, globalFlagsToPass, typeStack); writePunctuation(writer, SyntaxKind.SemicolonToken); writer.writeLine(); } @@ -1549,17 +1559,16 @@ module ts { writePunctuation(writer, SyntaxKind.SemicolonToken); writer.writeLine(); } - for (var i = 0; i < resolved.properties.length; i++) { - var p = resolved.properties[i]; - var t = getTypeOfSymbol(p); + for (let p of resolved.properties) { + let t = getTypeOfSymbol(p); if (p.flags & (SymbolFlags.Function | SymbolFlags.Method) && !getPropertiesOfObjectType(t).length) { - var signatures = getSignaturesOfType(t, SignatureKind.Call); - for (var j = 0; j < signatures.length; j++) { + let signatures = getSignaturesOfType(t, SignatureKind.Call); + for (let signature of signatures) { buildSymbolDisplay(p, writer); if (p.flags & SymbolFlags.Optional) { writePunctuation(writer, SyntaxKind.QuestionToken); } - buildSignatureDisplay(signatures[j], writer, enclosingDeclaration, globalFlagsToPass, typeStack); + buildSignatureDisplay(signature, writer, enclosingDeclaration, globalFlagsToPass, typeStack); writePunctuation(writer, SyntaxKind.SemicolonToken); writer.writeLine(); } @@ -1582,7 +1591,7 @@ module ts { } function buildTypeParameterDisplayFromSymbol(symbol: Symbol, writer: SymbolWriter, enclosingDeclaraiton?: Node, flags?: TypeFormatFlags) { - var targetSymbol = getTargetSymbol(symbol); + let targetSymbol = getTargetSymbol(symbol); if (targetSymbol.flags & SymbolFlags.Class || targetSymbol.flags & SymbolFlags.Interface) { buildDisplayForTypeParametersAndDelimiters(getTypeParametersOfClassOrInterface(symbol), writer, enclosingDeclaraiton, flags); } @@ -1590,7 +1599,7 @@ module ts { function buildTypeParameterDisplay(tp: TypeParameter, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags, typeStack?: Type[]) { appendSymbolNameOnly(tp.symbol, writer); - var constraint = getConstraintOfTypeParameter(tp); + let constraint = getConstraintOfTypeParameter(tp); if (constraint) { writeSpace(writer); writeKeyword(writer, SyntaxKind.ExtendsKeyword); @@ -1616,7 +1625,7 @@ module ts { function buildDisplayForTypeParametersAndDelimiters(typeParameters: TypeParameter[], writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags, typeStack?: Type[]) { if (typeParameters && typeParameters.length) { writePunctuation(writer, SyntaxKind.LessThanToken); - for (var i = 0; i < typeParameters.length; i++) { + for (let i = 0; i < typeParameters.length; i++) { if (i > 0) { writePunctuation(writer, SyntaxKind.CommaToken); writeSpace(writer); @@ -1630,7 +1639,7 @@ module ts { function buildDisplayForTypeArgumentsAndDelimiters(typeParameters: TypeParameter[], mapper: TypeMapper, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags, typeStack?: Type[]) { if (typeParameters && typeParameters.length) { writePunctuation(writer, SyntaxKind.LessThanToken); - for (var i = 0; i < typeParameters.length; i++) { + for (let i = 0; i < typeParameters.length; i++) { if (i > 0) { writePunctuation(writer, SyntaxKind.CommaToken); writeSpace(writer); @@ -1643,7 +1652,7 @@ module ts { function buildDisplayForParametersAndDelimiters(parameters: Symbol[], writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags, typeStack?: Type[]) { writePunctuation(writer, SyntaxKind.OpenParenToken); - for (var i = 0; i < parameters.length; i++) { + for (let i = 0; i < parameters.length; i++) { if (i > 0) { writePunctuation(writer, SyntaxKind.CommaToken); writeSpace(writer); @@ -1712,13 +1721,14 @@ module ts { function isUsedInExportAssignment(node: Node) { // Get source File and see if it is external module and has export assigned symbol - var externalModule = getContainingExternalModule(node); + let externalModule = getContainingExternalModule(node); + let exportAssignmentSymbol: Symbol; + let resolvedExportSymbol: Symbol; if (externalModule) { // This is export assigned symbol node - var externalModuleSymbol = getSymbolOfNode(externalModule); - var exportAssignmentSymbol = getExportAssignmentSymbol(externalModuleSymbol); - var resolvedExportSymbol: Symbol; - var symbolOfNode = getSymbolOfNode(node); + let externalModuleSymbol = getSymbolOfNode(externalModule); + exportAssignmentSymbol = getExportAssignmentSymbol(externalModuleSymbol); + let symbolOfNode = getSymbolOfNode(node); if (isSymbolUsedInExportAssignment(symbolOfNode)) { return true; } @@ -1766,7 +1776,7 @@ module ts { case SyntaxKind.FunctionDeclaration: case SyntaxKind.EnumDeclaration: case SyntaxKind.ImportEqualsDeclaration: - var parent = getDeclarationContainer(node); + let parent = getDeclarationContainer(node); // If the node is not exported or it is not ambient module element (except import declaration) if (!(getCombinedNodeFlags(node) & NodeFlags.Export) && !(node.kind !== SyntaxKind.ImportEqualsDeclaration && parent.kind !== SyntaxKind.SourceFile && isInAmbientContext(parent))) { @@ -1815,7 +1825,7 @@ module ts { } if (node) { - var links = getNodeLinks(node); + let links = getNodeLinks(node); if (links.isVisible === undefined) { links.isVisible = !!determineIfDeclarationIsVisible(); } @@ -1843,20 +1853,20 @@ module ts { // Every class automatically contains a static property member named 'prototype', // the type of which is an instantiation of the class type with type Any supplied as a type argument for each type parameter. // It is an error to explicitly declare a static property member with the name 'prototype'. - var classType = getDeclaredTypeOfSymbol(prototype.parent); + let classType = getDeclaredTypeOfSymbol(prototype.parent); return classType.typeParameters ? createTypeReference(classType, map(classType.typeParameters, _ => anyType)) : classType; } // Return the type of the given property in the given type, or undefined if no such property exists function getTypeOfPropertyOfType(type: Type, name: string): Type { - var prop = getPropertyOfType(type, name); + let prop = getPropertyOfType(type, name); return prop ? getTypeOfSymbol(prop) : undefined; } // Return the inferred type for a binding element function getTypeForBindingElement(declaration: BindingElement): Type { - var pattern = declaration.parent; - var parentType = getTypeForVariableLikeDeclaration(pattern.parent); + let pattern = declaration.parent; + let parentType = getTypeForVariableLikeDeclaration(pattern.parent); // If parent has the unknown (error) type, then so does this binding element if (parentType === unknownType) { return unknownType; @@ -1870,12 +1880,14 @@ module ts { } return parentType; } + + let type: Type; if (pattern.kind === SyntaxKind.ObjectBindingPattern) { // Use explicitly specified property name ({ p: xxx } form), or otherwise the implied name ({ p } form) - var name = declaration.propertyName || declaration.name; + let name = declaration.propertyName || declaration.name; // Use type of the specified property, or otherwise, for a numeric name, the type of the numeric index signature, // or otherwise the type of the string index signature. - var type = getTypeOfPropertyOfType(parentType, name.text) || + type = getTypeOfPropertyOfType(parentType, name.text) || isNumericLiteralName(name.text) && getIndexTypeOfType(parentType, IndexKind.Number) || getIndexTypeOfType(parentType, IndexKind.String); if (!type) { @@ -1891,8 +1903,8 @@ module ts { } if (!declaration.dotDotDotToken) { // Use specific property type when parent is a tuple or numeric index type when parent is an array - var propName = "" + indexOf(pattern.elements, declaration); - var type = isTupleLikeType(parentType) ? getTypeOfPropertyOfType(parentType, propName) : getIndexTypeOfType(parentType, IndexKind.Number); + let propName = "" + indexOf(pattern.elements, declaration); + type = isTupleLikeType(parentType) ? getTypeOfPropertyOfType(parentType, propName) : getIndexTypeOfType(parentType, IndexKind.Number); if (!type) { if (isTupleType(parentType)) { error(declaration, Diagnostics.Tuple_type_0_with_length_1_cannot_be_assigned_to_tuple_with_length_2, typeToString(parentType), (parentType).elementTypes.length, pattern.elements.length); @@ -1905,7 +1917,7 @@ module ts { } else { // Rest element has an array type with the same element type as the parent type - var type = createArrayType(getIndexTypeOfType(parentType, IndexKind.Number)); + type = createArrayType(getIndexTypeOfType(parentType, IndexKind.Number)); } } return type; @@ -1932,16 +1944,16 @@ module ts { return getTypeFromTypeNode(declaration.type); } if (declaration.kind === SyntaxKind.Parameter) { - var func = declaration.parent; + let func = declaration.parent; // For a parameter of a set accessor, use the type of the get accessor if one is present if (func.kind === SyntaxKind.SetAccessor && !hasDynamicName(func)) { - var getter = getDeclarationOfKind(declaration.parent.symbol, SyntaxKind.GetAccessor); + let getter = getDeclarationOfKind(declaration.parent.symbol, SyntaxKind.GetAccessor); if (getter) { return getReturnTypeOfSignature(getSignatureFromDeclaration(getter)); } } // Use contextual parameter type if one is available - var type = getContextuallyTypedParameterType(declaration); + let type = getContextuallyTypedParameterType(declaration); if (type) { return type; } @@ -1973,11 +1985,11 @@ module ts { // Return the type implied by an object binding pattern function getTypeFromObjectBindingPattern(pattern: BindingPattern): Type { - var members: SymbolTable = {}; + let members: SymbolTable = {}; forEach(pattern.elements, e => { - var flags = SymbolFlags.Property | SymbolFlags.Transient | (e.initializer ? SymbolFlags.Optional : 0); - var name = e.propertyName || e.name; - var symbol = createSymbol(flags, name.text); + let flags = SymbolFlags.Property | SymbolFlags.Transient | (e.initializer ? SymbolFlags.Optional : 0); + let name = e.propertyName || e.name; + let symbol = createSymbol(flags, name.text); symbol.type = getTypeFromBindingElement(e); members[symbol.name] = symbol; }); @@ -1986,8 +1998,8 @@ module ts { // Return the type implied by an array binding pattern function getTypeFromArrayBindingPattern(pattern: BindingPattern): Type { - var hasSpreadElement: boolean = false; - var elementTypes: Type[] = []; + let hasSpreadElement: boolean = false; + let elementTypes: Type[] = []; forEach(pattern.elements, e => { elementTypes.push(e.kind === SyntaxKind.OmittedExpression || e.dotDotDotToken ? anyType : getTypeFromBindingElement(e)); if (e.dotDotDotToken) { @@ -2020,7 +2032,7 @@ module ts { // binding pattern [x, s = ""]. Because the contextual type is a tuple type, the resulting type of [1, "one"] is the // tuple type [number, string]. Thus, the type inferred for 'x' is number and the type inferred for 's' is string. function getWidenedTypeForVariableLikeDeclaration(declaration: VariableLikeDeclaration, reportErrors?: boolean): Type { - var type = getTypeForVariableLikeDeclaration(declaration); + let type = getTypeForVariableLikeDeclaration(declaration); if (type) { if (reportErrors) { reportErrorsFromWidening(declaration, type); @@ -2039,7 +2051,7 @@ module ts { type = declaration.dotDotDotToken ? anyArrayType : anyType; // Report implicit any errors unless this is a private property within an ambient declaration if (reportErrors && compilerOptions.noImplicitAny) { - var root = getRootDeclaration(declaration); + let root = getRootDeclaration(declaration); if (!isPrivateWithinAmbient(root) && !(root.kind === SyntaxKind.Parameter && isPrivateWithinAmbient(root.parent))) { reportImplicitAnyError(declaration, type); } @@ -2048,14 +2060,14 @@ module ts { } function getTypeOfVariableOrParameterOrProperty(symbol: Symbol): Type { - var links = getSymbolLinks(symbol); + let links = getSymbolLinks(symbol); if (!links.type) { // Handle prototype property if (symbol.flags & SymbolFlags.Prototype) { return links.type = getTypeOfPrototypeProperty(symbol); } // Handle catch clause variables - var declaration = symbol.valueDeclaration; + let declaration = symbol.valueDeclaration; if (declaration.parent.kind === SyntaxKind.CatchClause) { return links.type = anyType; } @@ -2074,7 +2086,7 @@ module ts { } // Handle variable, parameter or property links.type = resolvingType; - var type = getWidenedTypeForVariableLikeDeclaration(declaration, /*reportErrors*/ true); + let type = getWidenedTypeForVariableLikeDeclaration(declaration, /*reportErrors*/ true); if (links.type === resolvingType) { links.type = type; } @@ -2082,7 +2094,7 @@ module ts { else if (links.type === resolvingType) { links.type = anyType; if (compilerOptions.noImplicitAny) { - var diagnostic = (symbol.valueDeclaration).type ? + let diagnostic = (symbol.valueDeclaration).type ? Diagnostics._0_implicitly_has_type_any_because_it_is_referenced_directly_or_indirectly_in_its_own_type_annotation : Diagnostics._0_implicitly_has_type_any_because_it_is_does_not_have_a_type_annotation_and_is_referenced_directly_or_indirectly_in_its_own_initializer; error(symbol.valueDeclaration, diagnostic, symbolToString(symbol)); @@ -2101,7 +2113,7 @@ module ts { return accessor.type && getTypeFromTypeNode(accessor.type); } else { - var setterTypeAnnotation = getSetAccessorTypeAnnotationNode(accessor); + let setterTypeAnnotation = getSetAccessorTypeAnnotationNode(accessor); return setterTypeAnnotation && getTypeFromTypeNode(setterTypeAnnotation); } } @@ -2109,7 +2121,7 @@ module ts { } function getTypeOfAccessors(symbol: Symbol): Type { - var links = getSymbolLinks(symbol); + let links = getSymbolLinks(symbol); checkAndStoreTypeOfAccessors(symbol, links); return links.type; } @@ -2118,19 +2130,19 @@ module ts { links = links || getSymbolLinks(symbol); if (!links.type) { links.type = resolvingType; - var getter = getDeclarationOfKind(symbol, SyntaxKind.GetAccessor); - var setter = getDeclarationOfKind(symbol, SyntaxKind.SetAccessor); + let getter = getDeclarationOfKind(symbol, SyntaxKind.GetAccessor); + let setter = getDeclarationOfKind(symbol, SyntaxKind.SetAccessor); - var type: Type; + let type: Type; // First try to see if the user specified a return type on the get-accessor. - var getterReturnType = getAnnotatedAccessorType(getter); + let getterReturnType = getAnnotatedAccessorType(getter); if (getterReturnType) { type = getterReturnType; } else { // If the user didn't specify a return type, try to use the set-accessor's parameter type. - var setterParameterType = getAnnotatedAccessorType(setter); + let setterParameterType = getAnnotatedAccessorType(setter); if (setterParameterType) { type = setterParameterType; } @@ -2157,14 +2169,14 @@ module ts { else if (links.type === resolvingType) { links.type = anyType; if (compilerOptions.noImplicitAny) { - var getter = getDeclarationOfKind(symbol, SyntaxKind.GetAccessor); + let getter = getDeclarationOfKind(symbol, SyntaxKind.GetAccessor); error(getter, Diagnostics._0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions, symbolToString(symbol)); } } } function getTypeOfFuncClassEnumModule(symbol: Symbol): Type { - var links = getSymbolLinks(symbol); + let links = getSymbolLinks(symbol); if (!links.type) { links.type = createObjectType(TypeFlags.Anonymous, symbol); } @@ -2172,7 +2184,7 @@ module ts { } function getTypeOfEnumMember(symbol: Symbol): Type { - var links = getSymbolLinks(symbol); + let links = getSymbolLinks(symbol); if (!links.type) { links.type = getDeclaredTypeOfEnum(getParentOfSymbol(symbol)); } @@ -2180,7 +2192,7 @@ module ts { } function getTypeOfAlias(symbol: Symbol): Type { - var links = getSymbolLinks(symbol); + let links = getSymbolLinks(symbol); if (!links.type) { links.type = getTypeOfSymbol(resolveAlias(symbol)); } @@ -2188,7 +2200,7 @@ module ts { } function getTypeOfInstantiatedSymbol(symbol: Symbol): Type { - var links = getSymbolLinks(symbol); + let links = getSymbolLinks(symbol); if (!links.type) { links.type = instantiateType(getTypeOfSymbol(links.target), links.mapper); } @@ -2224,7 +2236,7 @@ module ts { function hasBaseType(type: InterfaceType, checkBase: InterfaceType) { return check(type); function check(type: InterfaceType): boolean { - var target = getTargetType(type); + let target = getTargetType(type); return target === checkBase || forEach(target.baseTypes, check); } } @@ -2233,13 +2245,13 @@ module ts { // the same, but even if they're not we still need the complete list to ensure instantiations supply type arguments // for all type parameters. function getTypeParametersOfClassOrInterface(symbol: Symbol): TypeParameter[] { - var result: TypeParameter[]; + let result: TypeParameter[]; forEach(symbol.declarations, node => { if (node.kind === SyntaxKind.InterfaceDeclaration || node.kind === SyntaxKind.ClassDeclaration) { - var declaration = node; + let declaration = node; if (declaration.typeParameters && declaration.typeParameters.length) { forEach(declaration.typeParameters, node => { - var tp = getDeclaredTypeOfTypeParameter(getSymbolOfNode(node)); + let tp = getDeclaredTypeOfTypeParameter(getSymbolOfNode(node)); if (!result) { result = [tp]; } @@ -2254,10 +2266,10 @@ module ts { } function getDeclaredTypeOfClass(symbol: Symbol): InterfaceType { - var links = getSymbolLinks(symbol); + let links = getSymbolLinks(symbol); if (!links.declaredType) { - var type = links.declaredType = createObjectType(TypeFlags.Class, symbol); - var typeParameters = getTypeParametersOfClassOrInterface(symbol); + let type = links.declaredType = createObjectType(TypeFlags.Class, symbol); + let typeParameters = getTypeParametersOfClassOrInterface(symbol); if (typeParameters) { type.flags |= TypeFlags.Reference; type.typeParameters = typeParameters; @@ -2267,10 +2279,10 @@ module ts { (type).typeArguments = type.typeParameters; } type.baseTypes = []; - var declaration = getDeclarationOfKind(symbol, SyntaxKind.ClassDeclaration); - var baseTypeNode = getClassBaseTypeNode(declaration); + let declaration = getDeclarationOfKind(symbol, SyntaxKind.ClassDeclaration); + let baseTypeNode = getClassBaseTypeNode(declaration); if (baseTypeNode) { - var baseType = getTypeFromTypeReferenceNode(baseTypeNode); + let baseType = getTypeFromTypeReferenceNode(baseTypeNode); if (baseType !== unknownType) { if (getTargetType(baseType).flags & TypeFlags.Class) { if (type !== baseType && !hasBaseType(baseType, type)) { @@ -2295,10 +2307,10 @@ module ts { } function getDeclaredTypeOfInterface(symbol: Symbol): InterfaceType { - var links = getSymbolLinks(symbol); + let links = getSymbolLinks(symbol); if (!links.declaredType) { - var type = links.declaredType = createObjectType(TypeFlags.Interface, symbol); - var typeParameters = getTypeParametersOfClassOrInterface(symbol); + let type = links.declaredType = createObjectType(TypeFlags.Interface, symbol); + let typeParameters = getTypeParametersOfClassOrInterface(symbol); if (typeParameters) { type.flags |= TypeFlags.Reference; type.typeParameters = typeParameters; @@ -2311,7 +2323,7 @@ module ts { forEach(symbol.declarations, declaration => { if (declaration.kind === SyntaxKind.InterfaceDeclaration && getInterfaceBaseTypeNodes(declaration)) { forEach(getInterfaceBaseTypeNodes(declaration), node => { - var baseType = getTypeFromTypeReferenceNode(node); + let baseType = getTypeFromTypeReferenceNode(node); if (baseType !== unknownType) { if (getTargetType(baseType).flags & (TypeFlags.Class | TypeFlags.Interface)) { if (type !== baseType && !hasBaseType(baseType, type)) { @@ -2338,27 +2350,27 @@ module ts { } function getDeclaredTypeOfTypeAlias(symbol: Symbol): Type { - var links = getSymbolLinks(symbol); + let links = getSymbolLinks(symbol); if (!links.declaredType) { links.declaredType = resolvingType; - var declaration = getDeclarationOfKind(symbol, SyntaxKind.TypeAliasDeclaration); - var type = getTypeFromTypeNode(declaration.type); + let declaration = getDeclarationOfKind(symbol, SyntaxKind.TypeAliasDeclaration); + let type = getTypeFromTypeNode(declaration.type); if (links.declaredType === resolvingType) { links.declaredType = type; } } else if (links.declaredType === resolvingType) { links.declaredType = unknownType; - var declaration = getDeclarationOfKind(symbol, SyntaxKind.TypeAliasDeclaration); + let declaration = getDeclarationOfKind(symbol, SyntaxKind.TypeAliasDeclaration); error(declaration.name, Diagnostics.Type_alias_0_circularly_references_itself, symbolToString(symbol)); } return links.declaredType; } function getDeclaredTypeOfEnum(symbol: Symbol): Type { - var links = getSymbolLinks(symbol); + let links = getSymbolLinks(symbol); if (!links.declaredType) { - var type = createType(TypeFlags.Enum); + let type = createType(TypeFlags.Enum); type.symbol = symbol; links.declaredType = type; } @@ -2366,9 +2378,9 @@ module ts { } function getDeclaredTypeOfTypeParameter(symbol: Symbol): TypeParameter { - var links = getSymbolLinks(symbol); + let links = getSymbolLinks(symbol); if (!links.declaredType) { - var type = createType(TypeFlags.TypeParameter); + let type = createType(TypeFlags.TypeParameter); type.symbol = symbol; if (!(getDeclarationOfKind(symbol, SyntaxKind.TypeParameter)).constraint) { type.constraint = noConstraintType; @@ -2379,7 +2391,7 @@ module ts { } function getDeclaredTypeOfAlias(symbol: Symbol): Type { - var links = getSymbolLinks(symbol); + let links = getSymbolLinks(symbol); if (!links.declaredType) { links.declaredType = getDeclaredTypeOfSymbol(resolveAlias(symbol)); } @@ -2410,26 +2422,23 @@ module ts { } function createSymbolTable(symbols: Symbol[]): SymbolTable { - var result: SymbolTable = {}; - for (var i = 0; i < symbols.length; i++) { - var symbol = symbols[i]; + let result: SymbolTable = {}; + for (let symbol of symbols) { result[symbol.name] = symbol; } return result; } function createInstantiatedSymbolTable(symbols: Symbol[], mapper: TypeMapper): SymbolTable { - var result: SymbolTable = {}; - for (var i = 0; i < symbols.length; i++) { - var symbol = symbols[i]; + let result: SymbolTable = {}; + for (let symbol of symbols) { result[symbol.name] = instantiateSymbol(symbol, mapper); } return result; } function addInheritedMembers(symbols: SymbolTable, baseSymbols: Symbol[]) { - for (var i = 0; i < baseSymbols.length; i++) { - var s = baseSymbols[i]; + for (let s of baseSymbols) { if (!hasProperty(symbols, s.name)) { symbols[s.name] = s; } @@ -2438,18 +2447,18 @@ module ts { function addInheritedSignatures(signatures: Signature[], baseSignatures: Signature[]) { if (baseSignatures) { - for (var i = 0; i < baseSignatures.length; i++) { - signatures.push(baseSignatures[i]); + for (let signature of baseSignatures) { + signatures.push(signature); } } } function resolveClassOrInterfaceMembers(type: InterfaceType): void { - var members = type.symbol.members; - var callSignatures = type.declaredCallSignatures; - var constructSignatures = type.declaredConstructSignatures; - var stringIndexType = type.declaredStringIndexType; - var numberIndexType = type.declaredNumberIndexType; + let members = type.symbol.members; + let callSignatures = type.declaredCallSignatures; + let constructSignatures = type.declaredConstructSignatures; + let stringIndexType = type.declaredStringIndexType; + let numberIndexType = type.declaredNumberIndexType; if (type.baseTypes.length) { members = createSymbolTable(type.declaredProperties); forEach(type.baseTypes, baseType => { @@ -2464,15 +2473,15 @@ module ts { } function resolveTypeReferenceMembers(type: TypeReference): void { - var target = type.target; - var mapper = createTypeMapper(target.typeParameters, type.typeArguments); - var members = createInstantiatedSymbolTable(target.declaredProperties, mapper); - var callSignatures = instantiateList(target.declaredCallSignatures, mapper, instantiateSignature); - var constructSignatures = instantiateList(target.declaredConstructSignatures, mapper, instantiateSignature); - var stringIndexType = target.declaredStringIndexType ? instantiateType(target.declaredStringIndexType, mapper) : undefined; - var numberIndexType = target.declaredNumberIndexType ? instantiateType(target.declaredNumberIndexType, mapper) : undefined; + let target = type.target; + let mapper = createTypeMapper(target.typeParameters, type.typeArguments); + let members = createInstantiatedSymbolTable(target.declaredProperties, mapper); + let callSignatures = instantiateList(target.declaredCallSignatures, mapper, instantiateSignature); + let constructSignatures = instantiateList(target.declaredConstructSignatures, mapper, instantiateSignature); + let stringIndexType = target.declaredStringIndexType ? instantiateType(target.declaredStringIndexType, mapper) : undefined; + let numberIndexType = target.declaredNumberIndexType ? instantiateType(target.declaredNumberIndexType, mapper) : undefined; forEach(target.baseTypes, baseType => { - var instantiatedBaseType = instantiateType(baseType, mapper); + let instantiatedBaseType = instantiateType(baseType, mapper); addInheritedMembers(members, getPropertiesOfObjectType(instantiatedBaseType)); callSignatures = concatenate(callSignatures, getSignaturesOfType(instantiatedBaseType, SignatureKind.Call)); constructSignatures = concatenate(constructSignatures, getSignaturesOfType(instantiatedBaseType, SignatureKind.Construct)); @@ -2484,7 +2493,7 @@ module ts { function createSignature(declaration: SignatureDeclaration, typeParameters: TypeParameter[], parameters: Symbol[], resolvedReturnType: Type, minArgumentCount: number, hasRestParameter: boolean, hasStringLiterals: boolean): Signature { - var sig = new Signature(checker); + let sig = new Signature(checker); sig.declaration = declaration; sig.typeParameters = typeParameters; sig.parameters = parameters; @@ -2502,10 +2511,10 @@ module ts { function getDefaultConstructSignatures(classType: InterfaceType): Signature[] { if (classType.baseTypes.length) { - var baseType = classType.baseTypes[0]; - var baseSignatures = getSignaturesOfType(getTypeOfSymbol(baseType.symbol), SignatureKind.Construct); + let baseType = classType.baseTypes[0]; + let baseSignatures = getSignaturesOfType(getTypeOfSymbol(baseType.symbol), SignatureKind.Construct); return map(baseSignatures, baseSignature => { - var signature = baseType.flags & TypeFlags.Reference ? + let signature = baseType.flags & TypeFlags.Reference ? getSignatureInstantiation(baseSignature, (baseType).typeArguments) : cloneSignature(baseSignature); signature.typeParameters = classType.typeParameters; signature.resolvedReturnType = classType; @@ -2516,9 +2525,9 @@ module ts { } function createTupleTypeMemberSymbols(memberTypes: Type[]): SymbolTable { - var members: SymbolTable = {}; - for (var i = 0; i < memberTypes.length; i++) { - var symbol = createSymbol(SymbolFlags.Property | SymbolFlags.Transient, "" + i); + let members: SymbolTable = {}; + for (let i = 0; i < memberTypes.length; i++) { + let symbol = createSymbol(SymbolFlags.Property | SymbolFlags.Transient, "" + i); symbol.type = memberTypes[i]; members[i] = symbol; } @@ -2526,8 +2535,8 @@ module ts { } function resolveTupleTypeMembers(type: TupleType) { - var arrayType = resolveObjectOrUnionTypeMembers(createArrayType(getUnionType(type.elementTypes))); - var members = createTupleTypeMemberSymbols(type.elementTypes); + let arrayType = resolveObjectOrUnionTypeMembers(createArrayType(getUnionType(type.elementTypes))); + let members = createTupleTypeMemberSymbols(type.elementTypes); addInheritedMembers(members, arrayType.properties); setObjectTypeMembers(type, members, arrayType.callSignatures, arrayType.constructSignatures, arrayType.stringIndexType, arrayType.numberIndexType); } @@ -2536,7 +2545,7 @@ module ts { if (s.length !== t.length) { return false; } - for (var i = 0; i < s.length; i++) { + for (let i = 0; i < s.length; i++) { if (!compareSignatures(s[i], t[i], /*compareReturnTypes*/ false, compareTypes)) { return false; } @@ -2548,21 +2557,21 @@ module ts { // and if none of the signatures are generic, return a list of signatures that has substitutes a union of the // return types of the corresponding signatures in each resulting signature. function getUnionSignatures(types: Type[], kind: SignatureKind): Signature[] { - var signatureLists = map(types, t => getSignaturesOfType(t, kind)); - var signatures = signatureLists[0]; - for (var i = 0; i < signatures.length; i++) { - if (signatures[i].typeParameters) { + let signatureLists = map(types, t => getSignaturesOfType(t, kind)); + let signatures = signatureLists[0]; + for (let signature of signatures) { + if (signature.typeParameters) { return emptyArray; } } - for (var i = 1; i < signatureLists.length; i++) { + for (let i = 1; i < signatureLists.length; i++) { if (!signatureListsIdentical(signatures, signatureLists[i])) { return emptyArray; } } - var result = map(signatures, cloneSignature); + let result = map(signatures, cloneSignature); for (var i = 0; i < result.length; i++) { - var s = result[i]; + let s = result[i]; // Clear resolved return type we possibly got from cloneSignature s.resolvedReturnType = undefined; s.unionSignatures = map(signatureLists, signatures => signatures[i]); @@ -2571,9 +2580,9 @@ module ts { } function getUnionIndexType(types: Type[], kind: IndexKind): Type { - var indexTypes: Type[] = []; - for (var i = 0; i < types.length; i++) { - var indexType = getIndexTypeOfType(types[i], kind); + let indexTypes: Type[] = []; + for (let type of types) { + let indexType = getIndexTypeOfType(type, kind); if (!indexType) { return undefined; } @@ -2585,27 +2594,33 @@ module ts { function resolveUnionTypeMembers(type: UnionType) { // The members and properties collections are empty for union types. To get all properties of a union // type use getPropertiesOfType (only the language service uses this). - var callSignatures = getUnionSignatures(type.types, SignatureKind.Call); - var constructSignatures = getUnionSignatures(type.types, SignatureKind.Construct); - var stringIndexType = getUnionIndexType(type.types, IndexKind.String); - var numberIndexType = getUnionIndexType(type.types, IndexKind.Number); + let callSignatures = getUnionSignatures(type.types, SignatureKind.Call); + let constructSignatures = getUnionSignatures(type.types, SignatureKind.Construct); + let stringIndexType = getUnionIndexType(type.types, IndexKind.String); + let numberIndexType = getUnionIndexType(type.types, IndexKind.Number); setObjectTypeMembers(type, emptySymbols, callSignatures, constructSignatures, stringIndexType, numberIndexType); } function resolveAnonymousTypeMembers(type: ObjectType) { - var symbol = type.symbol; + let symbol = type.symbol; + let members: SymbolTable; + let callSignatures: Signature[]; + let constructSignatures: Signature[]; + let stringIndexType: Type; + let numberIndexType: Type; + if (symbol.flags & SymbolFlags.TypeLiteral) { - var members = symbol.members; - var callSignatures = getSignaturesOfSymbol(members["__call"]); - var constructSignatures = getSignaturesOfSymbol(members["__new"]); - var stringIndexType = getIndexTypeOfSymbol(symbol, IndexKind.String); - var numberIndexType = getIndexTypeOfSymbol(symbol, IndexKind.Number); + members = symbol.members; + callSignatures = getSignaturesOfSymbol(members["__call"]); + constructSignatures = getSignaturesOfSymbol(members["__new"]); + stringIndexType = getIndexTypeOfSymbol(symbol, IndexKind.String); + numberIndexType = getIndexTypeOfSymbol(symbol, IndexKind.Number); } else { // Combinations of function, class, enum and module - var members = emptySymbols; - var callSignatures: Signature[] = emptyArray; - var constructSignatures: Signature[] = emptyArray; + members = emptySymbols; + callSignatures = emptyArray; + constructSignatures = emptyArray; if (symbol.flags & SymbolFlags.HasExports) { members = getExportsOfSymbol(symbol); } @@ -2613,7 +2628,7 @@ module ts { callSignatures = getSignaturesOfSymbol(symbol); } if (symbol.flags & SymbolFlags.Class) { - var classType = getDeclaredTypeOfClass(symbol); + let classType = getDeclaredTypeOfClass(symbol); constructSignatures = getSignaturesOfSymbol(symbol.members["__constructor"]); if (!constructSignatures.length) { constructSignatures = getDefaultConstructSignatures(classType); @@ -2623,8 +2638,8 @@ module ts { addInheritedMembers(members, getPropertiesOfObjectType(getTypeOfSymbol(classType.baseTypes[0].symbol))); } } - var stringIndexType: Type = undefined; - var numberIndexType: Type = (symbol.flags & SymbolFlags.Enum) ? stringType : undefined; + stringIndexType = undefined; + numberIndexType = (symbol.flags & SymbolFlags.Enum) ? stringType : undefined; } setObjectTypeMembers(type, members, callSignatures, constructSignatures, stringIndexType, numberIndexType); } @@ -2662,9 +2677,9 @@ module ts { // the symbol for that property. Otherwise return undefined. function getPropertyOfObjectType(type: Type, name: string): Symbol { if (type.flags & TypeFlags.ObjectType) { - var resolved = resolveObjectOrUnionTypeMembers(type); + let resolved = resolveObjectOrUnionTypeMembers(type); if (hasProperty(resolved.members, name)) { - var symbol = resolved.members[name]; + let symbol = resolved.members[name]; if (symbolIsValue(symbol)) { return symbol; } @@ -2673,9 +2688,9 @@ module ts { } function getPropertiesOfUnionType(type: UnionType): Symbol[] { - var result: Symbol[] = []; + let result: Symbol[] = []; forEach(getPropertiesOfType(type.types[0]), prop => { - var unionProp = getPropertyOfUnionType(type, prop.name); + let unionProp = getPropertyOfUnionType(type, prop.name); if (unionProp) { result.push(unionProp); } @@ -2718,12 +2733,12 @@ module ts { } function createUnionProperty(unionType: UnionType, name: string): Symbol { - var types = unionType.types; - var props: Symbol[]; - for (var i = 0; i < types.length; i++) { - var type = getApparentType(types[i]); + let types = unionType.types; + let props: Symbol[]; + for (let current of types) { + let type = getApparentType(current); if (type !== unknownType) { - var prop = getPropertyOfType(type, name); + let prop = getPropertyOfType(type, name); if (!prop) { return undefined; } @@ -2735,16 +2750,15 @@ module ts { } } } - var propTypes: Type[] = []; - var declarations: Declaration[] = []; - for (var i = 0; i < props.length; i++) { - var prop = props[i]; + let propTypes: Type[] = []; + let declarations: Declaration[] = []; + for (let prop of props) { if (prop.declarations) { declarations.push.apply(declarations, prop.declarations); } propTypes.push(getTypeOfSymbol(prop)); } - var result = createSymbol(SymbolFlags.Property | SymbolFlags.Transient | SymbolFlags.UnionProperty, name); + let result = createSymbol(SymbolFlags.Property | SymbolFlags.Transient | SymbolFlags.UnionProperty, name); result.unionType = unionType; result.declarations = declarations; result.type = getUnionType(propTypes); @@ -2752,11 +2766,11 @@ module ts { } function getPropertyOfUnionType(type: UnionType, name: string): Symbol { - var properties = type.resolvedProperties || (type.resolvedProperties = {}); + let properties = type.resolvedProperties || (type.resolvedProperties = {}); if (hasProperty(properties, name)) { return properties[name]; } - var property = createUnionProperty(type, name); + let property = createUnionProperty(type, name); if (property) { properties[name] = property; } @@ -2776,15 +2790,15 @@ module ts { return undefined; } } - var resolved = resolveObjectOrUnionTypeMembers(type); + let resolved = resolveObjectOrUnionTypeMembers(type); if (hasProperty(resolved.members, name)) { - var symbol = resolved.members[name]; + let symbol = resolved.members[name]; if (symbolIsValue(symbol)) { return symbol; } } if (resolved === anyFunctionType || resolved.callSignatures.length || resolved.constructSignatures.length) { - var symbol = getPropertyOfObjectType(globalFunctionType, name); + let symbol = getPropertyOfObjectType(globalFunctionType, name); if (symbol) return symbol; } return getPropertyOfObjectType(globalObjectType, name); @@ -2792,7 +2806,7 @@ module ts { function getSignaturesOfObjectOrUnionType(type: Type, kind: SignatureKind): Signature[] { if (type.flags & (TypeFlags.ObjectType | TypeFlags.Union)) { - var resolved = resolveObjectOrUnionTypeMembers(type); + let resolved = resolveObjectOrUnionTypeMembers(type); return kind === SignatureKind.Call ? resolved.callSignatures : resolved.constructSignatures; } return emptyArray; @@ -2806,7 +2820,7 @@ module ts { function getIndexTypeOfObjectOrUnionType(type: Type, kind: IndexKind): Type { if (type.flags & (TypeFlags.ObjectType | TypeFlags.Union)) { - var resolved = resolveObjectOrUnionTypeMembers(type); + let resolved = resolveObjectOrUnionTypeMembers(type); return kind === IndexKind.String ? resolved.stringIndexType : resolved.numberIndexType; } } @@ -2820,9 +2834,9 @@ module ts { // Return list of type parameters with duplicates removed (duplicate identifier errors are generated in the actual // type checking functions). function getTypeParametersFromDeclaration(typeParameterDeclarations: TypeParameterDeclaration[]): TypeParameter[] { - var result: TypeParameter[] = []; + let result: TypeParameter[] = []; forEach(typeParameterDeclarations, node => { - var tp = getDeclaredTypeOfTypeParameter(node.symbol); + let tp = getDeclaredTypeOfTypeParameter(node.symbol); if (!contains(result, tp)) { result.push(tp); } @@ -2835,7 +2849,7 @@ module ts { return emptyArray; } - var module = resolveExternalModuleName(node, node.moduleSpecifier); + let module = resolveExternalModuleName(node, node.moduleSpecifier); if (!module || !module.exports) { return emptyArray; } @@ -2844,16 +2858,16 @@ module ts { } function getSignatureFromDeclaration(declaration: SignatureDeclaration): Signature { - var links = getNodeLinks(declaration); + let links = getNodeLinks(declaration); if (!links.resolvedSignature) { - var classType = declaration.kind === SyntaxKind.Constructor ? getDeclaredTypeOfClass((declaration.parent).symbol) : undefined; - var typeParameters = classType ? classType.typeParameters : + let classType = declaration.kind === SyntaxKind.Constructor ? getDeclaredTypeOfClass((declaration.parent).symbol) : undefined; + let typeParameters = classType ? classType.typeParameters : declaration.typeParameters ? getTypeParametersFromDeclaration(declaration.typeParameters) : undefined; - var parameters: Symbol[] = []; - var hasStringLiterals = false; - var minArgumentCount = -1; - for (var i = 0, n = declaration.parameters.length; i < n; i++) { - var param = declaration.parameters[i]; + let parameters: Symbol[] = []; + let hasStringLiterals = false; + let minArgumentCount = -1; + for (let i = 0, n = declaration.parameters.length; i < n; i++) { + let param = declaration.parameters[i]; parameters.push(param.symbol); if (param.type && param.type.kind === SyntaxKind.StringLiteral) { hasStringLiterals = true; @@ -2869,7 +2883,7 @@ module ts { minArgumentCount = declaration.parameters.length; } - var returnType: Type; + let returnType: Type; if (classType) { returnType = classType; } @@ -2880,7 +2894,7 @@ module ts { // TypeScript 1.0 spec (April 2014): // If only one accessor includes a type annotation, the other behaves as if it had the same type annotation. if (declaration.kind === SyntaxKind.GetAccessor && !hasDynamicName(declaration)) { - var setter = getDeclarationOfKind(declaration.symbol, SyntaxKind.SetAccessor); + let setter = getDeclarationOfKind(declaration.symbol, SyntaxKind.SetAccessor); returnType = getAnnotatedAccessorType(setter); } @@ -2897,9 +2911,9 @@ module ts { function getSignaturesOfSymbol(symbol: Symbol): Signature[] { if (!symbol) return emptyArray; - var result: Signature[] = []; - for (var i = 0, len = symbol.declarations.length; i < len; i++) { - var node = symbol.declarations[i]; + let result: Signature[] = []; + for (let i = 0, len = symbol.declarations.length; i < len; i++) { + let node = symbol.declarations[i]; switch (node.kind) { case SyntaxKind.FunctionType: case SyntaxKind.ConstructorType: @@ -2918,7 +2932,7 @@ module ts { // an implementation node if it has a body and the previous node is of the same kind and immediately // precedes the implementation node (i.e. has the same parent and ends where the implementation starts). if (i > 0 && (node).body) { - var previous = symbol.declarations[i - 1]; + let previous = symbol.declarations[i - 1]; if (node.parent === previous.parent && node.kind === previous.kind && node.pos === previous.end) { break; } @@ -2932,14 +2946,15 @@ module ts { function getReturnTypeOfSignature(signature: Signature): Type { if (!signature.resolvedReturnType) { signature.resolvedReturnType = resolvingType; + let type: Type; if (signature.target) { - var type = instantiateType(getReturnTypeOfSignature(signature.target), signature.mapper); + type = instantiateType(getReturnTypeOfSignature(signature.target), signature.mapper); } else if (signature.unionSignatures) { - var type = getUnionType(map(signature.unionSignatures, getReturnTypeOfSignature)); + type = getUnionType(map(signature.unionSignatures, getReturnTypeOfSignature)); } else { - var type = getReturnTypeFromBody(signature.declaration); + type = getReturnTypeFromBody(signature.declaration); } if (signature.resolvedReturnType === resolvingType) { signature.resolvedReturnType = type; @@ -2948,7 +2963,7 @@ module ts { else if (signature.resolvedReturnType === resolvingType) { signature.resolvedReturnType = anyType; if (compilerOptions.noImplicitAny) { - var declaration = signature.declaration; + let declaration = signature.declaration; if (declaration.name) { error(declaration.name, Diagnostics._0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions, declarationNameToString(declaration.name)); } @@ -2962,7 +2977,7 @@ module ts { function getRestTypeOfSignature(signature: Signature): Type { if (signature.hasRestParameter) { - var type = getTypeOfSymbol(signature.parameters[signature.parameters.length - 1]); + let type = getTypeOfSymbol(signature.parameters[signature.parameters.length - 1]); if (type.flags & TypeFlags.Reference && (type).target === globalArrayType) { return (type).typeArguments[0]; } @@ -2993,8 +3008,8 @@ module ts { // object type literal or interface (using the new keyword). Each way of declaring a constructor // will result in a different declaration kind. if (!signature.isolatedSignatureType) { - var isConstructor = signature.declaration.kind === SyntaxKind.Constructor || signature.declaration.kind === SyntaxKind.ConstructSignature; - var type = createObjectType(TypeFlags.Anonymous | TypeFlags.FromSignature); + let isConstructor = signature.declaration.kind === SyntaxKind.Constructor || signature.declaration.kind === SyntaxKind.ConstructSignature; + let type = createObjectType(TypeFlags.Anonymous | TypeFlags.FromSignature); type.members = emptySymbols; type.properties = emptyArray; type.callSignatures = !isConstructor ? [signature] : emptyArray; @@ -3010,14 +3025,14 @@ module ts { } function getIndexDeclarationOfSymbol(symbol: Symbol, kind: IndexKind): SignatureDeclaration { - var syntaxKind = kind === IndexKind.Number ? SyntaxKind.NumberKeyword : SyntaxKind.StringKeyword; - var indexSymbol = getIndexSymbol(symbol); + let syntaxKind = kind === IndexKind.Number ? SyntaxKind.NumberKeyword : SyntaxKind.StringKeyword; + let indexSymbol = getIndexSymbol(symbol); if (indexSymbol) { - var len = indexSymbol.declarations.length; - for (var i = 0; i < len; i++) { - var node = indexSymbol.declarations[i]; + let len = indexSymbol.declarations.length; + for (let decl of indexSymbol.declarations) { + let node = decl; if (node.parameters.length === 1) { - var parameter = node.parameters[0]; + let parameter = node.parameters[0]; if (parameter && parameter.type && parameter.type.kind === syntaxKind) { return node; } @@ -3029,7 +3044,7 @@ module ts { } function getIndexTypeOfSymbol(symbol: Symbol, kind: IndexKind): Type { - var declaration = getIndexDeclarationOfSymbol(symbol, kind); + let declaration = getIndexDeclarationOfSymbol(symbol, kind); return declaration ? declaration.type ? getTypeFromTypeNode(declaration.type) : anyType : undefined; @@ -3038,7 +3053,7 @@ module ts { function getConstraintOfTypeParameter(type: TypeParameter): Type { if (!type.constraint) { if (type.target) { - var targetConstraint = getConstraintOfTypeParameter(type.target); + let targetConstraint = getConstraintOfTypeParameter(type.target); type.constraint = targetConstraint ? instantiateType(targetConstraint, type.mapper) : noConstraintType; } else { @@ -3055,9 +3070,12 @@ module ts { case 2: return types[0].id + "," + types[1].id; default: - var result = ""; - for (var i = 0; i < types.length; i++) { - if (i > 0) result += ","; + let result = ""; + for (let i = 0; i < types.length; i++) { + if (i > 0) { + result += ","; + } + result += types[i].id; } return result; @@ -3068,18 +3086,18 @@ module ts { // It is only necessary to do so if a constituent type might be the undefined type, the null type, or the type // of an object literal (since those types have widening related information we need to track). function getWideningFlagsOfTypes(types: Type[]): TypeFlags { - var result: TypeFlags = 0; - for (var i = 0; i < types.length; i++) { - result |= types[i].flags; + let result: TypeFlags = 0; + for (let type of types) { + result |= type.flags; } return result & TypeFlags.RequiresWidening; } function createTypeReference(target: GenericType, typeArguments: Type[]): TypeReference { - var id = getTypeListId(typeArguments); - var type = target.instantiations[id]; + let id = getTypeListId(typeArguments); + let type = target.instantiations[id]; if (!type) { - var flags = TypeFlags.Reference | getWideningFlagsOfTypes(typeArguments); + let flags = TypeFlags.Reference | getWideningFlagsOfTypes(typeArguments); type = target.instantiations[id] = createObjectType(flags, target.symbol); type.target = target; type.typeArguments = typeArguments; @@ -3088,13 +3106,13 @@ module ts { } function isTypeParameterReferenceIllegalInConstraint(typeReferenceNode: TypeReferenceNode, typeParameterSymbol: Symbol): boolean { - var links = getNodeLinks(typeReferenceNode); + let links = getNodeLinks(typeReferenceNode); if (links.isIllegalTypeReferenceInConstraint !== undefined) { return links.isIllegalTypeReferenceInConstraint; } // bubble up to the declaration - var currentNode: Node = typeReferenceNode; + let currentNode: Node = typeReferenceNode; // forEach === exists while (!forEach(typeParameterSymbol.declarations, d => d.parent === currentNode.parent)) { currentNode = currentNode.parent; @@ -3105,12 +3123,12 @@ module ts { } function checkTypeParameterHasIllegalReferencesInConstraint(typeParameter: TypeParameterDeclaration): void { - var typeParameterSymbol: Symbol; + let typeParameterSymbol: Symbol; function check(n: Node): void { if (n.kind === SyntaxKind.TypeReference && (n).typeName.kind === SyntaxKind.Identifier) { - var links = getNodeLinks(n); + let links = getNodeLinks(n); if (links.isIllegalTypeReferenceInConstraint === undefined) { - var symbol = resolveName(typeParameter, ((n).typeName).text, SymbolFlags.Type, /*nameNotFoundMessage*/ undefined, /*nameArg*/ undefined); + let symbol = resolveName(typeParameter, ((n).typeName).text, SymbolFlags.Type, /*nameNotFoundMessage*/ undefined, /*nameArg*/ undefined); if (symbol && (symbol.flags & SymbolFlags.TypeParameter)) { // TypeScript 1.0 spec (April 2014): 3.4.1 // Type parameters declared in a particular type parameter list @@ -3137,11 +3155,11 @@ module ts { } function getTypeFromTypeReferenceNode(node: TypeReferenceNode): Type { - var links = getNodeLinks(node); + let links = getNodeLinks(node); if (!links.resolvedType) { - var symbol = resolveEntityName(node.typeName, SymbolFlags.Type); + let symbol = resolveEntityName(node.typeName, SymbolFlags.Type); + let type: Type; if (symbol) { - var type: Type; if ((symbol.flags & SymbolFlags.TypeParameter) && isTypeParameterReferenceIllegalInConstraint(node, symbol)) { // TypeScript 1.0 spec (April 2014): 3.4.1 // Type parameters declared in a particular type parameter list @@ -3152,7 +3170,7 @@ module ts { else { type = getDeclaredTypeOfSymbol(symbol); if (type.flags & (TypeFlags.Class | TypeFlags.Interface) && type.flags & TypeFlags.Reference) { - var typeParameters = (type).typeParameters; + let typeParameters = (type).typeParameters; if (node.typeArguments && node.typeArguments.length === typeParameters.length) { type = createTypeReference(type, map(node.typeArguments, getTypeFromTypeNode)); } @@ -3175,7 +3193,7 @@ module ts { } function getTypeFromTypeQueryNode(node: TypeQueryNode): Type { - var links = getNodeLinks(node); + let links = getNodeLinks(node); if (!links.resolvedType) { // TypeScript 1.0 spec (April 2014): 3.6.3 // The expression is processed as an identifier expression (section 4.3) @@ -3189,9 +3207,8 @@ module ts { function getTypeOfGlobalSymbol(symbol: Symbol, arity: number): ObjectType { function getTypeDeclaration(symbol: Symbol): Declaration { - var declarations = symbol.declarations; - for (var i = 0; i < declarations.length; i++) { - var declaration = declarations[i]; + let declarations = symbol.declarations; + for (let declaration of declarations) { switch (declaration.kind) { case SyntaxKind.ClassDeclaration: case SyntaxKind.InterfaceDeclaration: @@ -3204,7 +3221,7 @@ module ts { if (!symbol) { return emptyObjectType; } - var type = getDeclaredTypeOfSymbol(symbol); + let type = getDeclaredTypeOfSymbol(symbol); if (!(type.flags & TypeFlags.ObjectType)) { error(getTypeDeclaration(symbol), Diagnostics.Global_type_0_must_be_a_class_or_interface_type, symbol.name); return emptyObjectType; @@ -3240,12 +3257,12 @@ module ts { // globalArrayType will be undefined if we get here during creation of the Array type. This for example happens if // user code augments the Array type with call or construct signatures that have an array type as the return type. // We instead use globalArraySymbol to obtain the (not yet fully constructed) Array type. - var arrayType = globalArrayType || getDeclaredTypeOfSymbol(globalArraySymbol); + let arrayType = globalArrayType || getDeclaredTypeOfSymbol(globalArraySymbol); return arrayType !== emptyObjectType ? createTypeReference(arrayType, [elementType]) : emptyObjectType; } function getTypeFromArrayTypeNode(node: ArrayTypeNode): Type { - var links = getNodeLinks(node); + let links = getNodeLinks(node); if (!links.resolvedType) { links.resolvedType = createArrayType(getTypeFromTypeNode(node.elementType)); } @@ -3253,8 +3270,8 @@ module ts { } function createTupleType(elementTypes: Type[]) { - var id = getTypeListId(elementTypes); - var type = tupleTypes[id]; + let id = getTypeListId(elementTypes); + let type = tupleTypes[id]; if (!type) { type = tupleTypes[id] = createObjectType(TypeFlags.Tuple); type.elementTypes = elementTypes; @@ -3263,7 +3280,7 @@ module ts { } function getTypeFromTupleTypeNode(node: TupleTypeNode): Type { - var links = getNodeLinks(node); + let links = getNodeLinks(node); if (!links.resolvedType) { links.resolvedType = createTupleType(map(node.elementTypes, getTypeFromTypeNode)); } @@ -3275,8 +3292,8 @@ module ts { addTypesToSortedSet(sortedSet, (type).types); } else { - var i = 0; - var id = type.id; + let i = 0; + let id = type.id; while (i < sortedSet.length && sortedSet[i].id < id) { i++; } @@ -3287,14 +3304,14 @@ module ts { } function addTypesToSortedSet(sortedTypes: Type[], types: Type[]) { - for (var i = 0, len = types.length; i < len; i++) { - addTypeToSortedSet(sortedTypes, types[i]); + for (let type of types) { + addTypeToSortedSet(sortedTypes, type); } } function isSubtypeOfAny(candidate: Type, types: Type[]): boolean { - for (var i = 0, len = types.length; i < len; i++) { - if (candidate !== types[i] && isTypeSubtypeOf(candidate, types[i])) { + for (let type of types) { + if (candidate !== type && isTypeSubtypeOf(candidate, type)) { return true; } } @@ -3302,7 +3319,7 @@ module ts { } function removeSubtypes(types: Type[]) { - var i = types.length; + let i = types.length; while (i > 0) { i--; if (isSubtypeOfAny(types[i], types)) { @@ -3312,8 +3329,8 @@ module ts { } function containsAnyType(types: Type[]) { - for (var i = 0; i < types.length; i++) { - if (types[i].flags & TypeFlags.Any) { + for (let type of types) { + if (type.flags & TypeFlags.Any) { return true; } } @@ -3321,7 +3338,7 @@ module ts { } function removeAllButLast(types: Type[], typeToRemove: Type) { - var i = types.length; + let i = types.length; while (i > 0 && types.length > 1) { i--; if (types[i] === typeToRemove) { @@ -3334,7 +3351,7 @@ module ts { if (types.length === 0) { return emptyObjectType; } - var sortedTypes: Type[] = []; + let sortedTypes: Type[] = []; addTypesToSortedSet(sortedTypes, types); if (noSubtypeReduction) { if (containsAnyType(sortedTypes)) { @@ -3349,8 +3366,8 @@ module ts { if (sortedTypes.length === 1) { return sortedTypes[0]; } - var id = getTypeListId(sortedTypes); - var type = unionTypes[id]; + let id = getTypeListId(sortedTypes); + let type = unionTypes[id]; if (!type) { type = unionTypes[id] = createObjectType(TypeFlags.Union | getWideningFlagsOfTypes(sortedTypes)); type.types = sortedTypes; @@ -3359,7 +3376,7 @@ module ts { } function getTypeFromUnionTypeNode(node: UnionTypeNode): Type { - var links = getNodeLinks(node); + let links = getNodeLinks(node); if (!links.resolvedType) { links.resolvedType = getUnionType(map(node.types, getTypeFromTypeNode), /*noSubtypeReduction*/ true); } @@ -3367,7 +3384,7 @@ module ts { } function getTypeFromTypeLiteralOrFunctionOrConstructorTypeNode(node: Node): Type { - var links = getNodeLinks(node); + let links = getNodeLinks(node); if (!links.resolvedType) { // Deferred resolution of members is handled by resolveObjectTypeMembers links.resolvedType = createObjectType(TypeFlags.Anonymous, node.symbol); @@ -3380,13 +3397,13 @@ module ts { return stringLiteralTypes[node.text]; } - var type = stringLiteralTypes[node.text] = createType(TypeFlags.StringLiteral); + let type = stringLiteralTypes[node.text] = createType(TypeFlags.StringLiteral); type.text = getTextOfNode(node); return type; } function getTypeFromStringLiteral(node: LiteralExpression): Type { - var links = getNodeLinks(node); + let links = getNodeLinks(node); if (!links.resolvedType) { links.resolvedType = getStringLiteralType(node); } @@ -3429,7 +3446,7 @@ module ts { // Callers should first ensure this by calling isTypeNode case SyntaxKind.Identifier: case SyntaxKind.QualifiedName: - var symbol = getSymbolInfo(node); + let symbol = getSymbolInfo(node); return symbol && getDeclaredTypeOfSymbol(symbol); default: return unknownType; @@ -3438,9 +3455,9 @@ module ts { function instantiateList(items: T[], mapper: TypeMapper, instantiator: (item: T, mapper: TypeMapper) => T): T[] { if (items && items.length) { - var result: T[] = []; - for (var i = 0; i < items.length; i++) { - result.push(instantiator(items[i], mapper)); + let result: T[] = []; + for (let v of items) { + result.push(instantiator(v, mapper)); } return result; } @@ -3461,8 +3478,10 @@ module ts { case 2: return createBinaryTypeMapper(sources[0], targets[0], sources[1], targets[1]); } return t => { - for (var i = 0; i < sources.length; i++) { - if (t === sources[i]) return targets[i]; + for (let i = 0; i < sources.length; i++) { + if (t === sources[i]) { + return targets[i]; + } } return t; }; @@ -3482,8 +3501,10 @@ module ts { case 2: return createBinaryTypeEraser(sources[0], sources[1]); } return t => { - for (var i = 0; i < sources.length; i++) { - if (t === sources[i]) return anyType; + for (let source of sources) { + if (t === source) { + return anyType; + } } return t; }; @@ -3491,7 +3512,7 @@ module ts { function createInferenceMapper(context: InferenceContext): TypeMapper { return t => { - for (var i = 0; i < context.typeParameters.length; i++) { + for (let i = 0; i < context.typeParameters.length; i++) { if (t === context.typeParameters[i]) { return getInferredType(context, i); } @@ -3509,7 +3530,7 @@ module ts { } function instantiateTypeParameter(typeParameter: TypeParameter, mapper: TypeMapper): TypeParameter { - var result = createType(TypeFlags.TypeParameter); + let result = createType(TypeFlags.TypeParameter); result.symbol = typeParameter.symbol; if (typeParameter.constraint) { result.constraint = instantiateType(typeParameter.constraint, mapper); @@ -3522,11 +3543,12 @@ module ts { } function instantiateSignature(signature: Signature, mapper: TypeMapper, eraseTypeParameters?: boolean): Signature { + let freshTypeParameters: TypeParameter[]; if (signature.typeParameters && !eraseTypeParameters) { - var freshTypeParameters = instantiateList(signature.typeParameters, mapper, instantiateTypeParameter); + freshTypeParameters = instantiateList(signature.typeParameters, mapper, instantiateTypeParameter); mapper = combineTypeMappers(createTypeMapper(signature.typeParameters, freshTypeParameters), mapper); } - var result = createSignature(signature.declaration, freshTypeParameters, + let result = createSignature(signature.declaration, freshTypeParameters, instantiateList(signature.parameters, mapper, instantiateSymbol), signature.resolvedReturnType ? instantiateType(signature.resolvedReturnType, mapper) : undefined, signature.minArgumentCount, signature.hasRestParameter, signature.hasStringLiterals); @@ -3537,7 +3559,7 @@ module ts { function instantiateSymbol(symbol: Symbol, mapper: TypeMapper): Symbol { if (symbol.flags & SymbolFlags.Instantiated) { - var links = getSymbolLinks(symbol); + let links = getSymbolLinks(symbol); // If symbol being instantiated is itself a instantiation, fetch the original target and combine the // type mappers. This ensures that original type identities are properly preserved and that aliases // always reference a non-aliases. @@ -3547,7 +3569,7 @@ module ts { // Keep the flags from the symbol we're instantiating. Mark that is instantiated, and // also transient so that we can just store data on it directly. - var result = createSymbol(SymbolFlags.Instantiated | SymbolFlags.Transient | symbol.flags, symbol.name); + let result = createSymbol(SymbolFlags.Instantiated | SymbolFlags.Transient | symbol.flags, symbol.name); result.declarations = symbol.declarations; result.parent = symbol.parent; result.target = symbol; @@ -3560,13 +3582,13 @@ module ts { } function instantiateAnonymousType(type: ObjectType, mapper: TypeMapper): ObjectType { - var result = createObjectType(TypeFlags.Anonymous, type.symbol); + let result = createObjectType(TypeFlags.Anonymous, type.symbol); result.properties = instantiateList(getPropertiesOfObjectType(type), mapper, instantiateSymbol); result.members = createSymbolTable(result.properties); result.callSignatures = instantiateList(getSignaturesOfType(type, SignatureKind.Call), mapper, instantiateSignature); result.constructSignatures = instantiateList(getSignaturesOfType(type, SignatureKind.Construct), mapper, instantiateSignature); - var stringIndexType = getIndexTypeOfType(type, IndexKind.String); - var numberIndexType = getIndexTypeOfType(type, IndexKind.Number); + let stringIndexType = getIndexTypeOfType(type, IndexKind.String); + let numberIndexType = getIndexTypeOfType(type, IndexKind.Number); if (stringIndexType) result.stringIndexType = instantiateType(stringIndexType, mapper); if (numberIndexType) result.numberIndexType = instantiateType(numberIndexType, mapper); return result; @@ -3630,9 +3652,9 @@ module ts { function getTypeWithoutConstructors(type: Type): Type { if (type.flags & TypeFlags.ObjectType) { - var resolved = resolveObjectOrUnionTypeMembers(type); + let resolved = resolveObjectOrUnionTypeMembers(type); if (resolved.constructSignatures.length) { - var result = createObjectType(TypeFlags.Anonymous, type.symbol); + let result = createObjectType(TypeFlags.Anonymous, type.symbol); result.members = resolved.members; result.properties = resolved.properties; result.callSignatures = resolved.callSignatures; @@ -3645,9 +3667,9 @@ module ts { // TYPE CHECKING - var subtypeRelation: Map = {}; - var assignableRelation: Map = {}; - var identityRelation: Map = {}; + let subtypeRelation: Map = {}; + let assignableRelation: Map = {}; + let identityRelation: Map = {}; function isTypeIdenticalTo(source: Type, target: Type): boolean { return checkTypeRelatedTo(source, target, identityRelation, /*errorNode*/ undefined); @@ -3674,8 +3696,8 @@ module ts { } function isSignatureAssignableTo(source: Signature, target: Signature): boolean { - var sourceType = getOrCreateTypeFromSignature(source); - var targetType = getOrCreateTypeFromSignature(target); + let sourceType = getOrCreateTypeFromSignature(source); + let targetType = getOrCreateTypeFromSignature(target); return checkTypeRelatedTo(sourceType, targetType, assignableRelation, /*errorNode*/ undefined); } @@ -3687,17 +3709,17 @@ module ts { headMessage?: DiagnosticMessage, containingMessageChain?: DiagnosticMessageChain): boolean { - var errorInfo: DiagnosticMessageChain; - var sourceStack: ObjectType[]; - var targetStack: ObjectType[]; - var maybeStack: Map[]; - var expandingFlags: number; - var depth = 0; - var overflow = false; + let errorInfo: DiagnosticMessageChain; + let sourceStack: ObjectType[]; + let targetStack: ObjectType[]; + let maybeStack: Map[]; + let expandingFlags: number; + let depth = 0; + let overflow = false; Debug.assert(relation !== identityRelation || !errorNode, "no error reporting in identity checking"); - var result = isRelatedTo(source, target, errorNode !== undefined, headMessage); + let result = isRelatedTo(source, target, errorNode !== undefined, headMessage); if (overflow) { error(errorNode, Diagnostics.Excessive_stack_depth_comparing_types_0_and_1, typeToString(source), typeToString(target)); } @@ -3727,7 +3749,7 @@ module ts { // Ternary.Maybe if they are related with assumptions of other relationships, or // Ternary.False if they are not related. function isRelatedTo(source: Type, target: Type, reportErrors?: boolean, headMessage?: DiagnosticMessage, elaborateErrors = false): Ternary { - var result: Ternary; + let result: Ternary; // both types are the same - covers 'they are the same primitive type or both are Any' or the same type parameter cases if (source === target) return Ternary.True; if (relation !== identityRelation) { @@ -3780,7 +3802,7 @@ module ts { } } else { - var saveErrorInfo = errorInfo; + let saveErrorInfo = errorInfo; if (source.flags & TypeFlags.Reference && target.flags & TypeFlags.Reference && (source).target === (target).target) { // We have type references to same target type, see if relationship holds for all type arguments if (result = typesRelatedTo((source).typeArguments, (target).typeArguments, reportErrors)) { @@ -3789,9 +3811,9 @@ module ts { } // Even if relationship doesn't hold for type arguments, it may hold in a structural comparison // Report structural errors only if we haven't reported any errors yet - var reportStructuralErrors = reportErrors && errorInfo === saveErrorInfo; + let reportStructuralErrors = reportErrors && errorInfo === saveErrorInfo; // identity relation does not use apparent type - var sourceOrApparentType = relation === identityRelation ? source : getApparentType(source); + let sourceOrApparentType = relation === identityRelation ? source : getApparentType(source); if (sourceOrApparentType.flags & TypeFlags.ObjectType && target.flags & TypeFlags.ObjectType && (result = objectTypeRelatedTo(sourceOrApparentType, target, reportStructuralErrors, elaborateErrors))) { errorInfo = saveErrorInfo; @@ -3800,8 +3822,8 @@ module ts { } if (reportErrors) { headMessage = headMessage || Diagnostics.Type_0_is_not_assignable_to_type_1; - var sourceType = typeToString(source); - var targetType = typeToString(target); + let sourceType = typeToString(source); + let targetType = typeToString(target); if (sourceType === targetType) { sourceType = typeToString(source, /*enclosingDeclaration*/ undefined, TypeFormatFlags.UseFullyQualifiedType); targetType = typeToString(target, /*enclosingDeclaration*/ undefined, TypeFormatFlags.UseFullyQualifiedType); @@ -3812,10 +3834,10 @@ module ts { } function unionTypeRelatedToUnionType(source: UnionType, target: UnionType): Ternary { - var result = Ternary.True; - var sourceTypes = source.types; - for (var i = 0, len = sourceTypes.length; i < len; i++) { - var related = typeRelatedToUnionType(sourceTypes[i], target, false); + let result = Ternary.True; + let sourceTypes = source.types; + for (let sourceType of sourceTypes) { + let related = typeRelatedToUnionType(sourceType, target, false); if (!related) { return Ternary.False; } @@ -3825,9 +3847,9 @@ module ts { } function typeRelatedToUnionType(source: Type, target: UnionType, reportErrors: boolean): Ternary { - var targetTypes = target.types; - for (var i = 0, len = targetTypes.length; i < len; i++) { - var related = isRelatedTo(source, targetTypes[i], reportErrors && i === len - 1); + let targetTypes = target.types; + for (let i = 0, len = targetTypes.length; i < len; i++) { + let related = isRelatedTo(source, targetTypes[i], reportErrors && i === len - 1); if (related) { return related; } @@ -3836,10 +3858,10 @@ module ts { } function unionTypeRelatedToType(source: UnionType, target: Type, reportErrors: boolean): Ternary { - var result = Ternary.True; - var sourceTypes = source.types; - for (var i = 0, len = sourceTypes.length; i < len; i++) { - var related = isRelatedTo(sourceTypes[i], target, reportErrors); + let result = Ternary.True; + let sourceTypes = source.types; + for (let sourceType of sourceTypes) { + let related = isRelatedTo(sourceType, target, reportErrors); if (!related) { return Ternary.False; } @@ -3849,9 +3871,9 @@ module ts { } function typesRelatedTo(sources: Type[], targets: Type[], reportErrors: boolean): Ternary { - var result = Ternary.True; - for (var i = 0, len = sources.length; i < len; i++) { - var related = isRelatedTo(sources[i], targets[i], reportErrors); + let result = Ternary.True; + for (let i = 0, len = sources.length; i < len; i++) { + let related = isRelatedTo(sources[i], targets[i], reportErrors); if (!related) { return Ternary.False; } @@ -3876,7 +3898,7 @@ module ts { } else { while (true) { - var constraint = getConstraintOfTypeParameter(source); + let constraint = getConstraintOfTypeParameter(source); if (constraint === target) return Ternary.True; if (!(constraint && constraint.flags & TypeFlags.TypeParameter)) break; source = constraint; @@ -3894,9 +3916,9 @@ module ts { if (overflow) { return Ternary.False; } - var id = relation !== identityRelation || source.id < target.id ? source.id + "," + target.id : target.id + "," + source.id; - var related = relation[id]; - //var related: RelationComparisonResult = undefined; // relation[id]; + let id = relation !== identityRelation || source.id < target.id ? source.id + "," + target.id : target.id + "," + source.id; + let related = relation[id]; + //let related: RelationComparisonResult = undefined; // relation[id]; if (related !== undefined) { // If we computed this relation already and it was failed and reported, or if we're not being asked to elaborate // errors, we can use the cached value. Otherwise, recompute the relation @@ -3905,7 +3927,7 @@ module ts { } } if (depth > 0) { - for (var i = 0; i < depth; i++) { + for (let i = 0; i < depth; i++) { // If source and target are already being compared, consider them related with assumptions if (maybeStack[i][id]) { return Ternary.Maybe; @@ -3927,14 +3949,15 @@ module ts { maybeStack[depth] = {}; maybeStack[depth][id] = RelationComparisonResult.Succeeded; depth++; - var saveExpandingFlags = expandingFlags; + let saveExpandingFlags = expandingFlags; if (!(expandingFlags & 1) && isDeeplyNestedGeneric(source, sourceStack)) expandingFlags |= 1; if (!(expandingFlags & 2) && isDeeplyNestedGeneric(target, targetStack)) expandingFlags |= 2; + let result: Ternary; if (expandingFlags === 3) { - var result = Ternary.Maybe; + result = Ternary.Maybe; } else { - var result = propertiesRelatedTo(source, target, reportErrors); + result = propertiesRelatedTo(source, target, reportErrors); if (result) { result &= signaturesRelatedTo(source, target, SignatureKind.Call, reportErrors); if (result) { @@ -3951,9 +3974,9 @@ module ts { expandingFlags = saveExpandingFlags; depth--; if (result) { - var maybeCache = maybeStack[depth]; + let maybeCache = maybeStack[depth]; // If result is definitely true, copy assumptions to global cache, else copy to next level up - var destinationCache = (result === Ternary.True || depth === 0) ? relation : maybeStack[depth - 1]; + let destinationCache = (result === Ternary.True || depth === 0) ? relation : maybeStack[depth - 1]; copyMap(maybeCache, destinationCache); } else { @@ -3971,10 +3994,10 @@ module ts { // some level beyond that. function isDeeplyNestedGeneric(type: ObjectType, stack: ObjectType[]): boolean { if (type.flags & TypeFlags.Reference && depth >= 10) { - var target = (type).target; - var count = 0; - for (var i = 0; i < depth; i++) { - var t = stack[i]; + let target = (type).target; + let count = 0; + for (let i = 0; i < depth; i++) { + let t = stack[i]; if (t.flags & TypeFlags.Reference && (t).target === target) { count++; if (count >= 10) return true; @@ -3988,12 +4011,11 @@ module ts { if (relation === identityRelation) { return propertiesIdenticalTo(source, target); } - var result = Ternary.True; - var properties = getPropertiesOfObjectType(target); - var requireOptionalProperties = relation === subtypeRelation && !(source.flags & TypeFlags.ObjectLiteral); - for (var i = 0; i < properties.length; i++) { - var targetProp = properties[i]; - var sourceProp = getPropertyOfType(source, targetProp.name); + let result = Ternary.True; + let properties = getPropertiesOfObjectType(target); + let requireOptionalProperties = relation === subtypeRelation && !(source.flags & TypeFlags.ObjectLiteral); + for (let targetProp of properties) { + let sourceProp = getPropertyOfType(source, targetProp.name); if (sourceProp !== targetProp) { if (!sourceProp) { if (!(targetProp.flags & SymbolFlags.Optional) || requireOptionalProperties) { @@ -4004,8 +4026,8 @@ module ts { } } else if (!(targetProp.flags & SymbolFlags.Prototype)) { - var sourceFlags = getDeclarationFlagsFromSymbol(sourceProp); - var targetFlags = getDeclarationFlagsFromSymbol(targetProp); + let sourceFlags = getDeclarationFlagsFromSymbol(sourceProp); + let targetFlags = getDeclarationFlagsFromSymbol(targetProp); if (sourceFlags & NodeFlags.Private || targetFlags & NodeFlags.Private) { if (sourceProp.valueDeclaration !== targetProp.valueDeclaration) { if (reportErrors) { @@ -4022,9 +4044,9 @@ module ts { } } else if (targetFlags & NodeFlags.Protected) { - var sourceDeclaredInClass = sourceProp.parent && sourceProp.parent.flags & SymbolFlags.Class; - var sourceClass = sourceDeclaredInClass ? getDeclaredTypeOfSymbol(sourceProp.parent) : undefined; - var targetClass = getDeclaredTypeOfSymbol(targetProp.parent); + let sourceDeclaredInClass = sourceProp.parent && sourceProp.parent.flags & SymbolFlags.Class; + let sourceClass = sourceDeclaredInClass ? getDeclaredTypeOfSymbol(sourceProp.parent) : undefined; + let targetClass = getDeclaredTypeOfSymbol(targetProp.parent); if (!sourceClass || !hasBaseType(sourceClass, targetClass)) { if (reportErrors) { reportError(Diagnostics.Property_0_is_protected_but_type_1_is_not_a_class_derived_from_2, @@ -4040,7 +4062,7 @@ module ts { } return Ternary.False; } - var related = isRelatedTo(getTypeOfSymbol(sourceProp), getTypeOfSymbol(targetProp), reportErrors); + let related = isRelatedTo(getTypeOfSymbol(sourceProp), getTypeOfSymbol(targetProp), reportErrors); if (!related) { if (reportErrors) { reportError(Diagnostics.Types_of_property_0_are_incompatible, symbolToString(targetProp)); @@ -4069,19 +4091,18 @@ module ts { } function propertiesIdenticalTo(source: ObjectType, target: ObjectType): Ternary { - var sourceProperties = getPropertiesOfObjectType(source); - var targetProperties = getPropertiesOfObjectType(target); + let sourceProperties = getPropertiesOfObjectType(source); + let targetProperties = getPropertiesOfObjectType(target); if (sourceProperties.length !== targetProperties.length) { return Ternary.False; } - var result = Ternary.True; - for (var i = 0, len = sourceProperties.length; i < len; ++i) { - var sourceProp = sourceProperties[i]; - var targetProp = getPropertyOfObjectType(target, sourceProp.name); + let result = Ternary.True; + for (let sourceProp of sourceProperties) { + let targetProp = getPropertyOfObjectType(target, sourceProp.name); if (!targetProp) { return Ternary.False; } - var related = compareProperties(sourceProp, targetProp, isRelatedTo); + let related = compareProperties(sourceProp, targetProp, isRelatedTo); if (!related) { return Ternary.False; } @@ -4097,18 +4118,16 @@ module ts { if (target === anyFunctionType || source === anyFunctionType) { return Ternary.True; } - var sourceSignatures = getSignaturesOfType(source, kind); - var targetSignatures = getSignaturesOfType(target, kind); - var result = Ternary.True; - var saveErrorInfo = errorInfo; - outer: for (var i = 0; i < targetSignatures.length; i++) { - var t = targetSignatures[i]; + let sourceSignatures = getSignaturesOfType(source, kind); + let targetSignatures = getSignaturesOfType(target, kind); + let result = Ternary.True; + let saveErrorInfo = errorInfo; + outer: for (let t of targetSignatures) { if (!t.hasStringLiterals || target.flags & TypeFlags.FromSignature) { - var localErrors = reportErrors; - for (var j = 0; j < sourceSignatures.length; j++) { - var s = sourceSignatures[j]; + let localErrors = reportErrors; + for (let s of sourceSignatures) { if (!s.hasStringLiterals || source.flags & TypeFlags.FromSignature) { - var related = signatureRelatedTo(s, t, localErrors); + let related = signatureRelatedTo(s, t, localErrors); if (related) { result &= related; errorInfo = saveErrorInfo; @@ -4131,9 +4150,9 @@ module ts { if (!target.hasRestParameter && source.minArgumentCount > target.parameters.length) { return Ternary.False; } - var sourceMax = source.parameters.length; - var targetMax = target.parameters.length; - var checkCount: number; + let sourceMax = source.parameters.length; + let targetMax = target.parameters.length; + let checkCount: number; if (source.hasRestParameter && target.hasRestParameter) { checkCount = sourceMax > targetMax ? sourceMax : targetMax; sourceMax--; @@ -4154,12 +4173,12 @@ module ts { // M and N (the signatures) are instantiated using type Any as the type argument for all type parameters declared by M and N source = getErasedSignature(source); target = getErasedSignature(target); - var result = Ternary.True; - for (var i = 0; i < checkCount; i++) { - var s = i < sourceMax ? getTypeOfSymbol(source.parameters[i]) : getRestTypeOfSignature(source); - var t = i < targetMax ? getTypeOfSymbol(target.parameters[i]) : getRestTypeOfSignature(target); - var saveErrorInfo = errorInfo; - var related = isRelatedTo(s, t, reportErrors); + let result = Ternary.True; + for (let i = 0; i < checkCount; i++) { + let s = i < sourceMax ? getTypeOfSymbol(source.parameters[i]) : getRestTypeOfSignature(source); + let t = i < targetMax ? getTypeOfSymbol(target.parameters[i]) : getRestTypeOfSignature(target); + let saveErrorInfo = errorInfo; + let related = isRelatedTo(s, t, reportErrors); if (!related) { related = isRelatedTo(t, s, false); if (!related) { @@ -4174,21 +4193,21 @@ module ts { } result &= related; } - var t = getReturnTypeOfSignature(target); + let t = getReturnTypeOfSignature(target); if (t === voidType) return result; - var s = getReturnTypeOfSignature(source); + let s = getReturnTypeOfSignature(source); return result & isRelatedTo(s, t, reportErrors); } function signaturesIdenticalTo(source: ObjectType, target: ObjectType, kind: SignatureKind): Ternary { - var sourceSignatures = getSignaturesOfType(source, kind); - var targetSignatures = getSignaturesOfType(target, kind); + let sourceSignatures = getSignaturesOfType(source, kind); + let targetSignatures = getSignaturesOfType(target, kind); if (sourceSignatures.length !== targetSignatures.length) { return Ternary.False; } - var result = Ternary.True; - for (var i = 0, len = sourceSignatures.length; i < len; ++i) { - var related = compareSignatures(sourceSignatures[i], targetSignatures[i], /*compareReturnTypes*/ true, isRelatedTo); + let result = Ternary.True; + for (let i = 0, len = sourceSignatures.length; i < len; ++i) { + let related = compareSignatures(sourceSignatures[i], targetSignatures[i], /*compareReturnTypes*/ true, isRelatedTo); if (!related) { return Ternary.False; } @@ -4201,16 +4220,16 @@ module ts { if (relation === identityRelation) { return indexTypesIdenticalTo(IndexKind.String, source, target); } - var targetType = getIndexTypeOfType(target, IndexKind.String); + let targetType = getIndexTypeOfType(target, IndexKind.String); if (targetType) { - var sourceType = getIndexTypeOfType(source, IndexKind.String); + let sourceType = getIndexTypeOfType(source, IndexKind.String); if (!sourceType) { if (reportErrors) { reportError(Diagnostics.Index_signature_is_missing_in_type_0, typeToString(source)); } return Ternary.False; } - var related = isRelatedTo(sourceType, targetType, reportErrors); + let related = isRelatedTo(sourceType, targetType, reportErrors); if (!related) { if (reportErrors) { reportError(Diagnostics.Index_signatures_are_incompatible); @@ -4226,22 +4245,23 @@ module ts { if (relation === identityRelation) { return indexTypesIdenticalTo(IndexKind.Number, source, target); } - var targetType = getIndexTypeOfType(target, IndexKind.Number); + let targetType = getIndexTypeOfType(target, IndexKind.Number); if (targetType) { - var sourceStringType = getIndexTypeOfType(source, IndexKind.String); - var sourceNumberType = getIndexTypeOfType(source, IndexKind.Number); + let sourceStringType = getIndexTypeOfType(source, IndexKind.String); + let sourceNumberType = getIndexTypeOfType(source, IndexKind.Number); if (!(sourceStringType || sourceNumberType)) { if (reportErrors) { reportError(Diagnostics.Index_signature_is_missing_in_type_0, typeToString(source)); } return Ternary.False; } + let related: Ternary; if (sourceStringType && sourceNumberType) { // If we know for sure we're testing both string and numeric index types then only report errors from the second one - var related = isRelatedTo(sourceStringType, targetType, false) || isRelatedTo(sourceNumberType, targetType, reportErrors); + related = isRelatedTo(sourceStringType, targetType, false) || isRelatedTo(sourceNumberType, targetType, reportErrors); } else { - var related = isRelatedTo(sourceStringType || sourceNumberType, targetType, reportErrors); + related = isRelatedTo(sourceStringType || sourceNumberType, targetType, reportErrors); } if (!related) { if (reportErrors) { @@ -4255,8 +4275,8 @@ module ts { } function indexTypesIdenticalTo(indexKind: IndexKind, source: ObjectType, target: ObjectType): Ternary { - var targetType = getIndexTypeOfType(target, indexKind); - var sourceType = getIndexTypeOfType(source, indexKind); + let targetType = getIndexTypeOfType(target, indexKind); + let sourceType = getIndexTypeOfType(source, indexKind); if (!sourceType && !targetType) { return Ternary.True; } @@ -4278,8 +4298,8 @@ module ts { if (sourceProp === targetProp) { return Ternary.True; } - var sourcePropAccessibility = getDeclarationFlagsFromSymbol(sourceProp) & (NodeFlags.Private | NodeFlags.Protected); - var targetPropAccessibility = getDeclarationFlagsFromSymbol(targetProp) & (NodeFlags.Private | NodeFlags.Protected); + let sourcePropAccessibility = getDeclarationFlagsFromSymbol(sourceProp) & (NodeFlags.Private | NodeFlags.Protected); + let targetPropAccessibility = getDeclarationFlagsFromSymbol(targetProp) & (NodeFlags.Private | NodeFlags.Protected); if (sourcePropAccessibility !== targetPropAccessibility) { return Ternary.False; } @@ -4305,13 +4325,13 @@ module ts { source.hasRestParameter !== target.hasRestParameter) { return Ternary.False; } - var result = Ternary.True; + let result = Ternary.True; if (source.typeParameters && target.typeParameters) { if (source.typeParameters.length !== target.typeParameters.length) { return Ternary.False; } - for (var i = 0, len = source.typeParameters.length; i < len; ++i) { - var related = compareTypes(source.typeParameters[i], target.typeParameters[i]); + for (let i = 0, len = source.typeParameters.length; i < len; ++i) { + let related = compareTypes(source.typeParameters[i], target.typeParameters[i]); if (!related) { return Ternary.False; } @@ -4325,10 +4345,10 @@ module ts { // M and N (the signatures) are instantiated using type Any as the type argument for all type parameters declared by M and N source = getErasedSignature(source); target = getErasedSignature(target); - for (var i = 0, len = source.parameters.length; i < len; i++) { - var s = source.hasRestParameter && i === len - 1 ? getRestTypeOfSignature(source) : getTypeOfSymbol(source.parameters[i]); - var t = target.hasRestParameter && i === len - 1 ? getRestTypeOfSignature(target) : getTypeOfSymbol(target.parameters[i]); - var related = compareTypes(s, t); + for (let i = 0, len = source.parameters.length; i < len; i++) { + let s = source.hasRestParameter && i === len - 1 ? getRestTypeOfSignature(source) : getTypeOfSymbol(source.parameters[i]); + let t = target.hasRestParameter && i === len - 1 ? getRestTypeOfSignature(target) : getTypeOfSymbol(target.parameters[i]); + let related = compareTypes(s, t); if (!related) { return Ternary.False; } @@ -4341,8 +4361,8 @@ module ts { } function isSupertypeOfEach(candidate: Type, types: Type[]): boolean { - for (var i = 0, len = types.length; i < len; i++) { - if (candidate !== types[i] && !isTypeSubtypeOf(types[i], candidate)) return false; + for (let type of types) { + if (candidate !== type && !isTypeSubtypeOf(type, candidate)) return false; } return true; } @@ -4352,14 +4372,14 @@ module ts { } function reportNoCommonSupertypeError(types: Type[], errorLocation: Node, errorMessageChainHead: DiagnosticMessageChain): void { - var bestSupertype: Type; - var bestSupertypeDownfallType: Type; // The type that caused bestSupertype not to be the common supertype - var bestSupertypeScore = 0; + let bestSupertype: Type; + let bestSupertypeDownfallType: Type; // The type that caused bestSupertype not to be the common supertype + let bestSupertypeScore = 0; - for (var i = 0; i < types.length; i++) { - var score = 0; - var downfallType: Type = undefined; - for (var j = 0; j < types.length; j++) { + for (let i = 0; i < types.length; i++) { + let score = 0; + let downfallType: Type = undefined; + for (let j = 0; j < types.length; j++) { if (isTypeSubtypeOf(types[j], types[i])) { score++; } @@ -4409,13 +4429,13 @@ module ts { } function getWidenedTypeOfObjectLiteral(type: Type): Type { - var properties = getPropertiesOfObjectType(type); - var members: SymbolTable = {}; + let properties = getPropertiesOfObjectType(type); + let members: SymbolTable = {}; forEach(properties, p => { - var propType = getTypeOfSymbol(p); - var widenedType = getWidenedType(propType); + let propType = getTypeOfSymbol(p); + let widenedType = getWidenedType(propType); if (propType !== widenedType) { - var symbol = createSymbol(p.flags | SymbolFlags.Transient, p.name); + let symbol = createSymbol(p.flags | SymbolFlags.Transient, p.name); symbol.declarations = p.declarations; symbol.parent = p.parent; symbol.type = widenedType; @@ -4425,8 +4445,8 @@ module ts { } members[p.name] = p; }); - var stringIndexType = getIndexTypeOfType(type, IndexKind.String); - var numberIndexType = getIndexTypeOfType(type, IndexKind.Number); + let stringIndexType = getIndexTypeOfType(type, IndexKind.String); + let numberIndexType = getIndexTypeOfType(type, IndexKind.Number); if (stringIndexType) stringIndexType = getWidenedType(stringIndexType); if (numberIndexType) numberIndexType = getWidenedType(numberIndexType); return createAnonymousType(type.symbol, members, emptyArray, emptyArray, stringIndexType, numberIndexType); @@ -4452,7 +4472,7 @@ module ts { function reportWideningErrorsInType(type: Type): boolean { if (type.flags & TypeFlags.Union) { - var errorReported = false; + let errorReported = false; forEach((type).types, t => { if (reportWideningErrorsInType(t)) { errorReported = true; @@ -4464,9 +4484,9 @@ module ts { return reportWideningErrorsInType((type).typeArguments[0]); } if (type.flags & TypeFlags.ObjectLiteral) { - var errorReported = false; + let errorReported = false; forEach(getPropertiesOfObjectType(type), p => { - var t = getTypeOfSymbol(p); + let t = getTypeOfSymbol(p); if (t.flags & TypeFlags.ContainsUndefinedOrNull) { if (!reportWideningErrorsInType(t)) { error(p.valueDeclaration, Diagnostics.Object_literal_s_property_0_implicitly_has_an_1_type, p.name, typeToString(getWidenedType(t))); @@ -4480,14 +4500,15 @@ module ts { } function reportImplicitAnyError(declaration: Declaration, type: Type) { - var typeAsString = typeToString(getWidenedType(type)); + let typeAsString = typeToString(getWidenedType(type)); + let diagnostic: DiagnosticMessage; switch (declaration.kind) { case SyntaxKind.PropertyDeclaration: case SyntaxKind.PropertySignature: - var diagnostic = Diagnostics.Member_0_implicitly_has_an_1_type; + diagnostic = Diagnostics.Member_0_implicitly_has_an_1_type; break; case SyntaxKind.Parameter: - var diagnostic = (declaration).dotDotDotToken ? + diagnostic = (declaration).dotDotDotToken ? Diagnostics.Rest_parameter_0_implicitly_has_an_any_type : Diagnostics.Parameter_0_implicitly_has_an_1_type; break; @@ -4502,10 +4523,10 @@ module ts { error(declaration, Diagnostics.Function_expression_which_lacks_return_type_annotation_implicitly_has_an_0_return_type, typeAsString); return; } - var diagnostic = Diagnostics._0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type; + diagnostic = Diagnostics._0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type; break; default: - var diagnostic = Diagnostics.Variable_0_implicitly_has_an_1_type; + diagnostic = Diagnostics.Variable_0_implicitly_has_an_1_type; } error(declaration, diagnostic, declarationNameToString(declaration.name), typeAsString); } @@ -4520,9 +4541,9 @@ module ts { } function forEachMatchingParameterType(source: Signature, target: Signature, callback: (s: Type, t: Type) => void) { - var sourceMax = source.parameters.length; - var targetMax = target.parameters.length; - var count: number; + let sourceMax = source.parameters.length; + let targetMax = target.parameters.length; + let count: number; if (source.hasRestParameter && target.hasRestParameter) { count = sourceMax > targetMax ? sourceMax : targetMax; sourceMax--; @@ -4539,16 +4560,16 @@ module ts { else { count = sourceMax < targetMax ? sourceMax : targetMax; } - for (var i = 0; i < count; i++) { - var s = i < sourceMax ? getTypeOfSymbol(source.parameters[i]) : getRestTypeOfSignature(source); - var t = i < targetMax ? getTypeOfSymbol(target.parameters[i]) : getRestTypeOfSignature(target); + for (let i = 0; i < count; i++) { + let s = i < sourceMax ? getTypeOfSymbol(source.parameters[i]) : getRestTypeOfSignature(source); + let t = i < targetMax ? getTypeOfSymbol(target.parameters[i]) : getRestTypeOfSignature(target); callback(s, t); } } function createInferenceContext(typeParameters: TypeParameter[], inferUnionTypes: boolean): InferenceContext { - var inferences: TypeInferences[] = []; - for (var i = 0; i < typeParameters.length; i++) { + let inferences: TypeInferences[] = []; + for (let unused of typeParameters) { inferences.push({ primary: undefined, secondary: undefined }); } return { @@ -4561,26 +4582,30 @@ module ts { } function inferTypes(context: InferenceContext, source: Type, target: Type) { - var sourceStack: Type[]; - var targetStack: Type[]; - var depth = 0; - var inferiority = 0; + let sourceStack: Type[]; + let targetStack: Type[]; + let depth = 0; + let inferiority = 0; inferFromTypes(source, target); function isInProcess(source: Type, target: Type) { - for (var i = 0; i < depth; i++) { - if (source === sourceStack[i] && target === targetStack[i]) return true; + for (let i = 0; i < depth; i++) { + if (source === sourceStack[i] && target === targetStack[i]) { + return true; + } } return false; } function isWithinDepthLimit(type: Type, stack: Type[]) { if (depth >= 5) { - var target = (type).target; - var count = 0; - for (var i = 0; i < depth; i++) { - var t = stack[i]; - if (t.flags & TypeFlags.Reference && (t).target === target) count++; + let target = (type).target; + let count = 0; + for (let i = 0; i < depth; i++) { + let t = stack[i]; + if (t.flags & TypeFlags.Reference && (t).target === target) { + count++; + } } return count < 5; } @@ -4593,11 +4618,11 @@ module ts { } if (target.flags & TypeFlags.TypeParameter) { // If target is a type parameter, make an inference - var typeParameters = context.typeParameters; - for (var i = 0; i < typeParameters.length; i++) { + let typeParameters = context.typeParameters; + for (let i = 0; i < typeParameters.length; i++) { if (target === typeParameters[i]) { - var inferences = context.inferences[i]; - var candidates = inferiority ? + let inferences = context.inferences[i]; + let candidates = inferiority ? inferences.secondary || (inferences.secondary = []) : inferences.primary || (inferences.primary = []); if (!contains(candidates, source)) candidates.push(source); @@ -4607,19 +4632,18 @@ module ts { } else if (source.flags & TypeFlags.Reference && target.flags & TypeFlags.Reference && (source).target === (target).target) { // If source and target are references to the same generic type, infer from type arguments - var sourceTypes = (source).typeArguments; - var targetTypes = (target).typeArguments; - for (var i = 0; i < sourceTypes.length; i++) { + let sourceTypes = (source).typeArguments; + let targetTypes = (target).typeArguments; + for (let i = 0; i < sourceTypes.length; i++) { inferFromTypes(sourceTypes[i], targetTypes[i]); } } else if (target.flags & TypeFlags.Union) { - var targetTypes = (target).types; - var typeParameterCount = 0; - var typeParameter: TypeParameter; + let targetTypes = (target).types; + let typeParameterCount = 0; + let typeParameter: TypeParameter; // First infer to each type in union that isn't a type parameter - for (var i = 0; i < targetTypes.length; i++) { - var t = targetTypes[i]; + for (let t of targetTypes) { if (t.flags & TypeFlags.TypeParameter && contains(context.typeParameters, t)) { typeParameter = t; typeParameterCount++; @@ -4637,9 +4661,9 @@ module ts { } else if (source.flags & TypeFlags.Union) { // Source is a union type, infer from each consituent type - var sourceTypes = (source).types; - for (var i = 0; i < sourceTypes.length; i++) { - inferFromTypes(sourceTypes[i], target); + let sourceTypes = (source).types; + for (let sourceType of sourceTypes) { + inferFromTypes(sourceType, target); } } else if (source.flags & TypeFlags.ObjectType && (target.flags & (TypeFlags.Reference | TypeFlags.Tuple) || @@ -4665,10 +4689,9 @@ module ts { } function inferFromProperties(source: Type, target: Type) { - var properties = getPropertiesOfObjectType(target); - for (var i = 0; i < properties.length; i++) { - var targetProp = properties[i]; - var sourceProp = getPropertyOfObjectType(source, targetProp.name); + let properties = getPropertiesOfObjectType(target); + for (let targetProp of properties) { + let sourceProp = getPropertyOfObjectType(source, targetProp.name); if (sourceProp) { inferFromTypes(getTypeOfSymbol(sourceProp), getTypeOfSymbol(targetProp)); } @@ -4676,12 +4699,12 @@ module ts { } function inferFromSignatures(source: Type, target: Type, kind: SignatureKind) { - var sourceSignatures = getSignaturesOfType(source, kind); - var targetSignatures = getSignaturesOfType(target, kind); - var sourceLen = sourceSignatures.length; - var targetLen = targetSignatures.length; - var len = sourceLen < targetLen ? sourceLen : targetLen; - for (var i = 0; i < len; i++) { + let sourceSignatures = getSignaturesOfType(source, kind); + let targetSignatures = getSignaturesOfType(target, kind); + let sourceLen = sourceSignatures.length; + let targetLen = targetSignatures.length; + let len = sourceLen < targetLen ? sourceLen : targetLen; + for (let i = 0; i < len; i++) { inferFromSignature(getErasedSignature(sourceSignatures[sourceLen - len + i]), getErasedSignature(targetSignatures[targetLen - len + i])); } } @@ -4692,9 +4715,9 @@ module ts { } function inferFromIndexTypes(source: Type, target: Type, sourceKind: IndexKind, targetKind: IndexKind) { - var targetIndexType = getIndexTypeOfType(target, targetKind); + let targetIndexType = getIndexTypeOfType(target, targetKind); if (targetIndexType) { - var sourceIndexType = getIndexTypeOfType(source, sourceKind); + let sourceIndexType = getIndexTypeOfType(source, sourceKind); if (sourceIndexType) { inferFromTypes(sourceIndexType, targetIndexType); } @@ -4703,17 +4726,17 @@ module ts { } function getInferenceCandidates(context: InferenceContext, index: number): Type[] { - var inferences = context.inferences[index]; + let inferences = context.inferences[index]; return inferences.primary || inferences.secondary || emptyArray; } function getInferredType(context: InferenceContext, index: number): Type { - var inferredType = context.inferredTypes[index]; + let inferredType = context.inferredTypes[index]; if (!inferredType) { - var inferences = getInferenceCandidates(context, index); + let inferences = getInferenceCandidates(context, index); if (inferences.length) { // Infer widened union or supertype, or the undefined type for no common supertype - var unionOrSuperType = context.inferUnionTypes ? getUnionType(inferences) : getCommonSupertype(inferences); + let unionOrSuperType = context.inferUnionTypes ? getUnionType(inferences) : getCommonSupertype(inferences); inferredType = unionOrSuperType ? getWidenedType(unionOrSuperType) : inferenceFailureType; } else { @@ -4721,7 +4744,7 @@ module ts { inferredType = emptyObjectType; } if (inferredType !== inferenceFailureType) { - var constraint = getConstraintOfTypeParameter(context.typeParameters[index]); + let constraint = getConstraintOfTypeParameter(context.typeParameters[index]); inferredType = constraint && !isTypeAssignableTo(inferredType, constraint) ? constraint : inferredType; } context.inferredTypes[index] = inferredType; @@ -4730,7 +4753,7 @@ module ts { } function getInferredTypes(context: InferenceContext): Type[] { - for (var i = 0; i < context.inferredTypes.length; i++) { + for (let i = 0; i < context.inferredTypes.length; i++) { getInferredType(context, i); } @@ -4744,7 +4767,7 @@ module ts { // EXPRESSION TYPE CHECKING function getResolvedSymbol(node: Identifier): Symbol { - var links = getNodeLinks(node); + let links = getNodeLinks(node); if (!links.resolvedSymbol) { links.resolvedSymbol = (getFullWidth(node) > 0 && resolveName(node, node.text, SymbolFlags.Value | SymbolFlags.ExportValue, Diagnostics.Cannot_find_name_0, node)) || unknownSymbol; } @@ -4774,10 +4797,10 @@ module ts { // or not of the given type kind (when isOfTypeKind is false) function removeTypesFromUnionType(type: Type, typeKind: TypeFlags, isOfTypeKind: boolean, allowEmptyUnionResult: boolean): Type { if (type.flags & TypeFlags.Union) { - var types = (type).types; + let types = (type).types; if (forEach(types, t => !!(t.flags & typeKind) === isOfTypeKind)) { // Above we checked if we have anything to remove, now use the opposite test to do the removal - var narrowedType = getUnionType(filter(types, t => !(t.flags & typeKind) === isOfTypeKind)); + let narrowedType = getUnionType(filter(types, t => !(t.flags & typeKind) === isOfTypeKind)); if (allowEmptyUnionResult || narrowedType !== emptyObjectType) { return narrowedType; } @@ -4797,9 +4820,9 @@ module ts { // Check if a given variable is assigned within a given syntax node function isVariableAssignedWithin(symbol: Symbol, node: Node): boolean { - var links = getNodeLinks(node); + let links = getNodeLinks(node); if (links.assignmentChecks) { - var cachedResult = links.assignmentChecks[symbol.id]; + let cachedResult = links.assignmentChecks[symbol.id]; if (cachedResult !== undefined) { return cachedResult; } @@ -4811,7 +4834,7 @@ module ts { function isAssignedInBinaryExpression(node: BinaryExpression) { if (node.operatorToken.kind >= SyntaxKind.FirstAssignment && node.operatorToken.kind <= SyntaxKind.LastAssignment) { - var n = node.left; + let n = node.left; while (n.kind === SyntaxKind.ParenthesizedExpression) { n = (n).expression; } @@ -4880,8 +4903,8 @@ module ts { function resolveLocation(node: Node) { // Resolve location from top down towards node if it is a context sensitive expression // That helps in making sure not assigning types as any when resolved out of order - var containerNodes: Node[] = []; - for (var parent = node.parent; parent; parent = parent.parent) { + let containerNodes: Node[] = []; + for (let parent = node.parent; parent; parent = parent.parent) { if ((isExpression(parent) || isObjectLiteralMethod(node)) && isContextSensitive(parent)) { containerNodes.unshift(parent); @@ -4920,13 +4943,13 @@ module ts { // Get the narrowed type of a given symbol at a given location function getNarrowedTypeOfSymbol(symbol: Symbol, node: Node) { - var type = getTypeOfSymbol(symbol); + let type = getTypeOfSymbol(symbol); // Only narrow when symbol is variable of type any or an object, union, or type parameter type if (node && symbol.flags & SymbolFlags.Variable && type.flags & (TypeFlags.Any | TypeFlags.ObjectType | TypeFlags.Union | TypeFlags.TypeParameter)) { loop: while (node.parent) { - var child = node; + let child = node; node = node.parent; - var narrowedType = type; + let narrowedType = type; switch (node.kind) { case SyntaxKind.IfStatement: // In a branch of an if statement, narrow based on controlling expression @@ -4978,12 +5001,12 @@ module ts { if (expr.left.kind !== SyntaxKind.TypeOfExpression || expr.right.kind !== SyntaxKind.StringLiteral) { return type; } - var left = expr.left; - var right = expr.right; + let left = expr.left; + let right = expr.right; if (left.expression.kind !== SyntaxKind.Identifier || getResolvedSymbol(left.expression) !== symbol) { return type; } - var typeInfo = primitiveTypeInfo[right.text]; + let typeInfo = primitiveTypeInfo[right.text]; if (expr.operatorToken.kind === SyntaxKind.ExclamationEqualsEqualsToken) { assumeTrue = !assumeTrue; } @@ -5047,16 +5070,16 @@ module ts { return type; } // Check that right operand is a function type with a prototype property - var rightType = checkExpression(expr.right); + let rightType = checkExpression(expr.right); if (!isTypeSubtypeOf(rightType, globalFunctionType)) { return type; } // Target type is type of prototype property - var prototypeProperty = getPropertyOfType(rightType, "prototype"); + let prototypeProperty = getPropertyOfType(rightType, "prototype"); if (!prototypeProperty) { return type; } - var targetType = getTypeOfSymbol(prototypeProperty); + let targetType = getTypeOfSymbol(prototypeProperty); // Narrow to target type if it is a subtype of current type if (isTypeSubtypeOf(targetType, type)) { return targetType; @@ -5075,7 +5098,7 @@ module ts { case SyntaxKind.ParenthesizedExpression: return narrowType(type, (expr).expression, assumeTrue); case SyntaxKind.BinaryExpression: - var operator = (expr).operatorToken.kind; + let operator = (expr).operatorToken.kind; if (operator === SyntaxKind.EqualsEqualsEqualsToken || operator === SyntaxKind.ExclamationEqualsEqualsToken) { return narrowTypeByEquality(type, expr, assumeTrue); } @@ -5100,7 +5123,7 @@ module ts { } function checkIdentifier(node: Identifier): Type { - var symbol = getResolvedSymbol(node); + let symbol = getResolvedSymbol(node); // As noted in ECMAScript 6 language spec, arrow functions never have an arguments objects. // Although in down-level emit of arrow function, we emit it using function expression which means that @@ -5124,7 +5147,7 @@ module ts { } function isInsideFunction(node: Node, threshold: Node): boolean { - var current = node; + let current = node; while (current && current !== threshold) { if (isFunctionLike(current)) { return true; @@ -5148,7 +5171,7 @@ module ts { // nesting structure: // (variable declaration or binding element) -> variable declaration list -> container - var container: Node = symbol.valueDeclaration; + let container: Node = symbol.valueDeclaration; while (container.kind !== SyntaxKind.VariableDeclarationList) { container = container.parent; } @@ -5159,9 +5182,9 @@ module ts { container = container.parent; } - var inFunction = isInsideFunction(node.parent, container); + let inFunction = isInsideFunction(node.parent, container); - var current = container; + let current = container; while (current && !nodeStartsNewLexicalEnvironment(current)) { if (isIterationStatement(current, /*lookInLabeledStatements*/ false)) { if (inFunction) { @@ -5176,7 +5199,7 @@ module ts { } function captureLexicalThis(node: Node, container: Node): void { - var classNode = container.parent && container.parent.kind === SyntaxKind.ClassDeclaration ? container.parent : undefined; + let classNode = container.parent && container.parent.kind === SyntaxKind.ClassDeclaration ? container.parent : undefined; getNodeLinks(node).flags |= NodeCheckFlags.LexicalThis; if (container.kind === SyntaxKind.PropertyDeclaration || container.kind === SyntaxKind.Constructor) { getNodeLinks(classNode).flags |= NodeCheckFlags.CaptureThis; @@ -5189,8 +5212,8 @@ module ts { function checkThisExpression(node: Node): Type { // Stop at the first arrow function so that we can // tell whether 'this' needs to be captured. - var container = getThisContainer(node, /* includeArrowFunctions */ true); - var needToCaptureLexicalThis = false; + let container = getThisContainer(node, /* includeArrowFunctions */ true); + let needToCaptureLexicalThis = false; // Now skip arrow functions to get the "real" owner of 'this'. if (container.kind === SyntaxKind.ArrowFunction) { @@ -5231,16 +5254,16 @@ module ts { captureLexicalThis(node, container); } - var classNode = container.parent && container.parent.kind === SyntaxKind.ClassDeclaration ? container.parent : undefined; + let classNode = container.parent && container.parent.kind === SyntaxKind.ClassDeclaration ? container.parent : undefined; if (classNode) { - var symbol = getSymbolOfNode(classNode); + let symbol = getSymbolOfNode(classNode); return container.flags & NodeFlags.Static ? getTypeOfSymbol(symbol) : getDeclaredTypeOfSymbol(symbol); } return anyType; } function isInConstructorArgumentInitializer(node: Node, constructorDecl: Node): boolean { - for (var n = node; n && n !== constructorDecl; n = n.parent) { + for (let n = node; n && n !== constructorDecl; n = n.parent) { if (n.kind === SyntaxKind.Parameter) { return true; } @@ -5249,11 +5272,11 @@ module ts { } function checkSuperExpression(node: Node): Type { - var isCallExpression = node.parent.kind === SyntaxKind.CallExpression && (node.parent).expression === node; - var enclosingClass = getAncestor(node, SyntaxKind.ClassDeclaration); - var baseClass: Type; + let isCallExpression = node.parent.kind === SyntaxKind.CallExpression && (node.parent).expression === node; + let enclosingClass = getAncestor(node, SyntaxKind.ClassDeclaration); + let baseClass: Type; if (enclosingClass && getClassBaseTypeNode(enclosingClass)) { - var classType = getDeclaredTypeOfSymbol(getSymbolOfNode(enclosingClass)); + let classType = getDeclaredTypeOfSymbol(getSymbolOfNode(enclosingClass)); baseClass = classType.baseTypes.length && classType.baseTypes[0]; } @@ -5262,10 +5285,11 @@ module ts { return unknownType; } - var container = getSuperContainer(node, /*includeFunctions*/ true); + let container = getSuperContainer(node, /*includeFunctions*/ true); if (container) { - var canUseSuperExpression = false; + let canUseSuperExpression = false; + let needToCaptureLexicalThis: boolean; if (isCallExpression) { // TS 1.0 SPEC (April 2014): 4.8.1 // Super calls are only permitted in constructors of derived classes @@ -5278,7 +5302,7 @@ module ts { // - In a static member function or static member accessor // super property access might appear in arrow functions with arbitrary deep nesting - var needToCaptureLexicalThis = false; + needToCaptureLexicalThis = false; while (container && container.kind === SyntaxKind.ArrowFunction) { container = getSuperContainer(container, /*includeFunctions*/ true); needToCaptureLexicalThis = true; @@ -5307,7 +5331,7 @@ module ts { } if (canUseSuperExpression) { - var returnType: Type; + let returnType: Type; if ((container.flags & NodeFlags.Static) || isCallExpression) { getNodeLinks(node).flags |= NodeCheckFlags.SuperStatic; @@ -5351,14 +5375,14 @@ module ts { // Return contextual type of parameter or undefined if no contextual type is available function getContextuallyTypedParameterType(parameter: ParameterDeclaration): Type { if (isFunctionExpressionOrArrowFunction(parameter.parent)) { - var func = parameter.parent; + let func = parameter.parent; if (isContextSensitive(func)) { - var contextualSignature = getContextualSignature(func); + let contextualSignature = getContextualSignature(func); if (contextualSignature) { - var funcHasRestParameters = hasRestParameters(func); - var len = func.parameters.length - (funcHasRestParameters ? 1 : 0); - var indexOfParameter = indexOf(func.parameters, parameter); + let funcHasRestParameters = hasRestParameters(func); + let len = func.parameters.length - (funcHasRestParameters ? 1 : 0); + let indexOfParameter = indexOf(func.parameters, parameter); if (indexOfParameter < len) { return getTypeAtPosition(contextualSignature, indexOfParameter); } @@ -5380,13 +5404,13 @@ module ts { // of the parameter. Otherwise, in a variable or parameter declaration with a binding pattern name, the contextual // type of an initializer expression is the type implied by the binding pattern. function getContextualTypeForInitializerExpression(node: Expression): Type { - var declaration = node.parent; + let declaration = node.parent; if (node === declaration.initializer) { if (declaration.type) { return getTypeFromTypeNode(declaration.type); } if (declaration.kind === SyntaxKind.Parameter) { - var type = getContextuallyTypedParameterType(declaration); + let type = getContextuallyTypedParameterType(declaration); if (type) { return type; } @@ -5399,7 +5423,7 @@ module ts { } function getContextualTypeForReturnExpression(node: Expression): Type { - var func = getContainingFunction(node); + let func = getContainingFunction(node); if (func) { // If the containing function has a return type annotation, is a constructor, or is a get accessor whose // corresponding set accessor has a type annotation, return statements in the function are contextually typed @@ -5408,7 +5432,7 @@ module ts { } // Otherwise, if the containing function is contextually typed by a function type with exactly one call signature // and that call signature is non-generic, return statements are contextually typed by the return type of the signature - var signature = getContextualSignatureForFunctionLikeDeclaration(func); + let signature = getContextualSignatureForFunctionLikeDeclaration(func); if (signature) { return getReturnTypeOfSignature(signature); } @@ -5418,10 +5442,10 @@ module ts { // In a typed function call, an argument or substitution expression is contextually typed by the type of the corresponding parameter. function getContextualTypeForArgument(callTarget: CallLikeExpression, arg: Expression): Type { - var args = getEffectiveCallArguments(callTarget); - var argIndex = indexOf(args, arg); + let args = getEffectiveCallArguments(callTarget); + let argIndex = indexOf(args, arg); if (argIndex >= 0) { - var signature = getResolvedSignature(callTarget); + let signature = getResolvedSignature(callTarget); return getTypeAtPosition(signature, argIndex); } return undefined; @@ -5436,8 +5460,8 @@ module ts { } function getContextualTypeForBinaryOperand(node: Expression): Type { - var binaryExpression = node.parent; - var operator = binaryExpression.operatorToken.kind; + let binaryExpression = node.parent; + let operator = binaryExpression.operatorToken.kind; if (operator >= SyntaxKind.FirstAssignment && operator <= SyntaxKind.LastAssignment) { // In an assignment expression, the right operand is contextually typed by the type of the left operand. if (node === binaryExpression.right) { @@ -5447,7 +5471,7 @@ module ts { else if (operator === SyntaxKind.BarBarToken) { // When an || expression has a contextual type, the operands are contextually typed by that type. When an || // expression has no contextual type, the right operand is contextually typed by the type of the left operand. - var type = getContextualType(binaryExpression); + let type = getContextualType(binaryExpression); if (!type && node === binaryExpression.right) { type = checkExpression(binaryExpression.left); } @@ -5463,11 +5487,11 @@ module ts { if (!(type.flags & TypeFlags.Union)) { return mapper(type); } - var types = (type).types; - var mappedType: Type; - var mappedTypes: Type[]; - for (var i = 0; i < types.length; i++) { - var t = mapper(types[i]); + let types = (type).types; + let mappedType: Type; + let mappedTypes: Type[]; + for (let current of types) { + let t = mapper(current); if (t) { if (!mappedType) { mappedType = t; @@ -5485,7 +5509,7 @@ module ts { function getTypeOfPropertyOfContextualType(type: Type, name: string) { return applyToContextualType(type, t => { - var prop = getPropertyOfObjectType(t, name); + let prop = getPropertyOfObjectType(t, name); return prop ? getTypeOfSymbol(prop) : undefined; }); } @@ -5518,15 +5542,15 @@ module ts { } function getContextualTypeForObjectLiteralElement(element: ObjectLiteralElement) { - var objectLiteral = element.parent; - var type = getContextualType(objectLiteral); + let objectLiteral = element.parent; + let type = getContextualType(objectLiteral); if (type) { if (!hasDynamicName(element)) { // For a (non-symbol) computed property, there is no reason to look up the name // in the type. It will just be "__computed", which does not appear in any // SymbolTable. - var symbolName = getSymbolOfNode(element).name; - var propertyType = getTypeOfPropertyOfContextualType(type, symbolName); + let symbolName = getSymbolOfNode(element).name; + let propertyType = getTypeOfPropertyOfContextualType(type, symbolName); if (propertyType) { return propertyType; } @@ -5544,10 +5568,10 @@ module ts { // it is the type of the numeric index signature in T. Otherwise, in ES6 and higher, the contextual type is the iterated // type of T. function getContextualTypeForElementExpression(node: Expression): Type { - var arrayLiteral = node.parent; - var type = getContextualType(arrayLiteral); + let arrayLiteral = node.parent; + let type = getContextualType(arrayLiteral); if (type) { - var index = indexOf(arrayLiteral.elements, node); + let index = indexOf(arrayLiteral.elements, node); return getTypeOfPropertyOfContextualType(type, "" + index) || getIndexTypeOfContextualType(type, IndexKind.Number) || (languageVersion >= ScriptTarget.ES6 ? checkIteratedType(type, /*expressionForError*/ undefined) : undefined); @@ -5557,7 +5581,7 @@ module ts { // In a contextually typed conditional expression, the true/false expressions are contextually typed by the same type. function getContextualTypeForConditionalOperand(node: Expression): Type { - var conditional = node.parent; + let conditional = node.parent; return node === conditional.whenTrue || node === conditional.whenFalse ? getContextualType(conditional) : undefined; } @@ -5571,7 +5595,7 @@ module ts { if (node.contextualType) { return node.contextualType; } - var parent = node.parent; + let parent = node.parent; switch (parent.kind) { case SyntaxKind.VariableDeclaration: case SyntaxKind.Parameter: @@ -5607,9 +5631,9 @@ module ts { // If the given type is an object or union type, if that type has a single signature, and if // that signature is non-generic, return the signature. Otherwise return undefined. function getNonGenericSignature(type: Type): Signature { - var signatures = getSignaturesOfObjectOrUnionType(type, SignatureKind.Call); + let signatures = getSignaturesOfObjectOrUnionType(type, SignatureKind.Call); if (signatures.length === 1) { - var signature = signatures[0]; + let signature = signatures[0]; if (!signature.typeParameters) { return signature; } @@ -5632,7 +5656,7 @@ module ts { // union type of return types from these signatures function getContextualSignature(node: FunctionExpression | MethodDeclaration): Signature { Debug.assert(node.kind !== SyntaxKind.MethodDeclaration || isObjectLiteralMethod(node)); - var type = isObjectLiteralMethod(node) + let type = isObjectLiteralMethod(node) ? getContextualTypeForObjectLiteralMethod(node) : getContextualType(node); if (!type) { @@ -5641,17 +5665,17 @@ module ts { if (!(type.flags & TypeFlags.Union)) { return getNonGenericSignature(type); } - var signatureList: Signature[]; - var types = (type).types; - for (var i = 0; i < types.length; i++) { + let signatureList: Signature[]; + let types = (type).types; + for (let current of types) { // The signature set of all constituent type with call signatures should match // So number of signatures allowed is either 0 or 1 if (signatureList && - getSignaturesOfObjectOrUnionType(types[i], SignatureKind.Call).length > 1) { + getSignaturesOfObjectOrUnionType(current, SignatureKind.Call).length > 1) { return undefined; } - var signature = getNonGenericSignature(types[i]); + let signature = getNonGenericSignature(current); if (signature) { if (!signatureList) { // This signature will contribute to contextual union signature @@ -5669,7 +5693,7 @@ module ts { } // Result is union of signatures collected (return type is union of return types of this signature set) - var result: Signature; + let result: Signature; if (signatureList) { result = cloneSignature(signatureList[0]); // Clear resolved return type we possibly got from cloneSignature @@ -5689,7 +5713,7 @@ module ts { // assignment in an object literal that is an assignment target, or if it is parented by an array literal that is // an assignment target. Examples include 'a = xxx', '{ p: a } = xxx', '[{ p: a}] = xxx'. function isAssignmentTarget(node: Node): boolean { - var parent = node.parent; + let parent = node.parent; if (parent.kind === SyntaxKind.BinaryExpression && (parent).operatorToken.kind === SyntaxKind.EqualsToken && (parent).left === node) { return true; } @@ -5703,7 +5727,7 @@ module ts { } function checkSpreadElementExpression(node: SpreadElementExpression, contextualMapper?: TypeMapper): Type { - var type = checkExpressionCached(node.expression, contextualMapper); + let type = checkExpressionCached(node.expression, contextualMapper); if (!isArrayLikeType(type)) { error(node.expression, Diagnostics.Type_0_is_not_an_array_type, typeToString(type)); return unknownType; @@ -5712,14 +5736,14 @@ module ts { } function checkArrayLiteral(node: ArrayLiteralExpression, contextualMapper?: TypeMapper): Type { - var elements = node.elements; + let elements = node.elements; if (!elements.length) { return createArrayType(undefinedType); } - var hasSpreadElement: boolean = false; - var elementTypes: Type[] = []; + let hasSpreadElement: boolean = false; + let elementTypes: Type[] = []; forEach(elements, e => { - var type = checkExpression(e, contextualMapper); + let type = checkExpression(e, contextualMapper); if (e.kind === SyntaxKind.SpreadElementExpression) { elementTypes.push(getIndexTypeOfType(type, IndexKind.Number) || anyType); hasSpreadElement = true; @@ -5729,7 +5753,7 @@ module ts { } }); if (!hasSpreadElement) { - var contextualType = getContextualType(node); + let contextualType = getContextualType(node); if (contextualType && contextualTypeIsTupleLikeType(contextualType) || isAssignmentTarget(node)) { return createTupleType(elementTypes); } @@ -5773,7 +5797,7 @@ module ts { } function checkComputedPropertyName(node: ComputedPropertyName): Type { - var links = getNodeLinks(node.expression); + let links = getNodeLinks(node.expression); if (!links.resolvedType) { links.resolvedType = checkExpression(node.expression); @@ -5794,31 +5818,31 @@ module ts { // Grammar checking checkGrammarObjectLiteralExpression(node); - var propertiesTable: SymbolTable = {}; - var propertiesArray: Symbol[] = []; - var contextualType = getContextualType(node); - var typeFlags: TypeFlags; + let propertiesTable: SymbolTable = {}; + let propertiesArray: Symbol[] = []; + let contextualType = getContextualType(node); + let typeFlags: TypeFlags; - for (var i = 0; i < node.properties.length; i++) { - var memberDecl = node.properties[i]; - var member = memberDecl.symbol; + for (let memberDecl of node.properties) { + let member = memberDecl.symbol; if (memberDecl.kind === SyntaxKind.PropertyAssignment || memberDecl.kind === SyntaxKind.ShorthandPropertyAssignment || isObjectLiteralMethod(memberDecl)) { + let type: Type; if (memberDecl.kind === SyntaxKind.PropertyAssignment) { - var type = checkPropertyAssignment(memberDecl, contextualMapper); + type = checkPropertyAssignment(memberDecl, contextualMapper); } else if (memberDecl.kind === SyntaxKind.MethodDeclaration) { - var type = checkObjectLiteralMethod(memberDecl, contextualMapper); + type = checkObjectLiteralMethod(memberDecl, contextualMapper); } else { Debug.assert(memberDecl.kind === SyntaxKind.ShorthandPropertyAssignment); - var type = memberDecl.name.kind === SyntaxKind.ComputedPropertyName + type = memberDecl.name.kind === SyntaxKind.ComputedPropertyName ? unknownType : checkExpression(memberDecl.name, contextualMapper); } typeFlags |= type.flags; - var prop = createSymbol(SymbolFlags.Property | SymbolFlags.Transient | member.flags, member.name); + let prop = createSymbol(SymbolFlags.Property | SymbolFlags.Transient | member.flags, member.name); prop.declarations = member.declarations; prop.parent = member.parent; if (member.valueDeclaration) { @@ -5845,29 +5869,29 @@ module ts { propertiesArray.push(member); } - var stringIndexType = getIndexType(IndexKind.String); - var numberIndexType = getIndexType(IndexKind.Number); - var result = createAnonymousType(node.symbol, propertiesTable, emptyArray, emptyArray, stringIndexType, numberIndexType); + let stringIndexType = getIndexType(IndexKind.String); + let numberIndexType = getIndexType(IndexKind.Number); + let result = createAnonymousType(node.symbol, propertiesTable, emptyArray, emptyArray, stringIndexType, numberIndexType); result.flags |= TypeFlags.ObjectLiteral | TypeFlags.ContainsObjectLiteral | (typeFlags & TypeFlags.ContainsUndefinedOrNull); return result; function getIndexType(kind: IndexKind) { if (contextualType && contextualTypeHasIndexSignature(contextualType, kind)) { - var propTypes: Type[] = []; - for (var i = 0; i < propertiesArray.length; i++) { - var propertyDecl = node.properties[i]; + let propTypes: Type[] = []; + for (let i = 0; i < propertiesArray.length; i++) { + let propertyDecl = node.properties[i]; if (kind === IndexKind.String || isNumericName(propertyDecl.name)) { // Do not call getSymbolOfNode(propertyDecl), as that will get the // original symbol for the node. We actually want to get the symbol // created by checkObjectLiteral, since that will be appropriately // contextually typed and resolved. - var type = getTypeOfSymbol(propertiesArray[i]); + let type = getTypeOfSymbol(propertiesArray[i]); if (!contains(propTypes, type)) { propTypes.push(type); } } } - var result = propTypes.length ? getUnionType(propTypes) : undefinedType; + let result = propTypes.length ? getUnionType(propTypes) : undefinedType; typeFlags |= result.flags; return result; } @@ -5886,16 +5910,16 @@ module ts { } function checkClassPropertyAccess(node: PropertyAccessExpression | QualifiedName, left: Expression | QualifiedName, type: Type, prop: Symbol) { - var flags = getDeclarationFlagsFromSymbol(prop); + let flags = getDeclarationFlagsFromSymbol(prop); // Public properties are always accessible if (!(flags & (NodeFlags.Private | NodeFlags.Protected))) { return; } // Property is known to be private or protected at this point // Get the declaring and enclosing class instance types - var enclosingClassDeclaration = getAncestor(node, SyntaxKind.ClassDeclaration); - var enclosingClass = enclosingClassDeclaration ? getDeclaredTypeOfSymbol(getSymbolOfNode(enclosingClassDeclaration)) : undefined; - var declaringClass = getDeclaredTypeOfSymbol(prop.parent); + let enclosingClassDeclaration = getAncestor(node, SyntaxKind.ClassDeclaration); + let enclosingClass = enclosingClassDeclaration ? getDeclaredTypeOfSymbol(getSymbolOfNode(enclosingClassDeclaration)) : undefined; + let declaringClass = getDeclaredTypeOfSymbol(prop.parent); // Private property is accessible if declaring and enclosing class are the same if (flags & NodeFlags.Private) { if (declaringClass !== enclosingClass) { @@ -5932,15 +5956,15 @@ module ts { } function checkPropertyAccessExpressionOrQualifiedName(node: PropertyAccessExpression | QualifiedName, left: Expression | QualifiedName, right: Identifier) { - var type = checkExpressionOrQualifiedName(left); + let type = checkExpressionOrQualifiedName(left); if (type === unknownType) return type; if (type !== anyType) { - var apparentType = getApparentType(getWidenedType(type)); + let apparentType = getApparentType(getWidenedType(type)); if (apparentType === unknownType) { // handle cases when type is Type parameter with invalid constraint return unknownType; } - var prop = getPropertyOfType(apparentType, right.text); + let prop = getPropertyOfType(apparentType, right.text); if (!prop) { if (right.text) { error(right, Diagnostics.Property_0_does_not_exist_on_type_1, declarationNameToString(right), typeToString(type)); @@ -5969,19 +5993,19 @@ module ts { } function isValidPropertyAccess(node: PropertyAccessExpression | QualifiedName, propertyName: string): boolean { - var left = node.kind === SyntaxKind.PropertyAccessExpression + let left = node.kind === SyntaxKind.PropertyAccessExpression ? (node).expression : (node).left; - var type = checkExpressionOrQualifiedName(left); + let type = checkExpressionOrQualifiedName(left); if (type !== unknownType && type !== anyType) { - var prop = getPropertyOfType(getWidenedType(type), propertyName); + let prop = getPropertyOfType(getWidenedType(type), propertyName); if (prop && prop.parent && prop.parent.flags & SymbolFlags.Class) { if (left.kind === SyntaxKind.SuperKeyword && getDeclarationKindFromSymbol(prop) !== SyntaxKind.MethodDeclaration) { return false; } else { - var modificationCount = diagnostics.getModificationCount(); + let modificationCount = diagnostics.getModificationCount(); checkClassPropertyAccess(node, left, type, prop); return diagnostics.getModificationCount() === modificationCount; } @@ -5993,28 +6017,28 @@ module ts { function checkIndexedAccess(node: ElementAccessExpression): Type { // Grammar checking if (!node.argumentExpression) { - var sourceFile = getSourceFile(node); + let sourceFile = getSourceFile(node); if (node.parent.kind === SyntaxKind.NewExpression && (node.parent).expression === node) { - var start = skipTrivia(sourceFile.text, node.expression.end); - var end = node.end; + let start = skipTrivia(sourceFile.text, node.expression.end); + let end = node.end; grammarErrorAtPos(sourceFile, start, end - start, Diagnostics.new_T_cannot_be_used_to_create_an_array_Use_new_Array_T_instead); } else { - var start = node.end - "]".length; - var end = node.end; + let start = node.end - "]".length; + let end = node.end; grammarErrorAtPos(sourceFile, start, end - start, Diagnostics.Expression_expected); } } // Obtain base constraint such that we can bail out if the constraint is an unknown type - var objectType = getApparentType(checkExpression(node.expression)); - var indexType = node.argumentExpression ? checkExpression(node.argumentExpression) : unknownType; + let objectType = getApparentType(checkExpression(node.expression)); + let indexType = node.argumentExpression ? checkExpression(node.argumentExpression) : unknownType; if (objectType === unknownType) { return unknownType; } - var isConstEnum = isConstEnumObjectType(objectType); + let isConstEnum = isConstEnumObjectType(objectType); if (isConstEnum && (!node.argumentExpression || node.argumentExpression.kind !== SyntaxKind.StringLiteral)) { error(node.argumentExpression, Diagnostics.A_const_enum_member_can_only_be_accessed_using_a_string_literal); @@ -6032,9 +6056,9 @@ module ts { // See if we can index as a property. if (node.argumentExpression) { - var name = getPropertyNameForIndexedAccess(node.argumentExpression, indexType); + let name = getPropertyNameForIndexedAccess(node.argumentExpression, indexType); if (name !== undefined) { - var prop = getPropertyOfType(objectType, name); + let prop = getPropertyOfType(objectType, name); if (prop) { getNodeLinks(node).resolvedSymbol = prop; return getTypeOfSymbol(prop); @@ -6051,14 +6075,14 @@ module ts { // Try to use a number indexer. if (allConstituentTypesHaveKind(indexType, TypeFlags.Any | TypeFlags.NumberLike)) { - var numberIndexType = getIndexTypeOfType(objectType, IndexKind.Number); + let numberIndexType = getIndexTypeOfType(objectType, IndexKind.Number); if (numberIndexType) { return numberIndexType; } } // Try to use string indexing. - var stringIndexType = getIndexTypeOfType(objectType, IndexKind.String); + let stringIndexType = getIndexTypeOfType(objectType, IndexKind.String); if (stringIndexType) { return stringIndexType; } @@ -6088,7 +6112,7 @@ module ts { return (indexArgumentExpression).text; } if (checkThatExpressionIsProperSymbolReference(indexArgumentExpression, indexArgumentType, /*reportError*/ false)) { - var rightHandSideName = ((indexArgumentExpression).name).text; + let rightHandSideName = ((indexArgumentExpression).name).text; return getPropertyNameForKnownSymbolName(rightHandSideName); } @@ -6122,13 +6146,13 @@ module ts { // The name is Symbol., so make sure Symbol actually resolves to the // global Symbol object - var leftHandSide = (expression).expression; - var leftHandSideSymbol = getResolvedSymbol(leftHandSide); + let leftHandSide = (expression).expression; + let leftHandSideSymbol = getResolvedSymbol(leftHandSide); if (!leftHandSideSymbol) { return false; } - var globalESSymbol = getGlobalESSymbolConstructorSymbol(); + let globalESSymbol = getGlobalESSymbolConstructorSymbol(); if (!globalESSymbol) { // Already errored when we tried to look up the symbol return false; @@ -6167,20 +6191,19 @@ module ts { // so order how inherited signatures are processed is still preserved. // interface A { (x: string): void } // interface B extends A { (x: 'foo'): string } - // var b: B; + // let b: B; // b('foo') // <- here overloads should be processed as [(x:'foo'): string, (x: string): void] function reorderCandidates(signatures: Signature[], result: Signature[]): void { - var lastParent: Node; - var lastSymbol: Symbol; - var cutoffIndex: number = 0; - var index: number; - var specializedIndex: number = -1; - var spliceIndex: number; + let lastParent: Node; + let lastSymbol: Symbol; + let cutoffIndex: number = 0; + let index: number; + let specializedIndex: number = -1; + let spliceIndex: number; Debug.assert(!result.length); - for (var i = 0; i < signatures.length; i++) { - var signature = signatures[i]; - var symbol = signature.declaration && getSymbolOfNode(signature.declaration); - var parent = signature.declaration && signature.declaration.parent; + for (let signature of signatures) { + let symbol = signature.declaration && getSymbolOfNode(signature.declaration); + let parent = signature.declaration && signature.declaration.parent; if (!lastSymbol || symbol === lastSymbol) { if (lastParent && parent === lastParent) { index++; @@ -6217,7 +6240,7 @@ module ts { } function getSpreadArgumentIndex(args: Expression[]): number { - for (var i = 0; i < args.length; i++) { + for (let i = 0; i < args.length; i++) { if (args[i].kind === SyntaxKind.SpreadElementExpression) { return i; } @@ -6226,12 +6249,12 @@ module ts { } function hasCorrectArity(node: CallLikeExpression, args: Expression[], signature: Signature) { - var adjustedArgCount: number; // Apparent number of arguments we will have in this call - var typeArguments: NodeArray; // Type arguments (undefined if none) - var callIsIncomplete: boolean; // In incomplete call we want to be lenient when we have too few arguments + let adjustedArgCount: number; // Apparent number of arguments we will have in this call + let typeArguments: NodeArray; // Type arguments (undefined if none) + let callIsIncomplete: boolean; // In incomplete call we want to be lenient when we have too few arguments if (node.kind === SyntaxKind.TaggedTemplateExpression) { - var tagExpression = node; + let tagExpression = node; // Even if the call is incomplete, we'll have a missing expression as our last argument, // so we can say the count is just the arg list length @@ -6241,8 +6264,8 @@ module ts { if (tagExpression.template.kind === SyntaxKind.TemplateExpression) { // If a tagged template expression lacks a tail literal, the call is incomplete. // Specifically, a template only can end in a TemplateTail or a Missing literal. - var templateExpression = tagExpression.template; - var lastSpan = lastOrUndefined(templateExpression.templateSpans); + let templateExpression = tagExpression.template; + let lastSpan = lastOrUndefined(templateExpression.templateSpans); Debug.assert(lastSpan !== undefined); // we should always have at least one span. callIsIncomplete = getFullWidth(lastSpan.literal) === 0 || !!lastSpan.literal.isUnterminated; } @@ -6250,13 +6273,13 @@ module ts { // If the template didn't end in a backtick, or its beginning occurred right prior to EOF, // then this might actually turn out to be a TemplateHead in the future; // so we consider the call to be incomplete. - var templateLiteral = tagExpression.template; + let templateLiteral = tagExpression.template; Debug.assert(templateLiteral.kind === SyntaxKind.NoSubstitutionTemplateLiteral); callIsIncomplete = !!templateLiteral.isUnterminated; } } else { - var callExpression = node; + let callExpression = node; if (!callExpression.arguments) { // This only happens when we have something of the form: 'new C' Debug.assert(callExpression.kind === SyntaxKind.NewExpression); @@ -6275,7 +6298,7 @@ module ts { // If the user supplied type arguments, but the number of type arguments does not match // the declared number of type parameters, the call has an incorrect arity. - var hasRightNumberOfTypeArgs = !typeArguments || + let hasRightNumberOfTypeArgs = !typeArguments || (signature.typeParameters && typeArguments.length === signature.typeParameters.length); if (!hasRightNumberOfTypeArgs) { return false; @@ -6283,7 +6306,7 @@ module ts { // If spread arguments are present, check that they correspond to a rest parameter. If so, no // further checking is necessary. - var spreadArgIndex = getSpreadArgumentIndex(args); + let spreadArgIndex = getSpreadArgumentIndex(args); if (spreadArgIndex >= 0) { return signature.hasRestParameter && spreadArgIndex >= signature.parameters.length - 1; } @@ -6294,14 +6317,14 @@ module ts { } // If the call is incomplete, we should skip the lower bound check. - var hasEnoughArguments = adjustedArgCount >= signature.minArgumentCount; + let hasEnoughArguments = adjustedArgCount >= signature.minArgumentCount; return callIsIncomplete || hasEnoughArguments; } // If type has a single call signature and no other members, return that signature. Otherwise, return undefined. function getSingleCallSignature(type: Type): Signature { if (type.flags & TypeFlags.ObjectType) { - var resolved = resolveObjectOrUnionTypeMembers(type); + let resolved = resolveObjectOrUnionTypeMembers(type); if (resolved.callSignatures.length === 1 && resolved.constructSignatures.length === 0 && resolved.properties.length === 0 && !resolved.stringIndexType && !resolved.numberIndexType) { return resolved.callSignatures[0]; @@ -6312,7 +6335,7 @@ module ts { // Instantiate a generic signature in the context of a non-generic signature (section 3.8.5 in TypeScript spec) function instantiateSignatureInContextOf(signature: Signature, contextualSignature: Signature, contextualMapper: TypeMapper): Signature { - var context = createInferenceContext(signature.typeParameters, /*inferUnionTypes*/ true); + let context = createInferenceContext(signature.typeParameters, /*inferUnionTypes*/ true); forEachMatchingParameterType(contextualSignature, signature, (source, target) => { // Type parameters from outer context referenced by source type are fixed by instantiation of the source type inferTypes(context, instantiateType(source, contextualMapper), target); @@ -6321,24 +6344,25 @@ module ts { } function inferTypeArguments(signature: Signature, args: Expression[], excludeArgument: boolean[]): InferenceContext { - var typeParameters = signature.typeParameters; - var context = createInferenceContext(typeParameters, /*inferUnionTypes*/ false); - var inferenceMapper = createInferenceMapper(context); + let typeParameters = signature.typeParameters; + let context = createInferenceContext(typeParameters, /*inferUnionTypes*/ false); + let inferenceMapper = createInferenceMapper(context); // We perform two passes over the arguments. In the first pass we infer from all arguments, but use // wildcards for all context sensitive function expressions. - for (var i = 0; i < args.length; i++) { - var arg = args[i]; + for (let i = 0; i < args.length; i++) { + let arg = args[i]; if (arg.kind !== SyntaxKind.OmittedExpression) { - var paramType = getTypeAtPosition(signature, arg.kind === SyntaxKind.SpreadElementExpression ? -1 : i); + let paramType = getTypeAtPosition(signature, arg.kind === SyntaxKind.SpreadElementExpression ? -1 : i); + let argType: Type; if (i === 0 && args[i].parent.kind === SyntaxKind.TaggedTemplateExpression) { - var argType = globalTemplateStringsArrayType; + argType = globalTemplateStringsArrayType; } else { // For context sensitive arguments we pass the identityMapper, which is a signal to treat all // context sensitive function expressions as wildcards - var mapper = excludeArgument && excludeArgument[i] !== undefined ? identityMapper : inferenceMapper; - var argType = checkExpressionWithContextualType(arg, paramType, mapper); + let mapper = excludeArgument && excludeArgument[i] !== undefined ? identityMapper : inferenceMapper; + argType = checkExpressionWithContextualType(arg, paramType, mapper); } inferTypes(context, argType, paramType); } @@ -6348,22 +6372,22 @@ module ts { // time treating function expressions normally (which may cause previously inferred type arguments to be fixed // as we construct types for contextually typed parameters) if (excludeArgument) { - for (var i = 0; i < args.length; i++) { + for (let i = 0; i < args.length; i++) { // No need to check for omitted args and template expressions, their exlusion value is always undefined if (excludeArgument[i] === false) { - var arg = args[i]; - var paramType = getTypeAtPosition(signature, arg.kind === SyntaxKind.SpreadElementExpression ? -1 : i); + let arg = args[i]; + let paramType = getTypeAtPosition(signature, arg.kind === SyntaxKind.SpreadElementExpression ? -1 : i); inferTypes(context, checkExpressionWithContextualType(arg, paramType, inferenceMapper), paramType); } } } - var inferredTypes = getInferredTypes(context); + let inferredTypes = getInferredTypes(context); // Inference has failed if the inferenceFailureType type is in list of inferences context.failedTypeParameterIndex = indexOf(inferredTypes, inferenceFailureType); // Wipe out the inferenceFailureType from the array so that error recovery can work properly - for (var i = 0; i < inferredTypes.length; i++) { + for (let i = 0; i < inferredTypes.length; i++) { if (inferredTypes[i] === inferenceFailureType) { inferredTypes[i] = unknownType; } @@ -6373,15 +6397,15 @@ module ts { } function checkTypeArguments(signature: Signature, typeArguments: TypeNode[], typeArgumentResultTypes: Type[], reportErrors: boolean): boolean { - var typeParameters = signature.typeParameters; - var typeArgumentsAreAssignable = true; - for (var i = 0; i < typeParameters.length; i++) { - var typeArgNode = typeArguments[i]; - var typeArgument = getTypeFromTypeNode(typeArgNode); + let typeParameters = signature.typeParameters; + let typeArgumentsAreAssignable = true; + for (let i = 0; i < typeParameters.length; i++) { + let typeArgNode = typeArguments[i]; + let typeArgument = getTypeFromTypeNode(typeArgNode); // Do not push on this array! It has a preallocated length typeArgumentResultTypes[i] = typeArgument; if (typeArgumentsAreAssignable /* so far */) { - var constraint = getConstraintOfTypeParameter(typeParameters[i]); + let constraint = getConstraintOfTypeParameter(typeParameters[i]); if (constraint) { typeArgumentsAreAssignable = checkTypeAssignableTo(typeArgument, constraint, reportErrors ? typeArgNode : undefined, Diagnostics.Type_0_does_not_satisfy_the_constraint_1); @@ -6392,14 +6416,14 @@ module ts { } function checkApplicableSignature(node: CallLikeExpression, args: Expression[], signature: Signature, relation: Map, excludeArgument: boolean[], reportErrors: boolean) { - for (var i = 0; i < args.length; i++) { - var arg = args[i]; + for (let i = 0; i < args.length; i++) { + let arg = args[i]; if (arg.kind !== SyntaxKind.OmittedExpression) { // Check spread elements against rest type (from arity check we know spread argument corresponds to a rest parameter) - var paramType = getTypeAtPosition(signature, arg.kind === SyntaxKind.SpreadElementExpression ? -1 : i); + let paramType = getTypeAtPosition(signature, arg.kind === SyntaxKind.SpreadElementExpression ? -1 : i); // A tagged template expression provides a special first argument, and string literals get string literal types // unless we're reporting errors - var argType = i === 0 && node.kind === SyntaxKind.TaggedTemplateExpression ? globalTemplateStringsArrayType : + let argType = i === 0 && node.kind === SyntaxKind.TaggedTemplateExpression ? globalTemplateStringsArrayType : arg.kind === SyntaxKind.StringLiteral && !reportErrors ? getStringLiteralType(arg) : checkExpressionWithContextualType(arg, paramType, excludeArgument && excludeArgument[i] ? identityMapper : undefined); // Use argument expression as error location when reporting errors @@ -6420,9 +6444,9 @@ module ts { * expressions, where the first element of the list is the template for error reporting purposes. */ function getEffectiveCallArguments(node: CallLikeExpression): Expression[] { - var args: Expression[]; + let args: Expression[]; if (node.kind === SyntaxKind.TaggedTemplateExpression) { - var template = (node).template; + let template = (node).template; args = [template]; if (template.kind === SyntaxKind.TemplateExpression) { @@ -6450,8 +6474,8 @@ module ts { */ function getEffectiveTypeArguments(callExpression: CallExpression): TypeNode[] { if (callExpression.expression.kind === SyntaxKind.SuperKeyword) { - var containingClass = getAncestor(callExpression, SyntaxKind.ClassDeclaration); - var baseClassTypeNode = containingClass && getClassBaseTypeNode(containingClass); + let containingClass = getAncestor(callExpression, SyntaxKind.ClassDeclaration); + let baseClassTypeNode = containingClass && getClassBaseTypeNode(containingClass); return baseClassTypeNode && baseClassTypeNode.typeArguments; } else { @@ -6461,9 +6485,9 @@ module ts { } function resolveCall(node: CallLikeExpression, signatures: Signature[], candidatesOutArray: Signature[]): Signature { - var isTaggedTemplate = node.kind === SyntaxKind.TaggedTemplateExpression; + let isTaggedTemplate = node.kind === SyntaxKind.TaggedTemplateExpression; - var typeArguments: TypeNode[]; + let typeArguments: TypeNode[]; if (!isTaggedTemplate) { typeArguments = getEffectiveTypeArguments(node); @@ -6474,7 +6498,7 @@ module ts { } } - var candidates = candidatesOutArray || []; + let candidates = candidatesOutArray || []; // reorderCandidates fills up the candidates array directly reorderCandidates(signatures, candidates); if (!candidates.length) { @@ -6482,7 +6506,7 @@ module ts { return resolveErrorCall(node); } - var args = getEffectiveCallArguments(node); + let args = getEffectiveCallArguments(node); // The following applies to any value of 'excludeArgument[i]': // - true: the argument at 'i' is susceptible to a one-time permanent contextual typing. @@ -6495,8 +6519,8 @@ module ts { // // For a tagged template, then the first argument be 'undefined' if necessary // because it represents a TemplateStringsArray. - var excludeArgument: boolean[]; - for (var i = isTaggedTemplate ? 1 : 0; i < args.length; i++) { + let excludeArgument: boolean[]; + for (let i = isTaggedTemplate ? 1 : 0; i < args.length; i++) { if (isContextSensitive(args[i])) { if (!excludeArgument) { excludeArgument = new Array(args.length); @@ -6526,10 +6550,10 @@ module ts { // function foo() {} // foo(0, true); // - var candidateForArgumentError: Signature; - var candidateForTypeArgumentError: Signature; - var resultOfFailedInference: InferenceContext; - var result: Signature; + let candidateForArgumentError: Signature; + let candidateForTypeArgumentError: Signature; + let resultOfFailedInference: InferenceContext; + let result: Signature; // Section 4.12.1: // if the candidate list contains one or more signatures for which the type of each argument @@ -6573,10 +6597,10 @@ module ts { } else { Debug.assert(resultOfFailedInference.failedTypeParameterIndex >= 0); - var failedTypeParameter = candidateForTypeArgumentError.typeParameters[resultOfFailedInference.failedTypeParameterIndex]; - var inferenceCandidates = getInferenceCandidates(resultOfFailedInference, resultOfFailedInference.failedTypeParameterIndex); + let failedTypeParameter = candidateForTypeArgumentError.typeParameters[resultOfFailedInference.failedTypeParameterIndex]; + let inferenceCandidates = getInferenceCandidates(resultOfFailedInference, resultOfFailedInference.failedTypeParameterIndex); - var diagnosticChainHead = chainDiagnosticMessages(/*details*/ undefined, // details will be provided by call to reportNoCommonSupertypeError + let diagnosticChainHead = chainDiagnosticMessages(/*details*/ undefined, // details will be provided by call to reportNoCommonSupertypeError Diagnostics.The_type_argument_for_type_parameter_0_cannot_be_inferred_from_the_usage_Consider_specifying_the_type_arguments_explicitly, typeToString(failedTypeParameter)); @@ -6593,9 +6617,9 @@ module ts { // declare function f(a: { xa: number; xb: number; }); // f({ | if (!produceDiagnostics) { - for (var i = 0, n = candidates.length; i < n; i++) { - if (hasCorrectArity(node, args, candidates[i])) { - return candidates[i]; + for (let candidate of candidates) { + if (hasCorrectArity(node, args, candidate)) { + return candidate; } } } @@ -6603,19 +6627,19 @@ module ts { return resolveErrorCall(node); function chooseOverload(candidates: Signature[], relation: Map) { - for (var i = 0; i < candidates.length; i++) { - if (!hasCorrectArity(node, args, candidates[i])) { + for (let current of candidates) { + if (!hasCorrectArity(node, args, current)) { continue; } - var originalCandidate = candidates[i]; - var inferenceResult: InferenceContext; - + let originalCandidate = current; + let inferenceResult: InferenceContext; + let candidate: Signature; + let typeArgumentsAreValid: boolean; while (true) { - var candidate = originalCandidate; + candidate = originalCandidate; if (candidate.typeParameters) { - var typeArgumentTypes: Type[]; - var typeArgumentsAreValid: boolean; + let typeArgumentTypes: Type[]; if (typeArguments) { typeArgumentTypes = new Array(candidate.typeParameters.length); typeArgumentsAreValid = checkTypeArguments(candidate, typeArguments, typeArgumentTypes, /*reportErrors*/ false) @@ -6633,7 +6657,7 @@ module ts { if (!checkApplicableSignature(node, args, candidate, relation, excludeArgument, /*reportErrors*/ false)) { break; } - var index = excludeArgument ? indexOf(excludeArgument, true) : -1; + let index = excludeArgument ? indexOf(excludeArgument, true) : -1; if (index < 0) { return candidate; } @@ -6646,7 +6670,7 @@ module ts { // report an error based on the arguments. If there was an issue with type // arguments, then we can only report an error based on the type arguments. if (originalCandidate.typeParameters) { - var instantiatedCandidate = candidate; + let instantiatedCandidate = candidate; if (typeArgumentsAreValid) { candidateForArgumentError = instantiatedCandidate; } @@ -6670,15 +6694,15 @@ module ts { function resolveCallExpression(node: CallExpression, candidatesOutArray: Signature[]): Signature { if (node.expression.kind === SyntaxKind.SuperKeyword) { - var superType = checkSuperExpression(node.expression); + let superType = checkSuperExpression(node.expression); if (superType !== unknownType) { return resolveCall(node, getSignaturesOfType(superType, SignatureKind.Construct), candidatesOutArray); } return resolveUntypedCall(node); } - var funcType = checkExpression(node.expression); - var apparentType = getApparentType(funcType); + let funcType = checkExpression(node.expression); + let apparentType = getApparentType(funcType); if (apparentType === unknownType) { // Another error has already been reported @@ -6689,9 +6713,9 @@ module ts { // but we are not including call signatures that may have been added to the Object or // Function interface, since they have none by default. This is a bit of a leap of faith // that the user will not add any. - var callSignatures = getSignaturesOfType(apparentType, SignatureKind.Call); + let callSignatures = getSignaturesOfType(apparentType, SignatureKind.Call); - var constructSignatures = getSignaturesOfType(apparentType, SignatureKind.Construct); + let constructSignatures = getSignaturesOfType(apparentType, SignatureKind.Construct); // TS 1.0 spec: 4.12 // If FuncExpr is of type Any, or of an object type that has no call or construct signatures // but is a subtype of the Function interface, the call is an untyped function call. In an @@ -6722,13 +6746,13 @@ module ts { function resolveNewExpression(node: NewExpression, candidatesOutArray: Signature[]): Signature { if (node.arguments && languageVersion < ScriptTarget.ES6) { - var spreadIndex = getSpreadArgumentIndex(node.arguments); + let spreadIndex = getSpreadArgumentIndex(node.arguments); if (spreadIndex >= 0) { error(node.arguments[spreadIndex], Diagnostics.Spread_operator_in_new_expressions_is_only_available_when_targeting_ECMAScript_6_and_higher); } } - var expressionType = checkExpression(node.expression); + let expressionType = checkExpression(node.expression); // TS 1.0 spec: 4.11 // If ConstructExpr is of type Any, Args can be any argument // list and the result of the operation is of type Any. @@ -6754,7 +6778,7 @@ module ts { // but we are not including construct signatures that may have been added to the Object or // Function interface, since they have none by default. This is a bit of a leap of faith // that the user will not add any. - var constructSignatures = getSignaturesOfType(expressionType, SignatureKind.Construct); + let constructSignatures = getSignaturesOfType(expressionType, SignatureKind.Construct); if (constructSignatures.length) { return resolveCall(node, constructSignatures, candidatesOutArray); } @@ -6763,9 +6787,9 @@ module ts { // one or more call signatures, the expression is processed as a function call. A compile-time // error occurs if the result of the function call is not Void. The type of the result of the // operation is Any. - var callSignatures = getSignaturesOfType(expressionType, SignatureKind.Call); + let callSignatures = getSignaturesOfType(expressionType, SignatureKind.Call); if (callSignatures.length) { - var signature = resolveCall(node, callSignatures, candidatesOutArray); + let signature = resolveCall(node, callSignatures, candidatesOutArray); if (getReturnTypeOfSignature(signature) !== voidType) { error(node, Diagnostics.Only_a_void_function_can_be_called_with_the_new_keyword); } @@ -6777,15 +6801,15 @@ module ts { } function resolveTaggedTemplateExpression(node: TaggedTemplateExpression, candidatesOutArray: Signature[]): Signature { - var tagType = checkExpression(node.tag); - var apparentType = getApparentType(tagType); + let tagType = checkExpression(node.tag); + let apparentType = getApparentType(tagType); if (apparentType === unknownType) { // Another error has already been reported return resolveErrorCall(node); } - var callSignatures = getSignaturesOfType(apparentType, SignatureKind.Call); + let callSignatures = getSignaturesOfType(apparentType, SignatureKind.Call); if (tagType === anyType || (!callSignatures.length && !(tagType.flags & TypeFlags.Union) && isTypeAssignableTo(tagType, globalFunctionType))) { return resolveUntypedCall(node); @@ -6802,7 +6826,7 @@ module ts { // candidatesOutArray is passed by signature help in the language service, and collectCandidates // must fill it up with the appropriate candidate signatures function getResolvedSignature(node: CallLikeExpression, candidatesOutArray?: Signature[]): Signature { - var links = getNodeLinks(node); + let links = getNodeLinks(node); // If getResolvedSignature has already been called, we will have cached the resolvedSignature. // However, it is possible that either candidatesOutArray was not passed in the first time, // or that a different candidatesOutArray was passed in. Therefore, we need to redo the work @@ -6830,12 +6854,12 @@ module ts { // Grammar checking; stop grammar-checking if checkGrammarTypeArguments return true checkGrammarTypeArguments(node, node.typeArguments) || checkGrammarArguments(node, node.arguments); - var signature = getResolvedSignature(node); + let signature = getResolvedSignature(node); if (node.expression.kind === SyntaxKind.SuperKeyword) { return voidType; } if (node.kind === SyntaxKind.NewExpression) { - var declaration = signature.declaration; + let declaration = signature.declaration; if (declaration && declaration.kind !== SyntaxKind.Constructor && declaration.kind !== SyntaxKind.ConstructSignature && @@ -6856,10 +6880,10 @@ module ts { } function checkTypeAssertion(node: TypeAssertion): Type { - var exprType = checkExpression(node.expression); - var targetType = getTypeFromTypeNode(node.type); + let exprType = checkExpression(node.expression); + let targetType = getTypeFromTypeNode(node.type); if (produceDiagnostics && targetType !== unknownType) { - var widenedType = getWidenedType(exprType); + let widenedType = getWidenedType(exprType); if (!(isTypeAssignableTo(targetType, widenedType))) { checkTypeAssignableTo(exprType, targetType, node, Diagnostics.Neither_type_0_nor_type_1_is_assignable_to_the_other); } @@ -6879,36 +6903,37 @@ module ts { } function assignContextualParameterTypes(signature: Signature, context: Signature, mapper: TypeMapper) { - var len = signature.parameters.length - (signature.hasRestParameter ? 1 : 0); - for (var i = 0; i < len; i++) { - var parameter = signature.parameters[i]; - var links = getSymbolLinks(parameter); + let len = signature.parameters.length - (signature.hasRestParameter ? 1 : 0); + for (let i = 0; i < len; i++) { + let parameter = signature.parameters[i]; + let links = getSymbolLinks(parameter); links.type = instantiateType(getTypeAtPosition(context, i), mapper); } if (signature.hasRestParameter && context.hasRestParameter && signature.parameters.length >= context.parameters.length) { - var parameter = signature.parameters[signature.parameters.length - 1]; - var links = getSymbolLinks(parameter); + let parameter = signature.parameters[signature.parameters.length - 1]; + let links = getSymbolLinks(parameter); links.type = instantiateType(getTypeOfSymbol(context.parameters[context.parameters.length - 1]), mapper); } } function getReturnTypeFromBody(func: FunctionLikeDeclaration, contextualMapper?: TypeMapper): Type { - var contextualSignature = getContextualSignatureForFunctionLikeDeclaration(func); + let contextualSignature = getContextualSignatureForFunctionLikeDeclaration(func); if (!func.body) { return unknownType; } + let type: Type; if (func.body.kind !== SyntaxKind.Block) { - var type = checkExpressionCached(func.body, contextualMapper); + type = checkExpressionCached(func.body, contextualMapper); } else { // Aggregate the types of expressions within all the return statements. - var types = checkAndAggregateReturnExpressionTypes(func.body, contextualMapper); + let types = checkAndAggregateReturnExpressionTypes(func.body, contextualMapper); if (types.length === 0) { return voidType; } // When return statements are contextually typed we allow the return type to be a union type. Otherwise we require the // return expressions to have a best common supertype. - var type = contextualSignature ? getUnionType(types) : getCommonSupertype(types); + type = contextualSignature ? getUnionType(types) : getCommonSupertype(types); if (!type) { error(func, Diagnostics.No_best_common_type_exists_among_return_expressions); return unknownType; @@ -6922,12 +6947,12 @@ module ts { /// Returns a set of types relating to every return expression relating to a function block. function checkAndAggregateReturnExpressionTypes(body: Block, contextualMapper?: TypeMapper): Type[] { - var aggregatedTypes: Type[] = []; + let aggregatedTypes: Type[] = []; forEachReturnStatement(body, returnStatement => { - var expr = returnStatement.expression; + let expr = returnStatement.expression; if (expr) { - var type = checkExpressionCached(expr, contextualMapper); + let type = checkExpressionCached(expr, contextualMapper); if (!contains(aggregatedTypes, type)) { aggregatedTypes.push(type); } @@ -6966,7 +6991,7 @@ module ts { return; } - var bodyBlock = func.body; + let bodyBlock = func.body; // Ensure the body has at least one return expression. if (bodyContainsAReturnStatement(bodyBlock)) { @@ -6988,7 +7013,7 @@ module ts { Debug.assert(node.kind !== SyntaxKind.MethodDeclaration || isObjectLiteralMethod(node)); // Grammar checking - var hasGrammarError = checkGrammarFunctionLikeDeclaration(node); + let hasGrammarError = checkGrammarFunctionLikeDeclaration(node); if (!hasGrammarError && node.kind === SyntaxKind.FunctionExpression) { checkGrammarFunctionName(node.name) || checkGrammarForGenerator(node); } @@ -6997,24 +7022,24 @@ module ts { if (contextualMapper === identityMapper && isContextSensitive(node)) { return anyFunctionType; } - var links = getNodeLinks(node); - var type = getTypeOfSymbol(node.symbol); + let links = getNodeLinks(node); + let type = getTypeOfSymbol(node.symbol); // Check if function expression is contextually typed and assign parameter types if so if (!(links.flags & NodeCheckFlags.ContextChecked)) { - var contextualSignature = getContextualSignature(node); + let contextualSignature = getContextualSignature(node); // If a type check is started at a function expression that is an argument of a function call, obtaining the // contextual type may recursively get back to here during overload resolution of the call. If so, we will have // already assigned contextual types. if (!(links.flags & NodeCheckFlags.ContextChecked)) { links.flags |= NodeCheckFlags.ContextChecked; if (contextualSignature) { - var signature = getSignaturesOfType(type, SignatureKind.Call)[0]; + let signature = getSignaturesOfType(type, SignatureKind.Call)[0]; if (isContextSensitive(node)) { assignContextualParameterTypes(signature, contextualSignature, contextualMapper || identityMapper); } if (!node.type) { signature.resolvedReturnType = resolvingType; - var returnType = getReturnTypeFromBody(node, contextualMapper); + let returnType = getReturnTypeFromBody(node, contextualMapper); if (signature.resolvedReturnType === resolvingType) { signature.resolvedReturnType = returnType; } @@ -7043,7 +7068,7 @@ module ts { checkSourceElement(node.body); } else { - var exprType = checkExpression(node.body); + let exprType = checkExpression(node.body); if (node.type) { checkTypeAssignableTo(exprType, getTypeFromTypeNode(node.type), node.body, /*headMessage*/ undefined); } @@ -7062,7 +7087,7 @@ module ts { function checkReferenceExpression(n: Node, invalidReferenceMessage: DiagnosticMessage, constantVariableMessage: DiagnosticMessage): boolean { function findSymbol(n: Node): Symbol { - var symbol = getNodeLinks(n).resolvedSymbol; + let symbol = getNodeLinks(n).resolvedSymbol; // Because we got the symbol from the resolvedSymbol property, it might be of kind // SymbolFlags.ExportValue. In this case it is necessary to get the actual export // symbol, which will have the correct flags set on it. @@ -7077,18 +7102,20 @@ module ts { // and property accesses(section 4.10). // All other expression constructs described in this chapter are classified as values. switch (n.kind) { - case SyntaxKind.Identifier: - var symbol = findSymbol(n); + case SyntaxKind.Identifier: { + let symbol = findSymbol(n); // TypeScript 1.0 spec (April 2014): 4.3 // An identifier expression that references a variable or parameter is classified as a reference. // An identifier expression that references any other kind of entity is classified as a value(and therefore cannot be the target of an assignment). return !symbol || symbol === unknownSymbol || symbol === argumentsSymbol || (symbol.flags & SymbolFlags.Variable) !== 0; - case SyntaxKind.PropertyAccessExpression: - var symbol = findSymbol(n); + } + case SyntaxKind.PropertyAccessExpression: { + let symbol = findSymbol(n); // TypeScript 1.0 spec (April 2014): 4.10 // A property access expression is always classified as a reference. // NOTE (not in spec): assignment to enum members should not be allowed return !symbol || symbol === unknownSymbol || (symbol.flags & ~SymbolFlags.EnumMember) !== 0; + } case SyntaxKind.ElementAccessExpression: // old compiler doesn't check indexed assess return true; @@ -7102,19 +7129,21 @@ module ts { function isConstVariableReference(n: Node): boolean { switch (n.kind) { case SyntaxKind.Identifier: - case SyntaxKind.PropertyAccessExpression: - var symbol = findSymbol(n); + case SyntaxKind.PropertyAccessExpression: { + let symbol = findSymbol(n); return symbol && (symbol.flags & SymbolFlags.Variable) !== 0 && (getDeclarationFlagsFromSymbol(symbol) & NodeFlags.Const) !== 0; - case SyntaxKind.ElementAccessExpression: - var index = (n).argumentExpression; - var symbol = findSymbol((n).expression); + } + case SyntaxKind.ElementAccessExpression: { + let index = (n).argumentExpression; + let symbol = findSymbol((n).expression); if (symbol && index && index.kind === SyntaxKind.StringLiteral) { - var name = (index).text; - var prop = getPropertyOfType(getTypeOfSymbol(symbol), name); + let name = (index).text; + let prop = getPropertyOfType(getTypeOfSymbol(symbol), name); return prop && (prop.flags & SymbolFlags.Variable) !== 0 && (getDeclarationFlagsFromSymbol(prop) & NodeFlags.Const) !== 0; } return false; + } case SyntaxKind.ParenthesizedExpression: return isConstVariableReference((n).expression); default: @@ -7141,17 +7170,17 @@ module ts { grammarErrorOnNode(node.expression, Diagnostics.delete_cannot_be_called_on_an_identifier_in_strict_mode); } - var operandType = checkExpression(node.expression); + let operandType = checkExpression(node.expression); return booleanType; } function checkTypeOfExpression(node: TypeOfExpression): Type { - var operandType = checkExpression(node.expression); + let operandType = checkExpression(node.expression); return stringType; } function checkVoidExpression(node: VoidExpression): Type { - var operandType = checkExpression(node.expression); + let operandType = checkExpression(node.expression); return undefinedType; } @@ -7164,7 +7193,7 @@ module ts { checkGrammarEvalOrArgumentsInStrictMode(node, node.operand); } - var operandType = checkExpression(node.operand); + let operandType = checkExpression(node.operand); switch (node.operator) { case SyntaxKind.PlusToken: case SyntaxKind.MinusToken: @@ -7177,7 +7206,7 @@ module ts { return booleanType; case SyntaxKind.PlusPlusToken: case SyntaxKind.MinusMinusToken: - var ok = checkArithmeticOperandType(node.operand, operandType, Diagnostics.An_arithmetic_operand_must_be_of_type_any_number_or_an_enum_type); + let ok = checkArithmeticOperandType(node.operand, operandType, Diagnostics.An_arithmetic_operand_must_be_of_type_any_number_or_an_enum_type); if (ok) { // run check only if former checks succeeded to avoid reporting cascading errors checkReferenceExpression(node.operand, @@ -7196,8 +7225,8 @@ module ts { // operated upon by a Prefix Increment(11.4.4) or a Prefix Decrement(11.4.5) operator. checkGrammarEvalOrArgumentsInStrictMode(node, node.operand); - var operandType = checkExpression(node.operand); - var ok = checkArithmeticOperandType(node.operand, operandType, Diagnostics.An_arithmetic_operand_must_be_of_type_any_number_or_an_enum_type); + let operandType = checkExpression(node.operand); + let ok = checkArithmeticOperandType(node.operand, operandType, Diagnostics.An_arithmetic_operand_must_be_of_type_any_number_or_an_enum_type); if (ok) { // run check only if former checks succeeded to avoid reporting cascading errors checkReferenceExpression(node.operand, @@ -7214,9 +7243,9 @@ module ts { return true; } if (type.flags & TypeFlags.Union) { - var types = (type).types; - for (var i = 0; i < types.length; i++) { - if (types[i].flags & kind) { + let types = (type).types; + for (let current of types) { + if (current.flags & kind) { return true; } } @@ -7231,9 +7260,9 @@ module ts { return true; } if (type.flags & TypeFlags.Union) { - var types = (type).types; - for (var i = 0; i < types.length; i++) { - if (!(types[i].flags & kind)) { + let types = (type).types; + for (let current of types) { + if (!(current.flags & kind)) { return false; } } @@ -7281,13 +7310,12 @@ module ts { } function checkObjectLiteralAssignment(node: ObjectLiteralExpression, sourceType: Type, contextualMapper?: TypeMapper): Type { - var properties = node.properties; - for (var i = 0; i < properties.length; i++) { - var p = properties[i]; + let properties = node.properties; + for (let p of properties) { if (p.kind === SyntaxKind.PropertyAssignment || p.kind === SyntaxKind.ShorthandPropertyAssignment) { // TODO(andersh): Computed property support - var name = (p).name; - var type = sourceType.flags & TypeFlags.Any ? sourceType : + let name = (p).name; + let type = sourceType.flags & TypeFlags.Any ? sourceType : getTypeOfPropertyOfType(sourceType, name.text) || isNumericLiteralName(name.text) && getIndexTypeOfType(sourceType, IndexKind.Number) || getIndexTypeOfType(sourceType, IndexKind.String); @@ -7311,13 +7339,13 @@ module ts { error(node, Diagnostics.Type_0_is_not_an_array_type, typeToString(sourceType)); return sourceType; } - var elements = node.elements; - for (var i = 0; i < elements.length; i++) { - var e = elements[i]; + let elements = node.elements; + for (let i = 0; i < elements.length; i++) { + let e = elements[i]; if (e.kind !== SyntaxKind.OmittedExpression) { if (e.kind !== SyntaxKind.SpreadElementExpression) { - var propName = "" + i; - var type = sourceType.flags & TypeFlags.Any ? sourceType : + let propName = "" + i; + let type = sourceType.flags & TypeFlags.Any ? sourceType : isTupleLikeType(sourceType) ? getTypeOfPropertyOfType(sourceType, propName) : getIndexTypeOfType(sourceType, IndexKind.Number); if (type) { @@ -7360,7 +7388,7 @@ module ts { } function checkReferenceAssignment(target: Expression, sourceType: Type, contextualMapper?: TypeMapper): Type { - var targetType = checkExpression(target, contextualMapper); + let targetType = checkExpression(target, contextualMapper); if (checkReferenceExpression(target, Diagnostics.Invalid_left_hand_side_of_assignment_expression, Diagnostics.Left_hand_side_of_assignment_expression_cannot_be_a_constant)) { checkTypeAssignableTo(sourceType, targetType, target, /*headMessage*/ undefined); } @@ -7375,12 +7403,12 @@ module ts { checkGrammarEvalOrArgumentsInStrictMode(node, node.left); } - var operator = node.operatorToken.kind; + let operator = node.operatorToken.kind; if (operator === SyntaxKind.EqualsToken && (node.left.kind === SyntaxKind.ObjectLiteralExpression || node.left.kind === SyntaxKind.ArrayLiteralExpression)) { return checkDestructuringAssignment(node.left, checkExpression(node.right, contextualMapper), contextualMapper); } - var leftType = checkExpression(node.left, contextualMapper); - var rightType = checkExpression(node.right, contextualMapper); + let leftType = checkExpression(node.left, contextualMapper); + let rightType = checkExpression(node.right, contextualMapper); switch (operator) { case SyntaxKind.AsteriskToken: case SyntaxKind.AsteriskEqualsToken: @@ -7411,7 +7439,7 @@ module ts { if (leftType.flags & (TypeFlags.Undefined | TypeFlags.Null)) leftType = rightType; if (rightType.flags & (TypeFlags.Undefined | TypeFlags.Null)) rightType = leftType; - var suggestedOperator: SyntaxKind; + let suggestedOperator: SyntaxKind; // if a user tries to apply a bitwise operator to 2 boolean operands // try and return them a helpful suggestion if ((leftType.flags & TypeFlags.Boolean) && @@ -7421,8 +7449,8 @@ module ts { } else { // otherwise just check each operand separately and report errors as normal - var leftOk = checkArithmeticOperandType(node.left, leftType, Diagnostics.The_left_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_or_an_enum_type); - var rightOk = checkArithmeticOperandType(node.right, rightType, Diagnostics.The_right_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_or_an_enum_type); + let leftOk = checkArithmeticOperandType(node.left, leftType, Diagnostics.The_left_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_or_an_enum_type); + let rightOk = checkArithmeticOperandType(node.right, rightType, Diagnostics.The_right_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_or_an_enum_type); if (leftOk && rightOk) { checkAssignmentOperator(numberType); } @@ -7439,7 +7467,7 @@ module ts { if (leftType.flags & (TypeFlags.Undefined | TypeFlags.Null)) leftType = rightType; if (rightType.flags & (TypeFlags.Undefined | TypeFlags.Null)) rightType = leftType; - var resultType: Type; + let resultType: Type; if (allConstituentTypesHaveKind(leftType, TypeFlags.NumberLike) && allConstituentTypesHaveKind(rightType, TypeFlags.NumberLike)) { // Operands of an enum type are treated as having the primitive type Number. // If both operands are of the Number primitive type, the result is of the Number primitive type. @@ -7504,7 +7532,7 @@ module ts { // Return true if there was no error, false if there was an error. function checkForDisallowedESSymbolOperand(operator: SyntaxKind): boolean { - var offendingSymbolOperand = + let offendingSymbolOperand = someConstituentTypeHasKind(leftType, TypeFlags.ESSymbol) ? node.left : someConstituentTypeHasKind(rightType, TypeFlags.ESSymbol) ? node.right : undefined; @@ -7540,7 +7568,7 @@ module ts { // requires VarExpr to be classified as a reference // A compound assignment furthermore requires VarExpr to be classified as a reference (section 4.1) // and the type of the non - compound operation to be assignable to the type of VarExpr. - var ok = checkReferenceExpression(node.left, Diagnostics.Invalid_left_hand_side_of_assignment_expression, Diagnostics.Left_hand_side_of_assignment_expression_cannot_be_a_constant); + let ok = checkReferenceExpression(node.left, Diagnostics.Invalid_left_hand_side_of_assignment_expression, Diagnostics.Left_hand_side_of_assignment_expression_cannot_be_a_constant); // Use default messages if (ok) { // to avoid cascading errors check assignability only if 'isReference' check succeeded and no errors were reported @@ -7566,8 +7594,8 @@ module ts { function checkConditionalExpression(node: ConditionalExpression, contextualMapper?: TypeMapper): Type { checkExpression(node.condition); - var type1 = checkExpression(node.whenTrue, contextualMapper); - var type2 = checkExpression(node.whenFalse, contextualMapper); + let type1 = checkExpression(node.whenTrue, contextualMapper); + let type2 = checkExpression(node.whenFalse, contextualMapper); return getUnionType([type1, type2]); } @@ -7585,15 +7613,15 @@ module ts { } function checkExpressionWithContextualType(node: Expression, contextualType: Type, contextualMapper?: TypeMapper): Type { - var saveContextualType = node.contextualType; + let saveContextualType = node.contextualType; node.contextualType = contextualType; - var result = checkExpression(node, contextualMapper); + let result = checkExpression(node, contextualMapper); node.contextualType = saveContextualType; return result; } function checkExpressionCached(node: Expression, contextualMapper?: TypeMapper): Type { - var links = getNodeLinks(node); + let links = getNodeLinks(node); if (!links.resolvedType) { links.resolvedType = checkExpression(node, contextualMapper); } @@ -7622,17 +7650,17 @@ module ts { checkComputedPropertyName(node.name); } - var uninstantiatedType = checkFunctionExpressionOrObjectLiteralMethod(node, contextualMapper); + let uninstantiatedType = checkFunctionExpressionOrObjectLiteralMethod(node, contextualMapper); return instantiateTypeWithSingleGenericCallSignature(node, uninstantiatedType, contextualMapper); } function instantiateTypeWithSingleGenericCallSignature(node: Expression | MethodDeclaration, type: Type, contextualMapper?: TypeMapper) { if (contextualMapper && contextualMapper !== identityMapper) { - var signature = getSingleCallSignature(type); + let signature = getSingleCallSignature(type); if (signature && signature.typeParameters) { - var contextualType = getContextualType(node); + let contextualType = getContextualType(node); if (contextualType) { - var contextualSignature = getSingleCallSignature(contextualType); + let contextualSignature = getSingleCallSignature(contextualType); if (contextualSignature && !contextualSignature.typeParameters) { return getOrCreateTypeFromSignature(instantiateSignatureInContextOf(signature, contextualSignature, contextualMapper)); } @@ -7655,12 +7683,12 @@ module ts { // have the wildcard function type; this form of type check is used during overload resolution to exclude // contextually typed function and arrow expressions in the initial phase. function checkExpressionOrQualifiedName(node: Expression | QualifiedName, contextualMapper?: TypeMapper): Type { - var type: Type; + let type: Type; if (node.kind == SyntaxKind.QualifiedName) { type = checkQualifiedName(node); } else { - var uninstantiatedType = checkExpressionWorker(node, contextualMapper); + let uninstantiatedType = checkExpressionWorker(node, contextualMapper); type = instantiateTypeWithSingleGenericCallSignature(node, uninstantiatedType, contextualMapper); } @@ -7669,7 +7697,7 @@ module ts { // - 'left' in property access // - 'object' in indexed access // - target in rhs of import statement - var ok = + let ok = (node.parent.kind === SyntaxKind.PropertyAccessExpression && (node.parent).expression === node) || (node.parent.kind === SyntaxKind.ElementAccessExpression && (node.parent).expression === node) || ((node.kind === SyntaxKind.Identifier || node.kind === SyntaxKind.QualifiedName) && isInRightSideOfImportOrExportAssignment(node)); @@ -7782,7 +7810,7 @@ module ts { checkGrammarModifiers(node) || checkGrammarEvalOrArgumentsInStrictMode(node, node.name); checkVariableLikeDeclaration(node); - var func = getContainingFunction(node); + let func = getContainingFunction(node); if (node.flags & NodeFlags.AccessibilityModifier) { func = getContainingFunction(node); if (!(func.kind === SyntaxKind.Constructor && nodeIsPresent(func.body))) { @@ -7838,7 +7866,7 @@ module ts { function checkTypeForDuplicateIndexSignatures(node: Node) { if (node.kind === SyntaxKind.InterfaceDeclaration) { - var nodeSymbol = getSymbolOfNode(node); + let nodeSymbol = getSymbolOfNode(node); // in case of merging interface declaration it is possible that we'll enter this check procedure several times for every declaration // to prevent this run check only for the first declaration of a given kind if (nodeSymbol.declarations.length > 0 && nodeSymbol.declarations[0] !== node) { @@ -7849,12 +7877,12 @@ module ts { // TypeScript 1.0 spec (April 2014) // 3.7.4: An object type can contain at most one string index signature and one numeric index signature. // 8.5: A class declaration can have at most one string index member declaration and one numeric index member declaration - var indexSymbol = getIndexSymbol(getSymbolOfNode(node)); + let indexSymbol = getIndexSymbol(getSymbolOfNode(node)); if (indexSymbol) { - var seenNumericIndexer = false; - var seenStringIndexer = false; - for (var i = 0, len = indexSymbol.declarations.length; i < len; ++i) { - var declaration = indexSymbol.declarations[i]; + let seenNumericIndexer = false; + let seenStringIndexer = false; + for (let decl of indexSymbol.declarations) { + let declaration = decl; if (declaration.parameters.length === 1 && declaration.parameters[0].type) { switch (declaration.parameters[0].type.kind) { case SyntaxKind.StringKeyword: @@ -7902,8 +7930,8 @@ module ts { checkSourceElement(node.body); - var symbol = getSymbolOfNode(node); - var firstDeclaration = getDeclarationOfKind(symbol, node.kind); + let symbol = getSymbolOfNode(node); + let firstDeclaration = getDeclarationOfKind(symbol, node.kind); // Only type check the symbol once if (node === firstDeclaration) { checkFunctionOrConstructorSymbol(symbol); @@ -7960,12 +7988,12 @@ module ts { // - The containing class is a derived class. // - The constructor declares parameter properties // or the containing class declares instance member variables with initializers. - var superCallShouldBeFirst = + let superCallShouldBeFirst = forEach((node.parent).members, isInstancePropertyWithInitializer) || forEach(node.parameters, p => p.flags & (NodeFlags.Public | NodeFlags.Private | NodeFlags.Protected)); if (superCallShouldBeFirst) { - var statements = (node.body).statements; + let statements = (node.body).statements; if (!statements.length || statements[0].kind !== SyntaxKind.ExpressionStatement || !isSuperCallExpression((statements[0]).expression)) { error(node, Diagnostics.A_super_call_must_be_the_first_statement_in_the_constructor_when_a_class_contains_initialized_properties_or_has_parameter_properties); } @@ -7995,15 +8023,15 @@ module ts { if (!hasDynamicName(node)) { // TypeScript 1.0 spec (April 2014): 8.4.3 // Accessors for the same member name must specify the same accessibility. - var otherKind = node.kind === SyntaxKind.GetAccessor ? SyntaxKind.SetAccessor : SyntaxKind.GetAccessor; - var otherAccessor = getDeclarationOfKind(node.symbol, otherKind); + let otherKind = node.kind === SyntaxKind.GetAccessor ? SyntaxKind.SetAccessor : SyntaxKind.GetAccessor; + let otherAccessor = getDeclarationOfKind(node.symbol, otherKind); if (otherAccessor) { if (((node.flags & NodeFlags.AccessibilityModifier) !== (otherAccessor.flags & NodeFlags.AccessibilityModifier))) { error(node.name, Diagnostics.Getter_and_setter_accessors_do_not_agree_in_visibility); } - var currentAccessorType = getAnnotatedAccessorType(node); - var otherAccessorType = getAnnotatedAccessorType(otherAccessor); + let currentAccessorType = getAnnotatedAccessorType(node); + let otherAccessorType = getAnnotatedAccessorType(otherAccessor); // TypeScript 1.0 spec (April 2014): 4.5 // If both accessors include type annotations, the specified types must be identical. if (currentAccessorType && otherAccessorType) { @@ -8024,15 +8052,15 @@ module ts { // Grammar checking checkGrammarTypeArguments(node, node.typeArguments); - var type = getTypeFromTypeReferenceNode(node); + let type = getTypeFromTypeReferenceNode(node); if (type !== unknownType && node.typeArguments) { // Do type argument local checks only if referenced type is successfully resolved - var len = node.typeArguments.length; - for (var i = 0; i < len; i++) { + let len = node.typeArguments.length; + for (let i = 0; i < len; i++) { checkSourceElement(node.typeArguments[i]); - var constraint = getConstraintOfTypeParameter((type).target.typeParameters[i]); + let constraint = getConstraintOfTypeParameter((type).target.typeParameters[i]); if (produceDiagnostics && constraint) { - var typeArgument = (type).typeArguments[i]; + let typeArgument = (type).typeArguments[i]; checkTypeAssignableTo(typeArgument, constraint, node, Diagnostics.Type_0_does_not_satisfy_the_constraint_1); } } @@ -8046,7 +8074,7 @@ module ts { function checkTypeLiteral(node: TypeLiteralNode) { forEach(node.members, checkSourceElement); if (produceDiagnostics) { - var type = getTypeFromTypeLiteralOrFunctionOrConstructorTypeNode(node); + let type = getTypeFromTypeLiteralOrFunctionOrConstructorTypeNode(node); checkIndexConstraints(type); checkTypeForDuplicateIndexSignatures(node); } @@ -8058,7 +8086,7 @@ module ts { function checkTupleType(node: TupleTypeNode) { // Grammar checking - var hasErrorFromDisallowedTrailingComma = checkGrammarForDisallowedTrailingComma(node.elementTypes); + let hasErrorFromDisallowedTrailingComma = checkGrammarForDisallowedTrailingComma(node.elementTypes); if (!hasErrorFromDisallowedTrailingComma && node.elementTypes.length === 0) { grammarErrorOnNode(node, Diagnostics.A_tuple_type_element_list_cannot_be_empty); } @@ -8078,7 +8106,7 @@ module ts { if (!produceDiagnostics) { return; } - var signature = getSignatureFromDeclaration(signatureDeclarationNode); + let signature = getSignatureFromDeclaration(signatureDeclarationNode); if (!signature.hasStringLiterals) { return; } @@ -8093,22 +8121,21 @@ module ts { // TypeScript 1.0 spec (April 2014): 3.7.2.4 // Every specialized call or construct signature in an object type must be assignable // to at least one non-specialized call or construct signature in the same object type - var signaturesToCheck: Signature[]; + let signaturesToCheck: Signature[]; // Unnamed (call\construct) signatures in interfaces are inherited and not shadowed so examining just node symbol won't give complete answer. // Use declaring type to obtain full list of signatures. if (!signatureDeclarationNode.name && signatureDeclarationNode.parent && signatureDeclarationNode.parent.kind === SyntaxKind.InterfaceDeclaration) { Debug.assert(signatureDeclarationNode.kind === SyntaxKind.CallSignature || signatureDeclarationNode.kind === SyntaxKind.ConstructSignature); - var signatureKind = signatureDeclarationNode.kind === SyntaxKind.CallSignature ? SignatureKind.Call : SignatureKind.Construct; - var containingSymbol = getSymbolOfNode(signatureDeclarationNode.parent); - var containingType = getDeclaredTypeOfSymbol(containingSymbol); + let signatureKind = signatureDeclarationNode.kind === SyntaxKind.CallSignature ? SignatureKind.Call : SignatureKind.Construct; + let containingSymbol = getSymbolOfNode(signatureDeclarationNode.parent); + let containingType = getDeclaredTypeOfSymbol(containingSymbol); signaturesToCheck = getSignaturesOfType(containingType, signatureKind); } else { signaturesToCheck = getSignaturesOfSymbol(getSymbolOfNode(signatureDeclarationNode)); } - for (var i = 0; i < signaturesToCheck.length; i++) { - var otherSignature = signaturesToCheck[i]; + for (let otherSignature of signaturesToCheck) { if (!otherSignature.hasStringLiterals && isSignatureAssignableTo(signature, otherSignature)) { return; } @@ -8118,7 +8145,7 @@ module ts { } function getEffectiveDeclarationFlags(n: Node, flagsToCheck: NodeFlags) { - var flags = getCombinedNodeFlags(n); + let flags = getCombinedNodeFlags(n); if (n.parent.kind !== SyntaxKind.InterfaceDeclaration && isInAmbientContext(n)) { if (!(flags & NodeFlags.Ambient)) { // It is nested in an ambient context, which means it is automatically exported @@ -8141,19 +8168,19 @@ module ts { // The caveat is that if some overloads are defined in lib.d.ts, we don't want to // report the errors on those. To achieve this, we will say that the implementation is // the canonical signature only if it is in the same container as the first overload - var implementationSharesContainerWithFirstOverload = implementation !== undefined && implementation.parent === overloads[0].parent; + let implementationSharesContainerWithFirstOverload = implementation !== undefined && implementation.parent === overloads[0].parent; return implementationSharesContainerWithFirstOverload ? implementation : overloads[0]; } function checkFlagAgreementBetweenOverloads(overloads: Declaration[], implementation: FunctionLikeDeclaration, flagsToCheck: NodeFlags, someOverloadFlags: NodeFlags, allOverloadFlags: NodeFlags): void { // Error if some overloads have a flag that is not shared by all overloads. To find the // deviations, we XOR someOverloadFlags with allOverloadFlags - var someButNotAllOverloadFlags = someOverloadFlags ^ allOverloadFlags; + let someButNotAllOverloadFlags = someOverloadFlags ^ allOverloadFlags; if (someButNotAllOverloadFlags !== 0) { - var canonicalFlags = getEffectiveDeclarationFlags(getCanonicalOverload(overloads, implementation), flagsToCheck); + let canonicalFlags = getEffectiveDeclarationFlags(getCanonicalOverload(overloads, implementation), flagsToCheck); forEach(overloads, o => { - var deviation = getEffectiveDeclarationFlags(o, flagsToCheck) ^ canonicalFlags; + let deviation = getEffectiveDeclarationFlags(o, flagsToCheck) ^ canonicalFlags; if (deviation & NodeFlags.Export) { error(o.name, Diagnostics.Overload_signatures_must_all_be_exported_or_not_exported); } @@ -8169,9 +8196,9 @@ module ts { function checkQuestionTokenAgreementBetweenOverloads(overloads: Declaration[], implementation: FunctionLikeDeclaration, someHaveQuestionToken: boolean, allHaveQuestionToken: boolean): void { if (someHaveQuestionToken !== allHaveQuestionToken) { - var canonicalHasQuestionToken = hasQuestionToken(getCanonicalOverload(overloads, implementation)); + let canonicalHasQuestionToken = hasQuestionToken(getCanonicalOverload(overloads, implementation)); forEach(overloads, o => { - var deviation = hasQuestionToken(o) !== canonicalHasQuestionToken; + let deviation = hasQuestionToken(o) !== canonicalHasQuestionToken; if (deviation) { error(o.name, Diagnostics.Overload_signatures_must_all_be_optional_or_required); } @@ -8179,26 +8206,26 @@ module ts { } } - var flagsToCheck: NodeFlags = NodeFlags.Export | NodeFlags.Ambient | NodeFlags.Private | NodeFlags.Protected; - var someNodeFlags: NodeFlags = 0; - var allNodeFlags = flagsToCheck; - var someHaveQuestionToken = false; - var allHaveQuestionToken = true; - var hasOverloads = false; - var bodyDeclaration: FunctionLikeDeclaration; - var lastSeenNonAmbientDeclaration: FunctionLikeDeclaration; - var previousDeclaration: FunctionLikeDeclaration; + let flagsToCheck: NodeFlags = NodeFlags.Export | NodeFlags.Ambient | NodeFlags.Private | NodeFlags.Protected; + let someNodeFlags: NodeFlags = 0; + let allNodeFlags = flagsToCheck; + let someHaveQuestionToken = false; + let allHaveQuestionToken = true; + let hasOverloads = false; + let bodyDeclaration: FunctionLikeDeclaration; + let lastSeenNonAmbientDeclaration: FunctionLikeDeclaration; + let previousDeclaration: FunctionLikeDeclaration; - var declarations = symbol.declarations; - var isConstructor = (symbol.flags & SymbolFlags.Constructor) !== 0; + let declarations = symbol.declarations; + let isConstructor = (symbol.flags & SymbolFlags.Constructor) !== 0; function reportImplementationExpectedError(node: FunctionLikeDeclaration): void { if (node.name && getFullWidth(node.name) === 0) { return; } - var seen = false; - var subsequentNode = forEachChild(node.parent, c => { + let seen = false; + let subsequentNode = forEachChild(node.parent, c => { if (seen) { return c; } @@ -8208,13 +8235,13 @@ module ts { }); if (subsequentNode) { if (subsequentNode.kind === node.kind) { - var errorNode: Node = (subsequentNode).name || subsequentNode; + let errorNode: Node = (subsequentNode).name || subsequentNode; // TODO(jfreeman): These are methods, so handle computed name case if (node.name && (subsequentNode).name && (node.name).text === ((subsequentNode).name).text) { // the only situation when this is possible (same kind\same name but different symbol) - mixed static and instance class members Debug.assert(node.kind === SyntaxKind.MethodDeclaration || node.kind === SyntaxKind.MethodSignature); Debug.assert((node.flags & NodeFlags.Static) !== (subsequentNode.flags & NodeFlags.Static)); - var diagnostic = node.flags & NodeFlags.Static ? Diagnostics.Function_overload_must_be_static : Diagnostics.Function_overload_must_not_be_static; + let diagnostic = node.flags & NodeFlags.Static ? Diagnostics.Function_overload_must_be_static : Diagnostics.Function_overload_must_not_be_static; error(errorNode, diagnostic); return; } @@ -8224,7 +8251,7 @@ module ts { } } } - var errorNode: Node = node.name || node; + let errorNode: Node = node.name || node; if (isConstructor) { error(errorNode, Diagnostics.Constructor_implementation_is_missing); } @@ -8235,13 +8262,13 @@ module ts { // when checking exported function declarations across modules check only duplicate implementations // names and consistency of modifiers are verified when we check local symbol - var isExportSymbolInsideModule = symbol.parent && symbol.parent.flags & SymbolFlags.Module; - var duplicateFunctionDeclaration = false; - var multipleConstructorImplementation = false; - for (var i = 0; i < declarations.length; i++) { - var node = declarations[i]; - var inAmbientContext = isInAmbientContext(node); - var inAmbientContextOrInterface = node.parent.kind === SyntaxKind.InterfaceDeclaration || node.parent.kind === SyntaxKind.TypeLiteral || inAmbientContext; + let isExportSymbolInsideModule = symbol.parent && symbol.parent.flags & SymbolFlags.Module; + let duplicateFunctionDeclaration = false; + let multipleConstructorImplementation = false; + for (let current of declarations) { + let node = current; + let inAmbientContext = isInAmbientContext(node); + let inAmbientContextOrInterface = node.parent.kind === SyntaxKind.InterfaceDeclaration || node.parent.kind === SyntaxKind.TypeLiteral || inAmbientContext; if (inAmbientContextOrInterface) { // check if declarations are consecutive only if they are non-ambient // 1. ambient declarations can be interleaved @@ -8254,7 +8281,7 @@ module ts { } if (node.kind === SyntaxKind.FunctionDeclaration || node.kind === SyntaxKind.MethodDeclaration || node.kind === SyntaxKind.MethodSignature || node.kind === SyntaxKind.Constructor) { - var currentNodeFlags = getEffectiveDeclarationFlags(node, flagsToCheck); + let currentNodeFlags = getEffectiveDeclarationFlags(node, flagsToCheck); someNodeFlags |= currentNodeFlags; allNodeFlags &= currentNodeFlags; someHaveQuestionToken = someHaveQuestionToken || hasQuestionToken(node); @@ -8310,8 +8337,8 @@ module ts { checkQuestionTokenAgreementBetweenOverloads(declarations, bodyDeclaration, someHaveQuestionToken, allHaveQuestionToken); if (bodyDeclaration) { - var signatures = getSignaturesOfSymbol(symbol); - var bodySignature = getSignatureFromDeclaration(bodyDeclaration); + let signatures = getSignaturesOfSymbol(symbol); + let bodySignature = getSignatureFromDeclaration(bodyDeclaration); // If the implementation signature has string literals, we will have reported an error in // checkSpecializedSignatureDeclaration if (!bodySignature.hasStringLiterals) { @@ -8329,9 +8356,9 @@ module ts { // function g(x: string, y: string) { } // // The implementation is completely unrelated to the specialized signature, yet we do not check this. - for (var i = 0, len = signatures.length; i < len; ++i) { - if (!signatures[i].hasStringLiterals && !isSignatureAssignableTo(bodySignature, signatures[i])) { - error(signatures[i].declaration, Diagnostics.Overload_signature_is_not_compatible_with_function_implementation); + for (let signature of signatures) { + if (!signature.hasStringLiterals && !isSignatureAssignableTo(bodySignature, signature)) { + error(signature.declaration, Diagnostics.Overload_signature_is_not_compatible_with_function_implementation); break; } } @@ -8345,13 +8372,11 @@ module ts { return; } - var symbol: Symbol; - // Exports should be checked only if enclosing module contains both exported and non exported declarations. // In case if all declarations are non-exported check is unnecessary. // if localSymbol is defined on node then node itself is exported - check is required - var symbol = node.localSymbol; + let symbol = node.localSymbol; if (!symbol) { // local symbol is undefined => this declaration is non-exported. // however symbol might contain other declarations that are exported @@ -8369,10 +8394,10 @@ module ts { // we use SymbolFlags.ExportValue, SymbolFlags.ExportType and SymbolFlags.ExportNamespace // to denote disjoint declarationSpaces (without making new enum type). - var exportedDeclarationSpaces: SymbolFlags = 0; - var nonExportedDeclarationSpaces: SymbolFlags = 0; + let exportedDeclarationSpaces: SymbolFlags = 0; + let nonExportedDeclarationSpaces: SymbolFlags = 0; forEach(symbol.declarations, d => { - var declarationSpaces = getDeclarationSpaces(d); + let declarationSpaces = getDeclarationSpaces(d); if (getEffectiveDeclarationFlags(d, NodeFlags.Export)) { exportedDeclarationSpaces |= declarationSpaces; } @@ -8381,7 +8406,7 @@ module ts { } }); - var commonDeclarationSpace = exportedDeclarationSpaces & nonExportedDeclarationSpaces; + let commonDeclarationSpace = exportedDeclarationSpaces & nonExportedDeclarationSpaces; if (commonDeclarationSpace) { // declaration spaces for exported and non-exported declarations intersect @@ -8404,8 +8429,8 @@ module ts { case SyntaxKind.EnumDeclaration: return SymbolFlags.ExportType | SymbolFlags.ExportValue; case SyntaxKind.ImportEqualsDeclaration: - var result: SymbolFlags = 0; - var target = resolveAlias(getSymbolOfNode(d)); + let result: SymbolFlags = 0; + let target = resolveAlias(getSymbolOfNode(d)); forEach(target.declarations, d => { result |= getDeclarationSpaces(d); }); return result; default: @@ -8443,10 +8468,10 @@ module ts { // first we want to check the local symbol that contain this declaration // - if node.localSymbol !== undefined - this is current declaration is exported and localSymbol points to the local symbol // - if node.localSymbol === undefined - this node is non-exported so we can just pick the result of getSymbolOfNode - var symbol = getSymbolOfNode(node); - var localSymbol = node.localSymbol || symbol; + let symbol = getSymbolOfNode(node); + let localSymbol = node.localSymbol || symbol; - var firstDeclaration = getDeclarationOfKind(localSymbol, node.kind); + let firstDeclaration = getDeclarationOfKind(localSymbol, node.kind); // Only type check the symbol once if (node === firstDeclaration) { checkFunctionOrConstructorSymbol(localSymbol); @@ -8518,7 +8543,7 @@ module ts { return false; } - var root = getRootDeclaration(node); + let root = getRootDeclaration(node); if (root.kind === SyntaxKind.Parameter && nodeIsMissing((root.parent).body)) { // just an overload - no codegen impact return false; @@ -8535,10 +8560,10 @@ module ts { // this function will run after checking the source file so 'CaptureThis' is correct for all nodes function checkIfThisIsCapturedInEnclosingScope(node: Node): void { - var current = node; + let current = node; while (current) { if (getNodeCheckFlags(current) & NodeCheckFlags.CaptureThis) { - var isDeclaration = node.kind !== SyntaxKind.Identifier; + let isDeclaration = node.kind !== SyntaxKind.Identifier; if (isDeclaration) { error((node).name, Diagnostics.Duplicate_identifier_this_Compiler_uses_variable_declaration_this_to_capture_this_reference); } @@ -8557,14 +8582,14 @@ module ts { } // bubble up and find containing type - var enclosingClass = getAncestor(node, SyntaxKind.ClassDeclaration); + let enclosingClass = getAncestor(node, SyntaxKind.ClassDeclaration); // if containing type was not found or it is ambient - exit (no codegen) if (!enclosingClass || isInAmbientContext(enclosingClass)) { return; } if (getClassBaseTypeNode(enclosingClass)) { - var isDeclaration = node.kind !== SyntaxKind.Identifier; + let isDeclaration = node.kind !== SyntaxKind.Identifier; if (isDeclaration) { error(node, Diagnostics.Duplicate_identifier_super_Compiler_uses_super_to_capture_base_class_reference); } @@ -8585,7 +8610,7 @@ module ts { } // In case of variable declaration, node.parent is variable statement so look at the variable statement's parent - var parent = getDeclarationContainer(node); + let parent = getDeclarationContainer(node); if (parent.kind === SyntaxKind.SourceFile && isExternalModule(parent)) { // If the declaration happens to be in external module, report error that require and exports are reserved keywords error(name, Diagnostics.Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_an_external_module, @@ -8608,46 +8633,58 @@ module ts { // A non-initialized declaration is a no-op as the block declaration will resolve before the var // declaration. the problem is if the declaration has an initializer. this will act as a write to the // block declared value. this is fine for let, but not const. - // Only consider declarations with initializers, uninitialized var declarations will not + // Only consider declarations with initializers, uninitialized let declarations will not // step on a let/const variable. // Do not consider let and const declarations, as duplicate block-scoped declarations // are handled by the binder. - // We are only looking for var declarations that step on let\const declarations from a + // We are only looking for let declarations that step on let\const declarations from a // different scope. e.g.: // { // const x = 0; // localDeclarationSymbol obtained after name resolution will correspond to this declaration - // var x = 0; // symbol for this declaration will be 'symbol' + // let x = 0; // symbol for this declaration will be 'symbol' // } - if (node.initializer && (getCombinedNodeFlags(node) & NodeFlags.BlockScoped) === 0) { - var symbol = getSymbolOfNode(node); - if (symbol.flags & SymbolFlags.FunctionScopedVariable) { - var localDeclarationSymbol = resolveName(node, (node.name).text, SymbolFlags.Variable, /*nodeNotFoundErrorMessage*/ undefined, /*nameArg*/ undefined); - if (localDeclarationSymbol && - localDeclarationSymbol !== symbol && - localDeclarationSymbol.flags & SymbolFlags.BlockScopedVariable) { - if (getDeclarationFlagsFromSymbol(localDeclarationSymbol) & NodeFlags.BlockScoped) { - var varDeclList = getAncestor(localDeclarationSymbol.valueDeclaration, SyntaxKind.VariableDeclarationList); - var container = - varDeclList.parent.kind === SyntaxKind.VariableStatement && - varDeclList.parent.parent; + // skip block-scoped variables and parameters + if ((getCombinedNodeFlags(node) & NodeFlags.BlockScoped) !== 0 || isParameterDeclaration(node)) { + return; + } - // names of block-scoped and function scoped variables can collide only - // if block scoped variable is defined in the function\module\source file scope (because of variable hoisting) - var namesShareScope = - container && - (container.kind === SyntaxKind.Block && isFunctionLike(container.parent) || - (container.kind === SyntaxKind.ModuleBlock && container.kind === SyntaxKind.ModuleDeclaration) || - container.kind === SyntaxKind.SourceFile); + // skip variable declarations that don't have initializers + // NOTE: in ES6 spec initializer is required in variable declarations where name is binding pattern + // so we'll always treat binding elements as initialized + if (node.kind === SyntaxKind.VariableDeclaration && !node.initializer) { + return; + } - // here we know that function scoped variable is shadowed by block scoped one - // if they are defined in the same scope - binder has already reported redeclaration error - // otherwise if variable has an initializer - show error that initialization will fail - // since LHS will be block scoped name instead of function scoped - if (!namesShareScope) { - var name = symbolToString(localDeclarationSymbol); - error(node, Diagnostics.Cannot_initialize_outer_scoped_variable_0_in_the_same_scope_as_block_scoped_declaration_1, name, name); - } + var symbol = getSymbolOfNode(node); + if (symbol.flags & SymbolFlags.FunctionScopedVariable) { + let localDeclarationSymbol = resolveName(node, (node.name).text, SymbolFlags.Variable, /*nodeNotFoundErrorMessage*/ undefined, /*nameArg*/ undefined); + if (localDeclarationSymbol && + localDeclarationSymbol !== symbol && + localDeclarationSymbol.flags & SymbolFlags.BlockScopedVariable) { + if (getDeclarationFlagsFromSymbol(localDeclarationSymbol) & NodeFlags.BlockScoped) { + let varDeclList = getAncestor(localDeclarationSymbol.valueDeclaration, SyntaxKind.VariableDeclarationList); + let container = + varDeclList.parent.kind === SyntaxKind.VariableStatement && varDeclList.parent.parent + ? varDeclList.parent.parent + : undefined; + + // names of block-scoped and function scoped variables can collide only + // if block scoped variable is defined in the function\module\source file scope (because of variable hoisting) + let namesShareScope = + container && + (container.kind === SyntaxKind.Block && isFunctionLike(container.parent) || + container.kind === SyntaxKind.ModuleBlock || + container.kind === SyntaxKind.ModuleDeclaration || + container.kind === SyntaxKind.SourceFile); + + // here we know that function scoped variable is shadowed by block scoped one + // if they are defined in the same scope - binder has already reported redeclaration error + // otherwise if variable has an initializer - show error that initialization will fail + // since LHS will be block scoped name instead of function scoped + if (!namesShareScope) { + let name = symbolToString(localDeclarationSymbol); + error(node, Diagnostics.Cannot_initialize_outer_scoped_variable_0_in_the_same_scope_as_block_scoped_declaration_1, name, name); } } } @@ -8663,13 +8700,16 @@ module ts { // Check that a parameter initializer contains no references to parameters declared to the right of itself function checkParameterInitializer(node: VariableLikeDeclaration): void { - if (getRootDeclaration(node).kind === SyntaxKind.Parameter) { - var func = getContainingFunction(node); - visit(node.initializer); + if (getRootDeclaration(node).kind !== SyntaxKind.Parameter) { + return; } + + let func = getContainingFunction(node); + visit(node.initializer); + function visit(n: Node) { if (n.kind === SyntaxKind.Identifier) { - var referencedSymbol = getNodeLinks(n).resolvedSymbol; + let referencedSymbol = getNodeLinks(n).resolvedSymbol; // check FunctionLikeDeclaration.locals (stores parameters\function local variable) // if it contains entry with a specified name and if this entry matches the resolved symbol if (referencedSymbol && referencedSymbol !== unknownSymbol && getSymbol(func.locals, referencedSymbol.name, SymbolFlags.Value) === referencedSymbol) { @@ -8723,8 +8763,8 @@ module ts { } return; } - var symbol = getSymbolOfNode(node); - var type = getTypeOfVariableOrParameterOrProperty(symbol); + let symbol = getSymbolOfNode(node); + let type = getTypeOfVariableOrParameterOrProperty(symbol); if (node === symbol.valueDeclaration) { // Node is the primary declaration of the symbol, just validate the initializer if (node.initializer) { @@ -8735,7 +8775,7 @@ module ts { else { // Node is a secondary declaration, check that type is identical to primary declaration and check that // initializer is consistent with type associated with the node - var declarationType = getWidenedTypeForVariableLikeDeclaration(node); + let declarationType = getWidenedTypeForVariableLikeDeclaration(node); if (type !== unknownType && declarationType !== unknownType && !isTypeIdenticalTo(type, declarationType)) { error(node.name, Diagnostics.Subsequent_variable_declarations_must_have_the_same_type_Variable_0_must_be_of_type_1_but_here_has_type_2, declarationNameToString(node.name), typeToString(type), typeToString(declarationType)); } @@ -8856,8 +8896,8 @@ module ts { checkForInOrForOfVariableDeclaration(node); } else { - var varExpr = node.initializer; - var iteratedType = checkRightHandSideOfForOf(node.expression); + let varExpr = node.initializer; + let iteratedType = checkRightHandSideOfForOf(node.expression); // There may be a destructuring assignment on the left side if (varExpr.kind === SyntaxKind.ArrayLiteralExpression || varExpr.kind === SyntaxKind.ObjectLiteralExpression) { @@ -8867,7 +8907,7 @@ module ts { checkDestructuringAssignment(varExpr, iteratedType || unknownType); } else { - var leftType = checkExpression(varExpr); + let leftType = checkExpression(varExpr); checkReferenceExpression(varExpr, /*invalidReferenceMessage*/ Diagnostics.Invalid_left_hand_side_in_for_of_statement, /*constantVariableMessage*/ Diagnostics.The_left_hand_side_of_a_for_of_statement_cannot_be_a_previously_defined_constant); @@ -8890,11 +8930,11 @@ module ts { // TypeScript 1.0 spec (April 2014): 5.4 // In a 'for-in' statement of the form - // for (var VarDecl in Expr) Statement + // for (let VarDecl in Expr) Statement // VarDecl must be a variable declaration without a type annotation that declares a variable of type Any, // and Expr must be an expression of type Any, an object type, or a type parameter type. if (node.initializer.kind === SyntaxKind.VariableDeclarationList) { - var variable = (node.initializer).declarations[0]; + let variable = (node.initializer).declarations[0]; if (variable && isBindingPattern(variable.name)) { error(variable.name, Diagnostics.The_left_hand_side_of_a_for_in_statement_cannot_be_a_destructuring_pattern); } @@ -8906,8 +8946,8 @@ module ts { // for (Var in Expr) Statement // Var must be an expression classified as a reference of type Any or the String primitive type, // and Expr must be an expression of type Any, an object type, or a type parameter type. - var varExpr = node.initializer; - var leftType = checkExpression(varExpr); + let varExpr = node.initializer; + let leftType = checkExpression(varExpr); if (varExpr.kind === SyntaxKind.ArrayLiteralExpression || varExpr.kind === SyntaxKind.ObjectLiteralExpression) { error(varExpr, Diagnostics.The_left_hand_side_of_a_for_in_statement_cannot_be_a_destructuring_pattern); } @@ -8920,7 +8960,7 @@ module ts { } } - var rightType = checkExpression(node.expression); + let rightType = checkExpression(node.expression); // unknownType is returned i.e. if node.expression is identifier whose name cannot be resolved // in this case error about missing name is already reported - do not report extra one if (!allConstituentTypesHaveKind(rightType, TypeFlags.Any | TypeFlags.ObjectType | TypeFlags.TypeParameter)) { @@ -8931,16 +8971,16 @@ module ts { } function checkForInOrForOfVariableDeclaration(iterationStatement: ForInStatement | ForOfStatement): void { - var variableDeclarationList = iterationStatement.initializer; + let variableDeclarationList = iterationStatement.initializer; // checkGrammarForInOrForOfStatement will check that there is exactly one declaration. if (variableDeclarationList.declarations.length >= 1) { - var decl = variableDeclarationList.declarations[0]; + let decl = variableDeclarationList.declarations[0]; checkVariableDeclaration(decl); } } function checkRightHandSideOfForOf(rhsExpression: Expression): Type { - var expressionType = getTypeOfExpression(rhsExpression); + let expressionType = getTypeOfExpression(rhsExpression); return languageVersion >= ScriptTarget.ES6 ? checkIteratedType(expressionType, rhsExpression) : checkElementTypeOfArrayOrString(expressionType, rhsExpression); @@ -8951,11 +8991,11 @@ module ts { */ function checkIteratedType(iterable: Type, expressionForError: Expression): Type { Debug.assert(languageVersion >= ScriptTarget.ES6); - var iteratedType = getIteratedType(iterable, expressionForError); + let iteratedType = getIteratedType(iterable, expressionForError); // Now even though we have extracted the iteratedType, we will have to validate that the type // passed in is actually an Iterable. if (expressionForError && iteratedType) { - var completeIterableType = globalIterableType !== emptyObjectType + let completeIterableType = globalIterableType !== emptyObjectType ? createTypeReference(globalIterableType, [iteratedType]) : emptyObjectType; checkTypeAssignableTo(iterable, completeIterableType, expressionForError); @@ -8994,12 +9034,12 @@ module ts { return undefined; } - var iteratorFunction = getTypeOfPropertyOfType(iterable, getPropertyNameForKnownSymbolName("iterator")); + let iteratorFunction = getTypeOfPropertyOfType(iterable, getPropertyNameForKnownSymbolName("iterator")); if (iteratorFunction && allConstituentTypesHaveKind(iteratorFunction, TypeFlags.Any)) { return undefined; } - var iteratorFunctionSignatures = iteratorFunction ? getSignaturesOfType(iteratorFunction, SignatureKind.Call) : emptyArray; + let iteratorFunctionSignatures = iteratorFunction ? getSignaturesOfType(iteratorFunction, SignatureKind.Call) : emptyArray; if (iteratorFunctionSignatures.length === 0) { if (expressionForError) { error(expressionForError, Diagnostics.The_right_hand_side_of_a_for_of_statement_must_have_a_Symbol_iterator_method_that_returns_an_iterator); @@ -9007,17 +9047,17 @@ module ts { return undefined; } - var iterator = getUnionType(map(iteratorFunctionSignatures, getReturnTypeOfSignature)); + let iterator = getUnionType(map(iteratorFunctionSignatures, getReturnTypeOfSignature)); if (allConstituentTypesHaveKind(iterator, TypeFlags.Any)) { return undefined; } - var iteratorNextFunction = getTypeOfPropertyOfType(iterator, "next"); + let iteratorNextFunction = getTypeOfPropertyOfType(iterator, "next"); if (iteratorNextFunction && allConstituentTypesHaveKind(iteratorNextFunction, TypeFlags.Any)) { return undefined; } - var iteratorNextFunctionSignatures = iteratorNextFunction ? getSignaturesOfType(iteratorNextFunction, SignatureKind.Call) : emptyArray; + let iteratorNextFunctionSignatures = iteratorNextFunction ? getSignaturesOfType(iteratorNextFunction, SignatureKind.Call) : emptyArray; if (iteratorNextFunctionSignatures.length === 0) { if (expressionForError) { error(expressionForError, Diagnostics.The_iterator_returned_by_the_right_hand_side_of_a_for_of_statement_must_have_a_next_method); @@ -9025,12 +9065,12 @@ module ts { return undefined; } - var iteratorNextResult = getUnionType(map(iteratorNextFunctionSignatures, getReturnTypeOfSignature)); + let iteratorNextResult = getUnionType(map(iteratorNextFunctionSignatures, getReturnTypeOfSignature)); if (allConstituentTypesHaveKind(iteratorNextResult, TypeFlags.Any)) { return undefined; } - var iteratorNextValue = getTypeOfPropertyOfType(iteratorNextResult, "value"); + let iteratorNextValue = getTypeOfPropertyOfType(iteratorNextResult, "value"); if (!iteratorNextValue) { if (expressionForError) { error(expressionForError, Diagnostics.The_type_returned_by_the_next_method_of_an_iterator_must_have_a_value_property); @@ -9064,10 +9104,10 @@ module ts { // After we remove all types that are StringLike, we will know if there was a string constituent // based on whether the remaining type is the same as the initial type. - var arrayType = removeTypesFromUnionType(arrayOrStringType, TypeFlags.StringLike, /*isTypeOfKind*/ true, /*allowEmptyUnionResult*/ true); - var hasStringConstituent = arrayOrStringType !== arrayType; + let arrayType = removeTypesFromUnionType(arrayOrStringType, TypeFlags.StringLike, /*isTypeOfKind*/ true, /*allowEmptyUnionResult*/ true); + let hasStringConstituent = arrayOrStringType !== arrayType; - var reportedError = false; + let reportedError = false; if (hasStringConstituent) { if (languageVersion < ScriptTarget.ES5) { error(expressionForError, Diagnostics.Using_a_string_in_a_for_of_statement_is_only_supported_in_ECMAScript_5_and_higher); @@ -9087,7 +9127,7 @@ module ts { // if the input type is number | string, we want to say that number is not an array type. // But if the input was just number, we want to say that number is not an array type // or a string type. - var diagnostic = hasStringConstituent + let diagnostic = hasStringConstituent ? Diagnostics.Type_0_is_not_an_array_type : Diagnostics.Type_0_is_not_an_array_type_or_a_string_type; error(expressionForError, diagnostic, typeToString(arrayType)); @@ -9095,7 +9135,7 @@ module ts { return hasStringConstituent ? stringType : unknownType; } - var arrayElementType = getIndexTypeOfType(arrayType, IndexKind.Number) || unknownType; + let arrayElementType = getIndexTypeOfType(arrayType, IndexKind.Number) || unknownType; if (hasStringConstituent) { // This is just an optimization for the case where arrayOrStringType is string | string[] if (arrayElementType.flags & TypeFlags.StringLike) { @@ -9122,17 +9162,17 @@ module ts { function checkReturnStatement(node: ReturnStatement) { // Grammar checking if (!checkGrammarStatementInAmbientContext(node)) { - var functionBlock = getContainingFunction(node); + let functionBlock = getContainingFunction(node); if (!functionBlock) { grammarErrorOnFirstToken(node, Diagnostics.A_return_statement_can_only_be_used_within_a_function_body); } } if (node.expression) { - var func = getContainingFunction(node); + let func = getContainingFunction(node); if (func) { - var returnType = getReturnTypeOfSignature(getSignatureFromDeclaration(func)); - var exprType = checkExpressionCached(node.expression); + let returnType = getReturnTypeOfSignature(getSignatureFromDeclaration(func)); + let exprType = checkExpressionCached(node.expression); if (func.kind === SyntaxKind.SetAccessor) { error(node.expression, Diagnostics.Setters_cannot_return_a_value); } @@ -9166,10 +9206,10 @@ module ts { // Grammar checking checkGrammarStatementInAmbientContext(node); - var firstDefaultClause: CaseOrDefaultClause; - var hasDuplicateDefaultClause = false; + let firstDefaultClause: CaseOrDefaultClause; + let hasDuplicateDefaultClause = false; - var expressionType = checkExpression(node.expression); + let expressionType = checkExpression(node.expression); forEach(node.caseBlock.clauses, clause => { // Grammar check for duplicate default clauses, skip if we already report duplicate default clause if (clause.kind === SyntaxKind.DefaultClause && !hasDuplicateDefaultClause) { @@ -9177,19 +9217,19 @@ module ts { firstDefaultClause = clause; } else { - var sourceFile = getSourceFileOfNode(node); - var start = skipTrivia(sourceFile.text, clause.pos); - var end = clause.statements.length > 0 ? clause.statements[0].pos : clause.end; + let sourceFile = getSourceFileOfNode(node); + let start = skipTrivia(sourceFile.text, clause.pos); + let end = clause.statements.length > 0 ? clause.statements[0].pos : clause.end; grammarErrorAtPos(sourceFile, start, end - start, Diagnostics.A_default_clause_cannot_appear_more_than_once_in_a_switch_statement); hasDuplicateDefaultClause = true; } } if (produceDiagnostics && clause.kind === SyntaxKind.CaseClause) { - var caseClause = clause; + let caseClause = clause; // TypeScript 1.0 spec (April 2014):5.9 // In a 'switch' statement, each 'case' expression must be of a type that is assignable to or from the type of the 'switch' expression. - var caseType = checkExpression(caseClause.expression); + let caseType = checkExpression(caseClause.expression); if (!isTypeAssignableTo(expressionType, caseType)) { // check 'expressionType isAssignableTo caseType' failed, try the reversed check and report errors if it fails checkTypeAssignableTo(caseType, expressionType, caseClause.expression, /*headMessage*/ undefined); @@ -9202,13 +9242,13 @@ module ts { function checkLabeledStatement(node: LabeledStatement) { // Grammar checking if (!checkGrammarStatementInAmbientContext(node)) { - var current = node.parent; + let current = node.parent; while (current) { if (isFunctionLike(current)) { break; } if (current.kind === SyntaxKind.LabeledStatement && (current).label.text === node.label.text) { - var sourceFile = getSourceFileOfNode(node); + let sourceFile = getSourceFileOfNode(node); grammarErrorOnNode(node.label, Diagnostics.Duplicate_label_0, getTextOfNodeFromSourceText(sourceFile.text, node.label)); break; } @@ -9238,7 +9278,7 @@ module ts { checkGrammarStatementInAmbientContext(node); checkBlock(node.tryBlock); - var catchClause = node.catchClause; + let catchClause = node.catchClause; if (catchClause) { // Grammar checking if (catchClause.variableDeclaration) { @@ -9252,10 +9292,10 @@ module ts { grammarErrorOnFirstToken(catchClause.variableDeclaration.initializer, Diagnostics.Catch_clause_variable_cannot_have_an_initializer); } else { - var identifierName = (catchClause.variableDeclaration.name).text; - var locals = catchClause.block.locals; + let identifierName = (catchClause.variableDeclaration.name).text; + let locals = catchClause.block.locals; if (locals && hasProperty(locals, identifierName)) { - var localSymbol = locals[identifierName] + let localSymbol = locals[identifierName] if (localSymbol && (localSymbol.flags & SymbolFlags.BlockScopedVariable) !== 0) { grammarErrorOnNode(localSymbol.valueDeclaration, Diagnostics.Cannot_redeclare_identifier_0_in_catch_clause, identifierName); } @@ -9276,28 +9316,27 @@ module ts { } function checkIndexConstraints(type: Type) { - var declaredNumberIndexer = getIndexDeclarationOfSymbol(type.symbol, IndexKind.Number); - var declaredStringIndexer = getIndexDeclarationOfSymbol(type.symbol, IndexKind.String); + let declaredNumberIndexer = getIndexDeclarationOfSymbol(type.symbol, IndexKind.Number); + let declaredStringIndexer = getIndexDeclarationOfSymbol(type.symbol, IndexKind.String); - var stringIndexType = getIndexTypeOfType(type, IndexKind.String); - var numberIndexType = getIndexTypeOfType(type, IndexKind.Number); + let stringIndexType = getIndexTypeOfType(type, IndexKind.String); + let numberIndexType = getIndexTypeOfType(type, IndexKind.Number); if (stringIndexType || numberIndexType) { forEach(getPropertiesOfObjectType(type), prop => { - var propType = getTypeOfSymbol(prop); + let propType = getTypeOfSymbol(prop); checkIndexConstraintForProperty(prop, propType, type, declaredStringIndexer, stringIndexType, IndexKind.String); checkIndexConstraintForProperty(prop, propType, type, declaredNumberIndexer, numberIndexType, IndexKind.Number); }); if (type.flags & TypeFlags.Class && type.symbol.valueDeclaration.kind === SyntaxKind.ClassDeclaration) { - var classDeclaration = type.symbol.valueDeclaration; - for (var i = 0; i < classDeclaration.members.length; i++) { - var member = classDeclaration.members[i]; + let classDeclaration = type.symbol.valueDeclaration; + for (let member of classDeclaration.members) { // Only process instance properties with computed names here. // Static properties cannot be in conflict with indexers, // and properties with literal names were already checked. if (!(member.flags & NodeFlags.Static) && hasDynamicName(member)) { - var propType = getTypeOfSymbol(member.symbol); + let propType = getTypeOfSymbol(member.symbol); checkIndexConstraintForProperty(member.symbol, propType, type, declaredStringIndexer, stringIndexType, IndexKind.String); checkIndexConstraintForProperty(member.symbol, propType, type, declaredNumberIndexer, numberIndexType, IndexKind.Number); } @@ -9305,12 +9344,12 @@ module ts { } } - var errorNode: Node; + let errorNode: Node; if (stringIndexType && numberIndexType) { errorNode = declaredNumberIndexer || declaredStringIndexer; // condition 'errorNode === undefined' may appear if types does not declare nor string neither number indexer if (!errorNode && (type.flags & TypeFlags.Interface)) { - var someBaseTypeHasBothIndexers = forEach((type).baseTypes, base => getIndexTypeOfType(base, IndexKind.String) && getIndexTypeOfType(base, IndexKind.Number)); + let someBaseTypeHasBothIndexers = forEach((type).baseTypes, base => getIndexTypeOfType(base, IndexKind.String) && getIndexTypeOfType(base, IndexKind.Number)); errorNode = someBaseTypeHasBothIndexers ? undefined : type.symbol.declarations[0]; } } @@ -9339,7 +9378,7 @@ module ts { // perform property check if property or indexer is declared in 'type' // this allows to rule out cases when both property and indexer are inherited from the base class - var errorNode: Node; + let errorNode: Node; if (prop.valueDeclaration.name.kind === SyntaxKind.ComputedPropertyName || prop.parent === containingType.symbol) { errorNode = prop.valueDeclaration; } @@ -9350,12 +9389,12 @@ module ts { // for interfaces property and indexer might be inherited from different bases // check if any base class already has both property and indexer. // check should be performed only if 'type' is the first type that brings property\indexer together - var someBaseClassHasBothPropertyAndIndexer = forEach((containingType).baseTypes, base => getPropertyOfObjectType(base, prop.name) && getIndexTypeOfType(base, indexKind)); + let someBaseClassHasBothPropertyAndIndexer = forEach((containingType).baseTypes, base => getPropertyOfObjectType(base, prop.name) && getIndexTypeOfType(base, indexKind)); errorNode = someBaseClassHasBothPropertyAndIndexer ? undefined : containingType.symbol.declarations[0]; } if (errorNode && !isTypeAssignableTo(propertyType, indexType)) { - var errorMessage = + let errorMessage = indexKind === IndexKind.String ? Diagnostics.Property_0_of_type_1_is_not_assignable_to_string_index_type_2 : Diagnostics.Property_0_of_type_1_is_not_assignable_to_numeric_index_type_2; @@ -9381,12 +9420,12 @@ module ts { // Check each type parameter and check that list has no duplicate type parameter declarations function checkTypeParameters(typeParameterDeclarations: TypeParameterDeclaration[]) { if (typeParameterDeclarations) { - for (var i = 0; i < typeParameterDeclarations.length; i++) { - var node = typeParameterDeclarations[i]; + for (let i = 0, n = typeParameterDeclarations.length; i < n; i++) { + let node = typeParameterDeclarations[i]; checkTypeParameter(node); if (produceDiagnostics) { - for (var j = 0; j < i; j++) { + for (let j = 0; j < i; j++) { if (typeParameterDeclarations[j].symbol === node.symbol) { error(node.name, Diagnostics.Duplicate_identifier_0, declarationNameToString(node.name)); } @@ -9407,19 +9446,19 @@ module ts { } checkTypeParameters(node.typeParameters); checkExportsOnMergedDeclarations(node); - var symbol = getSymbolOfNode(node); - var type = getDeclaredTypeOfSymbol(symbol); - var staticType = getTypeOfSymbol(symbol); - var baseTypeNode = getClassBaseTypeNode(node); + let symbol = getSymbolOfNode(node); + let type = getDeclaredTypeOfSymbol(symbol); + let staticType = getTypeOfSymbol(symbol); + let baseTypeNode = getClassBaseTypeNode(node); if (baseTypeNode) { emitExtends = emitExtends || !isInAmbientContext(node); checkTypeReference(baseTypeNode); } if (type.baseTypes.length) { if (produceDiagnostics) { - var baseType = type.baseTypes[0]; + let baseType = type.baseTypes[0]; checkTypeAssignableTo(type, baseType, node.name || node, Diagnostics.Class_0_incorrectly_extends_base_class_1); - var staticBaseType = getTypeOfSymbol(baseType.symbol); + let staticBaseType = getTypeOfSymbol(baseType.symbol); checkTypeAssignableTo(staticType, getTypeWithoutConstructors(staticBaseType), node.name || node, Diagnostics.Class_static_side_0_incorrectly_extends_base_class_static_side_1); if (baseType.symbol !== resolveEntityName(baseTypeNode.typeName, SymbolFlags.Value)) { @@ -9433,14 +9472,14 @@ module ts { checkExpressionOrQualifiedName(baseTypeNode.typeName); } - var implementedTypeNodes = getClassImplementedTypeNodes(node); + let implementedTypeNodes = getClassImplementedTypeNodes(node); if (implementedTypeNodes) { forEach(implementedTypeNodes, typeRefNode => { checkTypeReference(typeRefNode); if (produceDiagnostics) { - var t = getTypeFromTypeReferenceNode(typeRefNode); + let t = getTypeFromTypeReferenceNode(typeRefNode); if (t !== unknownType) { - var declaredType = (t.flags & TypeFlags.Reference) ? (t).target : t; + let declaredType = (t.flags & TypeFlags.Reference) ? (t).target : t; if (declaredType.flags & (TypeFlags.Class | TypeFlags.Interface)) { checkTypeAssignableTo(type, t, node.name || node, Diagnostics.Class_0_incorrectly_implements_interface_1); } @@ -9482,18 +9521,18 @@ module ts { // derived class instance member variables and accessors, but not by other kinds of members. // NOTE: assignability is checked in checkClassDeclaration - var baseProperties = getPropertiesOfObjectType(baseType); - for (var i = 0, len = baseProperties.length; i < len; ++i) { - var base = getTargetSymbol(baseProperties[i]); + let baseProperties = getPropertiesOfObjectType(baseType); + for (let baseProperty of baseProperties) { + let base = getTargetSymbol(baseProperty); if (base.flags & SymbolFlags.Prototype) { continue; } - var derived = getTargetSymbol(getPropertyOfObjectType(type, base.name)); + let derived = getTargetSymbol(getPropertyOfObjectType(type, base.name)); if (derived) { - var baseDeclarationFlags = getDeclarationFlagsFromSymbol(base); - var derivedDeclarationFlags = getDeclarationFlagsFromSymbol(derived); + let baseDeclarationFlags = getDeclarationFlagsFromSymbol(base); + let derivedDeclarationFlags = getDeclarationFlagsFromSymbol(derived); if ((baseDeclarationFlags & NodeFlags.Private) || (derivedDeclarationFlags & NodeFlags.Private)) { // either base or derived property is private - not override, skip it continue; @@ -9509,7 +9548,7 @@ module ts { continue; } - var errorMessage: DiagnosticMessage; + let errorMessage: DiagnosticMessage; if (base.flags & SymbolFlags.Method) { if (derived.flags & SymbolFlags.Accessor) { errorMessage = Diagnostics.Class_0_defines_instance_member_function_1_but_extended_class_2_defines_it_as_instance_member_accessor; @@ -9548,9 +9587,9 @@ module ts { // TypeScript 1.0 spec (April 2014): // When a generic interface has multiple declarations, all declarations must have identical type parameter // lists, i.e. identical type parameter names with identical constraints in identical order. - for (var i = 0, len = list1.length; i < len; i++) { - var tp1 = list1[i]; - var tp2 = list2[i]; + for (let i = 0, len = list1.length; i < len; i++) { + let tp1 = list1[i]; + let tp2 = list2[i]; if (tp1.name.text !== tp2.name.text) { return false; } @@ -9572,28 +9611,26 @@ module ts { return true; } - var seen: Map<{ prop: Symbol; containingType: Type }> = {}; + let seen: Map<{ prop: Symbol; containingType: Type }> = {}; forEach(type.declaredProperties, p => { seen[p.name] = { prop: p, containingType: type }; }); - var ok = true; + let ok = true; - for (var i = 0, len = type.baseTypes.length; i < len; ++i) { - var base = type.baseTypes[i]; - var properties = getPropertiesOfObjectType(base); - for (var j = 0, proplen = properties.length; j < proplen; ++j) { - var prop = properties[j]; + for (let base of type.baseTypes) { + let properties = getPropertiesOfObjectType(base); + for (let prop of properties) { if (!hasProperty(seen, prop.name)) { seen[prop.name] = { prop: prop, containingType: base }; } else { - var existing = seen[prop.name]; - var isInheritedProperty = existing.containingType !== type; + let existing = seen[prop.name]; + let isInheritedProperty = existing.containingType !== type; if (isInheritedProperty && !isPropertyIdenticalTo(existing.prop, prop)) { ok = false; - var typeName1 = typeToString(existing.containingType); - var typeName2 = typeToString(base); + let typeName1 = typeToString(existing.containingType); + let typeName2 = typeToString(base); - var errorInfo = chainDiagnosticMessages(undefined, Diagnostics.Named_property_0_of_types_1_and_2_are_not_identical, symbolToString(prop), typeName1, typeName2); + let errorInfo = chainDiagnosticMessages(undefined, Diagnostics.Named_property_0_of_types_1_and_2_are_not_identical, symbolToString(prop), typeName1, typeName2); errorInfo = chainDiagnosticMessages(errorInfo, Diagnostics.Interface_0_cannot_simultaneously_extend_types_1_and_2, typeToString(type), typeName1, typeName2); diagnostics.add(createDiagnosticForNodeFromMessageChain(typeNode, errorInfo)); } @@ -9613,8 +9650,8 @@ module ts { checkTypeNameIsReserved(node.name, Diagnostics.Interface_name_cannot_be_0); checkExportsOnMergedDeclarations(node); - var symbol = getSymbolOfNode(node); - var firstInterfaceDecl = getDeclarationOfKind(symbol, SyntaxKind.InterfaceDeclaration); + let symbol = getSymbolOfNode(node); + let firstInterfaceDecl = getDeclarationOfKind(symbol, SyntaxKind.InterfaceDeclaration); if (symbol.declarations.length > 1) { if (node !== firstInterfaceDecl && !areTypeParametersIdentical(firstInterfaceDecl.typeParameters, node.typeParameters)) { error(node.name, Diagnostics.All_declarations_of_an_interface_must_have_identical_type_parameters); @@ -9623,7 +9660,7 @@ module ts { // Only check this symbol once if (node === firstInterfaceDecl) { - var type = getDeclaredTypeOfSymbol(symbol); + let type = getDeclaredTypeOfSymbol(symbol); // run subsequent checks only if first set succeeded if (checkInheritedPropertiesAreIdentical(type, node.name)) { forEach(type.baseTypes, baseType => { @@ -9650,20 +9687,20 @@ module ts { } function computeEnumMemberValues(node: EnumDeclaration) { - var nodeLinks = getNodeLinks(node); + let nodeLinks = getNodeLinks(node); if (!(nodeLinks.flags & NodeCheckFlags.EnumValuesComputed)) { - var enumSymbol = getSymbolOfNode(node); - var enumType = getDeclaredTypeOfSymbol(enumSymbol); - var autoValue = 0; - var ambient = isInAmbientContext(node); - var enumIsConst = isConst(node); + let enumSymbol = getSymbolOfNode(node); + let enumType = getDeclaredTypeOfSymbol(enumSymbol); + let autoValue = 0; + let ambient = isInAmbientContext(node); + let enumIsConst = isConst(node); forEach(node.members, member => { if (member.name.kind !== SyntaxKind.ComputedPropertyName && isNumericLiteralName((member.name).text)) { error(member.name, Diagnostics.An_enum_member_cannot_have_a_numeric_name); } - var initializer = member.initializer; + let initializer = member.initializer; if (initializer) { autoValue = getConstantValueForEnumMemberInitializer(initializer, enumIsConst); if (autoValue === undefined) { @@ -9675,7 +9712,7 @@ module ts { // If it is a constant value (not undefined), it is syntactically constrained to be a number. // Also, we do not need to check this for ambients because there is already // a syntax error if it is not a constant. - checkTypeAssignableTo(checkExpression(initializer), enumType, initializer, /*headMessage*/ undefined); + checkTypeAssignableTo(checkExpression(initializer), enumType, initializer, /*headMessage*/ undefined); } } else if (enumIsConst) { @@ -9706,7 +9743,7 @@ module ts { function evalConstant(e: Node): number { switch (e.kind) { case SyntaxKind.PrefixUnaryExpression: - var value = evalConstant((e).operand); + let value = evalConstant((e).operand); if (value === undefined) { return undefined; } @@ -9721,11 +9758,11 @@ module ts { return undefined; } - var left = evalConstant((e).left); + let left = evalConstant((e).left); if (left === undefined) { return undefined; } - var right = evalConstant((e).right); + let right = evalConstant((e).right); if (right === undefined) { return undefined; } @@ -9754,10 +9791,10 @@ module ts { return undefined; } - var member = initializer.parent; - var currentType = getTypeOfSymbol(getSymbolOfNode(member.parent)); - var enumType: Type; - var propertyName: string; + let member = initializer.parent; + let currentType = getTypeOfSymbol(getSymbolOfNode(member.parent)); + let enumType: Type; + let propertyName: string; if (e.kind === SyntaxKind.Identifier) { // unqualified names can refer to member that reside in different declaration of the enum so just doing name resolution won't work. @@ -9771,11 +9808,11 @@ module ts { (e).argumentExpression.kind !== SyntaxKind.StringLiteral) { return undefined; } - var enumType = getTypeOfNode((e).expression); + enumType = getTypeOfNode((e).expression); propertyName = ((e).argumentExpression).text; } else { - var enumType = getTypeOfNode((e).expression); + enumType = getTypeOfNode((e).expression); propertyName = (e).name.text; } if (enumType !== currentType) { @@ -9786,11 +9823,11 @@ module ts { if (propertyName === undefined) { return undefined; } - var property = getPropertyOfObjectType(enumType, propertyName); + let property = getPropertyOfObjectType(enumType, propertyName); if (!property || !(property.flags & SymbolFlags.EnumMember)) { return undefined; } - var propertyDecl = property.valueDeclaration; + let propertyDecl = property.valueDeclaration; // self references are illegal if (member === propertyDecl) { return undefined; @@ -9827,11 +9864,11 @@ module ts { // for the first member. // // Only perform this check once per symbol - var enumSymbol = getSymbolOfNode(node); - var firstDeclaration = getDeclarationOfKind(enumSymbol, node.kind); + let enumSymbol = getSymbolOfNode(node); + let firstDeclaration = getDeclarationOfKind(enumSymbol, node.kind); if (node === firstDeclaration) { if (enumSymbol.declarations.length > 1) { - var enumIsConst = isConst(node); + let enumIsConst = isConst(node); // check that const is placed\omitted on all enum declarations forEach(enumSymbol.declarations, decl => { if (isConstEnumDeclaration(decl) !== enumIsConst) { @@ -9840,19 +9877,19 @@ module ts { }); } - var seenEnumMissingInitialInitializer = false; + let seenEnumMissingInitialInitializer = false; forEach(enumSymbol.declarations, declaration => { // return true if we hit a violation of the rule, false otherwise if (declaration.kind !== SyntaxKind.EnumDeclaration) { return false; } - var enumDeclaration = declaration; + let enumDeclaration = declaration; if (!enumDeclaration.members.length) { return false; } - var firstEnumMember = enumDeclaration.members[0]; + let firstEnumMember = enumDeclaration.members[0]; if (!firstEnumMember.initializer) { if (seenEnumMissingInitialInitializer) { error(firstEnumMember.name, Diagnostics.In_an_enum_with_multiple_declarations_only_one_declaration_can_omit_an_initializer_for_its_first_enum_element); @@ -9866,9 +9903,8 @@ module ts { } function getFirstNonAmbientClassOrFunctionDeclaration(symbol: Symbol): Declaration { - var declarations = symbol.declarations; - for (var i = 0; i < declarations.length; i++) { - var declaration = declarations[i]; + let declarations = symbol.declarations; + for (let declaration of declarations) { if ((declaration.kind === SyntaxKind.ClassDeclaration || (declaration.kind === SyntaxKind.FunctionDeclaration && nodeIsPresent((declaration).body))) && !isInAmbientContext(declaration)) { return declaration; } @@ -9888,14 +9924,14 @@ module ts { checkCollisionWithCapturedThisVariable(node, node.name); checkCollisionWithRequireExportsInGeneratedCode(node, node.name); checkExportsOnMergedDeclarations(node); - var symbol = getSymbolOfNode(node); + let symbol = getSymbolOfNode(node); // The following checks only apply on a non-ambient instantiated module declaration. if (symbol.flags & SymbolFlags.ValueModule && symbol.declarations.length > 1 && !isInAmbientContext(node) && isInstantiatedModule(node, compilerOptions.preserveConstEnums)) { - var classOrFunc = getFirstNonAmbientClassOrFunctionDeclaration(symbol); + let classOrFunc = getFirstNonAmbientClassOrFunctionDeclaration(symbol); if (classOrFunc) { if (getSourceFileOfNode(node) !== getSourceFileOfNode(classOrFunc)) { error(node.name, Diagnostics.A_module_declaration_cannot_be_in_a_different_file_from_a_class_or_function_with_which_it_is_merged); @@ -9927,12 +9963,12 @@ module ts { } function checkExternalImportOrExportDeclaration(node: ImportDeclaration | ImportEqualsDeclaration | ExportDeclaration): boolean { - var moduleName = getExternalModuleName(node); + let moduleName = getExternalModuleName(node); if (getFullWidth(moduleName) !== 0 && moduleName.kind !== SyntaxKind.StringLiteral) { error(moduleName, Diagnostics.String_literal_expected); return false; } - var inAmbientExternalModule = node.parent.kind === SyntaxKind.ModuleBlock && (node.parent.parent).name.kind === SyntaxKind.StringLiteral; + let inAmbientExternalModule = node.parent.kind === SyntaxKind.ModuleBlock && (node.parent.parent).name.kind === SyntaxKind.StringLiteral; if (node.parent.kind !== SyntaxKind.SourceFile && !inAmbientExternalModule) { error(moduleName, node.kind === SyntaxKind.ExportDeclaration ? Diagnostics.Export_declarations_are_not_permitted_in_an_internal_module : @@ -9951,15 +9987,15 @@ module ts { } function checkAliasSymbol(node: ImportEqualsDeclaration | ImportClause | NamespaceImport | ImportSpecifier | ExportSpecifier) { - var symbol = getSymbolOfNode(node); - var target = resolveAlias(symbol); + let symbol = getSymbolOfNode(node); + let target = resolveAlias(symbol); if (target !== unknownSymbol) { - var excludedMeanings = + let excludedMeanings = (symbol.flags & SymbolFlags.Value ? SymbolFlags.Value : 0) | (symbol.flags & SymbolFlags.Type ? SymbolFlags.Type : 0) | (symbol.flags & SymbolFlags.Namespace ? SymbolFlags.Namespace : 0); if (target.flags & excludedMeanings) { - var message = node.kind === SyntaxKind.ExportSpecifier ? + let message = node.kind === SyntaxKind.ExportSpecifier ? Diagnostics.Export_declaration_conflicts_with_exported_declaration_of_0 : Diagnostics.Import_declaration_conflicts_with_local_declaration_of_0; error(node, message, symbolToString(symbol)); @@ -9978,7 +10014,7 @@ module ts { grammarErrorOnFirstToken(node, Diagnostics.An_import_declaration_cannot_have_modifiers); } if (checkExternalImportOrExportDeclaration(node)) { - var importClause = node.importClause; + let importClause = node.importClause; if (importClause) { if (importClause.name) { checkImportBinding(importClause); @@ -10003,11 +10039,11 @@ module ts { markExportAsReferenced(node); } if (isInternalModuleImportEqualsDeclaration(node)) { - var target = resolveAlias(getSymbolOfNode(node)); + let target = resolveAlias(getSymbolOfNode(node)); if (target !== unknownSymbol) { if (target.flags & SymbolFlags.Value) { // Target is a value symbol, check that it is not hidden by a local declaration with the same name - var moduleName = getFirstIdentifier(node.moduleReference); + let moduleName = getFirstIdentifier(node.moduleReference); if (!(resolveEntityName(moduleName, SymbolFlags.Value | SymbolFlags.Namespace).flags & SymbolFlags.Namespace)) { error(moduleName, Diagnostics.Module_0_is_hidden_by_a_local_declaration_with_the_same_name, declarationNameToString(moduleName)); } @@ -10039,7 +10075,7 @@ module ts { } function checkExportAssignment(node: ExportAssignment) { - var container = node.parent.kind === SyntaxKind.SourceFile ? node.parent : node.parent.parent; + let container = node.parent.kind === SyntaxKind.SourceFile ? node.parent : node.parent.parent; if (container.kind === SyntaxKind.ModuleDeclaration && (container).name.kind === SyntaxKind.Identifier) { error(node, Diagnostics.An_export_assignment_cannot_be_used_in_an_internal_module); return; @@ -10077,19 +10113,17 @@ module ts { } function hasExportedMembers(moduleSymbol: Symbol) { - var declarations = moduleSymbol.declarations; - for (var i = 0; i < declarations.length; i++) { - var statements = getModuleStatements(declarations[i]); - for (var j = 0; j < statements.length; j++) { - var node = statements[j]; + let declarations = moduleSymbol.declarations; + for (let current of declarations) { + let statements = getModuleStatements(current); + for (let node of statements) { if (node.kind === SyntaxKind.ExportDeclaration) { - var exportClause = (node).exportClause; + let exportClause = (node).exportClause; if (!exportClause) { return true; } - var specifiers = exportClause.elements; - for (var k = 0; k < specifiers.length; k++) { - var specifier = specifiers[k]; + let specifiers = exportClause.elements; + for (let specifier of specifiers) { if (!(specifier.propertyName && specifier.name && specifier.name.text === "default")) { return true; } @@ -10103,13 +10137,13 @@ module ts { } function checkExternalModuleExports(node: SourceFile | ModuleDeclaration) { - var moduleSymbol = getSymbolOfNode(node); - var links = getSymbolLinks(moduleSymbol); + let moduleSymbol = getSymbolOfNode(node); + let links = getSymbolLinks(moduleSymbol); if (!links.exportsChecked) { - var defaultSymbol = getExportAssignmentSymbol(moduleSymbol); + let defaultSymbol = getExportAssignmentSymbol(moduleSymbol); if (defaultSymbol) { if (hasExportedMembers(moduleSymbol)) { - var declaration = getDeclarationOfAliasSymbol(defaultSymbol) || defaultSymbol.valueDeclaration; + let declaration = getDeclarationOfAliasSymbol(defaultSymbol) || defaultSymbol.valueDeclaration; error(declaration, Diagnostics.An_export_assignment_cannot_be_used_in_a_module_with_other_exported_elements); } } @@ -10225,8 +10259,8 @@ module ts { // Function expression bodies are checked after all statements in the enclosing body. This is to ensure // constructs like the following are permitted: - // var foo = function () { - // var s = foo(); + // let foo = function () { + // let s = foo(); // return "hello"; // } // Here, performing a full type check of the body of the function expression whilst in the process of @@ -10315,14 +10349,14 @@ module ts { } function checkSourceFile(node: SourceFile) { - var start = new Date().getTime(); + let start = new Date().getTime(); checkSourceFileWorker(node); checkTime += new Date().getTime() - start; } // Fully type check a source file and collect the relevant diagnostics. function checkSourceFileWorker(node: SourceFile) { - var links = getNodeLinks(node); + let links = getNodeLinks(node); if (!(links.flags & NodeCheckFlags.TypeChecked)) { // Grammar checking checkGrammarSourceFile(node); @@ -10387,11 +10421,11 @@ module ts { } function getSymbolsInScope(location: Node, meaning: SymbolFlags): Symbol[] { - var symbols: SymbolTable = {}; - var memberFlags: NodeFlags = 0; + let symbols: SymbolTable = {}; + let memberFlags: NodeFlags = 0; function copySymbol(symbol: Symbol, meaning: SymbolFlags) { if (symbol.flags & meaning) { - var id = symbol.name; + let id = symbol.name; if (!isReservedMemberName(id) && !hasProperty(symbols, id)) { symbols[id] = symbol; } @@ -10399,7 +10433,7 @@ module ts { } function copySymbols(source: SymbolTable, meaning: SymbolFlags) { if (meaning) { - for (var id in source) { + for (let id in source) { if (hasProperty(source, id)) { copySymbol(source[id], meaning); } @@ -10463,7 +10497,7 @@ module ts { // True if the given identifier is part of a type reference function isTypeReferenceIdentifier(entityName: EntityName): boolean { - var node: Node = entityName; + let node: Node = entityName; while (node.parent && node.parent.kind === SyntaxKind.QualifiedName) node = node.parent; return node.parent && node.parent.kind === SyntaxKind.TypeReference; } @@ -10498,13 +10532,13 @@ module ts { // At this point, node is either a qualified name or an identifier Debug.assert(node.kind === SyntaxKind.Identifier || node.kind === SyntaxKind.QualifiedName, "'node' was expected to be a qualified name or identifier in 'isTypeNode'."); - var parent = node.parent; + let parent = node.parent; if (parent.kind === SyntaxKind.TypeQuery) { return false; } // Do not recursively call isTypeNode on the parent. In the example: // - // var a: A.B.C; + // let a: A.B.C; // // Calling isTypeNode would consider the qualified name A.B a type node. Only C or // A.B.C is a type node. @@ -10601,18 +10635,18 @@ module ts { if (entityName.kind === SyntaxKind.Identifier) { // Include aliases in the meaning, this ensures that we do not follow aliases to where they point and instead // return the alias symbol. - var meaning: SymbolFlags = SymbolFlags.Value | SymbolFlags.Alias; + let meaning: SymbolFlags = SymbolFlags.Value | SymbolFlags.Alias; return resolveEntityName(entityName, meaning); } else if (entityName.kind === SyntaxKind.PropertyAccessExpression) { - var symbol = getNodeLinks(entityName).resolvedSymbol; + let symbol = getNodeLinks(entityName).resolvedSymbol; if (!symbol) { checkPropertyAccessExpression(entityName); } return getNodeLinks(entityName).resolvedSymbol; } else if (entityName.kind === SyntaxKind.QualifiedName) { - var symbol = getNodeLinks(entityName).resolvedSymbol; + let symbol = getNodeLinks(entityName).resolvedSymbol; if (!symbol) { checkQualifiedName(entityName); } @@ -10620,7 +10654,7 @@ module ts { } } else if (isTypeReferenceIdentifier(entityName)) { - var meaning = entityName.parent.kind === SyntaxKind.TypeReference ? SymbolFlags.Type : SymbolFlags.Namespace; + let meaning = entityName.parent.kind === SyntaxKind.TypeReference ? SymbolFlags.Type : SymbolFlags.Namespace; // Include aliases in the meaning, this ensures that we do not follow aliases to where they point and instead // return the alias symbol. meaning |= SymbolFlags.Alias; @@ -10656,12 +10690,12 @@ module ts { case SyntaxKind.ThisKeyword: case SyntaxKind.SuperKeyword: - var type = checkExpression(node); + let type = checkExpression(node); return type.symbol; case SyntaxKind.ConstructorKeyword: // constructor keyword for an overload, should take us to the definition if it exist - var constructorDeclaration = node.parent; + let constructorDeclaration = node.parent; if (constructorDeclaration && constructorDeclaration.kind === SyntaxKind.Constructor) { return (constructorDeclaration.parent).symbol; } @@ -10669,7 +10703,7 @@ module ts { case SyntaxKind.StringLiteral: // External module name in an import declaration - var moduleName: Expression; + let moduleName: Expression; if ((isExternalModuleImportEqualsDeclaration(node.parent.parent) && getExternalModuleImportEqualsDeclarationExpression(node.parent.parent) === node) || ((node.parent.kind === SyntaxKind.ImportDeclaration || node.parent.kind === SyntaxKind.ExportDeclaration) && @@ -10681,9 +10715,9 @@ module ts { case SyntaxKind.NumericLiteral: // index access if (node.parent.kind == SyntaxKind.ElementAccessExpression && (node.parent).argumentExpression === node) { - var objectType = checkExpression((node.parent).expression); + let objectType = checkExpression((node.parent).expression); if (objectType === unknownType) return undefined; - var apparentType = getApparentType(objectType); + let apparentType = getApparentType(objectType); if (apparentType === unknownType) return undefined; return getPropertyOfType(apparentType, (node).text); } @@ -10718,29 +10752,29 @@ module ts { if (isTypeDeclaration(node)) { // In this case, we call getSymbolOfNode instead of getSymbolInfo because it is a declaration - var symbol = getSymbolOfNode(node); + let symbol = getSymbolOfNode(node); return getDeclaredTypeOfSymbol(symbol); } if (isTypeDeclarationName(node)) { - var symbol = getSymbolInfo(node); + let symbol = getSymbolInfo(node); return symbol && getDeclaredTypeOfSymbol(symbol); } if (isDeclaration(node)) { // In this case, we call getSymbolOfNode instead of getSymbolInfo because it is a declaration - var symbol = getSymbolOfNode(node); + let symbol = getSymbolOfNode(node); return getTypeOfSymbol(symbol); } if (isDeclarationName(node)) { - var symbol = getSymbolInfo(node); + let symbol = getSymbolInfo(node); return symbol && getTypeOfSymbol(symbol); } if (isInRightSideOfImportOrExportAssignment(node)) { - var symbol = getSymbolInfo(node); - var declaredType = symbol && getDeclaredTypeOfSymbol(symbol); + let symbol = getSymbolInfo(node); + let declaredType = symbol && getDeclaredTypeOfSymbol(symbol); return declaredType !== unknownType ? declaredType : getTypeOfSymbol(symbol); } @@ -10757,8 +10791,8 @@ module ts { // Return the list of properties of the given type, augmented with properties from Function // if the type has call or construct signatures function getAugmentedPropertiesOfType(type: Type): Symbol[] { - var type = getApparentType(type); - var propsByName = createSymbolTable(getPropertiesOfType(type)); + type = getApparentType(type); + let propsByName = createSymbolTable(getPropertiesOfType(type)); if (getSignaturesOfType(type, SignatureKind.Call).length || getSignaturesOfType(type, SignatureKind.Construct).length) { forEach(getPropertiesOfType(globalFunctionType), p => { if (!hasProperty(propsByName, p.name)) { @@ -10771,15 +10805,15 @@ module ts { function getRootSymbols(symbol: Symbol): Symbol[] { if (symbol.flags & SymbolFlags.UnionProperty) { - var symbols: Symbol[] = []; - var name = symbol.name; + let symbols: Symbol[] = []; + let name = symbol.name; forEach(getSymbolLinks(symbol).unionType.types, t => { symbols.push(getPropertyOfType(t, name)); }); return symbols; } else if (symbol.flags & SymbolFlags.Transient) { - var target = getSymbolLinks(symbol).target; + let target = getSymbolLinks(symbol).target; if (target) { return [target]; } @@ -10802,7 +10836,7 @@ module ts { } function isUniqueLocalName(name: string, container: Node): boolean { - for (var node = container; isNodeDescendentOf(node, container); node = node.nextContainer) { + for (let node = container; isNodeDescendentOf(node, container); node = node.nextContainer) { if (node.locals && hasProperty(node.locals, name)) { // We conservatively include alias symbols to cover cases where they're emitted as locals if (node.locals[name].flags & (SymbolFlags.Value | SymbolFlags.ExportValue | SymbolFlags.Alias)) { @@ -10814,8 +10848,8 @@ module ts { } function getGeneratedNamesForSourceFile(sourceFile: SourceFile): Map { - var links = getNodeLinks(sourceFile); - var generatedNames = links.generatedNames; + let links = getNodeLinks(sourceFile); + let generatedNames = links.generatedNames; if (!generatedNames) { generatedNames = links.generatedNames = {}; generateNames(sourceFile); @@ -10856,7 +10890,7 @@ module ts { } function makeUniqueName(baseName: string): string { - var name = generateUniqueName(baseName, isExistingName); + let name = generateUniqueName(baseName, isExistingName); return generatedNames[name] = name; } @@ -10872,15 +10906,15 @@ module ts { function generateNameForModuleOrEnum(node: ModuleDeclaration | EnumDeclaration) { if (node.name.kind === SyntaxKind.Identifier) { - var name = node.name.text; + let name = node.name.text; // Use module/enum name itself if it is unique, otherwise make a unique variation assignGeneratedName(node, isUniqueLocalName(name, node) ? name : makeUniqueName(name)); } } function generateNameForImportOrExportDeclaration(node: ImportDeclaration | ExportDeclaration) { - var expr = getExternalModuleName(node); - var baseName = expr.kind === SyntaxKind.StringLiteral ? + let expr = getExternalModuleName(node); + let baseName = expr.kind === SyntaxKind.StringLiteral ? escapeIdentifier(makeIdentifierFromModuleName((expr).text)) : "module"; assignGeneratedName(node, makeUniqueName(baseName)); } @@ -10905,7 +10939,7 @@ module ts { } function getGeneratedNameForNode(node: Node) { - var links = getNodeLinks(node); + let links = getNodeLinks(node); if (!links.generatedName) { getGeneratedNamesForSourceFile(getSourceFile(node)); } @@ -10921,10 +10955,10 @@ module ts { } function getAliasNameSubstitution(symbol: Symbol): string { - var declaration = getDeclarationOfAliasSymbol(symbol); + let declaration = getDeclarationOfAliasSymbol(symbol); if (declaration && declaration.kind === SyntaxKind.ImportSpecifier) { - var moduleName = getGeneratedNameForNode(declaration.parent.parent.parent); - var propertyName = (declaration).propertyName || (declaration).name; + let moduleName = getGeneratedNameForNode(declaration.parent.parent.parent); + let propertyName = (declaration).propertyName || (declaration).name; return moduleName + "." + unescapeIdentifier(propertyName.text); } } @@ -10933,8 +10967,8 @@ module ts { if (isExternalModuleSymbol(symbol.parent)) { return "exports." + unescapeIdentifier(symbol.name); } - var node = location; - var containerSymbol = getParentOfSymbol(symbol); + let node = location; + let containerSymbol = getParentOfSymbol(symbol); while (node) { if ((node.kind === SyntaxKind.ModuleDeclaration || node.kind === SyntaxKind.EnumDeclaration) && getSymbolOfNode(node) === containerSymbol) { return getGeneratedNameForNode(node) + "." + unescapeIdentifier(symbol.name); @@ -10944,7 +10978,7 @@ module ts { } function getExpressionNameSubstitution(node: Identifier): string { - var symbol = getNodeLinks(node).resolvedSymbol; + let symbol = getNodeLinks(node).resolvedSymbol; if (symbol) { // Whan an identifier resolves to a parented symbol, it references an exported entity from // another declaration of the same internal module. @@ -10954,7 +10988,7 @@ module ts { // If we reference an exported entity within the same module declaration, then whether // we prefix depends on the kind of entity. SymbolFlags.ExportHasLocal encompasses all the // kinds that we do NOT prefix. - var exportSymbol = getExportSymbolOfValueSymbolIfExported(symbol); + let exportSymbol = getExportSymbolOfValueSymbolIfExported(symbol); if (symbol !== exportSymbol && !(exportSymbol.flags & SymbolFlags.ExportHasLocal)) { return getExportNameSubstitution(exportSymbol, node.parent); } @@ -10966,7 +11000,7 @@ module ts { } function hasExportDefaultValue(node: SourceFile): boolean { - var symbol = getResolvedExportAssignmentSymbol(getSymbolOfNode(node)); + let symbol = getResolvedExportAssignmentSymbol(getSymbolOfNode(node)); return symbol && symbol !== unknownSymbol && symbolIsValue(symbol) && !isConstEnumSymbol(symbol); } @@ -10979,7 +11013,7 @@ module ts { } function isAliasResolvedToValue(symbol: Symbol): boolean { - var target = resolveAlias(symbol); + let target = resolveAlias(symbol); // const enums and modules that contain only const enums are not considered values from the emit perespective return target !== unknownSymbol && target.flags & SymbolFlags.Value && !isConstEnumOrConstEnumOnlyModule(target); } @@ -10990,7 +11024,7 @@ module ts { function isReferencedAliasDeclaration(node: Node): boolean { if (isAliasSymbolDeclaration(node)) { - var symbol = getSymbolOfNode(node); + let symbol = getSymbolOfNode(node); if (getSymbolLinks(symbol).referenced) { return true; } @@ -11000,8 +11034,8 @@ module ts { function isImplementationOfOverload(node: FunctionLikeDeclaration) { if (nodeIsPresent(node.body)) { - var symbol = getSymbolOfNode(node); - var signaturesOfSymbol = getSignaturesOfSymbol(symbol); + let symbol = getSymbolOfNode(node); + let signaturesOfSymbol = getSignaturesOfSymbol(symbol); // If this function body corresponds to function with multiple signature, it is implementation of overload // e.g.: function foo(a: string): string; // function foo(a: number): number; @@ -11033,10 +11067,10 @@ module ts { return getEnumMemberValue(node); } - var symbol = getNodeLinks(node).resolvedSymbol; + let symbol = getNodeLinks(node).resolvedSymbol; if (symbol && (symbol.flags & SymbolFlags.EnumMember)) { - var declaration = symbol.valueDeclaration; - var constantValue: number; + let declaration = symbol.valueDeclaration; + let constantValue: number; if (declaration.kind === SyntaxKind.EnumMember) { return getEnumMemberValue(declaration); } @@ -11047,8 +11081,8 @@ module ts { function writeTypeOfDeclaration(declaration: AccessorDeclaration | VariableLikeDeclaration, enclosingDeclaration: Node, flags: TypeFormatFlags, writer: SymbolWriter) { // Get type of the symbol if this is the valid symbol otherwise get type at location - var symbol = getSymbolOfNode(declaration); - var type = symbol && !(symbol.flags & (SymbolFlags.TypeLiteral | SymbolFlags.Signature)) + let symbol = getSymbolOfNode(declaration); + let type = symbol && !(symbol.flags & (SymbolFlags.TypeLiteral | SymbolFlags.Signature)) ? getTypeOfSymbol(symbol) : unknownType; @@ -11056,7 +11090,7 @@ module ts { } function writeReturnTypeOfSignatureDeclaration(signatureDeclaration: SignatureDeclaration, enclosingDeclaration: Node, flags: TypeFormatFlags, writer: SymbolWriter) { - var signature = getSignatureFromDeclaration(signatureDeclaration); + let signature = getSignatureFromDeclaration(signatureDeclaration); getSymbolDisplayBuilder().buildTypeDisplay(getReturnTypeOfSignature(signature), writer, enclosingDeclaration, flags); } @@ -11082,17 +11116,17 @@ module ts { } // for names in variable declarations and binding elements try to short circuit and fetch symbol from the node - var declarationSymbol: Symbol = + let declarationSymbol: Symbol = (n.parent.kind === SyntaxKind.VariableDeclaration && (n.parent).name === n) || n.parent.kind === SyntaxKind.BindingElement ? getSymbolOfNode(n.parent) : undefined; - var symbol = declarationSymbol || + let symbol = declarationSymbol || getNodeLinks(n).resolvedSymbol || - resolveName(n, n.text, SymbolFlags.BlockScopedVariable | SymbolFlags.Alias, /*nodeNotFoundMessage*/ undefined, /*nameArg*/ undefined); + resolveName(n, n.text, SymbolFlags.Value | SymbolFlags.Alias, /*nodeNotFoundMessage*/ undefined, /*nameArg*/ undefined); - var isLetOrConst = + let isLetOrConst = symbol && (symbol.flags & SymbolFlags.BlockScopedVariable) && symbol.valueDeclaration.parent.kind !== SyntaxKind.CatchClause; @@ -11208,16 +11242,14 @@ module ts { return; } - var lastStatic: Node, lastPrivate: Node, lastProtected: Node, lastDeclare: Node; - var flags = 0; - for (var i = 0, n = node.modifiers.length; i < n; i++) { - var modifier = node.modifiers[i]; - + let lastStatic: Node, lastPrivate: Node, lastProtected: Node, lastDeclare: Node; + let flags = 0; + for (let modifier of node.modifiers) { switch (modifier.kind) { case SyntaxKind.PublicKeyword: case SyntaxKind.ProtectedKeyword: case SyntaxKind.PrivateKeyword: - var text: string; + let text: string; if (modifier.kind === SyntaxKind.PublicKeyword) { text = "public"; } @@ -11315,9 +11347,9 @@ module ts { function checkGrammarForDisallowedTrailingComma(list: NodeArray): boolean { if (list && list.hasTrailingComma) { - var start = list.end - ",".length; - var end = list.end; - var sourceFile = getSourceFileOfNode(list[0]); + let start = list.end - ",".length; + let end = list.end; + let sourceFile = getSourceFileOfNode(list[0]); return grammarErrorAtPos(sourceFile, start, end - start, Diagnostics.Trailing_comma_not_allowed); } } @@ -11328,9 +11360,9 @@ module ts { } if (typeParameters && typeParameters.length === 0) { - var start = typeParameters.pos - "<".length; - var sourceFile = getSourceFileOfNode(node); - var end = skipTrivia(sourceFile.text, typeParameters.end) + ">".length; + let start = typeParameters.pos - "<".length; + let sourceFile = getSourceFileOfNode(node); + let end = skipTrivia(sourceFile.text, typeParameters.end) + ">".length; return grammarErrorAtPos(sourceFile, start, end - start, Diagnostics.Type_parameter_list_cannot_be_empty); } } @@ -11340,11 +11372,11 @@ module ts { return true; } - var seenOptionalParameter = false; - var parameterCount = parameters.length; + let seenOptionalParameter = false; + let parameterCount = parameters.length; - for (var i = 0; i < parameterCount; i++) { - var parameter = parameters[i]; + for (let i = 0; i < parameterCount; i++) { + let parameter = parameters[i]; if (parameter.dotDotDotToken) { if (i !== (parameterCount - 1)) { return grammarErrorOnNode(parameter.dotDotDotToken, Diagnostics.A_rest_parameter_must_be_last_in_a_parameter_list); @@ -11379,7 +11411,7 @@ module ts { } function checkGrammarIndexSignatureParameters(node: SignatureDeclaration): boolean { - var parameter = node.parameters[0]; + let parameter = node.parameters[0]; if (node.parameters.length !== 1) { if (parameter) { return grammarErrorOnNode(parameter.name, Diagnostics.An_index_signature_must_have_exactly_one_parameter); @@ -11424,9 +11456,9 @@ module ts { function checkGrammarForAtLeastOneTypeArgument(node: Node, typeArguments: NodeArray): boolean { if (typeArguments && typeArguments.length === 0) { - var sourceFile = getSourceFileOfNode(node); - var start = typeArguments.pos - "<".length; - var end = skipTrivia(sourceFile.text, typeArguments.end) + ">".length; + let sourceFile = getSourceFileOfNode(node); + let start = typeArguments.pos - "<".length; + let end = skipTrivia(sourceFile.text, typeArguments.end) + ">".length; return grammarErrorAtPos(sourceFile, start, end - start, Diagnostics.Type_argument_list_cannot_be_empty); } } @@ -11438,9 +11470,8 @@ module ts { function checkGrammarForOmittedArgument(node: CallExpression, arguments: NodeArray): boolean { if (arguments) { - var sourceFile = getSourceFileOfNode(node); - for (var i = 0, n = arguments.length; i < n; i++) { - var arg = arguments[i]; + let sourceFile = getSourceFileOfNode(node); + for (let arg of arguments) { if (arg.kind === SyntaxKind.OmittedExpression) { return grammarErrorAtPos(sourceFile, arg.pos, 0, Diagnostics.Argument_expression_expected); } @@ -11454,26 +11485,23 @@ module ts { } function checkGrammarHeritageClause(node: HeritageClause): boolean { - var types = node.types; + let types = node.types; if (checkGrammarForDisallowedTrailingComma(types)) { return true; } if (types && types.length === 0) { - var listType = tokenToString(node.token); - var sourceFile = getSourceFileOfNode(node); + let listType = tokenToString(node.token); + let sourceFile = getSourceFileOfNode(node); return grammarErrorAtPos(sourceFile, types.pos, 0, Diagnostics._0_list_cannot_be_empty, listType) } } function checkGrammarClassDeclarationHeritageClauses(node: ClassDeclaration) { - var seenExtendsClause = false; - var seenImplementsClause = false; + let seenExtendsClause = false; + let seenImplementsClause = false; if (!checkGrammarModifiers(node) && node.heritageClauses) { - for (var i = 0, n = node.heritageClauses.length; i < n; i++) { - Debug.assert(i <= 2); - var heritageClause = node.heritageClauses[i]; - + for (let heritageClause of node.heritageClauses) { if (heritageClause.token === SyntaxKind.ExtendsKeyword) { if (seenExtendsClause) { return grammarErrorOnFirstToken(heritageClause, Diagnostics.extends_clause_already_seen) @@ -11505,13 +11533,10 @@ module ts { } function checkGrammarInterfaceDeclaration(node: InterfaceDeclaration) { - var seenExtendsClause = false; + let seenExtendsClause = false; if (node.heritageClauses) { - for (var i = 0, n = node.heritageClauses.length; i < n; i++) { - Debug.assert(i <= 1); - var heritageClause = node.heritageClauses[i]; - + for (let heritageClause of node.heritageClauses) { if (heritageClause.token === SyntaxKind.ExtendsKeyword) { if (seenExtendsClause) { return grammarErrorOnFirstToken(heritageClause, Diagnostics.extends_clause_already_seen); @@ -11538,7 +11563,7 @@ module ts { return false; } - var computedPropertyName = node; + let computedPropertyName = node; if (computedPropertyName.expression.kind === SyntaxKind.BinaryExpression && (computedPropertyName.expression).operatorToken.kind === SyntaxKind.CommaToken) { return grammarErrorOnNode(computedPropertyName.expression, Diagnostics.A_comma_expression_is_not_allowed_in_a_computed_property_name); } @@ -11562,16 +11587,15 @@ module ts { } function checkGrammarObjectLiteralExpression(node: ObjectLiteralExpression) { - var seen: Map = {}; - var Property = 1; - var GetAccessor = 2; - var SetAccesor = 4; - var GetOrSetAccessor = GetAccessor | SetAccesor; - var inStrictMode = (node.parserContextFlags & ParserContextFlags.StrictMode) !== 0; + let seen: Map = {}; + let Property = 1; + let GetAccessor = 2; + let SetAccesor = 4; + let GetOrSetAccessor = GetAccessor | SetAccesor; + let inStrictMode = (node.parserContextFlags & ParserContextFlags.StrictMode) !== 0; - for (var i = 0, n = node.properties.length; i < n; i++) { - var prop = node.properties[i]; - var name = prop.name; + for (let prop of node.properties) { + let name = prop.name; if (prop.kind === SyntaxKind.OmittedExpression || name.kind === SyntaxKind.ComputedPropertyName) { // If the name is not a ComputedPropertyName, the grammar checking will skip it @@ -11587,7 +11611,7 @@ module ts { // c.IsAccessorDescriptor(previous) is true and IsDataDescriptor(propId.descriptor) is true. // d.IsAccessorDescriptor(previous) is true and IsAccessorDescriptor(propId.descriptor) is true // and either both previous and propId.descriptor have[[Get]] fields or both previous and propId.descriptor have[[Set]] fields - var currentKind: number; + let currentKind: number; if (prop.kind === SyntaxKind.PropertyAssignment || prop.kind === SyntaxKind.ShorthandPropertyAssignment) { // Grammar checking for computedPropertName and shorthandPropertyAssignment checkGrammarForInvalidQuestionMark(prop,(prop).questionToken, Diagnostics.An_object_member_cannot_be_declared_optional); @@ -11613,7 +11637,7 @@ module ts { seen[(name).text] = currentKind; } else { - var existingKind = seen[(name).text]; + let existingKind = seen[(name).text]; if (currentKind === Property && existingKind === Property) { if (inStrictMode) { grammarErrorOnNode(name, Diagnostics.An_object_literal_cannot_have_multiple_properties_with_the_same_name_in_strict_mode); @@ -11640,23 +11664,23 @@ module ts { } if (forInOrOfStatement.initializer.kind === SyntaxKind.VariableDeclarationList) { - var variableList = forInOrOfStatement.initializer; + let variableList = forInOrOfStatement.initializer; if (!checkGrammarVariableDeclarationList(variableList)) { if (variableList.declarations.length > 1) { - var diagnostic = forInOrOfStatement.kind === SyntaxKind.ForInStatement + let diagnostic = forInOrOfStatement.kind === SyntaxKind.ForInStatement ? Diagnostics.Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement : Diagnostics.Only_a_single_variable_declaration_is_allowed_in_a_for_of_statement; return grammarErrorOnFirstToken(variableList.declarations[1], diagnostic); } - var firstDeclaration = variableList.declarations[0]; + let firstDeclaration = variableList.declarations[0]; if (firstDeclaration.initializer) { - var diagnostic = forInOrOfStatement.kind === SyntaxKind.ForInStatement + let diagnostic = forInOrOfStatement.kind === SyntaxKind.ForInStatement ? Diagnostics.The_variable_declaration_of_a_for_in_statement_cannot_have_an_initializer : Diagnostics.The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer; return grammarErrorOnNode(firstDeclaration.name, diagnostic); } if (firstDeclaration.type) { - var diagnostic = forInOrOfStatement.kind === SyntaxKind.ForInStatement + let diagnostic = forInOrOfStatement.kind === SyntaxKind.ForInStatement ? Diagnostics.The_left_hand_side_of_a_for_in_statement_cannot_use_a_type_annotation : Diagnostics.The_left_hand_side_of_a_for_of_statement_cannot_use_a_type_annotation; return grammarErrorOnNode(firstDeclaration, diagnostic); @@ -11668,7 +11692,7 @@ module ts { } function checkGrammarAccessor(accessor: MethodDeclaration): boolean { - var kind = accessor.kind; + let kind = accessor.kind; if (languageVersion < ScriptTarget.ES5) { return grammarErrorOnNode(accessor.name, Diagnostics.Accessors_are_only_available_when_targeting_ECMAScript_5_and_higher); } @@ -11692,7 +11716,7 @@ module ts { return grammarErrorOnNode(accessor.name, Diagnostics.A_set_accessor_must_have_exactly_one_parameter); } else { - var parameter = accessor.parameters[0]; + let parameter = accessor.parameters[0]; if (parameter.dotDotDotToken) { return grammarErrorOnNode(parameter.dotDotDotToken, Diagnostics.A_set_accessor_cannot_have_rest_parameter); } @@ -11771,7 +11795,7 @@ module ts { } function checkGrammarBreakOrContinueStatement(node: BreakOrContinueStatement): boolean { - var current: Node = node; + let current: Node = node; while (current) { if (isFunctionLike(current)) { return grammarErrorOnNode(node, Diagnostics.Jump_target_cannot_cross_function_boundary); @@ -11782,7 +11806,7 @@ module ts { if (node.label && (current).label.text === node.label.text) { // found matching label - verify that label usage is correct // continue can only target labels that are on iteration statements - var isMisplacedContinueLabel = node.kind === SyntaxKind.ContinueStatement + let isMisplacedContinueLabel = node.kind === SyntaxKind.ContinueStatement && !isIterationStatement((current).statement, /*lookInLabeledStatement*/ true); if (isMisplacedContinueLabel) { @@ -11810,14 +11834,14 @@ module ts { } if (node.label) { - var message = node.kind === SyntaxKind.BreakStatement + let message = node.kind === SyntaxKind.BreakStatement ? Diagnostics.A_break_statement_can_only_jump_to_a_label_of_an_enclosing_statement : Diagnostics.A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement; return grammarErrorOnNode(node, message) } else { - var message = node.kind === SyntaxKind.BreakStatement + let message = node.kind === SyntaxKind.BreakStatement ? Diagnostics.A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement : Diagnostics.A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement; return grammarErrorOnNode(node, message) @@ -11826,7 +11850,7 @@ module ts { function checkGrammarBindingElement(node: BindingElement) { if (node.dotDotDotToken) { - var elements = (node.parent).elements; + let elements = (node.parent).elements; if (node !== elements[elements.length - 1]) { return grammarErrorOnNode(node, Diagnostics.A_rest_element_must_be_last_in_an_array_destructuring_pattern); } @@ -11848,7 +11872,7 @@ module ts { } if (node.initializer) { // Error on equals token which immediate precedes the initializer - var equalsTokenLength = "=".length; + let equalsTokenLength = "=".length; return grammarErrorAtPos(getSourceFileOfNode(node), node.initializer.pos - equalsTokenLength, equalsTokenLength, Diagnostics.Initializers_are_not_allowed_in_ambient_contexts); } @@ -11863,7 +11887,7 @@ module ts { } } - var checkLetConstNames = languageVersion >= ScriptTarget.ES6 && (isLet(node) || isConst(node)); + let checkLetConstNames = languageVersion >= ScriptTarget.ES6 && (isLet(node) || isConst(node)); // 1. LexicalDeclaration : LetOrConst BindingList ; // It is a Syntax Error if the BoundNames of BindingList contains "let". @@ -11883,15 +11907,15 @@ module ts { } } else { - var elements = (name).elements; - for (var i = 0; i < elements.length; ++i) { - checkGrammarNameInLetOrConstDeclarations(elements[i].name); + let elements = (name).elements; + for (let element of elements) { + checkGrammarNameInLetOrConstDeclarations(element.name); } } } function checkGrammarVariableDeclarationList(declarationList: VariableDeclarationList): boolean { - var declarations = declarationList.declarations; + let declarations = declarationList.declarations; if (checkGrammarForDisallowedTrailingComma(declarationList.declarations)) { return true; } @@ -11931,7 +11955,7 @@ module ts { function isIntegerLiteral(expression: Expression): boolean { if (expression.kind === SyntaxKind.PrefixUnaryExpression) { - var unaryExpression = expression; + let unaryExpression = expression; if (unaryExpression.operator === SyntaxKind.PlusToken || unaryExpression.operator === SyntaxKind.MinusToken) { expression = unaryExpression.operand; } @@ -11949,17 +11973,16 @@ module ts { } function checkGrammarEnumDeclaration(enumDecl: EnumDeclaration): boolean { - var enumIsConst = (enumDecl.flags & NodeFlags.Const) !== 0; + let enumIsConst = (enumDecl.flags & NodeFlags.Const) !== 0; - var hasError = false; + let hasError = false; // skip checks below for const enums - they allow arbitrary initializers as long as they can be evaluated to constant expressions. // since all values are known in compile time - it is not necessary to check that constant enum section precedes computed enum members. if (!enumIsConst) { - var inConstantEnumMemberSection = true; - var inAmbientContext = isInAmbientContext(enumDecl); - for (var i = 0, n = enumDecl.members.length; i < n; i++) { - var node = enumDecl.members[i]; + let inConstantEnumMemberSection = true; + let inAmbientContext = isInAmbientContext(enumDecl); + for (let node of enumDecl.members) { // Do not use hasDynamicName here, because that returns false for well known symbols. // We want to perform checkComputedPropertyName for all computed properties, including // well known symbols. @@ -11988,9 +12011,9 @@ module ts { } function grammarErrorOnFirstToken(node: Node, message: DiagnosticMessage, arg0?: any, arg1?: any, arg2?: any): boolean { - var sourceFile = getSourceFileOfNode(node); + let sourceFile = getSourceFileOfNode(node); if (!hasParseDiagnostics(sourceFile)) { - var span = getSpanOfTokenAtPosition(sourceFile, node.pos); + let span = getSpanOfTokenAtPosition(sourceFile, node.pos); diagnostics.add(createFileDiagnostic(sourceFile, span.start, span.length, message, arg0, arg1, arg2)); return true; } @@ -12004,7 +12027,7 @@ module ts { } function grammarErrorOnNode(node: Node, message: DiagnosticMessage, arg0?: any, arg1?: any, arg2?: any): boolean { - var sourceFile = getSourceFileOfNode(node); + let sourceFile = getSourceFileOfNode(node); if (!hasParseDiagnostics(sourceFile)) { diagnostics.add(createDiagnosticForNode(node, message, arg0, arg1, arg2)); return true; @@ -12013,9 +12036,9 @@ module ts { function checkGrammarEvalOrArgumentsInStrictMode(contextNode: Node, name: Node): boolean { if (name && name.kind === SyntaxKind.Identifier) { - var identifier = name; + let identifier = name; if (contextNode && (contextNode.parserContextFlags & ParserContextFlags.StrictMode) && isEvalOrArgumentsIdentifier(identifier)) { - var nameText = declarationNameToString(identifier); + let nameText = declarationNameToString(identifier); return grammarErrorOnNode(identifier, Diagnostics.Invalid_use_of_0_in_strict_mode, nameText); } } @@ -12081,8 +12104,7 @@ module ts { } function checkGrammarTopLevelElementsForRequiredDeclareModifier(file: SourceFile): boolean { - for (var i = 0, n = file.statements.length; i < n; i++) { - var decl = file.statements[i]; + for (let decl of file.statements) { if (isDeclaration(decl) || decl.kind === SyntaxKind.VariableStatement) { if (checkGrammarTopLevelElementForRequiredDeclareModifier(decl)) { return true; @@ -12103,7 +12125,7 @@ module ts { } // Find containing block which is either Block, ModuleBlock, SourceFile - var links = getNodeLinks(node); + let links = getNodeLinks(node); if (!links.hasReportedStatementInAmbientContext && isFunctionLike(node.parent)) { return getNodeLinks(node).hasReportedStatementInAmbientContext = grammarErrorOnFirstToken(node, Diagnostics.An_implementation_cannot_be_declared_in_ambient_contexts) } @@ -12114,7 +12136,7 @@ module ts { // this has already been reported, and don't report if it has. // if (node.parent.kind === SyntaxKind.Block || node.parent.kind === SyntaxKind.ModuleBlock || node.parent.kind === SyntaxKind.SourceFile) { - var links = getNodeLinks(node.parent); + let links = getNodeLinks(node.parent); // Check if the containing block ever report this error if (!links.hasReportedStatementInAmbientContext) { return links.hasReportedStatementInAmbientContext = grammarErrorOnFirstToken(node, Diagnostics.Statements_are_not_allowed_in_ambient_contexts); @@ -12141,9 +12163,9 @@ module ts { } function grammarErrorAfterFirstToken(node: Node, message: DiagnosticMessage, arg0?: any, arg1?: any, arg2?: any): boolean { - var sourceFile = getSourceFileOfNode(node); + let sourceFile = getSourceFileOfNode(node); if (!hasParseDiagnostics(sourceFile)) { - var span = getSpanOfTokenAtPosition(sourceFile, node.pos); + let span = getSpanOfTokenAtPosition(sourceFile, node.pos); diagnostics.add(createFileDiagnostic(sourceFile, textSpanEnd(span), /*length*/ 0, message, arg0, arg1, arg2)); return true; } diff --git a/src/compiler/commandLineParser.ts b/src/compiler/commandLineParser.ts index e79d762524c..269f23492e2 100644 --- a/src/compiler/commandLineParser.ts +++ b/src/compiler/commandLineParser.ts @@ -146,6 +146,12 @@ module ts { description: Diagnostics.Preserve_new_lines_when_emitting_code, experimental: true }, + { + name: "cacheDownlevelForOfLength", + type: "boolean", + description: "Cache length access when downlevel emitting for-of statements", + experimental: true, + }, { name: "target", shortName: "t", diff --git a/src/compiler/core.ts b/src/compiler/core.ts index 463473497cb..27fc152f534 100644 --- a/src/compiler/core.ts +++ b/src/compiler/core.ts @@ -25,8 +25,8 @@ module ts { export function forEach(array: T[], callback: (element: T, index: number) => U): U { if (array) { - for (var i = 0, len = array.length; i < len; i++) { - var result = callback(array[i], i); + for (let i = 0, len = array.length; i < len; i++) { + let result = callback(array[i], i); if (result) { return result; } @@ -37,8 +37,8 @@ module ts { export function contains(array: T[], value: T): boolean { if (array) { - for (var i = 0, len = array.length; i < len; i++) { - if (array[i] === value) { + for (let v of array) { + if (v === value) { return true; } } @@ -48,7 +48,7 @@ module ts { export function indexOf(array: T[], value: T): number { if (array) { - for (var i = 0, len = array.length; i < len; i++) { + for (let i = 0, len = array.length; i < len; i++) { if (array[i] === value) { return i; } @@ -58,10 +58,10 @@ module ts { } export function countWhere(array: T[], predicate: (x: T) => boolean): number { - var count = 0; + let count = 0; if (array) { - for (var i = 0, len = array.length; i < len; i++) { - if (predicate(array[i])) { + for (let v of array) { + if (predicate(v)) { count++; } } @@ -69,11 +69,11 @@ module ts { return count; } - export function filter(array: T[], f: (x: T) => boolean): T[] { + export function filter(array: T[], f: (x: T) => boolean): T[]{ + let result: T[]; if (array) { - var result: T[] = []; - for (var i = 0, len = array.length; i < len; i++) { - var item = array[i]; + result = []; + for (let item of array) { if (f(item)) { result.push(item); } @@ -82,11 +82,12 @@ module ts { return result; } - export function map(array: T[], f: (x: T) => U): U[] { + export function map(array: T[], f: (x: T) => U): U[]{ + let result: U[]; if (array) { - var result: U[] = []; - for (var i = 0, len = array.length; i < len; i++) { - result.push(f(array[i])); + result = []; + for (let v of array) { + result.push(f(v)); } } return result; @@ -99,28 +100,30 @@ module ts { return array1.concat(array2); } - export function deduplicate(array: T[]): T[] { + export function deduplicate(array: T[]): T[]{ + let result: T[]; if (array) { - var result: T[] = []; - for (var i = 0, len = array.length; i < len; i++) { - var item = array[i]; - if (!contains(result, item)) result.push(item); + result = []; + for (let item of array) { + if (!contains(result, item)) { + result.push(item); + } } } return result; } export function sum(array: any[], prop: string): number { - var result = 0; - for (var i = 0; i < array.length; i++) { - result += array[i][prop]; + let result = 0; + for (let v of array) { + result += v[prop]; } return result; } export function addRange(to: T[], from: T[]): void { - for (var i = 0, n = from.length; i < n; i++) { - to.push(from[i]); + for (let v of from) { + to.push(v); } } @@ -136,12 +139,12 @@ module ts { } export function binarySearch(array: number[], value: number): number { - var low = 0; - var high = array.length - 1; + let low = 0; + let high = array.length - 1; while (low <= high) { - var middle = low + ((high - low) >> 1); - var midValue = array[middle]; + let middle = low + ((high - low) >> 1); + let midValue = array[middle]; if (midValue === value) { return middle; @@ -157,7 +160,7 @@ module ts { return ~low; } - var hasOwnProperty = Object.prototype.hasOwnProperty; + let hasOwnProperty = Object.prototype.hasOwnProperty; export function hasProperty(map: Map, key: string): boolean { return hasOwnProperty.call(map, key); @@ -168,7 +171,7 @@ module ts { } export function isEmpty(map: Map) { - for (var id in map) { + for (let id in map) { if (hasProperty(map, id)) { return false; } @@ -177,19 +180,19 @@ module ts { } export function clone(object: T): T { - var result: any = {}; - for (var id in object) { + let result: any = {}; + for (let id in object) { result[id] = (object)[id]; } return result; } export function extend(first: Map, second: Map): Map { - var result: Map = {}; - for (var id in first) { + let result: Map = {}; + for (let id in first) { result[id] = first[id]; } - for (var id in second) { + for (let id in second) { if (!hasProperty(result, id)) { result[id] = second[id]; } @@ -198,16 +201,16 @@ module ts { } export function forEachValue(map: Map, callback: (value: T) => U): U { - var result: U; - for (var id in map) { + let result: U; + for (let id in map) { if (result = callback(map[id])) break; } return result; } export function forEachKey(map: Map, callback: (key: string) => U): U { - var result: U; - for (var id in map) { + let result: U; + for (let id in map) { if (result = callback(id)) break; } return result; @@ -218,9 +221,9 @@ module ts { } export function mapToArray(map: Map): T[] { - var result: T[] = []; + let result: T[] = []; - for (var id in map) { + for (let id in map) { result.push(map[id]); } @@ -228,7 +231,7 @@ module ts { } export function copyMap(source: Map, target: Map): void { - for (var p in source) { + for (let p in source) { target[p] = source[p]; } } @@ -244,7 +247,7 @@ module ts { * index in the array will be the one associated with the produced key. */ export function arrayToMap(array: T[], makeKey: (value: T) => string): Map { - var result: Map = {}; + let result: Map = {}; forEach(array, value => { result[makeKey(value)] = value; @@ -259,7 +262,7 @@ module ts { return text.replace(/{(\d+)}/g, (match, index?) => args[+index + baseIndex]); } - export var localizedDiagnosticMessages: Map = undefined; + export let localizedDiagnosticMessages: Map = undefined; export function getLocaleSpecificMessage(message: string) { return localizedDiagnosticMessages && localizedDiagnosticMessages[message] @@ -269,14 +272,14 @@ module ts { export function createFileDiagnostic(file: SourceFile, start: number, length: number, message: DiagnosticMessage, ...args: any[]): Diagnostic; export function createFileDiagnostic(file: SourceFile, start: number, length: number, message: DiagnosticMessage): Diagnostic { - var end = start + length; + let end = start + length; Debug.assert(start >= 0, "start must be non-negative, is " + start); Debug.assert(length >= 0, "length must be non-negative, is " + length); Debug.assert(start <= file.text.length, `start must be within the bounds of the file. ${ start } > ${ file.text.length }`); Debug.assert(end <= file.text.length, `end must be the bounds of the file. ${ end } > ${ file.text.length }`); - var text = getLocaleSpecificMessage(message.key); + let text = getLocaleSpecificMessage(message.key); if (arguments.length > 4) { text = formatStringFromArgs(text, arguments, 4); @@ -295,7 +298,7 @@ module ts { export function createCompilerDiagnostic(message: DiagnosticMessage, ...args: any[]): Diagnostic; export function createCompilerDiagnostic(message: DiagnosticMessage): Diagnostic { - var text = getLocaleSpecificMessage(message.key); + let text = getLocaleSpecificMessage(message.key); if (arguments.length > 1) { text = formatStringFromArgs(text, arguments, 1); @@ -314,7 +317,7 @@ module ts { export function chainDiagnosticMessages(details: DiagnosticMessageChain, message: DiagnosticMessage, ...args: any[]): DiagnosticMessageChain; export function chainDiagnosticMessages(details: DiagnosticMessageChain, message: DiagnosticMessage): DiagnosticMessageChain { - var text = getLocaleSpecificMessage(message.key); + let text = getLocaleSpecificMessage(message.key); if (arguments.length > 2) { text = formatStringFromArgs(text, arguments, 2); @@ -358,10 +361,10 @@ module ts { function compareMessageText(text1: string | DiagnosticMessageChain, text2: string | DiagnosticMessageChain): Comparison { while (text1 && text2) { // We still have both chains. - var string1 = typeof text1 === "string" ? text1 : text1.messageText; - var string2 = typeof text2 === "string" ? text2 : text2.messageText; + let string1 = typeof text1 === "string" ? text1 : text1.messageText; + let string2 = typeof text2 === "string" ? text2 : text2.messageText; - var res = compareValues(string1, string2); + let res = compareValues(string1, string2); if (res) { return res; } @@ -388,11 +391,11 @@ module ts { return diagnostics; } - var newDiagnostics = [diagnostics[0]]; - var previousDiagnostic = diagnostics[0]; - for (var i = 1; i < diagnostics.length; i++) { - var currentDiagnostic = diagnostics[i]; - var isDupe = compareDiagnostics(currentDiagnostic, previousDiagnostic) === Comparison.EqualTo; + let newDiagnostics = [diagnostics[0]]; + let previousDiagnostic = diagnostics[0]; + for (let i = 1; i < diagnostics.length; i++) { + let currentDiagnostic = diagnostics[i]; + let isDupe = compareDiagnostics(currentDiagnostic, previousDiagnostic) === Comparison.EqualTo; if (!isDupe) { newDiagnostics.push(currentDiagnostic); previousDiagnostic = currentDiagnostic; @@ -410,9 +413,9 @@ module ts { export function getRootLength(path: string): number { if (path.charCodeAt(0) === CharacterCodes.slash) { if (path.charCodeAt(1) !== CharacterCodes.slash) return 1; - var p1 = path.indexOf("/", 2); + let p1 = path.indexOf("/", 2); if (p1 < 0) return 2; - var p2 = path.indexOf("/", p1 + 1); + let p2 = path.indexOf("/", p1 + 1); if (p2 < 0) return p1 + 1; return p2 + 1; } @@ -423,12 +426,11 @@ module ts { return 0; } - export var directorySeparator = "/"; + export let directorySeparator = "/"; function getNormalizedParts(normalizedSlashedPath: string, rootLength: number) { - var parts = normalizedSlashedPath.substr(rootLength).split(directorySeparator); - var normalized: string[] = []; - for (var i = 0; i < parts.length; i++) { - var part = parts[i]; + let parts = normalizedSlashedPath.substr(rootLength).split(directorySeparator); + let normalized: string[] = []; + for (let part of parts) { if (part !== ".") { if (part === ".." && normalized.length > 0 && normalized[normalized.length - 1] !== "..") { normalized.pop(); @@ -447,9 +449,9 @@ module ts { } export function normalizePath(path: string): string { - var path = normalizeSlashes(path); - var rootLength = getRootLength(path); - var normalized = getNormalizedParts(path, rootLength); + path = normalizeSlashes(path); + let rootLength = getRootLength(path); + let normalized = getNormalizedParts(path, rootLength); return path.substr(0, rootLength) + normalized.join(directorySeparator); } @@ -466,13 +468,13 @@ module ts { } function normalizedPathComponents(path: string, rootLength: number) { - var normalizedParts = getNormalizedParts(path, rootLength); + let normalizedParts = getNormalizedParts(path, rootLength); return [path.substr(0, rootLength)].concat(normalizedParts); } export function getNormalizedPathComponents(path: string, currentDirectory: string) { - var path = normalizeSlashes(path); - var rootLength = getRootLength(path); + path = normalizeSlashes(path); + let rootLength = getRootLength(path); if (rootLength == 0) { // If the path is not rooted it is relative to current directory path = combinePaths(normalizeSlashes(currentDirectory), path); @@ -497,9 +499,9 @@ module ts { // In this example the root is: http://www.website.com/ // normalized path components should be ["http://www.website.com/", "folder1", "folder2"] - var urlLength = url.length; + let urlLength = url.length; // Initial root length is http:// part - var rootLength = url.indexOf("://") + "://".length; + let rootLength = url.indexOf("://") + "://".length; while (rootLength < urlLength) { // Consume all immediate slashes in the protocol // eg.initial rootlength is just file:// but it needs to consume another "/" in file:/// @@ -518,7 +520,7 @@ module ts { } // Find the index of "/" after website.com so the root can be http://www.website.com/ (from existing http://) - var indexOfNextSlash = url.indexOf(directorySeparator, rootLength); + let indexOfNextSlash = url.indexOf(directorySeparator, rootLength); if (indexOfNextSlash !== -1) { // Found the "/" after the website.com so the root is length of http://www.website.com/ // and get components afetr the root normally like any other folder components @@ -544,8 +546,8 @@ module ts { } export function getRelativePathToDirectoryOrUrl(directoryPathOrUrl: string, relativeOrAbsolutePath: string, currentDirectory: string, getCanonicalFileName: (fileName: string) => string, isAbsolutePathAnUrl: boolean) { - var pathComponents = getNormalizedPathOrUrlComponents(relativeOrAbsolutePath, currentDirectory); - var directoryComponents = getNormalizedPathOrUrlComponents(directoryPathOrUrl, currentDirectory); + let pathComponents = getNormalizedPathOrUrlComponents(relativeOrAbsolutePath, currentDirectory); + let directoryComponents = getNormalizedPathOrUrlComponents(directoryPathOrUrl, currentDirectory); if (directoryComponents.length > 1 && directoryComponents[directoryComponents.length - 1] === "") { // If the directory path given was of type test/cases/ then we really need components of directory to be only till its name // that is ["test", "cases", ""] needs to be actually ["test", "cases"] @@ -561,8 +563,8 @@ module ts { // Get the relative path if (joinStartIndex) { - var relativePath = ""; - var relativePathComponents = pathComponents.slice(joinStartIndex, pathComponents.length); + let relativePath = ""; + let relativePathComponents = pathComponents.slice(joinStartIndex, pathComponents.length); for (; joinStartIndex < directoryComponents.length; joinStartIndex++) { if (directoryComponents[joinStartIndex] !== "") { relativePath = relativePath + ".." + directorySeparator; @@ -573,7 +575,7 @@ module ts { } // Cant find the relative path, get the absolute path - var absolutePath = getNormalizedPathFromPathComponents(pathComponents); + let absolutePath = getNormalizedPathFromPathComponents(pathComponents); if (isAbsolutePathAnUrl && isRootedDiskPath(absolutePath)) { absolutePath = "file:///" + absolutePath; } @@ -582,7 +584,7 @@ module ts { } export function getBaseFileName(path: string) { - var i = path.lastIndexOf(directorySeparator); + let i = path.lastIndexOf(directorySeparator); return i < 0 ? path : path.substring(i + 1); } @@ -595,16 +597,15 @@ module ts { } export function fileExtensionIs(path: string, extension: string): boolean { - var pathLen = path.length; - var extLen = extension.length; + let pathLen = path.length; + let extLen = extension.length; return pathLen > extLen && path.substr(pathLen - extLen, extLen) === extension; } - var supportedExtensions = [".d.ts", ".ts", ".js"]; + let supportedExtensions = [".d.ts", ".ts", ".js"]; export function removeFileExtension(path: string): string { - for (var i = 0; i < supportedExtensions.length; i++) { - var ext = supportedExtensions[i]; + for (let ext of supportedExtensions) { if (fileExtensionIs(path, ext)) { return path.substr(0, path.length - ext.length); @@ -614,9 +615,9 @@ module ts { return path; } - var backslashOrDoubleQuote = /[\"\\]/g; - var escapedCharsRegExp = /[\u0000-\u001f\t\v\f\b\r\n\u2028\u2029\u0085]/g; - var escapedCharsMap: Map = { + let backslashOrDoubleQuote = /[\"\\]/g; + let escapedCharsRegExp = /[\u0000-\u001f\t\v\f\b\r\n\u2028\u2029\u0085]/g; + let escapedCharsMap: Map = { "\0": "\\0", "\t": "\\t", "\v": "\\v", @@ -655,7 +656,7 @@ module ts { function Signature(checker: TypeChecker) { } - export var objectAllocator: ObjectAllocator = { + export let objectAllocator: ObjectAllocator = { getNodeConstructor: kind => { function Node() { } @@ -681,7 +682,7 @@ module ts { } export module Debug { - var currentAssertionLevel = AssertionLevel.None; + let currentAssertionLevel = AssertionLevel.None; export function shouldAssert(level: AssertionLevel): boolean { return currentAssertionLevel >= level; @@ -689,7 +690,7 @@ module ts { export function assert(expression: boolean, message?: string, verboseDebugInfo?: () => string): void { if (!expression) { - var verboseDebugString = ""; + let verboseDebugString = ""; if (verboseDebugInfo) { verboseDebugString = "\r\nVerbose Debug Information: " + verboseDebugInfo(); } diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index 3e7d64eedc9..54ec39a5b55 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -54,7 +54,7 @@ module ts { referencePathsOutput: string; } - var indentStrings: string[] = ["", " "]; + let indentStrings: string[] = ["", " "]; export function getIndentString(level: number) { if (indentStrings[level] === undefined) { indentStrings[level] = getIndentString(level - 1) + indentStrings[1]; @@ -81,11 +81,11 @@ module ts { } function createTextWriter(newLine: String): EmitTextWriter { - var output = ""; - var indent = 0; - var lineStart = true; - var lineCount = 0; - var linePos = 0; + let output = ""; + let indent = 0; + let lineStart = true; + let lineCount = 0; + let linePos = 0; function write(s: string) { if (s && s.length) { @@ -109,7 +109,7 @@ module ts { function writeLiteral(s: string) { if (s && s.length) { write(s); - var lineStartsOfS = computeLineStarts(s); + let lineStartsOfS = computeLineStarts(s); if (lineStartsOfS.length > 1) { lineCount = lineCount + lineStartsOfS.length - 1; linePos = output.length - s.length + lineStartsOfS[lineStartsOfS.length - 1]; @@ -160,7 +160,7 @@ module ts { function emitComments(currentSourceFile: SourceFile, writer: EmitTextWriter, comments: CommentRange[], trailingSeparator: boolean, newLine: string, writeComment: (currentSourceFile: SourceFile, writer: EmitTextWriter, comment: CommentRange, newLine: string) => void) { - var emitLeadingSpace = !trailingSeparator; + let emitLeadingSpace = !trailingSeparator; forEach(comments, comment => { if (emitLeadingSpace) { writer.write(" "); @@ -182,11 +182,11 @@ module ts { function writeCommentRange(currentSourceFile: SourceFile, writer: EmitTextWriter, comment: CommentRange, newLine: string){ if (currentSourceFile.text.charCodeAt(comment.pos + 1) === CharacterCodes.asterisk) { - var firstCommentLineAndCharacter = getLineAndCharacterOfPosition(currentSourceFile, comment.pos); - var lineCount = getLineStarts(currentSourceFile).length; - var firstCommentLineIndent: number; - for (var pos = comment.pos, currentLine = firstCommentLineAndCharacter.line; pos < comment.end; currentLine++) { - var nextLineStart = (currentLine + 1) === lineCount + let firstCommentLineAndCharacter = getLineAndCharacterOfPosition(currentSourceFile, comment.pos); + let lineCount = getLineStarts(currentSourceFile).length; + let firstCommentLineIndent: number; + for (let pos = comment.pos, currentLine = firstCommentLineAndCharacter.line; pos < comment.end; currentLine++) { + let nextLineStart = (currentLine + 1) === lineCount ? currentSourceFile.text.length + 1 : getStartPositionOfLine(currentLine + 1, currentSourceFile); @@ -197,7 +197,7 @@ module ts { } // These are number of spaces writer is going to write at current indent - var currentWriterIndentSpacing = writer.getIndent() * getIndentSize(); + let currentWriterIndentSpacing = writer.getIndent() * getIndentSize(); // Number of spaces we want to be writing // eg: Assume writer indent @@ -213,10 +213,10 @@ module ts { // More right indented comment */ --4 = 8 - 4 + 11 // class c { } // } - var spacesToEmit = currentWriterIndentSpacing - firstCommentLineIndent + calculateIndent(pos, nextLineStart); + let spacesToEmit = currentWriterIndentSpacing - firstCommentLineIndent + calculateIndent(pos, nextLineStart); if (spacesToEmit > 0) { - var numberOfSingleSpacesToEmit = spacesToEmit % getIndentSize(); - var indentSizeSpaceString = getIndentString((spacesToEmit - numberOfSingleSpacesToEmit) / getIndentSize()); + let numberOfSingleSpacesToEmit = spacesToEmit % getIndentSize(); + let indentSizeSpaceString = getIndentString((spacesToEmit - numberOfSingleSpacesToEmit) / getIndentSize()); // Write indent size string ( in eg 1: = "", 2: "" , 3: string with 8 spaces 4: string with 12 spaces writer.rawWrite(indentSizeSpaceString); @@ -245,8 +245,8 @@ module ts { } function writeTrimmedCurrentLine(pos: number, nextLineStart: number) { - var end = Math.min(comment.end, nextLineStart - 1); - var currentLineText = currentSourceFile.text.substring(pos, end).replace(/^\s+|\s+$/g, ''); + let end = Math.min(comment.end, nextLineStart - 1); + let currentLineText = currentSourceFile.text.substring(pos, end).replace(/^\s+|\s+$/g, ''); if (currentLineText) { // trimmed forward and ending spaces text writer.write(currentLineText); @@ -261,7 +261,7 @@ module ts { } function calculateIndent(pos: number, end: number) { - var currentLineIndent = 0; + let currentLineIndent = 0; for (; pos < end && isWhiteSpace(currentSourceFile.text.charCodeAt(pos)); pos++) { if (currentSourceFile.text.charCodeAt(pos) === CharacterCodes.tab) { // Tabs = TabSize = indent size and go to next tabStop @@ -286,9 +286,9 @@ module ts { } function getAllAccessorDeclarations(declarations: NodeArray, accessor: AccessorDeclaration) { - var firstAccessor: AccessorDeclaration; - var getAccessor: AccessorDeclaration; - var setAccessor: AccessorDeclaration; + let firstAccessor: AccessorDeclaration; + let getAccessor: AccessorDeclaration; + let setAccessor: AccessorDeclaration; if (hasDynamicName(accessor)) { firstAccessor = accessor; if (accessor.kind === SyntaxKind.GetAccessor) { @@ -305,8 +305,8 @@ module ts { forEach(declarations, (member: Declaration) => { if ((member.kind === SyntaxKind.GetAccessor || member.kind === SyntaxKind.SetAccessor) && (member.flags & NodeFlags.Static) === (accessor.flags & NodeFlags.Static)) { - var memberName = getPropertyNameForPropertyNameNode(member.name); - var accessorName = getPropertyNameForPropertyNameNode(accessor.name); + let memberName = getPropertyNameForPropertyNameNode(member.name); + let accessorName = getPropertyNameForPropertyNameNode(accessor.name); if (memberName === accessorName) { if (!firstAccessor) { firstAccessor = member; @@ -331,18 +331,19 @@ module ts { } function getSourceFilePathInNewDir(sourceFile: SourceFile, host: EmitHost, newDirPath: string) { - var sourceFilePath = getNormalizedAbsolutePath(sourceFile.fileName, host.getCurrentDirectory()); + let sourceFilePath = getNormalizedAbsolutePath(sourceFile.fileName, host.getCurrentDirectory()); sourceFilePath = sourceFilePath.replace(host.getCommonSourceDirectory(), ""); return combinePaths(newDirPath, sourceFilePath); } function getOwnEmitOutputFilePath(sourceFile: SourceFile, host: EmitHost, extension: string){ - var compilerOptions = host.getCompilerOptions(); + let compilerOptions = host.getCompilerOptions(); + let emitOutputFilePathWithoutExtension: string; if (compilerOptions.outDir) { - var emitOutputFilePathWithoutExtension = removeFileExtension(getSourceFilePathInNewDir(sourceFile, host, compilerOptions.outDir)); + emitOutputFilePathWithoutExtension = removeFileExtension(getSourceFilePathInNewDir(sourceFile, host, compilerOptions.outDir)); } else { - var emitOutputFilePathWithoutExtension = removeFileExtension(sourceFile.fileName); + emitOutputFilePathWithoutExtension = removeFileExtension(sourceFile.fileName); } return emitOutputFilePathWithoutExtension + extension; @@ -355,37 +356,37 @@ module ts { } function emitDeclarations(host: EmitHost, resolver: EmitResolver, diagnostics: Diagnostic[], jsFilePath: string, root?: SourceFile): DeclarationEmit { - var newLine = host.getNewLine(); - var compilerOptions = host.getCompilerOptions(); - var languageVersion = compilerOptions.target || ScriptTarget.ES3; + let newLine = host.getNewLine(); + let compilerOptions = host.getCompilerOptions(); + let languageVersion = compilerOptions.target || ScriptTarget.ES3; - var write: (s: string) => void; - var writeLine: () => void; - var increaseIndent: () => void; - var decreaseIndent: () => void; - var writeTextOfNode: (sourceFile: SourceFile, node: Node) => void; + let write: (s: string) => void; + let writeLine: () => void; + let increaseIndent: () => void; + let decreaseIndent: () => void; + let writeTextOfNode: (sourceFile: SourceFile, node: Node) => void; - var writer = createAndSetNewTextWriterWithSymbolWriter(); + let writer = createAndSetNewTextWriterWithSymbolWriter(); - var enclosingDeclaration: Node; - var currentSourceFile: SourceFile; - var reportedDeclarationError = false; - var emitJsDocComments = compilerOptions.removeComments ? function (declaration: Node) { } : writeJsDocComments; - var emit = compilerOptions.stripInternal ? stripInternal : emitNode; + let enclosingDeclaration: Node; + let currentSourceFile: SourceFile; + let reportedDeclarationError = false; + let emitJsDocComments = compilerOptions.removeComments ? function (declaration: Node) { } : writeJsDocComments; + let emit = compilerOptions.stripInternal ? stripInternal : emitNode; - var aliasDeclarationEmitInfo: AliasDeclarationEmitInfo[] = []; + let aliasDeclarationEmitInfo: AliasDeclarationEmitInfo[] = []; // Contains the reference paths that needs to go in the declaration file. // Collecting this separately because reference paths need to be first thing in the declaration file // and we could be collecting these paths from multiple files into single one with --out option - var referencePathsOutput = ""; + let referencePathsOutput = ""; if (root) { // Emitting just a single file, so emit references in this file only if (!compilerOptions.noResolve) { - var addedGlobalFileReference = false; + let addedGlobalFileReference = false; forEach(root.referencedFiles, fileReference => { - var referencedFile = tryResolveScriptReference(host, root, fileReference); + let referencedFile = tryResolveScriptReference(host, root, fileReference); // All the references that are not going to be part of same file if (referencedFile && ((referencedFile.flags & NodeFlags.DeclarationFile) || // This is a declare file reference @@ -404,13 +405,13 @@ module ts { } else { // Emit references corresponding to this file - var emittedReferencedFiles: SourceFile[] = []; + let emittedReferencedFiles: SourceFile[] = []; forEach(host.getSourceFiles(), sourceFile => { if (!isExternalModuleOrDeclarationFile(sourceFile)) { // Check what references need to be added if (!compilerOptions.noResolve) { forEach(sourceFile.referencedFiles, fileReference => { - var referencedFile = tryResolveScriptReference(host, sourceFile, fileReference); + let referencedFile = tryResolveScriptReference(host, sourceFile, fileReference); // If the reference file is a declaration file or an external module, emit that reference if (referencedFile && (isExternalModuleOrDeclarationFile(referencedFile) && @@ -435,14 +436,14 @@ module ts { } function hasInternalAnnotation(range: CommentRange) { - var text = currentSourceFile.text; - var comment = text.substring(range.pos, range.end); + let text = currentSourceFile.text; + let comment = text.substring(range.pos, range.end); return comment.indexOf("@internal") >= 0; } function stripInternal(node: Node) { if (node) { - var leadingCommentRanges = getLeadingCommentRanges(currentSourceFile.text, node.pos); + let leadingCommentRanges = getLeadingCommentRanges(currentSourceFile.text, node.pos); if (forEach(leadingCommentRanges, hasInternalAnnotation)) { return; } @@ -452,7 +453,7 @@ module ts { } function createAndSetNewTextWriterWithSymbolWriter(): EmitTextWriterWithSymbolWriter { - var writer = createTextWriter(newLine); + let writer = createTextWriter(newLine); writer.trackSymbol = trackSymbol; writer.writeKeyword = writer.write; writer.writeOperator = writer.write; @@ -475,9 +476,9 @@ module ts { } function writeAsychronousImportEqualsDeclarations(importEqualsDeclarations: ImportEqualsDeclaration[]) { - var oldWriter = writer; + let oldWriter = writer; forEach(importEqualsDeclarations, aliasToWrite => { - var aliasEmitInfo = forEach(aliasDeclarationEmitInfo, declEmitInfo => declEmitInfo.declaration === aliasToWrite ? declEmitInfo : undefined); + let aliasEmitInfo = forEach(aliasDeclarationEmitInfo, declEmitInfo => declEmitInfo.declaration === aliasToWrite ? declEmitInfo : undefined); // If the alias was marked as not visible when we saw its declaration, we would have saved the aliasEmitInfo, but if we haven't yet visited the alias declaration // then we don't need to write it at this point. We will write it when we actually see its declaration // Eg. @@ -487,7 +488,7 @@ module ts { // we would write alias foo declaration when we visit it since it would now be marked as visible if (aliasEmitInfo) { createAndSetNewTextWriterWithSymbolWriter(); - for (var declarationIndent = aliasEmitInfo.indent; declarationIndent; declarationIndent--) { + for (let declarationIndent = aliasEmitInfo.indent; declarationIndent; declarationIndent--) { increaseIndent(); } writeImportEqualsDeclaration(aliasToWrite); @@ -507,7 +508,7 @@ module ts { else { // Report error reportedDeclarationError = true; - var errorInfo = writer.getSymbolAccessibilityDiagnostic(symbolAccesibilityResult); + let errorInfo = writer.getSymbolAccessibilityDiagnostic(symbolAccesibilityResult); if (errorInfo) { if (errorInfo.typeName) { diagnostics.push(createDiagnosticForNode(symbolAccesibilityResult.errorNode || errorInfo.errorNode, @@ -555,19 +556,19 @@ module ts { } function emitLines(nodes: Node[]) { - for (var i = 0, n = nodes.length; i < n; i++) { - emit(nodes[i]); + for (let node of nodes) { + emit(node); } } function emitSeparatedList(nodes: Node[], separator: string, eachNodeEmitFn: (node: Node) => void) { - var currentWriterPos = writer.getTextPos(); - for (var i = 0, n = nodes.length; i < n; i++) { + let currentWriterPos = writer.getTextPos(); + for (let node of nodes) { if (currentWriterPos !== writer.getTextPos()) { write(separator); } currentWriterPos = writer.getTextPos(); - eachNodeEmitFn(nodes[i]); + eachNodeEmitFn(node); } } @@ -577,7 +578,7 @@ module ts { function writeJsDocComments(declaration: Node) { if (declaration) { - var jsDocComments = getJsDocComments(declaration, currentSourceFile); + let jsDocComments = getJsDocComments(declaration, currentSourceFile); emitNewLineBeforeLeadingComments(currentSourceFile, writer, declaration, jsDocComments); // jsDoc comments are emitted at /*leading comment1 */space/*leading comment*/space emitComments(currentSourceFile, writer, jsDocComments, /*trailingSeparator*/ true, newLine, writeCommentRange); @@ -625,7 +626,7 @@ module ts { } function emitEntityName(entityName: EntityName) { - var visibilityResult = resolver.isEntityNameVisible(entityName, + let visibilityResult = resolver.isEntityNameVisible(entityName, // Aliases can be written asynchronously so use correct enclosing declaration entityName.parent.kind === SyntaxKind.ImportEqualsDeclaration ? entityName.parent : enclosingDeclaration); @@ -637,7 +638,7 @@ module ts { writeTextOfNode(currentSourceFile, entityName); } else { - var qualifiedName = entityName; + let qualifiedName = entityName; writeEntityName(qualifiedName.left); write("."); writeTextOfNode(currentSourceFile, qualifiedName.right); @@ -734,7 +735,7 @@ module ts { } function emitImportEqualsDeclaration(node: ImportEqualsDeclaration) { - var nodeEmitInfo = { + let nodeEmitInfo = { declaration: node, outputPos: writer.getTextPos(), indent: writer.getIndent(), @@ -787,7 +788,7 @@ module ts { write("."); writeTextOfNode(currentSourceFile, node.name); } - var prevEnclosingDeclaration = enclosingDeclaration; + let prevEnclosingDeclaration = enclosingDeclaration; enclosingDeclaration = node; write(" {"); writeLine(); @@ -842,7 +843,7 @@ module ts { function emitEnumMemberDeclaration(node: EnumMember) { emitJsDocComments(node); writeTextOfNode(currentSourceFile, node.name); - var enumMemberValue = resolver.getConstantValue(node); + let enumMemberValue = resolver.getConstantValue(node); if (enumMemberValue !== undefined) { write(" = "); write(enumMemberValue.toString()); @@ -882,7 +883,7 @@ module ts { function getTypeParameterConstraintVisibilityError(symbolAccesibilityResult: SymbolAccessiblityResult): SymbolAccessibilityDiagnostic { // Type parameter constraints are named by user so we should always be able to name it - var diagnosticMessage: DiagnosticMessage; + let diagnosticMessage: DiagnosticMessage; switch (node.parent.kind) { case SyntaxKind.ClassDeclaration: diagnosticMessage = Diagnostics.Type_parameter_0_of_exported_class_has_or_is_using_private_name_1; @@ -946,7 +947,7 @@ module ts { emitTypeWithNewGetSymbolAccessibilityDiagnostic(node, getHeritageClauseVisibilityError); function getHeritageClauseVisibilityError(symbolAccesibilityResult: SymbolAccessiblityResult): SymbolAccessibilityDiagnostic { - var diagnosticMessage: DiagnosticMessage; + let diagnosticMessage: DiagnosticMessage; // Heritage clause is written by user so it can always be named if (node.parent.parent.kind === SyntaxKind.ClassDeclaration) { // Class or Interface implemented/extended is inaccessible @@ -984,10 +985,10 @@ module ts { emitModuleElementDeclarationFlags(node); write("class "); writeTextOfNode(currentSourceFile, node.name); - var prevEnclosingDeclaration = enclosingDeclaration; + let prevEnclosingDeclaration = enclosingDeclaration; enclosingDeclaration = node; emitTypeParameters(node.typeParameters); - var baseTypeNode = getClassBaseTypeNode(node); + let baseTypeNode = getClassBaseTypeNode(node); if (baseTypeNode) { emitHeritageClause([baseTypeNode], /*isImplementsList*/ false); } @@ -1010,7 +1011,7 @@ module ts { emitModuleElementDeclarationFlags(node); write("interface "); writeTextOfNode(currentSourceFile, node.name); - var prevEnclosingDeclaration = enclosingDeclaration; + let prevEnclosingDeclaration = enclosingDeclaration; enclosingDeclaration = node; emitTypeParameters(node.typeParameters); emitHeritageClause(getInterfaceBaseTypeNodes(node), /*isImplementsList*/ false); @@ -1058,7 +1059,7 @@ module ts { } function getVariableDeclarationTypeVisibilityError(symbolAccesibilityResult: SymbolAccessiblityResult): SymbolAccessibilityDiagnostic { - var diagnosticMessage: DiagnosticMessage; + let diagnosticMessage: DiagnosticMessage; if (node.kind === SyntaxKind.VariableDeclaration) { diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === SymbolAccessibility.CannotBeNamed ? @@ -1110,7 +1111,7 @@ module ts { } function emitVariableStatement(node: VariableStatement) { - var hasDeclarationWithEmit = forEach(node.declarationList.declarations, varDeclaration => resolver.isDeclarationVisible(varDeclaration)); + let hasDeclarationWithEmit = forEach(node.declarationList.declarations, varDeclaration => resolver.isDeclarationVisible(varDeclaration)); if (hasDeclarationWithEmit) { emitJsDocComments(node); emitModuleElementDeclarationFlags(node); @@ -1134,18 +1135,20 @@ module ts { return; } - var accessors = getAllAccessorDeclarations((node.parent).members, node); + let accessors = getAllAccessorDeclarations((node.parent).members, node); + let accessorWithTypeAnnotation: AccessorDeclaration; + if (node === accessors.firstAccessor) { emitJsDocComments(accessors.getAccessor); emitJsDocComments(accessors.setAccessor); emitClassMemberDeclarationFlags(node); writeTextOfNode(currentSourceFile, node.name); if (!(node.flags & NodeFlags.Private)) { - var accessorWithTypeAnnotation: AccessorDeclaration = node; - var type = getTypeAnnotationFromAccessor(node); + accessorWithTypeAnnotation = node; + let type = getTypeAnnotationFromAccessor(node); if (!type) { // couldn't get type for the first accessor, try the another one - var anotherAccessor = node.kind === SyntaxKind.GetAccessor ? accessors.setAccessor : accessors.getAccessor; + let anotherAccessor = node.kind === SyntaxKind.GetAccessor ? accessors.setAccessor : accessors.getAccessor; type = getTypeAnnotationFromAccessor(anotherAccessor); if (type) { accessorWithTypeAnnotation = anotherAccessor; @@ -1168,7 +1171,7 @@ module ts { } function getAccessorDeclarationTypeVisibilityError(symbolAccesibilityResult: SymbolAccessiblityResult): SymbolAccessibilityDiagnostic { - var diagnosticMessage: DiagnosticMessage; + let diagnosticMessage: DiagnosticMessage; if (accessorWithTypeAnnotation.kind === SyntaxKind.SetAccessor) { // Setters have to have type named and cannot infer it so, the type should always be named if (accessorWithTypeAnnotation.parent.flags & NodeFlags.Static) { @@ -1263,7 +1266,7 @@ module ts { write("("); } - var prevEnclosingDeclaration = enclosingDeclaration; + let prevEnclosingDeclaration = enclosingDeclaration; enclosingDeclaration = node; // Parameters @@ -1277,7 +1280,7 @@ module ts { } // If this is not a constructor and is not private, emit the return type - var isFunctionTypeOrConstructorType = node.kind === SyntaxKind.FunctionType || node.kind === SyntaxKind.ConstructorType; + let isFunctionTypeOrConstructorType = node.kind === SyntaxKind.FunctionType || node.kind === SyntaxKind.ConstructorType; if (isFunctionTypeOrConstructorType || node.parent.kind === SyntaxKind.TypeLiteral) { // Emit type literal signature return type only if specified if (node.type) { @@ -1297,7 +1300,7 @@ module ts { } function getReturnTypeVisibilityError(symbolAccesibilityResult: SymbolAccessiblityResult): SymbolAccessibilityDiagnostic { - var diagnosticMessage: DiagnosticMessage; + let diagnosticMessage: DiagnosticMessage; switch (node.kind) { case SyntaxKind.ConstructSignature: // Interfaces cannot have return types that cannot be named @@ -1390,7 +1393,7 @@ module ts { } function getParameterDeclarationTypeVisibilityError(symbolAccesibilityResult: SymbolAccessiblityResult): SymbolAccessibilityDiagnostic { - var diagnosticMessage: DiagnosticMessage; + let diagnosticMessage: DiagnosticMessage; switch (node.parent.kind) { case SyntaxKind.Constructor: diagnosticMessage = symbolAccesibilityResult.errorModuleName ? @@ -1499,7 +1502,7 @@ module ts { } function writeReferencePath(referencedFile: SourceFile) { - var declFileName = referencedFile.flags & NodeFlags.DeclarationFile + let declFileName = referencedFile.flags & NodeFlags.DeclarationFile ? referencedFile.fileName // Declaration file, use declaration file name : shouldEmitToOwnFile(referencedFile, compilerOptions) ? getOwnEmitOutputFilePath(referencedFile, host, ".d.ts") // Own output file so get the .d.ts file @@ -1517,8 +1520,8 @@ module ts { } export function getDeclarationDiagnostics(host: EmitHost, resolver: EmitResolver, targetSourceFile: SourceFile): Diagnostic[] { - var diagnostics: Diagnostic[] = []; - var jsFilePath = getOwnEmitOutputFilePath(targetSourceFile, host, ".js"); + let diagnostics: Diagnostic[] = []; + let jsFilePath = getOwnEmitOutputFilePath(targetSourceFile, host, ".js"); emitDeclarations(host, resolver, diagnostics, jsFilePath, targetSourceFile); return diagnostics; } @@ -1526,16 +1529,16 @@ module ts { // @internal // targetSourceFile is when users only want one file in entire project to be emitted. This is used in compileOnSave feature export function emitFiles(resolver: EmitResolver, host: EmitHost, targetSourceFile: SourceFile): EmitResult { - var compilerOptions = host.getCompilerOptions(); - var languageVersion = compilerOptions.target || ScriptTarget.ES3; - var sourceMapDataList: SourceMapData[] = compilerOptions.sourceMap ? [] : undefined; - var diagnostics: Diagnostic[] = []; - var newLine = host.getNewLine(); + let compilerOptions = host.getCompilerOptions(); + let languageVersion = compilerOptions.target || ScriptTarget.ES3; + let sourceMapDataList: SourceMapData[] = compilerOptions.sourceMap ? [] : undefined; + let diagnostics: Diagnostic[] = []; + let newLine = host.getNewLine(); if (targetSourceFile === undefined) { forEach(host.getSourceFiles(), sourceFile => { if (shouldEmitToOwnFile(sourceFile, compilerOptions)) { - var jsFilePath = getOwnEmitOutputFilePath(sourceFile, host, ".js"); + let jsFilePath = getOwnEmitOutputFilePath(sourceFile, host, ".js"); emitFile(jsFilePath, sourceFile); } }); @@ -1547,7 +1550,7 @@ module ts { else { // targetSourceFile is specified (e.g calling emitter from language service or calling getSemanticDiagnostic from language service) if (shouldEmitToOwnFile(targetSourceFile, compilerOptions)) { - var jsFilePath = getOwnEmitOutputFilePath(targetSourceFile, host, ".js"); + let jsFilePath = getOwnEmitOutputFilePath(targetSourceFile, host, ".js"); emitFile(jsFilePath, targetSourceFile); } else if (!isDeclarationFile(targetSourceFile) && compilerOptions.out) { @@ -1565,57 +1568,57 @@ module ts { }; function emitJavaScript(jsFilePath: string, root?: SourceFile) { - var writer = createTextWriter(newLine); - var write = writer.write; - var writeTextOfNode = writer.writeTextOfNode; - var writeLine = writer.writeLine; - var increaseIndent = writer.increaseIndent; - var decreaseIndent = writer.decreaseIndent; - var preserveNewLines = compilerOptions.preserveNewLines || false; + let writer = createTextWriter(newLine); + let write = writer.write; + let writeTextOfNode = writer.writeTextOfNode; + let writeLine = writer.writeLine; + let increaseIndent = writer.increaseIndent; + let decreaseIndent = writer.decreaseIndent; + let preserveNewLines = compilerOptions.preserveNewLines || false; - var currentSourceFile: SourceFile; + let currentSourceFile: SourceFile; - var lastFrame: ScopeFrame; - var currentScopeNames: Map; + let lastFrame: ScopeFrame; + let currentScopeNames: Map; - var generatedBlockScopeNames: string[]; + let generatedBlockScopeNames: string[]; - var extendsEmitted = false; - var tempCount = 0; - var tempVariables: Identifier[]; - var tempParameters: Identifier[]; - var externalImports: ExternalImportInfo[]; - var exportSpecifiers: Map; - var exportDefault: FunctionDeclaration | ClassDeclaration | ExportAssignment | ExportSpecifier; + let extendsEmitted = false; + let tempCount = 0; + let tempVariables: Identifier[]; + let tempParameters: Identifier[]; + let externalImports: ExternalImportInfo[]; + let exportSpecifiers: Map; + let exportDefault: FunctionDeclaration | ClassDeclaration | ExportAssignment | ExportSpecifier; /** write emitted output to disk*/ - var writeEmittedFiles = writeJavaScriptFile; + let writeEmittedFiles = writeJavaScriptFile; /** Emit leading comments of the node */ - var emitLeadingComments = compilerOptions.removeComments ? (node: Node) => { } : emitLeadingDeclarationComments; + let emitLeadingComments = compilerOptions.removeComments ? (node: Node) => { } : emitLeadingDeclarationComments; /** Emit Trailing comments of the node */ - var emitTrailingComments = compilerOptions.removeComments ? (node: Node) => { } : emitTrailingDeclarationComments; + let emitTrailingComments = compilerOptions.removeComments ? (node: Node) => { } : emitTrailingDeclarationComments; - var emitLeadingCommentsOfPosition = compilerOptions.removeComments ? (pos: number) => { } : emitLeadingCommentsOfLocalPosition; + let emitLeadingCommentsOfPosition = compilerOptions.removeComments ? (pos: number) => { } : emitLeadingCommentsOfLocalPosition; - var detachedCommentsInfo: { nodePos: number; detachedCommentEndPos: number }[]; + let detachedCommentsInfo: { nodePos: number; detachedCommentEndPos: number }[]; /** Emit detached comments of the node */ - var emitDetachedComments = compilerOptions.removeComments ? (node: TextRange) => { } : emitDetachedCommentsAtPosition; + let emitDetachedComments = compilerOptions.removeComments ? (node: TextRange) => { } : emitDetachedCommentsAtPosition; - var writeComment = writeCommentRange; + let writeComment = writeCommentRange; /** Emit a node */ - var emitNodeWithoutSourceMap = compilerOptions.removeComments ? emitNodeWithoutSourceMapWithoutComments : emitNodeWithoutSourceMapWithComments; - var emit = emitNodeWithoutSourceMap; - var emitWithoutComments = emitNodeWithoutSourceMapWithoutComments; + let emitNodeWithoutSourceMap = compilerOptions.removeComments ? emitNodeWithoutSourceMapWithoutComments : emitNodeWithoutSourceMapWithComments; + let emit = emitNodeWithoutSourceMap; + let emitWithoutComments = emitNodeWithoutSourceMapWithoutComments; /** Called just before starting emit of a node */ - var emitStart = function (node: Node) { }; + let emitStart = function (node: Node) { }; /** Called once the emit of the node is done */ - var emitEnd = function (node: Node) { }; + let emitEnd = function (node: Node) { }; /** Emit the text for the given token that comes after startPos * This by default writes the text provided with the given tokenKind @@ -1623,18 +1626,18 @@ module ts { * @param tokenKind the kind of the token to search and emit * @param startPos the position in the source to start searching for the token * @param emitFn if given will be invoked to emit the text instead of actual token emit */ - var emitToken = emitTokenText; + let emitToken = emitTokenText; /** Called to before starting the lexical scopes as in function/class in the emitted code because of node * @param scopeDeclaration node that starts the lexical scope * @param scopeName Optional name of this scope instead of deducing one from the declaration node */ - var scopeEmitStart = function (scopeDeclaration: Node, scopeName?: string) { } + let scopeEmitStart = function (scopeDeclaration: Node, scopeName?: string) { } /** Called after coming out of the scope */ - var scopeEmitEnd = function () { } + let scopeEmitEnd = function () { } /** Sourcemap data that will get encoded */ - var sourceMapData: SourceMapData; + let sourceMapData: SourceMapData; if (compilerOptions.sourceMap) { initializeEmitterWithSourceMaps(); @@ -1664,7 +1667,7 @@ module ts { // enters the new lexical environment // return value should be passed to matching call to exitNameScope. function enterNameScope(): boolean { - var names = currentScopeNames; + let names = currentScopeNames; currentScopeNames = undefined; if (names) { lastFrame = { names, previous: lastFrame }; @@ -1684,7 +1687,7 @@ module ts { } function generateUniqueNameForLocation(location: Node, baseName: string): string { - var name: string + let name: string // first try to check if base name can be used as is if (!isExistingName(location, baseName)) { name = baseName; @@ -1716,7 +1719,7 @@ module ts { } // check generated names in outer scopes - // var x; + // let x; // function foo() { // let x; // 1 // function bar() { @@ -1728,7 +1731,7 @@ module ts { //} // here both x(1) and x(2) should be renamed and their names should be different // so x in (3) will refer to x(1) - var frame = lastFrame; + let frame = lastFrame; while (frame) { if (hasProperty(frame.names, name)) { return true; @@ -1739,28 +1742,28 @@ module ts { } function initializeEmitterWithSourceMaps() { - var sourceMapDir: string; // The directory in which sourcemap will be + let sourceMapDir: string; // The directory in which sourcemap will be // Current source map file and its index in the sources list - var sourceMapSourceIndex = -1; + let sourceMapSourceIndex = -1; // Names and its index map - var sourceMapNameIndexMap: Map = {}; - var sourceMapNameIndices: number[] = []; + let sourceMapNameIndexMap: Map = {}; + let sourceMapNameIndices: number[] = []; function getSourceMapNameIndex() { return sourceMapNameIndices.length ? sourceMapNameIndices[sourceMapNameIndices.length - 1] : -1; } // Last recorded and encoded spans - var lastRecordedSourceMapSpan: SourceMapSpan; - var lastEncodedSourceMapSpan: SourceMapSpan = { + let lastRecordedSourceMapSpan: SourceMapSpan; + let lastEncodedSourceMapSpan: SourceMapSpan = { emittedLine: 1, emittedColumn: 1, sourceLine: 1, sourceColumn: 1, sourceIndex: 0 }; - var lastEncodedNameIndex = 0; + let lastEncodedNameIndex = 0; // Encoding for sourcemap span function encodeLastRecordedSourceMapSpan() { @@ -1768,7 +1771,7 @@ module ts { return; } - var prevEncodedEmittedColumn = lastEncodedSourceMapSpan.emittedColumn; + let prevEncodedEmittedColumn = lastEncodedSourceMapSpan.emittedColumn; // Line/Comma delimiters if (lastEncodedSourceMapSpan.emittedLine == lastRecordedSourceMapSpan.emittedLine) { // Emit comma to separate the entry @@ -1778,7 +1781,7 @@ module ts { } else { // Emit line delimiters - for (var encodedLine = lastEncodedSourceMapSpan.emittedLine; encodedLine < lastRecordedSourceMapSpan.emittedLine; encodedLine++) { + for (let encodedLine = lastEncodedSourceMapSpan.emittedLine; encodedLine < lastRecordedSourceMapSpan.emittedLine; encodedLine++) { sourceMapData.sourceMapMappings += ";"; } prevEncodedEmittedColumn = 1; @@ -1826,9 +1829,9 @@ module ts { } // Encode 5 bits at a time starting from least significant bits - var encodedStr = ""; + let encodedStr = ""; do { - var currentDigit = inValue & 31; // 11111 + let currentDigit = inValue & 31; // 11111 inValue = inValue >> 5; if (inValue > 0) { // There are still more digits to decode, set the msb (6th bit) @@ -1842,14 +1845,14 @@ module ts { } function recordSourceMapSpan(pos: number) { - var sourceLinePos = getLineAndCharacterOfPosition(currentSourceFile, pos); + let sourceLinePos = getLineAndCharacterOfPosition(currentSourceFile, pos); // Convert the location to be one-based. sourceLinePos.line++; sourceLinePos.character++; - var emittedLine = writer.getLine(); - var emittedColumn = writer.getColumn(); + let emittedLine = writer.getLine(); + let emittedColumn = writer.getColumn(); // If this location wasn't recorded or the location in source is going backwards, record the span if (!lastRecordedSourceMapSpan || @@ -1889,9 +1892,9 @@ module ts { } function writeTextWithSpanRecord(tokenKind: SyntaxKind, startPos: number, emitFn?: () => void) { - var tokenStartPos = ts.skipTrivia(currentSourceFile.text, startPos); + let tokenStartPos = ts.skipTrivia(currentSourceFile.text, startPos); recordSourceMapSpan(tokenStartPos); - var tokenEndPos = emitTokenText(tokenKind, tokenStartPos, emitFn); + let tokenEndPos = emitTokenText(tokenKind, tokenStartPos, emitFn); recordSourceMapSpan(tokenEndPos); return tokenEndPos; } @@ -1900,7 +1903,7 @@ module ts { // Add the file to tsFilePaths // If sourceroot option: Use the relative path corresponding to the common directory path // otherwise source locations relative to map file location - var sourcesDirectoryPath = compilerOptions.sourceRoot ? host.getCommonSourceDirectory() : sourceMapDir; + let sourcesDirectoryPath = compilerOptions.sourceRoot ? host.getCommonSourceDirectory() : sourceMapDir; sourceMapData.sourceMapSources.push(getRelativePathToDirectoryOrUrl(sourcesDirectoryPath, node.fileName, @@ -1919,14 +1922,14 @@ module ts { } function recordScopeNameStart(scopeName: string) { - var scopeNameIndex = -1; + let scopeNameIndex = -1; if (scopeName) { - var parentIndex = getSourceMapNameIndex(); + let parentIndex = getSourceMapNameIndex(); if (parentIndex !== -1) { // Child scopes are always shown with a dot (even if they have no name), // unless it is a computed property. Then it is shown with brackets, // but the brackets are included in the name. - var name = (node).name; + let name = (node).name; if (!name || name.kind !== SyntaxKind.ComputedPropertyName) { scopeName = "." + scopeName; } @@ -1958,7 +1961,7 @@ module ts { node.kind === SyntaxKind.EnumDeclaration) { // Declaration and has associated name use it if ((node).name) { - var name = (node).name; + let name = (node).name; // For computed property names, the text will include the brackets scopeName = name.kind === SyntaxKind.ComputedPropertyName ? getTextOfNode(name) @@ -1997,8 +2000,8 @@ module ts { return "{\"version\":" + version + ",\"file\":\"" + escapeString(file) + "\",\"sourceRoot\":\"" + escapeString(sourceRoot) + "\",\"sources\":[" + serializeStringArray(sources) + "],\"names\":[" + serializeStringArray(names) + "],\"mappings\":\"" + escapeString(mappings) + "\"}"; function serializeStringArray(list: string[]): string { - var output = ""; - for (var i = 0, n = list.length; i < n; i++) { + let output = ""; + for (let i = 0, n = list.length; i < n; i++) { if (i) { output += ","; } @@ -2025,7 +2028,7 @@ module ts { } // Initialize source map data - var sourceMapJsFile = getBaseFileName(normalizeSlashes(jsFilePath)); + let sourceMapJsFile = getBaseFileName(normalizeSlashes(jsFilePath)); sourceMapData = { sourceMapFilePath: jsFilePath + ".map", jsSourceMappingURL: sourceMapJsFile + ".map", @@ -2113,23 +2116,29 @@ module ts { // Create a temporary variable with a unique unused name. The forLoopVariable parameter signals that the // name should be one that is appropriate for a for loop variable. - function createTempVariable(location: Node, forLoopVariable?: boolean): Identifier { - var name = forLoopVariable ? "_i" : undefined; - while (true) { - if (name && !isExistingName(location, name)) { - break; - } + function createTempVariable(location: Node, preferredName?: string): Identifier { + for (var name = preferredName; !name || isExistingName(location, name); tempCount++) { // _a .. _h, _j ... _z, _0, _1, ... - // Note that _i is skipped - name = "_" + (tempCount < 25 ? String.fromCharCode(tempCount + (tempCount < 8 ? 0 : 1) + CharacterCodes.a) : tempCount - 25); - tempCount++; + + // Note: we avoid generating _i and _n as those are common names we want in other places. + var char = CharacterCodes.a + tempCount; + if (char === CharacterCodes.i || char === CharacterCodes.n) { + continue; + } + + if (tempCount < 26) { + name = "_" + String.fromCharCode(char); + } + else { + name = "_" + (tempCount - 26); + } } // This is necessary so that a name generated via renameNonTopLevelLetAndConst will see the name // we just generated. recordNameInCurrentScope(name); - var result = createSynthesizedNode(SyntaxKind.Identifier); + let result = createSynthesizedNode(SyntaxKind.Identifier); result.text = name; return result; } @@ -2141,8 +2150,8 @@ module ts { tempVariables.push(name); } - function createAndRecordTempVariable(location: Node): Identifier { - var temp = createTempVariable(location, /*forLoopVariable*/ false); + function createAndRecordTempVariable(location: Node, preferredName?: string): Identifier { + let temp = createTempVariable(location, preferredName); recordTempDeclaration(temp); return temp; @@ -2163,7 +2172,7 @@ module ts { } function emitTokenText(tokenKind: SyntaxKind, startPos: number, emitFn?: () => void) { - var tokenString = tokenToString(tokenKind); + let tokenString = tokenToString(tokenKind); if (emitFn) { emitFn(); } @@ -2210,7 +2219,7 @@ module ts { writeLine(); } - for (var i = 0, n = nodes.length; i < n; i++) { + for (let i = 0, n = nodes.length; i < n; i++) { if (i) { if (preserveNewLines && nodeEndIsOnSameLineAsNodeStart(nodes[i - 1], nodes[i])) { write(", "); @@ -2241,7 +2250,7 @@ module ts { } function emitList(nodes: Node[], start: number, count: number, multiLine: boolean, trailingComma: boolean) { - for (var i = 0; i < count; i++) { + for (let i = 0; i < count; i++) { if (multiLine) { if (i) { write(","); @@ -2274,7 +2283,7 @@ module ts { } function emitLinesStartingAt(nodes: Node[], startIndex: number): void { - for (var i = startIndex; i < nodes.length; i++) { + for (let i = startIndex; i < nodes.length; i++) { writeLine(); emit(nodes[i]); } @@ -2295,7 +2304,7 @@ module ts { } function emitLiteral(node: LiteralExpression) { - var text = getLiteralText(node); + let text = getLiteralText(node); if (compilerOptions.sourceMap && (node.kind === SyntaxKind.StringLiteral || isTemplateLiteralKind(node.kind))) { writer.writeLiteral(text); @@ -2350,13 +2359,13 @@ module ts { // Find original source text, since we need to emit the raw strings of the tagged template. // The raw strings contain the (escaped) strings of what the user wrote. // Examples: `\n` is converted to "\\n", a template string with a newline to "\n". - var text = getSourceTextOfNodeFromSourceFile(currentSourceFile, node); + let text = getSourceTextOfNodeFromSourceFile(currentSourceFile, node); // text contains the original source, it will also contain quotes ("`"), dolar signs and braces ("${" and "}"), // thus we need to remove those characters. // First template piece starts with "`", others with "}" // Last template piece ends with "`", others with "${" - var isLast = node.kind === SyntaxKind.NoSubstitutionTemplateLiteral || node.kind === SyntaxKind.TemplateTail; + let isLast = node.kind === SyntaxKind.NoSubstitutionTemplateLiteral || node.kind === SyntaxKind.TemplateTail; text = text.substring(1, text.length - (isLast ? 1 : 2)); // Newline normalization: @@ -2384,7 +2393,7 @@ module ts { } function emitDownlevelTaggedTemplate(node: TaggedTemplateExpression) { - var tempVariable = createAndRecordTempVariable(node); + let tempVariable = createAndRecordTempVariable(node); write("("); emit(tempVariable); write(" = "); @@ -2404,7 +2413,7 @@ module ts { if (node.template.kind === SyntaxKind.TemplateExpression) { forEach((node.template).templateSpans, templateSpan => { write(", "); - var needsParens = templateSpan.expression.kind === SyntaxKind.BinaryExpression + let needsParens = templateSpan.expression.kind === SyntaxKind.BinaryExpression && (templateSpan.expression).operatorToken.kind === SyntaxKind.CommaToken; emitParenthesizedIf(templateSpan.expression, needsParens); }); @@ -2420,21 +2429,21 @@ module ts { return; } - var emitOuterParens = isExpression(node.parent) + let emitOuterParens = isExpression(node.parent) && templateNeedsParens(node, node.parent); if (emitOuterParens) { write("("); } - var headEmitted = false; + let headEmitted = false; if (shouldEmitTemplateHead()) { emitLiteral(node.head); headEmitted = true; } - for (var i = 0; i < node.templateSpans.length; i++) { - var templateSpan = node.templateSpans[i]; + for (let i = 0, n = node.templateSpans.length; i < n; i++) { + let templateSpan = node.templateSpans[i]; // Check if the expression has operands and binds its operands less closely than binary '+'. // If it does, we need to wrap the expression in parentheses. Otherwise, something like @@ -2445,7 +2454,7 @@ module ts { // ("abc" + 1) << (2 + "") // rather than // "abc" + (1 << 2) + "" - var needsParens = templateSpan.expression.kind !== SyntaxKind.ParenthesizedExpression + let needsParens = templateSpan.expression.kind !== SyntaxKind.ParenthesizedExpression && comparePrecedenceToBinaryPlus(templateSpan.expression) !== Comparison.GreaterThan; if (i > 0 || headEmitted) { @@ -2573,7 +2582,7 @@ module ts { } function isNotExpressionIdentifier(node: Identifier) { - var parent = node.parent; + let parent = node.parent; switch (parent.kind) { case SyntaxKind.Parameter: case SyntaxKind.VariableDeclaration: @@ -2605,7 +2614,7 @@ module ts { } function emitExpressionIdentifier(node: Identifier) { - var substitution = resolver.getExpressionNameSubstitution(node); + let substitution = resolver.getExpressionNameSubstitution(node); if (substitution) { write(substitution); } @@ -2620,9 +2629,9 @@ module ts { } function emitIdentifier(node: Identifier) { - var variableId = getBlockScopedVariableId(node); + let variableId = getBlockScopedVariableId(node); if (variableId !== undefined && generatedBlockScopeNames) { - var text = generatedBlockScopeNames[variableId]; + let text = generatedBlockScopeNames[variableId]; if (text) { write(text); return; @@ -2649,7 +2658,7 @@ module ts { } function emitSuper(node: Node) { - var flags = resolver.getNodeCheckFlags(node); + let flags = resolver.getNodeCheckFlags(node); if (flags & NodeCheckFlags.SuperInstance) { write("_super.prototype"); } @@ -2663,14 +2672,14 @@ module ts { function emitObjectBindingPattern(node: BindingPattern) { write("{ "); - var elements = node.elements; + let elements = node.elements; emitList(elements, 0, elements.length, /*multiLine*/ false, /*trailingComma*/ elements.hasTrailingComma); write(" }"); } function emitArrayBindingPattern(node: BindingPattern) { write("["); - var elements = node.elements; + let elements = node.elements; emitList(elements, 0, elements.length, /*multiLine*/ false, /*trailingComma*/ elements.hasTrailingComma); write("]"); } @@ -2713,9 +2722,9 @@ module ts { } function emitListWithSpread(elements: Expression[], multiLine: boolean, trailingComma: boolean) { - var pos = 0; - var group = 0; - var length = elements.length; + let pos = 0; + let group = 0; + let length = elements.length; while (pos < length) { // Emit using the pattern .concat(, , ...) if (group === 1) { @@ -2724,14 +2733,14 @@ module ts { else if (group > 1) { write(", "); } - var e = elements[pos]; + let e = elements[pos]; if (e.kind === SyntaxKind.SpreadElementExpression) { e = (e).expression; emitParenthesizedIf(e, /*parenthesized*/ group === 0 && needsParenthesisForPropertyAccessOrInvocation(e)); pos++; } else { - var i = pos; + let i = pos; while (i < length && elements[i].kind !== SyntaxKind.SpreadElementExpression) { i++; } @@ -2758,7 +2767,7 @@ module ts { } function emitArrayLiteral(node: ArrayLiteralExpression) { - var elements = node.elements; + let elements = node.elements; if (elements.length === 0) { write("[]"); } @@ -2774,31 +2783,31 @@ module ts { } function emitDownlevelObjectLiteralWithComputedProperties(node: ObjectLiteralExpression, firstComputedPropertyIndex: number): void { - var parenthesizedObjectLiteral = createDownlevelObjectLiteralWithComputedProperties(node, firstComputedPropertyIndex); + let parenthesizedObjectLiteral = createDownlevelObjectLiteralWithComputedProperties(node, firstComputedPropertyIndex); return emit(parenthesizedObjectLiteral); } function createDownlevelObjectLiteralWithComputedProperties(originalObjectLiteral: ObjectLiteralExpression, firstComputedPropertyIndex: number): ParenthesizedExpression { // For computed properties, we need to create a unique handle to the object // literal so we can modify it without risking internal assignments tainting the object. - var tempVar = createAndRecordTempVariable(originalObjectLiteral); + let tempVar = createAndRecordTempVariable(originalObjectLiteral); // Hold onto the initial non-computed properties in a new object literal, // then create the rest through property accesses on the temp variable. - var initialObjectLiteral = createSynthesizedNode(SyntaxKind.ObjectLiteralExpression); + let initialObjectLiteral = createSynthesizedNode(SyntaxKind.ObjectLiteralExpression); initialObjectLiteral.properties = >originalObjectLiteral.properties.slice(0, firstComputedPropertyIndex); initialObjectLiteral.flags |= NodeFlags.MultiLine; // The comma expressions that will patch the object literal. // This will end up being something like '_a = { ... }, _a.x = 10, _a.y = 20, _a'. - var propertyPatches = createBinaryExpression(tempVar, SyntaxKind.EqualsToken, initialObjectLiteral); + let propertyPatches = createBinaryExpression(tempVar, SyntaxKind.EqualsToken, initialObjectLiteral); ts.forEach(originalObjectLiteral.properties, property => { - var patchedProperty = tryCreatePatchingPropertyAssignment(originalObjectLiteral, tempVar, property); + let patchedProperty = tryCreatePatchingPropertyAssignment(originalObjectLiteral, tempVar, property); if (patchedProperty) { // TODO(drosen): Preserve comments - //var leadingComments = getLeadingCommentRanges(currentSourceFile.text, property.pos); - //var trailingComments = getTrailingCommentRanges(currentSourceFile.text, property.end); + //let leadingComments = getLeadingCommentRanges(currentSourceFile.text, property.pos); + //let trailingComments = getTrailingCommentRanges(currentSourceFile.text, property.end); //addCommentsToSynthesizedNode(patchedProperty, leadingComments, trailingComments); propertyPatches = createBinaryExpression(propertyPatches, SyntaxKind.CommaToken, patchedProperty); @@ -2808,11 +2817,11 @@ module ts { // Finally, return the temp variable. propertyPatches = createBinaryExpression(propertyPatches, SyntaxKind.CommaToken, createIdentifier(tempVar.text, /*startsOnNewLine:*/ true)); - var result = createParenthesizedExpression(propertyPatches); + let result = createParenthesizedExpression(propertyPatches); // TODO(drosen): Preserve comments - // var leadingComments = getLeadingCommentRanges(currentSourceFile.text, originalObjectLiteral.pos); - // var trailingComments = getTrailingCommentRanges(currentSourceFile.text, originalObjectLiteral.end); + // let leadingComments = getLeadingCommentRanges(currentSourceFile.text, originalObjectLiteral.pos); + // let trailingComments = getTrailingCommentRanges(currentSourceFile.text, originalObjectLiteral.end); //addCommentsToSynthesizedNode(result, leadingComments, trailingComments); return result; @@ -2826,8 +2835,8 @@ module ts { // Returns 'undefined' if a property has already been accounted for // (e.g. a 'get' accessor which has already been emitted along with its 'set' accessor). function tryCreatePatchingPropertyAssignment(objectLiteral: ObjectLiteralExpression, tempVar: Identifier, property: ObjectLiteralElement): Expression { - var leftHandSide = createMemberAccessForPropertyName(tempVar, property.name); - var maybeRightHandSide = tryGetRightHandSideOfPatchingPropertyAssignment(objectLiteral, property); + let leftHandSide = createMemberAccessForPropertyName(tempVar, property.name); + let maybeRightHandSide = tryGetRightHandSideOfPatchingPropertyAssignment(objectLiteral, property); return maybeRightHandSide && createBinaryExpression(leftHandSide, SyntaxKind.EqualsToken, maybeRightHandSide, /*startsOnNewLine:*/ true); } @@ -2841,7 +2850,7 @@ module ts { // TODO: (andersh) Technically it isn't correct to make an identifier here since getExpressionNamePrefix returns // a string containing a dotted name. In general I'm not a fan of mini tree rewriters as this one, elsewhere we // manage by just emitting strings (which is a lot more performant). - //var prefix = createIdentifier(resolver.getExpressionNamePrefix((property).name)); + //let prefix = createIdentifier(resolver.getExpressionNamePrefix((property).name)); //return createPropertyAccessExpression(prefix, (property).name); return createIdentifier(resolver.getExpressionNameSubstitution((property).name)); @@ -2850,36 +2859,36 @@ module ts { case SyntaxKind.GetAccessor: case SyntaxKind.SetAccessor: - var { firstAccessor, getAccessor, setAccessor } = getAllAccessorDeclarations(objectLiteral.properties, property); + let { firstAccessor, getAccessor, setAccessor } = getAllAccessorDeclarations(objectLiteral.properties, property); // Only emit the first accessor. if (firstAccessor !== property) { return undefined; } - var propertyDescriptor = createSynthesizedNode(SyntaxKind.ObjectLiteralExpression); + let propertyDescriptor = createSynthesizedNode(SyntaxKind.ObjectLiteralExpression); - var descriptorProperties = >[]; + let descriptorProperties = >[]; if (getAccessor) { - var getProperty = createPropertyAssignment(createIdentifier("get"), createFunctionExpression(getAccessor.parameters, getAccessor.body)); + let getProperty = createPropertyAssignment(createIdentifier("get"), createFunctionExpression(getAccessor.parameters, getAccessor.body)); descriptorProperties.push(getProperty); } if (setAccessor) { - var setProperty = createPropertyAssignment(createIdentifier("set"), createFunctionExpression(setAccessor.parameters, setAccessor.body)); + let setProperty = createPropertyAssignment(createIdentifier("set"), createFunctionExpression(setAccessor.parameters, setAccessor.body)); descriptorProperties.push(setProperty); } - var trueExpr = createSynthesizedNode(SyntaxKind.TrueKeyword); + let trueExpr = createSynthesizedNode(SyntaxKind.TrueKeyword); - var enumerableTrue = createPropertyAssignment(createIdentifier("enumerable"), trueExpr); + let enumerableTrue = createPropertyAssignment(createIdentifier("enumerable"), trueExpr); descriptorProperties.push(enumerableTrue); - var configurableTrue = createPropertyAssignment(createIdentifier("configurable"), trueExpr); + let configurableTrue = createPropertyAssignment(createIdentifier("configurable"), trueExpr); descriptorProperties.push(configurableTrue); propertyDescriptor.properties = descriptorProperties; - var objectDotDefineProperty = createPropertyAccessExpression(createIdentifier("Object"), createIdentifier("defineProperty")); + let objectDotDefineProperty = createPropertyAccessExpression(createIdentifier("Object"), createIdentifier("defineProperty")); return createCallExpression(objectDotDefineProperty, createNodeArray(propertyDescriptor)); default: @@ -2888,14 +2897,14 @@ module ts { } function createParenthesizedExpression(expression: Expression) { - var result = createSynthesizedNode(SyntaxKind.ParenthesizedExpression); + let result = createSynthesizedNode(SyntaxKind.ParenthesizedExpression); result.expression = expression; return result; } function createNodeArray(...elements: T[]): NodeArray { - var result = >elements; + let result = >elements; result.pos = -1; result.end = -1; @@ -2903,7 +2912,7 @@ module ts { } function createBinaryExpression(left: Expression, operator: SyntaxKind, right: Expression, startsOnNewLine?: boolean): BinaryExpression { - var result = createSynthesizedNode(SyntaxKind.BinaryExpression, startsOnNewLine); + let result = createSynthesizedNode(SyntaxKind.BinaryExpression, startsOnNewLine); result.operatorToken = createSynthesizedNode(operator); result.left = left; result.right = right; @@ -2912,7 +2921,7 @@ module ts { } function createExpressionStatement(expression: Expression): ExpressionStatement { - var result = createSynthesizedNode(SyntaxKind.ExpressionStatement); + let result = createSynthesizedNode(SyntaxKind.ExpressionStatement); result.expression = expression; return result; } @@ -2933,7 +2942,7 @@ module ts { } function createPropertyAssignment(name: LiteralExpression | Identifier, initializer: Expression) { - var result = createSynthesizedNode(SyntaxKind.PropertyAssignment); + let result = createSynthesizedNode(SyntaxKind.PropertyAssignment); result.name = name; result.initializer = initializer; @@ -2941,7 +2950,7 @@ module ts { } function createFunctionExpression(parameters: NodeArray, body: Block): FunctionExpression { - var result = createSynthesizedNode(SyntaxKind.FunctionExpression); + let result = createSynthesizedNode(SyntaxKind.FunctionExpression); result.parameters = parameters; result.body = body; @@ -2949,7 +2958,7 @@ module ts { } function createPropertyAccessExpression(expression: LeftHandSideExpression, name: Identifier): PropertyAccessExpression { - var result = createSynthesizedNode(SyntaxKind.PropertyAccessExpression); + let result = createSynthesizedNode(SyntaxKind.PropertyAccessExpression); result.expression = expression; result.dotToken = createSynthesizedNode(SyntaxKind.DotToken); result.name = name; @@ -2958,7 +2967,7 @@ module ts { } function createElementAccessExpression(expression: LeftHandSideExpression, argumentExpression: Expression): ElementAccessExpression { - var result = createSynthesizedNode(SyntaxKind.ElementAccessExpression); + let result = createSynthesizedNode(SyntaxKind.ElementAccessExpression); result.expression = expression; result.argumentExpression = argumentExpression; @@ -2966,14 +2975,14 @@ module ts { } function createIdentifier(name: string, startsOnNewLine?: boolean) { - var result = createSynthesizedNode(SyntaxKind.Identifier, startsOnNewLine); + let result = createSynthesizedNode(SyntaxKind.Identifier, startsOnNewLine); result.text = name; return result; } function createCallExpression(invokedExpression: MemberExpression, arguments: NodeArray) { - var result = createSynthesizedNode(SyntaxKind.CallExpression); + let result = createSynthesizedNode(SyntaxKind.CallExpression); result.expression = invokedExpression; result.arguments = arguments; @@ -2981,22 +2990,22 @@ module ts { } function emitObjectLiteral(node: ObjectLiteralExpression): void { - var properties = node.properties; + let properties = node.properties; if (languageVersion < ScriptTarget.ES6) { - var numProperties = properties.length; + let numProperties = properties.length; // Find the first computed property. // Everything until that point can be emitted as part of the initial object literal. - var numInitialNonComputedProperties = numProperties; - for (var i = 0, n = properties.length; i < n; i++) { + let numInitialNonComputedProperties = numProperties; + for (let i = 0, n = properties.length; i < n; i++) { if (properties[i].name.kind === SyntaxKind.ComputedPropertyName) { numInitialNonComputedProperties = i; break; } } - var hasComputedProperty = numInitialNonComputedProperties !== properties.length; + let hasComputedProperty = numInitialNonComputedProperties !== properties.length; if (hasComputedProperty) { emitDownlevelObjectLiteralWithComputedProperties(node, numInitialNonComputedProperties); return; @@ -3007,7 +3016,6 @@ module ts { // or we're compiling with an ES6+ target. write("{"); - var properties = node.properties; if (properties.length) { emitLinePreservingList(node, properties, /*allowTrailingComma:*/ languageVersion >= ScriptTarget.ES5, /*spacesBetweenBraces:*/ true) } @@ -3039,10 +3047,10 @@ module ts { emit(node.name); // If short-hand property has a prefix, then regardless of the target version, we will emit it as normal property assignment. For example: // module m { - // export var y; + // export let y; // } // module m { - // export var obj = { y }; + // export let obj = { y }; // } // The short-hand property in obj need to emit as such ... = { y : m.y } regardless of the TargetScript version if (languageVersion < ScriptTarget.ES6 || resolver.getExpressionNameSubstitution(node.name)) { @@ -3055,11 +3063,11 @@ module ts { } function tryEmitConstantValue(node: PropertyAccessExpression | ElementAccessExpression): boolean { - var constantValue = resolver.getConstantValue(node); + let constantValue = resolver.getConstantValue(node); if (constantValue !== undefined) { write(constantValue.toString()); if (!compilerOptions.removeComments) { - var propertyName: string = node.kind === SyntaxKind.PropertyAccessExpression ? declarationNameToString((node).name) : getTextOfNode((node).argumentExpression); + let propertyName: string = node.kind === SyntaxKind.PropertyAccessExpression ? declarationNameToString((node).name) : getTextOfNode((node).argumentExpression); write(" /* " + propertyName + " */"); } return true; @@ -3071,10 +3079,10 @@ module ts { // If the code is not indented, an optional valueToWriteWhenNotIndenting will be // emitted instead. function indentIfOnDifferentLines(parent: Node, node1: Node, node2: Node, valueToWriteWhenNotIndenting?: string): boolean { - var realNodesAreOnDifferentLines = preserveNewLines && !nodeIsSynthesized(parent) && !nodeEndIsOnSameLineAsNodeStart(node1, node2); + let realNodesAreOnDifferentLines = preserveNewLines && !nodeIsSynthesized(parent) && !nodeEndIsOnSameLineAsNodeStart(node1, node2); // Always use a newline for synthesized code if the synthesizer desires it. - var synthesizedNodeIsOnDifferentLine = synthesizedNodeStartsOnNewLine(node2); + let synthesizedNodeIsOnDifferentLine = synthesizedNodeStartsOnNewLine(node2); if (realNodesAreOnDifferentLines || synthesizedNodeIsOnDifferentLine) { increaseIndent(); @@ -3095,9 +3103,9 @@ module ts { } emit(node.expression); - var indentedBeforeDot = indentIfOnDifferentLines(node, node.expression, node.dotToken); + let indentedBeforeDot = indentIfOnDifferentLines(node, node.expression, node.dotToken); write("."); - var indentedAfterDot = indentIfOnDifferentLines(node, node.dotToken, node.name); + let indentedAfterDot = indentIfOnDifferentLines(node, node.dotToken, node.name); emit(node.name); decreaseIndentIf(indentedBeforeDot, indentedAfterDot); } @@ -3134,7 +3142,7 @@ module ts { emit(node); return node; } - var temp = createAndRecordTempVariable(node); + let temp = createAndRecordTempVariable(node); write("("); emit(temp); @@ -3145,8 +3153,8 @@ module ts { } function emitCallWithSpread(node: CallExpression) { - var target: Expression; - var expr = skipParentheses(node.expression); + let target: Expression; + let expr = skipParentheses(node.expression); if (expr.kind === SyntaxKind.PropertyAccessExpression) { // Target will be emitted as "this" argument target = emitCallTarget((expr).expression); @@ -3192,7 +3200,7 @@ module ts { emitCallWithSpread(node); return; } - var superCall = false; + let superCall = false; if (node.expression.kind === SyntaxKind.SuperKeyword) { write("_super"); superCall = true; @@ -3241,7 +3249,7 @@ module ts { function emitParenExpression(node: ParenthesizedExpression) { if (!node.parent || node.parent.kind !== SyntaxKind.ArrowFunction) { if (node.expression.kind === SyntaxKind.TypeAssertionExpression) { - var operand = (node.expression).expression; + let operand = (node.expression).expression; // Make sure we consider all nested cast expressions, e.g.: // (-A).x; @@ -3309,7 +3317,7 @@ module ts { // expression a prefix increment whose operand is a plus expression - (++(+x)) // The same is true of minus of course. if (node.operand.kind === SyntaxKind.PrefixUnaryExpression) { - var operand = node.operand; + let operand = node.operand; if (node.operator === SyntaxKind.PlusToken && (operand.operator === SyntaxKind.PlusToken || operand.operator === SyntaxKind.PlusPlusToken)) { write(" "); } @@ -3332,9 +3340,9 @@ module ts { } else { emit(node.left); - var indentedBeforeOperator = indentIfOnDifferentLines(node, node.left, node.operatorToken, node.operatorToken.kind !== SyntaxKind.CommaToken ? " " : undefined); + let indentedBeforeOperator = indentIfOnDifferentLines(node, node.left, node.operatorToken, node.operatorToken.kind !== SyntaxKind.CommaToken ? " " : undefined); write(tokenToString(node.operatorToken.kind)); - var indentedAfterOperator = indentIfOnDifferentLines(node, node.operatorToken, node.right, " "); + let indentedAfterOperator = indentIfOnDifferentLines(node, node.operatorToken, node.right, " "); emit(node.right); decreaseIndentIf(indentedBeforeOperator, indentedAfterOperator); } @@ -3346,14 +3354,14 @@ module ts { function emitConditionalExpression(node: ConditionalExpression) { emit(node.condition); - var indentedBeforeQuestion = indentIfOnDifferentLines(node, node.condition, node.questionToken, " "); + let indentedBeforeQuestion = indentIfOnDifferentLines(node, node.condition, node.questionToken, " "); write("?"); - var indentedAfterQuestion = indentIfOnDifferentLines(node, node.questionToken, node.whenTrue, " "); + let indentedAfterQuestion = indentIfOnDifferentLines(node, node.questionToken, node.whenTrue, " "); emit(node.whenTrue); decreaseIndentIf(indentedBeforeQuestion, indentedAfterQuestion); - var indentedBeforeColon = indentIfOnDifferentLines(node, node.whenTrue, node.colonToken, " "); + let indentedBeforeColon = indentIfOnDifferentLines(node, node.whenTrue, node.colonToken, " "); write(":"); - var indentedAfterColon = indentIfOnDifferentLines(node, node.colonToken, node.whenFalse, " "); + let indentedAfterColon = indentIfOnDifferentLines(node, node.colonToken, node.whenFalse, " "); emit(node.whenFalse); decreaseIndentIf(indentedBeforeColon, indentedAfterColon); } @@ -3373,7 +3381,7 @@ module ts { function isSingleLineEmptyBlock(node: Node) { if (node && node.kind === SyntaxKind.Block) { - var block = node; + let block = node; return block.statements.length === 0 && nodeEndIsOnSameLineAsNodeStart(block, block); } } @@ -3422,7 +3430,7 @@ module ts { } function emitIfStatement(node: IfStatement) { - var endPos = emitToken(SyntaxKind.IfKeyword, node.pos); + let endPos = emitToken(SyntaxKind.IfKeyword, node.pos); write(" "); endPos = emitToken(SyntaxKind.OpenParenToken, endPos); emit(node.expression); @@ -3463,7 +3471,7 @@ module ts { } function emitStartOfVariableDeclarationList(decl: Node, startPos?: number): void { - var tokenKind = SyntaxKind.VarKeyword; + let tokenKind = SyntaxKind.VarKeyword; if (decl && languageVersion >= ScriptTarget.ES6) { if (isLet(decl)) { tokenKind = SyntaxKind.LetKeyword; @@ -3489,12 +3497,12 @@ module ts { } function emitForStatement(node: ForStatement) { - var endPos = emitToken(SyntaxKind.ForKeyword, node.pos); + let endPos = emitToken(SyntaxKind.ForKeyword, node.pos); write(" "); endPos = emitToken(SyntaxKind.OpenParenToken, endPos); if (node.initializer && node.initializer.kind === SyntaxKind.VariableDeclarationList) { - var variableDeclarationList = node.initializer; - var declarations = variableDeclarationList.declarations; + let variableDeclarationList = node.initializer; + let declarations = variableDeclarationList.declarations; emitStartOfVariableDeclarationList(declarations[0], endPos); write(" "); emitCommaList(declarations); @@ -3515,13 +3523,13 @@ module ts { return emitDownLevelForOfStatement(node); } - var endPos = emitToken(SyntaxKind.ForKeyword, node.pos); + let endPos = emitToken(SyntaxKind.ForKeyword, node.pos); write(" "); endPos = emitToken(SyntaxKind.OpenParenToken, endPos); if (node.initializer.kind === SyntaxKind.VariableDeclarationList) { - var variableDeclarationList = node.initializer; + let variableDeclarationList = node.initializer; if (variableDeclarationList.declarations.length >= 1) { - var decl = variableDeclarationList.declarations[0]; + let decl = variableDeclarationList.declarations[0]; emitStartOfVariableDeclarationList(decl, endPos); write(" "); emit(decl); @@ -3545,18 +3553,18 @@ module ts { function emitDownLevelForOfStatement(node: ForOfStatement) { // The following ES6 code: // - // for (var v of expr) { } + // for (let v of expr) { } // // should be emitted as // - // for (var _i = 0, _a = expr; _i < _a.length; _i++) { - // var v = _a[_i]; + // for (let _i = 0, _a = expr; _i < _a.length; _i++) { + // let v = _a[_i]; // } // // where _a and _i are temps emitted to capture the RHS and the counter, // respectively. - // When the left hand side is an expression instead of a var declaration, - // the "var v" is not emitted. + // When the left hand side is an expression instead of a let declaration, + // the "let v" is not emitted. // When the left hand side is a let/const, the v is renamed if there is // another v in scope. // Note that all assignments to the LHS are emitted in the body, including @@ -3564,24 +3572,26 @@ module ts { // Note also that because an extra statement is needed to assign to the LHS, // for-of bodies are always emitted as blocks. - var endPos = emitToken(SyntaxKind.ForKeyword, node.pos); + let endPos = emitToken(SyntaxKind.ForKeyword, node.pos); write(" "); endPos = emitToken(SyntaxKind.OpenParenToken, endPos); - // Do not emit the LHS var declaration yet, because it might contain destructuring. + // Do not emit the LHS let declaration yet, because it might contain destructuring. // Do not call recordTempDeclaration because we are declaring the temps // right here. Recording means they will be declared later. // In the case where the user wrote an identifier as the RHS, like this: // - // for (var v of arr) { } + // for (let v of arr) { } // // we don't want to emit a temporary variable for the RHS, just use it directly. - var rhsIsIdentifier = node.expression.kind === SyntaxKind.Identifier; - var counter = createTempVariable(node, /*forLoopVariable*/ true); - var rhsReference = rhsIsIdentifier ? node.expression : createTempVariable(node, /*forLoopVariable*/ false); + let rhsIsIdentifier = node.expression.kind === SyntaxKind.Identifier; + let counter = createTempVariable(node, /*preferredName*/ "_i"); + let rhsReference = rhsIsIdentifier ? node.expression : createTempVariable(node); - // This is the var keyword for the counter and rhsReference. The var keyword for + var cachedLength = compilerOptions.cacheDownlevelForOfLength ? createTempVariable(node, /*preferredName:*/ "_n") : undefined; + + // This is the let keyword for the counter and rhsReference. The let keyword for // the LHS will be emitted inside the body. emitStart(node.expression); write("var "); @@ -3600,14 +3610,30 @@ module ts { emitNodeWithoutSourceMap(node.expression); emitEnd(node.expression); } + + if (cachedLength) { + write(", "); + emitNodeWithoutSourceMap(cachedLength); + write(" = "); + emitNodeWithoutSourceMap(rhsReference); + write(".length"); + } + write("; "); // _i < _a.length; emitStart(node.initializer); emitNodeWithoutSourceMap(counter); write(" < "); - emitNodeWithoutSourceMap(rhsReference); - write(".length"); + + if (cachedLength) { + emitNodeWithoutSourceMap(cachedLength); + } + else { + emitNodeWithoutSourceMap(rhsReference); + write(".length"); + } + emitEnd(node.initializer); write("; "); @@ -3624,14 +3650,14 @@ module ts { increaseIndent(); // Initialize LHS - // var v = _a[_i]; - var rhsIterationValue = createElementAccessExpression(rhsReference, counter); + // let v = _a[_i]; + let rhsIterationValue = createElementAccessExpression(rhsReference, counter); emitStart(node.initializer); if (node.initializer.kind === SyntaxKind.VariableDeclarationList) { write("var "); - var variableDeclarationList = node.initializer; + let variableDeclarationList = node.initializer; if (variableDeclarationList.declarations.length > 0) { - var declaration = variableDeclarationList.declarations[0]; + let declaration = variableDeclarationList.declarations[0]; if (isBindingPattern(declaration.name)) { // This works whether the declaration is a var, let, or const. // It will use rhsIterationValue _a[_i] as the initializer. @@ -3647,8 +3673,8 @@ module ts { } else { // It's an empty declaration list. This can only happen in an error case, if the user wrote - // for (var of []) {} - emitNodeWithoutSourceMap(createTempVariable(node, /*forLoopVariable*/ false)); + // for (let of []) {} + emitNodeWithoutSourceMap(createTempVariable(node)); write(" = "); emitNodeWithoutSourceMap(rhsIterationValue); } @@ -3656,7 +3682,7 @@ module ts { else { // Initializer is an expression. Emit the expression in the body, so that it's // evaluated on every iteration. - var assignmentExpression = createBinaryExpression(node.initializer, SyntaxKind.EqualsToken, rhsIterationValue, /*startsOnNewLine*/ false); + let assignmentExpression = createBinaryExpression(node.initializer, SyntaxKind.EqualsToken, rhsIterationValue, /*startsOnNewLine*/ false); if (node.initializer.kind === SyntaxKind.ArrayLiteralExpression || node.initializer.kind === SyntaxKind.ObjectLiteralExpression) { // This is a destructuring pattern, so call emitDestructuring instead of emit. Calling emit will not work, because it will cause // the BinaryExpression to be passed in instead of the expression statement, which will cause emitDestructuring to crash. @@ -3702,7 +3728,7 @@ module ts { } function emitSwitchStatement(node: SwitchStatement) { - var endPos = emitToken(SyntaxKind.SwitchKeyword, node.pos); + let endPos = emitToken(SyntaxKind.SwitchKeyword, node.pos); write(" "); emitToken(SyntaxKind.OpenParenToken, endPos); emit(node.expression); @@ -3775,7 +3801,7 @@ module ts { function emitCatchClause(node: CatchClause) { writeLine(); - var endPos = emitToken(SyntaxKind.CatchKeyword, node.pos); + let endPos = emitToken(SyntaxKind.CatchKeyword, node.pos); write(" "); emitToken(SyntaxKind.OpenParenToken, endPos); emit(node.variableDeclaration); @@ -3803,7 +3829,7 @@ module ts { } function emitContainingModuleName(node: Node) { - var container = getContainingModule(node); + let container = getContainingModule(node); write(container ? resolver.getGeneratedNameForNode(container) : "exports"); } @@ -3818,9 +3844,9 @@ module ts { } function createVoidZero(): Expression { - var zero = createSynthesizedNode(SyntaxKind.NumericLiteral); + let zero = createSynthesizedNode(SyntaxKind.NumericLiteral); zero.text = "0"; - var result = createSynthesizedNode(SyntaxKind.VoidExpression); + let result = createSynthesizedNode(SyntaxKind.VoidExpression); result.expression = zero; return result; } @@ -3851,10 +3877,10 @@ module ts { isAssignmentExpressionStatement: boolean, value?: Expression, lowestNonSynthesizedAncestor?: Node) { - var emitCount = 0; + let emitCount = 0; // An exported declaration is actually emitted as an assignment (to a property on the module object), so // temporary variables in an exported declaration need to have real declarations elsewhere - var isDeclaration = (root.kind === SyntaxKind.VariableDeclaration && !(getCombinedNodeFlags(root) & NodeFlags.Export)) || root.kind === SyntaxKind.Parameter; + let isDeclaration = (root.kind === SyntaxKind.VariableDeclaration && !(getCombinedNodeFlags(root) & NodeFlags.Export)) || root.kind === SyntaxKind.Parameter; if (root.kind === SyntaxKind.BinaryExpression) { emitAssignmentExpression(root); } @@ -3884,7 +3910,7 @@ module ts { // In case the root is a synthesized node, we need to pass lowestNonSynthesizedAncestor // as the location for determining uniqueness of the variable we are about to // generate. - var identifier = createTempVariable(lowestNonSynthesizedAncestor || root); + let identifier = createTempVariable(lowestNonSynthesizedAncestor || root); if (!isDeclaration) { recordTempDeclaration(identifier); } @@ -3899,7 +3925,7 @@ module ts { // we need to generate a temporary variable value = ensureIdentifier(value); // Return the expression 'value === void 0 ? defaultValue : value' - var equals = createSynthesizedNode(SyntaxKind.BinaryExpression); + let equals = createSynthesizedNode(SyntaxKind.BinaryExpression); equals.left = value; equals.operatorToken = createSynthesizedNode(SyntaxKind.EqualsEqualsEqualsToken); equals.right = createVoidZero(); @@ -3907,7 +3933,7 @@ module ts { } function createConditionalExpression(condition: Expression, whenTrue: Expression, whenFalse: Expression) { - var cond = createSynthesizedNode(SyntaxKind.ConditionalExpression); + let cond = createSynthesizedNode(SyntaxKind.ConditionalExpression); cond.condition = condition; cond.questionToken = createSynthesizedNode(SyntaxKind.QuestionToken); cond.whenTrue = whenTrue; @@ -3917,7 +3943,7 @@ module ts { } function createNumericLiteral(value: number) { - var node = createSynthesizedNode(SyntaxKind.NumericLiteral); + let node = createSynthesizedNode(SyntaxKind.NumericLiteral); node.text = "" + value; return node; } @@ -3926,7 +3952,7 @@ module ts { if (expr.kind === SyntaxKind.Identifier || expr.kind === SyntaxKind.PropertyAccessExpression || expr.kind === SyntaxKind.ElementAccessExpression) { return expr; } - var node = createSynthesizedNode(SyntaxKind.ParenthesizedExpression); + let node = createSynthesizedNode(SyntaxKind.ParenthesizedExpression); node.expression = expr; return node; } @@ -3939,38 +3965,37 @@ module ts { } function createElementAccess(object: Expression, index: Expression): Expression { - var node = createSynthesizedNode(SyntaxKind.ElementAccessExpression); + let node = createSynthesizedNode(SyntaxKind.ElementAccessExpression); node.expression = parenthesizeForAccess(object); node.argumentExpression = index; return node; } function emitObjectLiteralAssignment(target: ObjectLiteralExpression, value: Expression) { - var properties = target.properties; + let properties = target.properties; if (properties.length !== 1) { // For anything but a single element destructuring we need to generate a temporary // to ensure value is evaluated exactly once. value = ensureIdentifier(value); } - for (var i = 0; i < properties.length; i++) { - var p = properties[i]; + for (let p of properties) { if (p.kind === SyntaxKind.PropertyAssignment || p.kind === SyntaxKind.ShorthandPropertyAssignment) { // TODO(andersh): Computed property support - var propName = ((p).name); + let propName = ((p).name); emitDestructuringAssignment((p).initializer || propName, createPropertyAccess(value, propName)); } } } function emitArrayLiteralAssignment(target: ArrayLiteralExpression, value: Expression) { - var elements = target.elements; + let elements = target.elements; if (elements.length !== 1) { // For anything but a single element destructuring we need to generate a temporary // to ensure value is evaluated exactly once. value = ensureIdentifier(value); } - for (var i = 0; i < elements.length; i++) { - var e = elements[i]; + for (let i = 0; i < elements.length; i++) { + let e = elements[i]; if (e.kind !== SyntaxKind.OmittedExpression) { if (e.kind !== SyntaxKind.SpreadElementExpression) { emitDestructuringAssignment(e, createElementAccess(value, createNumericLiteral(i))); @@ -4003,8 +4028,8 @@ module ts { } function emitAssignmentExpression(root: BinaryExpression) { - var target = root.left; - var value = root.right; + let target = root.left; + let value = root.right; if (isAssignmentExpressionStatement) { emitDestructuringAssignment(target, value); } @@ -4032,18 +4057,18 @@ module ts { value = createVoidZero(); } if (isBindingPattern(target.name)) { - var pattern = target.name; - var elements = pattern.elements; + let pattern = target.name; + let elements = pattern.elements; if (elements.length !== 1) { // For anything but a single element destructuring we need to generate a temporary // to ensure value is evaluated exactly once. value = ensureIdentifier(value); } - for (var i = 0; i < elements.length; i++) { - var element = elements[i]; + for (let i = 0; i < elements.length; i++) { + let element = elements[i]; if (pattern.kind === SyntaxKind.ObjectBindingPattern) { // Rewrite element to a declaration with an initializer that fetches property - var propName = element.propertyName || element.name; + let propName = element.propertyName || element.name; emitBindingElement(element, createPropertyAccess(value, propName)); } else if (element.kind !== SyntaxKind.OmittedExpression) { @@ -4081,7 +4106,7 @@ module ts { renameNonTopLevelLetAndConst(node.name); emitModuleMemberName(node); - var initializer = node.initializer; + let initializer = node.initializer; if (!initializer && languageVersion < ScriptTarget.ES6) { // downlevel emit for non-initialized let bindings defined in loops @@ -4090,7 +4115,7 @@ module ts { // for (...) { var = void 0; } // this is necessary to preserve ES6 semantic in scenarios like // for (...) { let x; console.log(x); x = 1 } // assignment on one iteration should not affect other iterations - var isUninitializedLet = + let isUninitializedLet = (resolver.getNodeCheckFlags(node) & NodeCheckFlags.BlockScopedBindingInLoop) && (getCombinedFlagsForIdentifier(node.name) & NodeFlags.Let); @@ -4107,7 +4132,7 @@ module ts { } function emitExportVariableAssignments(node: VariableDeclaration | BindingElement) { - var name = (node).name; + let name = (node).name; if (name.kind === SyntaxKind.Identifier) { emitExportMemberAssignments(name); } @@ -4138,26 +4163,26 @@ module ts { return; } - var combinedFlags = getCombinedFlagsForIdentifier(node); + let combinedFlags = getCombinedFlagsForIdentifier(node); if (((combinedFlags & NodeFlags.BlockScoped) === 0) || combinedFlags & NodeFlags.Export) { // do not rename exported or non-block scoped variables return; } // here it is known that node is a block scoped variable - var list = getAncestor(node, SyntaxKind.VariableDeclarationList); + let list = getAncestor(node, SyntaxKind.VariableDeclarationList); if (list.parent.kind === SyntaxKind.VariableStatement && list.parent.parent.kind === SyntaxKind.SourceFile) { // do not rename variables that are defined on source file level return; } - var blockScopeContainer = getEnclosingBlockScopeContainer(node); - var parent = blockScopeContainer.kind === SyntaxKind.SourceFile + let blockScopeContainer = getEnclosingBlockScopeContainer(node); + let parent = blockScopeContainer.kind === SyntaxKind.SourceFile ? blockScopeContainer : blockScopeContainer.parent; - var generatedName = generateUniqueNameForLocation(parent, (node).text); - var variableId = resolver.getBlockScopedVariableId(node); + let generatedName = generateUniqueNameForLocation(parent, (node).text); + let variableId = resolver.getBlockScopedVariableId(node); if (!generatedBlockScopeNames) { generatedBlockScopeNames = []; } @@ -4178,7 +4203,7 @@ module ts { function emitParameter(node: ParameterDeclaration) { if (languageVersion < ScriptTarget.ES6) { if (isBindingPattern(node.name)) { - var name = createTempVariable(node); + let name = createTempVariable(node); if (!tempParameters) { tempParameters = []; } @@ -4200,7 +4225,7 @@ module ts { function emitDefaultValueAssignments(node: FunctionLikeDeclaration) { if (languageVersion < ScriptTarget.ES6) { - var tempIndex = 0; + let tempIndex = 0; forEach(node.parameters, p => { if (isBindingPattern(p.name)) { writeLine(); @@ -4230,9 +4255,9 @@ module ts { function emitRestParameter(node: FunctionLikeDeclaration) { if (languageVersion < ScriptTarget.ES6 && hasRestParameters(node)) { - var restIndex = node.parameters.length - 1; - var restParam = node.parameters[restIndex]; - var tempName = createTempVariable(node, /*forLoopVariable*/ true).text; + let restIndex = node.parameters.length - 1; + let restParam = node.parameters[restIndex]; + let tempName = createTempVariable(node, /*preferredName:*/ "_i").text; writeLine(); emitLeadingComments(restParam); emitStart(restParam); @@ -4327,8 +4352,8 @@ module ts { increaseIndent(); write("("); if (node) { - var parameters = node.parameters; - var omitCount = languageVersion < ScriptTarget.ES6 && hasRestParameters(node) ? 1 : 0; + let parameters = node.parameters; + let omitCount = languageVersion < ScriptTarget.ES6 && hasRestParameters(node) ? 1 : 0; emitList(parameters, 0, parameters.length - omitCount, /*multiLine*/ false, /*trailingComma*/ false); } write(")"); @@ -4345,14 +4370,14 @@ module ts { } function emitSignatureAndBody(node: FunctionLikeDeclaration) { - var saveTempCount = tempCount; - var saveTempVariables = tempVariables; - var saveTempParameters = tempParameters; + let saveTempCount = tempCount; + let saveTempVariables = tempVariables; + let saveTempParameters = tempParameters; tempCount = 0; tempVariables = undefined; tempParameters = undefined; - var popFrame = enterNameScope() + let popFrame = enterNameScope() // When targeting ES6, emit arrow function natively in ES6 if (shouldEmitAsArrowFunction(node)) { @@ -4412,7 +4437,7 @@ module ts { write(" "); // Unwrap all type assertions. - var current = body; + let current = body; while (current.kind === SyntaxKind.TypeAssertionExpression) { current = (current).expression; } @@ -4425,10 +4450,10 @@ module ts { scopeEmitStart(node); increaseIndent(); - var outPos = writer.getTextPos(); + let outPos = writer.getTextPos(); emitDetachedComments(node.body); emitFunctionBodyPreamble(node); - var preambleEmitted = writer.getTextPos() !== outPos; + let preambleEmitted = writer.getTextPos() !== outPos; decreaseIndent(); // If we didn't have to emit any preamble code, then attempt to keep the arrow @@ -4474,23 +4499,23 @@ module ts { write(" {"); scopeEmitStart(node); - var initialTextPos = writer.getTextPos(); + let initialTextPos = writer.getTextPos(); increaseIndent(); emitDetachedComments(body.statements); // Emit all the directive prologues (like "use strict"). These have to come before // any other preamble code we write (like parameter initializers). - var startIndex = emitDirectivePrologues(body.statements, /*startWithNewLine*/ true); + let startIndex = emitDirectivePrologues(body.statements, /*startWithNewLine*/ true); emitFunctionBodyPreamble(node); decreaseIndent(); - var preambleEmitted = writer.getTextPos() !== initialTextPos; + let preambleEmitted = writer.getTextPos() !== initialTextPos; if (preserveNewLines && !preambleEmitted && nodeEndIsOnSameLineAsNodeStart(body, body)) { - for (var i = 0, n = body.statements.length; i < n; i++) { + for (let statement of body.statements) { write(" "); - emit(body.statements[i]); + emit(statement); } emitTempDeclarations(/*newLine*/ false); write(" "); @@ -4512,11 +4537,11 @@ module ts { function findInitialSuperCall(ctor: ConstructorDeclaration): ExpressionStatement { if (ctor.body) { - var statement = (ctor.body).statements[0]; + let statement = (ctor.body).statements[0]; if (statement && statement.kind === SyntaxKind.ExpressionStatement) { - var expr = (statement).expression; + let expr = (statement).expression; if (expr && expr.kind === SyntaxKind.CallExpression) { - var func = (expr).expression; + let func = (expr).expression; if (func && func.kind === SyntaxKind.SuperKeyword) { return statement; } @@ -4609,7 +4634,7 @@ module ts { emitTrailingComments(member); } else if (member.kind === SyntaxKind.GetAccessor || member.kind === SyntaxKind.SetAccessor) { - var accessors = getAllAccessorDeclarations(node.members, member); + let accessors = getAllAccessorDeclarations(node.members, member); if (member === accessors.firstAccessor) { writeLine(); emitStart(member); @@ -4664,7 +4689,7 @@ module ts { write("var "); emitDeclarationName(node); write(" = (function ("); - var baseTypeNode = getClassBaseTypeNode(node); + let baseTypeNode = getClassBaseTypeNode(node); if (baseTypeNode) { write("_super"); } @@ -4714,14 +4739,14 @@ module ts { } function emitConstructorOfClass() { - var saveTempCount = tempCount; - var saveTempVariables = tempVariables; - var saveTempParameters = tempParameters; + let saveTempCount = tempCount; + let saveTempVariables = tempVariables; + let saveTempParameters = tempParameters; tempCount = 0; tempVariables = undefined; tempParameters = undefined; - var popFrame = enterNameScope(); + let popFrame = enterNameScope(); // Emit the constructor overload pinned comments forEach(node.members, member => { @@ -4730,7 +4755,7 @@ module ts { } }); - var ctor = getFirstConstructorWithBody(node); + let ctor = getFirstConstructorWithBody(node); if (ctor) { emitLeadingComments(ctor); } @@ -4745,11 +4770,12 @@ module ts { emitDetachedComments((ctor.body).statements); } emitCaptureThisForNodeIfNecessary(node); + let superCall: ExpressionStatement; if (ctor) { emitDefaultValueAssignments(ctor); emitRestParameter(ctor); if (baseTypeNode) { - var superCall = findInitialSuperCall(ctor); + superCall = findInitialSuperCall(ctor); if (superCall) { writeLine(); emit(superCall); @@ -4767,7 +4793,7 @@ module ts { } emitMemberAssignments(node, /*nonstatic*/0); if (ctor) { - var statements: Node[] = (ctor.body).statements; + let statements: Node[] = (ctor.body).statements; if (superCall) statements = statements.slice(1); emitLines(statements); } @@ -4797,7 +4823,7 @@ module ts { } function shouldEmitEnumDeclaration(node: EnumDeclaration) { - var isConstEnum = isConst(node); + let isConstEnum = isConst(node); return !isConstEnum || compilerOptions.preserveConstEnums; } @@ -4850,7 +4876,7 @@ module ts { } function emitEnumMember(node: EnumMember) { - var enumParent = node.parent; + let enumParent = node.parent; emitStart(node); write(resolver.getGeneratedNameForNode(enumParent)); write("["); @@ -4867,7 +4893,7 @@ module ts { function writeEnumMemberDeclarationValue(member: EnumMember) { if (!member.initializer || isConst(member.parent)) { - var value = resolver.getConstantValue(member); + let value = resolver.getConstantValue(member); if (value !== undefined) { write(value.toString()); return; @@ -4884,7 +4910,7 @@ module ts { function getInnerMostModuleDeclarationFromDottedModule(moduleDeclaration: ModuleDeclaration): ModuleDeclaration { if (moduleDeclaration.body.kind === SyntaxKind.ModuleDeclaration) { - var recursiveInnerModule = getInnerMostModuleDeclarationFromDottedModule(moduleDeclaration.body); + let recursiveInnerModule = getInnerMostModuleDeclarationFromDottedModule(moduleDeclaration.body); return recursiveInnerModule || moduleDeclaration.body; } } @@ -4895,7 +4921,7 @@ module ts { function emitModuleDeclaration(node: ModuleDeclaration) { // Emit only if this module is non-ambient. - var shouldEmit = shouldEmitModuleDeclaration(node); + let shouldEmit = shouldEmitModuleDeclaration(node); if (!shouldEmit) { return emitPinnedOrTripleSlashComments(node); @@ -4914,11 +4940,11 @@ module ts { emitEnd(node.name); write(") "); if (node.body.kind === SyntaxKind.ModuleBlock) { - var saveTempCount = tempCount; - var saveTempVariables = tempVariables; + let saveTempCount = tempCount; + let saveTempVariables = tempVariables; tempCount = 0; tempVariables = undefined; - var popFrame = enterNameScope(); + let popFrame = enterNameScope(); emit(node.body); @@ -4935,7 +4961,7 @@ module ts { emit(node.body); decreaseIndent(); writeLine(); - var moduleBlock = getInnerMostModuleDeclarationFromDottedModule(node).body; + let moduleBlock = getInnerMostModuleDeclarationFromDottedModule(node).body; emitToken(SyntaxKind.CloseBraceToken, moduleBlock.statements.end); scopeEmitEnd(); } @@ -4969,14 +4995,14 @@ module ts { } function emitImportDeclaration(node: ImportDeclaration | ImportEqualsDeclaration) { - var info = getExternalImportInfo(node); + let info = getExternalImportInfo(node); if (info) { - var declarationNode = info.declarationNode; - var namedImports = info.namedImports; + let declarationNode = info.declarationNode; + let namedImports = info.namedImports; if (compilerOptions.module !== ModuleKind.AMD) { emitLeadingComments(node); emitStart(node); - var moduleName = getExternalModuleName(node); + let moduleName = getExternalModuleName(node); if (declarationNode) { if (!(declarationNode.flags & NodeFlags.Export)) write("var "); emitModuleMemberName(declarationNode); @@ -5033,7 +5059,7 @@ module ts { function emitExportDeclaration(node: ExportDeclaration) { if (node.moduleSpecifier) { emitStart(node); - var generatedName = resolver.getGeneratedNameForNode(node); + let generatedName = resolver.getGeneratedNameForNode(node); if (compilerOptions.module !== ModuleKind.AMD) { write("var "); write(generatedName); @@ -5058,7 +5084,7 @@ module ts { } else { // export * - var tempName = createTempVariable(node).text; + let tempName = createTempVariable(node).text; writeLine(); write("for (var " + tempName + " in " + generatedName + ") if (!"); emitContainingModuleName(node); @@ -5080,7 +5106,7 @@ module ts { } } else if (node.kind === SyntaxKind.ImportDeclaration) { - var importClause = (node).importClause; + let importClause = (node).importClause; if (importClause) { if (importClause.name) { return { @@ -5123,7 +5149,7 @@ module ts { if (specifier.name.text === "default") { exportDefault = exportDefault || specifier; } - var name = (specifier.propertyName || specifier.name).text; + let name = (specifier.propertyName || specifier.name).text; (exportSpecifiers[name] || (exportSpecifiers[name] = [])).push(specifier); }); } @@ -5136,7 +5162,7 @@ module ts { } } else { - var info = createExternalImportInfo(node); + let info = createExternalImportInfo(node); if (info) { if ((!info.declarationNode && !info.namedImports) || resolver.isReferencedAliasDeclaration(node)) { externalImports.push(info); @@ -5148,8 +5174,7 @@ module ts { function getExternalImportInfo(node: ImportDeclaration | ImportEqualsDeclaration): ExternalImportInfo { if (externalImports) { - for (var i = 0; i < externalImports.length; i++) { - var info = externalImports[i]; + for (let info of externalImports) { if (info.rootNode === node) { return info; } @@ -5188,7 +5213,7 @@ module ts { write("[\"require\", \"exports\""); forEach(externalImports, info => { write(", "); - var moduleName = getExternalModuleName(info.rootNode); + let moduleName = getExternalModuleName(info.rootNode); if (moduleName.kind === SyntaxKind.StringLiteral) { emitLiteral(moduleName); } @@ -5197,7 +5222,7 @@ module ts { } }); forEach(node.amdDependencies, amdDependency => { - var text = "\"" + amdDependency.path + "\""; + let text = "\"" + amdDependency.path + "\""; write(", "); write(text); }); @@ -5255,7 +5280,7 @@ module ts { } function emitDirectivePrologues(statements: Node[], startWithNewLine: boolean): number { - for (var i = 0; i < statements.length; ++i) { + for (let i = 0; i < statements.length; ++i) { if (isPrologueDirective(statements[i])) { if (startWithNewLine || i > 0) { writeLine(); @@ -5276,7 +5301,7 @@ module ts { emitDetachedComments(node); // emit prologue directives prior to __extends - var startIndex = emitDirectivePrologues(node.statements, /*startWithNewLine*/ false); + let startIndex = emitDirectivePrologues(node.statements, /*startWithNewLine*/ false); if (!extendsEmitted && resolver.getNodeCheckFlags(node) & NodeCheckFlags.EmitExtends) { writeLine(); write("var __extends = this.__extends || function (d, b) {"); @@ -5324,7 +5349,7 @@ module ts { return emitPinnedOrTripleSlashComments(node); } - var emitComments = shouldEmitLeadingAndTrailingComments(node); + let emitComments = shouldEmitLeadingAndTrailingComments(node); if (emitComments) { emitLeadingComments(node); } @@ -5535,7 +5560,7 @@ module ts { function getLeadingCommentsWithoutDetachedComments() { // get the leading comments from detachedPos - var leadingComments = getLeadingCommentRanges(currentSourceFile.text, detachedCommentsInfo[detachedCommentsInfo.length - 1].detachedCommentEndPos); + let leadingComments = getLeadingCommentRanges(currentSourceFile.text, detachedCommentsInfo[detachedCommentsInfo.length - 1].detachedCommentEndPos); if (detachedCommentsInfo.length - 1) { detachedCommentsInfo.pop(); } @@ -5550,7 +5575,7 @@ module ts { // Emit the leading comments only if the parent's pos doesn't match because parent should take care of emitting these comments if (node.parent) { if (node.parent.kind === SyntaxKind.SourceFile || node.pos !== node.parent.pos) { - var leadingComments: CommentRange[]; + let leadingComments: CommentRange[]; if (hasDetachedComments(node.pos)) { // get comments without detached comments leadingComments = getLeadingCommentsWithoutDetachedComments(); @@ -5565,7 +5590,7 @@ module ts { } function emitLeadingDeclarationComments(node: Node) { - var leadingComments = getLeadingCommentsToEmit(node); + let leadingComments = getLeadingCommentsToEmit(node); emitNewLineBeforeLeadingComments(currentSourceFile, writer, node, leadingComments); // Leading comments are emitted at /*leading comment1 */space/*leading comment*/space emitComments(currentSourceFile, writer, leadingComments, /*trailingSeparator*/ true, newLine, writeComment); @@ -5575,7 +5600,7 @@ module ts { // Emit the trailing comments only if the parent's end doesn't match if (node.parent) { if (node.parent.kind === SyntaxKind.SourceFile || node.end !== node.parent.end) { - var trailingComments = getTrailingCommentRanges(currentSourceFile.text, node.end); + let trailingComments = getTrailingCommentRanges(currentSourceFile.text, node.end); // trailing comments are emitted at space/*trailing comment1 */space/*trailing comment*/ emitComments(currentSourceFile, writer, trailingComments, /*trailingSeparator*/ false, newLine, writeComment); } @@ -5583,7 +5608,7 @@ module ts { } function emitLeadingCommentsOfLocalPosition(pos: number) { - var leadingComments: CommentRange[]; + let leadingComments: CommentRange[]; if (hasDetachedComments(pos)) { // get comments without detached comments leadingComments = getLeadingCommentsWithoutDetachedComments(); @@ -5598,15 +5623,15 @@ module ts { } function emitDetachedCommentsAtPosition(node: TextRange) { - var leadingComments = getLeadingCommentRanges(currentSourceFile.text, node.pos); + let leadingComments = getLeadingCommentRanges(currentSourceFile.text, node.pos); if (leadingComments) { - var detachedComments: CommentRange[] = []; - var lastComment: CommentRange; + let detachedComments: CommentRange[] = []; + let lastComment: CommentRange; forEach(leadingComments, comment => { if (lastComment) { - var lastCommentLine = getLineOfLocalPosition(currentSourceFile, lastComment.end); - var commentLine = getLineOfLocalPosition(currentSourceFile, comment.pos); + let lastCommentLine = getLineOfLocalPosition(currentSourceFile, lastComment.end); + let commentLine = getLineOfLocalPosition(currentSourceFile, comment.pos); if (commentLine >= lastCommentLine + 2) { // There was a blank line between the last comment and this comment. This @@ -5624,13 +5649,13 @@ module ts { // All comments look like they could have been part of the copyright header. Make // sure there is at least one blank line between it and the node. If not, it's not // a copyright header. - var lastCommentLine = getLineOfLocalPosition(currentSourceFile, detachedComments[detachedComments.length - 1].end); - var nodeLine = getLineOfLocalPosition(currentSourceFile, skipTrivia(currentSourceFile.text, node.pos)); + let lastCommentLine = getLineOfLocalPosition(currentSourceFile, detachedComments[detachedComments.length - 1].end); + let nodeLine = getLineOfLocalPosition(currentSourceFile, skipTrivia(currentSourceFile.text, node.pos)); if (nodeLine >= lastCommentLine + 2) { // Valid detachedComments emitNewLineBeforeLeadingComments(currentSourceFile, writer, node, leadingComments); emitComments(currentSourceFile, writer, detachedComments, /*trailingSeparator*/ true, newLine, writeComment); - var currentDetachedCommentInfo = { nodePos: node.pos, detachedCommentEndPos: detachedComments[detachedComments.length - 1].end }; + let currentDetachedCommentInfo = { nodePos: node.pos, detachedCommentEndPos: detachedComments[detachedComments.length - 1].end }; if (detachedCommentsInfo) { detachedCommentsInfo.push(currentDetachedCommentInfo); } @@ -5644,7 +5669,7 @@ module ts { /** Emits /// or pinned which is comment starting with /*! comments */ function emitPinnedOrTripleSlashComments(node: Node) { - var pinnedComments = ts.filter(getLeadingCommentsToEmit(node), isPinnedOrTripleSlashComment); + let pinnedComments = ts.filter(getLeadingCommentsToEmit(node), isPinnedOrTripleSlashComment); function isPinnedOrTripleSlashComment(comment: CommentRange) { if (currentSourceFile.text.charCodeAt(comment.pos + 1) === CharacterCodes.asterisk) { @@ -5667,13 +5692,13 @@ module ts { } function writeDeclarationFile(jsFilePath: string, sourceFile: SourceFile) { - var emitDeclarationResult = emitDeclarations(host, resolver, diagnostics, jsFilePath, sourceFile); + let emitDeclarationResult = emitDeclarations(host, resolver, diagnostics, jsFilePath, sourceFile); // TODO(shkamat): Should we not write any declaration file if any of them can produce error, // or should we just not write this file like we are doing now if (!emitDeclarationResult.reportedDeclarationError) { - var declarationOutput = emitDeclarationResult.referencePathsOutput; + let declarationOutput = emitDeclarationResult.referencePathsOutput; // apply additions - var appliedSyncOutputPos = 0; + let appliedSyncOutputPos = 0; forEach(emitDeclarationResult.aliasDeclarationEmitInfo, aliasEmitInfo => { if (aliasEmitInfo.asynchronousOutput) { declarationOutput += emitDeclarationResult.synchronousDeclarationOutput.substring(appliedSyncOutputPos, aliasEmitInfo.outputPos); diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index d76385ff9c0..f55f45e5679 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -2,8 +2,8 @@ /// module ts { - var nodeConstructors = new Array Node>(SyntaxKind.Count); - /* @internal */ export var parseTime = 0; + let nodeConstructors = new Array Node>(SyntaxKind.Count); + /* @internal */ export let parseTime = 0; export function getNodeConstructor(kind: SyntaxKind): new () => Node { return nodeConstructors[kind] || (nodeConstructors[kind] = objectAllocator.getNodeConstructor(kind)); @@ -27,8 +27,8 @@ module ts { function visitEachNode(cbNode: (node: Node) => T, nodes: Node[]) { if (nodes) { - for (var i = 0, len = nodes.length; i < len; i++) { - var result = cbNode(nodes[i]); + for (let node of nodes) { + let result = cbNode(node); if (result) { return result; } @@ -47,8 +47,8 @@ module ts { // The visitXXX functions could be written as local functions that close over the cbNode and cbNodeArray // callback parameters, but that causes a closure allocation for each invocation with noticeable effects // on performance. - var visitNodes: (cb: (node: Node | Node[]) => T, nodes: Node[]) => T = cbNodeArray ? visitNodeArray : visitEachNode; - var cbNodes = cbNodeArray || cbNode; + let visitNodes: (cb: (node: Node | Node[]) => T, nodes: Node[]) => T = cbNodeArray ? visitNodeArray : visitEachNode; + let cbNodes = cbNodeArray || cbNode; switch (node.kind) { case SyntaxKind.QualifiedName: return visitNode(cbNode, (node).left) || @@ -374,7 +374,7 @@ module ts { // overhead. This functions allows us to set all the parents, without all the expense of // binding. - var parent: Node = sourceFile; + let parent: Node = sourceFile; forEachChild(sourceFile, visitNode); return; @@ -385,7 +385,7 @@ module ts { if (n.parent !== parent) { n.parent = parent; - var saveParent = parent; + let saveParent = parent; parent = n; forEachChild(n, visitNode); parent = saveParent; @@ -437,8 +437,8 @@ module ts { array.pos += delta; array.end += delta; - for (var i = 0, n = array.length; i < n; i++) { - visitNode(array[i]); + for (let node of array) { + visitNode(node); } } } @@ -520,7 +520,7 @@ module ts { function checkNodePositions(node: Node, aggressiveChecks: boolean) { if (aggressiveChecks) { - var pos = node.pos; + let pos = node.pos; forEachChild(node, child => { Debug.assert(child.pos >= pos); pos = child.end; @@ -554,7 +554,7 @@ module ts { // Check if the element intersects the change range. If it does, then it is not // reusable. Also, we'll need to recurse to see what constituent portions we may // be able to use. - var fullEnd = child.end; + let fullEnd = child.end; if (fullEnd >= changeStart) { child.intersectsChange = true; child._children = undefined; @@ -583,15 +583,15 @@ module ts { // Check if the element intersects the change range. If it does, then it is not // reusable. Also, we'll need to recurse to see what constituent portions we may // be able to use. - var fullEnd = array.end; + let fullEnd = array.end; if (fullEnd >= changeStart) { array.intersectsChange = true; array._children = undefined; // Adjust the pos or end (or both) of the intersecting array accordingly. adjustIntersectingElement(array, changeStart, changeRangeOldEnd, changeRangeNewEnd, delta); - for (var i = 0, n = array.length; i < n; i++) { - visitNode(array[i]); + for (let node of array) { + visitNode(node); } return; } @@ -612,35 +612,35 @@ module ts { // (as it does not intersect the actual original change range). Because an edit may // change the token touching it, we actually need to look back *at least* one token so // that the prior token sees that change. - var maxLookahead = 1; + let maxLookahead = 1; - var start = changeRange.span.start; + let start = changeRange.span.start; // the first iteration aligns us with the change start. subsequent iteration move us to // the left by maxLookahead tokens. We only need to do this as long as we're not at the // start of the tree. - for (var i = 0; start > 0 && i <= maxLookahead; i++) { - var nearestNode = findNearestNodeStartingBeforeOrAtPosition(sourceFile, start); + for (let i = 0; start > 0 && i <= maxLookahead; i++) { + let nearestNode = findNearestNodeStartingBeforeOrAtPosition(sourceFile, start); Debug.assert(nearestNode.pos <= start); - var position = nearestNode.pos; + let position = nearestNode.pos; start = Math.max(0, position - 1); } - var finalSpan = createTextSpanFromBounds(start, textSpanEnd(changeRange.span)); - var finalLength = changeRange.newLength + (changeRange.span.start - start); + let finalSpan = createTextSpanFromBounds(start, textSpanEnd(changeRange.span)); + let finalLength = changeRange.newLength + (changeRange.span.start - start); return createTextChangeRange(finalSpan, finalLength); } function findNearestNodeStartingBeforeOrAtPosition(sourceFile: SourceFile, position: number): Node { - var bestResult: Node = sourceFile; - var lastNodeEntirelyBeforePosition: Node; + let bestResult: Node = sourceFile; + let lastNodeEntirelyBeforePosition: Node; forEachChild(sourceFile, visit); if (lastNodeEntirelyBeforePosition) { - var lastChildOfLastEntireNodeBeforePosition = getLastChild(lastNodeEntirelyBeforePosition); + let lastChildOfLastEntireNodeBeforePosition = getLastChild(lastNodeEntirelyBeforePosition); if (lastChildOfLastEntireNodeBeforePosition.pos > bestResult.pos) { bestResult = lastChildOfLastEntireNodeBeforePosition; } @@ -650,7 +650,7 @@ module ts { function getLastChild(node: Node): Node { while (true) { - var lastChild = getLastChildWorker(node); + let lastChild = getLastChildWorker(node); if (lastChild) { node = lastChild; } @@ -661,7 +661,7 @@ module ts { } function getLastChildWorker(node: Node): Node { - var last: Node = undefined; + let last: Node = undefined; forEachChild(node, child => { if (nodeIsPresent(child)) { last = child; @@ -729,17 +729,17 @@ module ts { } function checkChangeRange(sourceFile: SourceFile, newText: string, textChangeRange: TextChangeRange, aggressiveChecks: boolean) { - var oldText = sourceFile.text; + let oldText = sourceFile.text; if (textChangeRange) { Debug.assert((oldText.length - textChangeRange.span.length + textChangeRange.newLength) === newText.length); if (aggressiveChecks || Debug.shouldAssert(AssertionLevel.VeryAggressive)) { - var oldTextPrefix = oldText.substr(0, textChangeRange.span.start); - var newTextPrefix = newText.substr(0, textChangeRange.span.start); + let oldTextPrefix = oldText.substr(0, textChangeRange.span.start); + let newTextPrefix = newText.substr(0, textChangeRange.span.start); Debug.assert(oldTextPrefix === newTextPrefix); - var oldTextSuffix = oldText.substring(textSpanEnd(textChangeRange.span), oldText.length); - var newTextSuffix = newText.substring(textSpanEnd(textChangeRangeNewSpan(textChangeRange)), newText.length); + let oldTextSuffix = oldText.substring(textSpanEnd(textChangeRange.span), oldText.length); + let newTextSuffix = newText.substring(textSpanEnd(textChangeRangeNewSpan(textChangeRange)), newText.length); Debug.assert(oldTextSuffix === newTextSuffix); } } @@ -775,16 +775,16 @@ module ts { // This is because we do incremental parsing in-place. i.e. we take nodes from the old // tree and give them new positions and parents. From that point on, trusting the old // tree at all is not possible as far too much of it may violate invariants. - var incrementalSourceFile = sourceFile; + let incrementalSourceFile = sourceFile; Debug.assert(!incrementalSourceFile.hasBeenIncrementallyParsed); incrementalSourceFile.hasBeenIncrementallyParsed = true; - var oldText = sourceFile.text; - var syntaxCursor = createSyntaxCursor(sourceFile); + let oldText = sourceFile.text; + let syntaxCursor = createSyntaxCursor(sourceFile); // Make the actual change larger so that we know to reparse anything whose lookahead // might have intersected the change. - var changeRange = extendToAffectedRange(sourceFile, textChangeRange); + let changeRange = extendToAffectedRange(sourceFile, textChangeRange); checkChangeRange(sourceFile, newText, changeRange, aggressiveChecks); // Ensure that extending the affected range only moved the start of the change range @@ -796,7 +796,7 @@ module ts { // The is the amount the nodes after the edit range need to be adjusted. It can be // positive (if the edit added characters), negative (if the edit deleted characters) // or zero (if this was a pure overwrite with nothing added/removed). - var delta = textChangeRangeNewSpan(changeRange).length - changeRange.span.length; + let delta = textChangeRangeNewSpan(changeRange).length - changeRange.span.length; // If we added or removed characters during the edit, then we need to go and adjust all // the nodes after the edit. Those nodes may move forward (if we inserted chars) or they @@ -830,7 +830,7 @@ module ts { // inconsistent tree. Setting the parents on the new tree should be very fast. We // will immediately bail out of walking any subtrees when we can see that their parents // are already correct. - var result = parseSourceFile(sourceFile.fileName, newText, sourceFile.languageVersion, syntaxCursor, /* setParentNode */ true) + let result = parseSourceFile(sourceFile.fileName, newText, sourceFile.languageVersion, syntaxCursor, /* setParentNode */ true) return result; } @@ -843,7 +843,7 @@ module ts { /// Should be called only on prologue directives (isPrologueDirective(node) should be true) function isUseStrictPrologueDirective(sourceFile: SourceFile, node: Node): boolean { Debug.assert(isPrologueDirective(node)); - var nodeText = getSourceTextOfNodeFromSourceFile(sourceFile,(node).expression); + let nodeText = getSourceTextOfNodeFromSourceFile(sourceFile,(node).expression); // Note: the node text must be exactly "use strict" or 'use strict'. It is not ok for the // string to contain unicode escapes (as per ES5). @@ -877,12 +877,12 @@ module ts { } function createSyntaxCursor(sourceFile: SourceFile): SyntaxCursor { - var currentArray: NodeArray = sourceFile.statements; - var currentArrayIndex = 0; + let currentArray: NodeArray = sourceFile.statements; + let currentArrayIndex = 0; Debug.assert(currentArrayIndex < currentArray.length); - var current = currentArray[currentArrayIndex]; - var lastQueriedPosition = InvalidPosition.Value; + let current = currentArray[currentArrayIndex]; + let lastQueriedPosition = InvalidPosition.Value; return { currentNode(position: number) { @@ -949,8 +949,8 @@ module ts { if (position >= array.pos && position < array.end) { // position was in this array. Search through this array to see if we find a // viable element. - for (var i = 0, n = array.length; i < n; i++) { - var child = array[i]; + for (let i = 0, n = array.length; i < n; i++) { + let child = array[i]; if (child) { if (child.pos === position) { // Found the right node. We're done. @@ -978,21 +978,21 @@ module ts { } export function createSourceFile(fileName: string, sourceText: string, languageVersion: ScriptTarget, setParentNodes = false): SourceFile { - var start = new Date().getTime(); - var result = parseSourceFile(fileName, sourceText, languageVersion, /*syntaxCursor*/ undefined, setParentNodes); + let start = new Date().getTime(); + let result = parseSourceFile(fileName, sourceText, languageVersion, /*syntaxCursor*/ undefined, setParentNodes); parseTime += new Date().getTime() - start; return result; } function parseSourceFile(fileName: string, sourceText: string, languageVersion: ScriptTarget, syntaxCursor: SyntaxCursor, setParentNodes = false): SourceFile { - var parsingContext: ParsingContext = 0; - var identifiers: Map = {}; - var identifierCount = 0; - var nodeCount = 0; - var token: SyntaxKind; + let parsingContext: ParsingContext = 0; + let identifiers: Map = {}; + let identifierCount = 0; + let nodeCount = 0; + let token: SyntaxKind; - var sourceFile = createNode(SyntaxKind.SourceFile, /*pos*/ 0); + let sourceFile = createNode(SyntaxKind.SourceFile, /*pos*/ 0); sourceFile.pos = 0; sourceFile.end = sourceText.length; @@ -1050,7 +1050,7 @@ module ts { // Note: it should not be necessary to save/restore these flags during speculative/lookahead // parsing. These context flags are naturally stored and restored through normal recursive // descent parsing and unwinding. - var contextFlags: ParserContextFlags = 0; + let contextFlags: ParserContextFlags = 0; // Whether or not we've had a parse error since creating the last AST node. If we have // encountered an error, it will be stored on the next AST node we create. Parse errors @@ -1079,10 +1079,10 @@ module ts { // // Note: any errors at the end of the file that do not precede a regular node, should get // attached to the EOF token. - var parseErrorBeforeNextFinishedNode: boolean = false; + let parseErrorBeforeNextFinishedNode: boolean = false; // Create and prime the scanner before parsing the source elements. - var scanner = createScanner(languageVersion, /*skipTrivia*/ true, sourceText, scanError); + let scanner = createScanner(languageVersion, /*skipTrivia*/ true, sourceText, scanError); token = nextToken(); processReferenceComments(sourceFile); @@ -1132,7 +1132,7 @@ module ts { function allowInAnd(func: () => T): T { if (contextFlags & ParserContextFlags.DisallowIn) { setDisallowInContext(false); - var result = func(); + let result = func(); setDisallowInContext(true); return result; } @@ -1148,7 +1148,7 @@ module ts { } setDisallowInContext(true); - var result = func(); + let result = func(); setDisallowInContext(false); return result; } @@ -1160,7 +1160,7 @@ module ts { } setYieldContext(true); - var result = func(); + let result = func(); setYieldContext(false); return result; } @@ -1168,7 +1168,7 @@ module ts { function doOutsideOfYieldContext(func: () => T): T { if (contextFlags & ParserContextFlags.Yield) { setYieldContext(false); - var result = func(); + let result = func(); setYieldContext(true); return result; } @@ -1194,15 +1194,15 @@ module ts { } function parseErrorAtCurrentToken(message: DiagnosticMessage, arg0?: any): void { - var start = scanner.getTokenPos(); - var length = scanner.getTextPos() - start; + let start = scanner.getTokenPos(); + let length = scanner.getTextPos() - start; parseErrorAtPosition(start, length, message, arg0); } function parseErrorAtPosition(start: number, length: number, message: DiagnosticMessage, arg0?: any): void { // Don't report another error if it would just be at the same position as the last error. - var lastError = lastOrUndefined(sourceFile.parseDiagnostics); + let lastError = lastOrUndefined(sourceFile.parseDiagnostics); if (!lastError || start !== lastError.start) { sourceFile.parseDiagnostics.push(createFileDiagnostic(sourceFile, start, length, message, arg0)); } @@ -1213,7 +1213,7 @@ module ts { } function scanError(message: DiagnosticMessage, length?: number) { - var pos = scanner.getTextPos(); + let pos = scanner.getTextPos(); parseErrorAtPosition(pos, length || 0, message); } @@ -1248,20 +1248,20 @@ module ts { function speculationHelper(callback: () => T, isLookAhead: boolean): T { // Keep track of the state we'll need to rollback to if lookahead fails (or if the // caller asked us to always reset our state). - var saveToken = token; - var saveParseDiagnosticsLength = sourceFile.parseDiagnostics.length; - var saveParseErrorBeforeNextFinishedNode = parseErrorBeforeNextFinishedNode; + let saveToken = token; + let saveParseDiagnosticsLength = sourceFile.parseDiagnostics.length; + let saveParseErrorBeforeNextFinishedNode = parseErrorBeforeNextFinishedNode; // Note: it is not actually necessary to save/restore the context flags here. That's // because the saving/restorating of these flags happens naturally through the recursive // descent nature of our parser. However, we still store this here just so we can // assert that that invariant holds. - var saveContextFlags = contextFlags; + let saveContextFlags = contextFlags; // If we're only looking ahead, then tell the scanner to only lookahead as well. // Otherwise, if we're actually speculatively parsing, then tell the scanner to do the // same. - var result = isLookAhead + let result = isLookAhead ? scanner.lookAhead(callback) : scanner.tryScan(callback); @@ -1344,7 +1344,7 @@ module ts { } function parseTokenNode(): T { - var node = createNode(token); + let node = createNode(token); nextToken(); return finishNode(node); } @@ -1375,7 +1375,7 @@ module ts { function createNode(kind: SyntaxKind, pos?: number): Node { nodeCount++; - var node = new (nodeConstructors[kind] || (nodeConstructors[kind] = objectAllocator.getNodeConstructor(kind)))(); + let node = new (nodeConstructors[kind] || (nodeConstructors[kind] = objectAllocator.getNodeConstructor(kind)))(); if (!(pos >= 0)) { pos = scanner.getStartPos(); } @@ -1411,7 +1411,7 @@ module ts { parseErrorAtCurrentToken(diagnosticMessage, arg0); } - var result = createNode(kind, scanner.getStartPos()); + let result = createNode(kind, scanner.getStartPos()); (result).text = ""; return finishNode(result); } @@ -1427,7 +1427,7 @@ module ts { function createIdentifier(isIdentifier: boolean, diagnosticMessage?: DiagnosticMessage): Identifier { identifierCount++; if (isIdentifier) { - var node = createNode(SyntaxKind.Identifier); + let node = createNode(SyntaxKind.Identifier); node.text = internIdentifier(scanner.getTokenValue()); nextToken(); return finishNode(node); @@ -1469,13 +1469,13 @@ module ts { // ComputedPropertyName[Yield] : // [ AssignmentExpression[In, ?Yield] ] // - var node = createNode(SyntaxKind.ComputedPropertyName); + let node = createNode(SyntaxKind.ComputedPropertyName); parseExpected(SyntaxKind.OpenBracketToken); // We parse any expression (including a comma expression). But the grammar // says that only an assignment expression is allowed, so the grammar checker // will error if it sees a comma expression. - var yieldContext = inYieldContext(); + let yieldContext = inYieldContext(); if (inGeneratorParameterContext()) { setYieldContext(false); } @@ -1535,7 +1535,7 @@ module ts { // True if positioned at the start of a list element function isListElement(parsingContext: ParsingContext, inErrorRecovery: boolean): boolean { - var node = currentNode(parsingContext); + let node = currentNode(parsingContext); if (node) { return true; } @@ -1675,7 +1675,7 @@ module ts { // True if positioned at element or terminator of the current list or any enclosing list function isInSomeParsingContext(): boolean { - for (var kind = 0; kind < ParsingContext.Count; kind++) { + for (let kind = 0; kind < ParsingContext.Count; kind++) { if (parsingContext & (1 << kind)) { if (isListElement(kind, /* inErrorRecovery */ true) || isListTerminator(kind)) { return true; @@ -1688,15 +1688,15 @@ module ts { // Parses a list of elements function parseList(kind: ParsingContext, checkForStrictMode: boolean, parseElement: () => T): NodeArray { - var saveParsingContext = parsingContext; + let saveParsingContext = parsingContext; parsingContext |= 1 << kind; - var result = >[]; + let result = >[]; result.pos = getNodePos(); - var savedStrictModeContext = inStrictModeContext(); + let savedStrictModeContext = inStrictModeContext(); while (!isListTerminator(kind)) { if (isListElement(kind, /* inErrorRecovery */ false)) { - var element = parseListElement(kind, parseElement); + let element = parseListElement(kind, parseElement); result.push(element); // test elements only if we are not already in strict mode @@ -1727,7 +1727,7 @@ module ts { } function parseListElement(parsingContext: ParsingContext, parseElement: () => T): T { - var node = currentNode(parsingContext); + let node = currentNode(parsingContext); if (node) { return consumeNode(node); } @@ -1752,7 +1752,7 @@ module ts { return undefined; } - var node = syntaxCursor.currentNode(scanner.getStartPos()); + let node = syntaxCursor.currentNode(scanner.getStartPos()); // Can't reuse a missing node. if (nodeIsMissing(node)) { @@ -1781,7 +1781,7 @@ module ts { // differently depending on what mode it is in. // // This also applies to all our other context flags as well. - var nodeContextFlags = node.parserContextFlags & ParserContextFlags.ParserGeneratedFlags; + let nodeContextFlags = node.parserContextFlags & ParserContextFlags.ParserGeneratedFlags; if (nodeContextFlags !== contextFlags) { return undefined; } @@ -1979,19 +1979,19 @@ module ts { // Very subtle incremental parsing bug. Consider the following code: // - // var v = new List < A, B + // let v = new List < A, B // // This is actually legal code. It's a list of variable declarators "v = new List() + // let v = new List < A, B >() // // then we have a problem. "v = new Listnode; + let variableDeclarator = node; return variableDeclarator.initializer === undefined; } @@ -2001,7 +2001,7 @@ module ts { } // See the comment in isReusableVariableDeclaration for why we do this. - var parameter = node; + let parameter = node; return parameter.initializer === undefined; } @@ -2018,12 +2018,12 @@ module ts { // Parses a comma-delimited list of elements function parseDelimitedList(kind: ParsingContext, parseElement: () => T, considerSemicolonAsDelimeter?: boolean): NodeArray { - var saveParsingContext = parsingContext; + let saveParsingContext = parsingContext; parsingContext |= 1 << kind; - var result = >[]; + let result = >[]; result.pos = getNodePos(); - var commaStart = -1; // Meaning the previous token was not a comma + let commaStart = -1; // Meaning the previous token was not a comma while (true) { if (isListElement(kind, /* inErrorRecovery */ false)) { result.push(parseListElement(kind, parseElement)); @@ -2077,8 +2077,8 @@ module ts { } function createMissingList(): NodeArray { - var pos = getNodePos(); - var result = >[]; + let pos = getNodePos(); + let result = >[]; result.pos = pos; result.end = pos; return result; @@ -2086,7 +2086,7 @@ module ts { function parseBracketedList(kind: ParsingContext, parseElement: () => T, open: SyntaxKind, close: SyntaxKind): NodeArray { if (parseExpected(open)) { - var result = parseDelimitedList(kind, parseElement); + let result = parseDelimitedList(kind, parseElement); parseExpected(close); return result; } @@ -2096,9 +2096,9 @@ module ts { // The allowReservedWords parameter controls whether reserved words are permitted after the first dot function parseEntityName(allowReservedWords: boolean, diagnosticMessage?: DiagnosticMessage): EntityName { - var entity: EntityName = parseIdentifier(diagnosticMessage); + let entity: EntityName = parseIdentifier(diagnosticMessage); while (parseOptional(SyntaxKind.DotToken)) { - var node = createNode(SyntaxKind.QualifiedName, entity.pos); + let node = createNode(SyntaxKind.QualifiedName, entity.pos); node.left = entity; node.right = parseRightSideOfDot(allowReservedWords); entity = finishNode(node); @@ -2127,7 +2127,7 @@ module ts { // In the first case though, ASI will not take effect because there is not a // line terminator after the keyword. if (scanner.hasPrecedingLineBreak() && scanner.isReservedWord()) { - var matchesPattern = lookAhead(nextTokenIsIdentifierOrKeywordOnSameLine); + let matchesPattern = lookAhead(nextTokenIsIdentifierOrKeywordOnSameLine); if (matchesPattern) { // Report that we need an identifier. However, report it right after the dot, @@ -2141,12 +2141,12 @@ module ts { } function parseTemplateExpression(): TemplateExpression { - var template = createNode(SyntaxKind.TemplateExpression); + let template = createNode(SyntaxKind.TemplateExpression); template.head = parseLiteralNode(); Debug.assert(template.head.kind === SyntaxKind.TemplateHead, "Template head has wrong token kind"); - var templateSpans = >[]; + let templateSpans = >[]; templateSpans.pos = getNodePos(); do { @@ -2161,10 +2161,10 @@ module ts { } function parseTemplateSpan(): TemplateSpan { - var span = createNode(SyntaxKind.TemplateSpan); + let span = createNode(SyntaxKind.TemplateSpan); span.expression = allowInAnd(parseExpression); - var literal: LiteralExpression; + let literal: LiteralExpression; if (token === SyntaxKind.CloseBraceToken) { reScanTemplateToken() @@ -2179,8 +2179,8 @@ module ts { } function parseLiteralNode(internName?: boolean): LiteralExpression { - var node = createNode(token); - var text = scanner.getTokenValue(); + let node = createNode(token); + let text = scanner.getTokenValue(); node.text = internName ? internIdentifier(text) : text; if (scanner.hasExtendedUnicodeEscape()) { @@ -2191,7 +2191,7 @@ module ts { node.isUnterminated = true; } - var tokenPos = scanner.getTokenPos(); + let tokenPos = scanner.getTokenPos(); nextToken(); finishNode(node); @@ -2214,7 +2214,7 @@ module ts { // TYPES function parseTypeReference(): TypeReferenceNode { - var node = createNode(SyntaxKind.TypeReference); + let node = createNode(SyntaxKind.TypeReference); node.typeName = parseEntityName(/*allowReservedWords*/ false, Diagnostics.Type_expected); if (!scanner.hasPrecedingLineBreak() && token === SyntaxKind.LessThanToken) { node.typeArguments = parseBracketedList(ParsingContext.TypeArguments, parseType, SyntaxKind.LessThanToken, SyntaxKind.GreaterThanToken); @@ -2223,14 +2223,14 @@ module ts { } function parseTypeQuery(): TypeQueryNode { - var node = createNode(SyntaxKind.TypeQuery); + let node = createNode(SyntaxKind.TypeQuery); parseExpected(SyntaxKind.TypeOfKeyword); node.exprName = parseEntityName(/*allowReservedWords*/ true); return finishNode(node); } function parseTypeParameter(): TypeParameterDeclaration { - var node = createNode(SyntaxKind.TypeParameter); + let node = createNode(SyntaxKind.TypeParameter); node.name = parseIdentifier(); if (parseOptional(SyntaxKind.ExtendsKeyword)) { // It's not uncommon for people to write improper constraints to a generic. If the @@ -2283,7 +2283,7 @@ module ts { } function parseParameter(): ParameterDeclaration { - var node = createNode(SyntaxKind.Parameter); + let node = createNode(SyntaxKind.Parameter); setModifiers(node, parseModifiers()); node.dotDotDotToken = parseOptionalToken(SyntaxKind.DotDotDotToken); @@ -2329,7 +2329,7 @@ module ts { yieldAndGeneratorParameterContext: boolean, requireCompleteParameterList: boolean, signature: SignatureDeclaration): void { - var returnTokenRequired = returnToken === SyntaxKind.EqualsGreaterThanToken; + let returnTokenRequired = returnToken === SyntaxKind.EqualsGreaterThanToken; signature.typeParameters = parseTypeParameters(); signature.parameters = parseParameterList(yieldAndGeneratorParameterContext, requireCompleteParameterList); @@ -2362,13 +2362,13 @@ module ts { // [+GeneratorParameter]BindingIdentifier[Yield]Initializer[In]opt // [~GeneratorParameter]BindingIdentifier[?Yield]Initializer[In, ?Yield]opt if (parseExpected(SyntaxKind.OpenParenToken)) { - var savedYieldContext = inYieldContext(); - var savedGeneratorParameterContext = inGeneratorParameterContext(); + let savedYieldContext = inYieldContext(); + let savedGeneratorParameterContext = inGeneratorParameterContext(); setYieldContext(yieldAndGeneratorParameterContext); setGeneratorParameterContext(yieldAndGeneratorParameterContext); - var result = parseDelimitedList(ParsingContext.Parameters, parseParameter); + let result = parseDelimitedList(ParsingContext.Parameters, parseParameter); setYieldContext(savedYieldContext); setGeneratorParameterContext(savedGeneratorParameterContext); @@ -2400,7 +2400,7 @@ module ts { } function parseSignatureMember(kind: SyntaxKind): SignatureDeclaration { - var node = createNode(kind); + let node = createNode(kind); if (kind === SyntaxKind.ConstructSignature) { parseExpected(SyntaxKind.NewKeyword); } @@ -2473,8 +2473,8 @@ module ts { } function parseIndexSignatureDeclaration(modifiers: ModifiersArray): IndexSignatureDeclaration { - var fullStart = modifiers ? modifiers.pos : scanner.getStartPos(); - var node = createNode(SyntaxKind.IndexSignature, fullStart); + let fullStart = modifiers ? modifiers.pos : scanner.getStartPos(); + let node = createNode(SyntaxKind.IndexSignature, fullStart); setModifiers(node, modifiers); node.parameters = parseBracketedList(ParsingContext.Parameters, parseParameter, SyntaxKind.OpenBracketToken, SyntaxKind.CloseBracketToken); node.type = parseTypeAnnotation(); @@ -2483,12 +2483,12 @@ module ts { } function parsePropertyOrMethodSignature(): Declaration { - var fullStart = scanner.getStartPos(); - var name = parsePropertyName(); - var questionToken = parseOptionalToken(SyntaxKind.QuestionToken); + let fullStart = scanner.getStartPos(); + let name = parsePropertyName(); + let questionToken = parseOptionalToken(SyntaxKind.QuestionToken); if (token === SyntaxKind.OpenParenToken || token === SyntaxKind.LessThanToken) { - var method = createNode(SyntaxKind.MethodSignature, fullStart); + let method = createNode(SyntaxKind.MethodSignature, fullStart); method.name = name; method.questionToken = questionToken; @@ -2499,7 +2499,7 @@ module ts { return finishNode(method); } else { - var property = createNode(SyntaxKind.PropertySignature, fullStart); + let property = createNode(SyntaxKind.PropertySignature, fullStart); property.name = name; property.questionToken = questionToken; property.type = parseTypeAnnotation(); @@ -2516,7 +2516,7 @@ module ts { return true; default: if (isModifier(token)) { - var result = lookAhead(isStartOfIndexSignatureDeclaration); + let result = lookAhead(isStartOfIndexSignatureDeclaration); if (result) { return result; } @@ -2569,7 +2569,7 @@ module ts { // if it has the same text regardless of whether it is inside a class or an // object type. if (isModifier(token)) { - var result = tryParse(parseIndexSignatureWithModifiers); + let result = tryParse(parseIndexSignatureWithModifiers); if (result) { return result; } @@ -2582,7 +2582,7 @@ module ts { } function parseIndexSignatureWithModifiers() { - var modifiers = parseModifiers(); + let modifiers = parseModifiers(); return isIndexSignature() ? parseIndexSignatureDeclaration(modifiers) : undefined; @@ -2594,13 +2594,13 @@ module ts { } function parseTypeLiteral(): TypeLiteralNode { - var node = createNode(SyntaxKind.TypeLiteral); + let node = createNode(SyntaxKind.TypeLiteral); node.members = parseObjectTypeMembers(); return finishNode(node); } function parseObjectTypeMembers(): NodeArray { - var members: NodeArray; + let members: NodeArray; if (parseExpected(SyntaxKind.OpenBraceToken)) { members = parseList(ParsingContext.TypeMembers, /*checkForStrictMode*/ false, parseTypeMember); parseExpected(SyntaxKind.CloseBraceToken); @@ -2613,13 +2613,13 @@ module ts { } function parseTupleType(): TupleTypeNode { - var node = createNode(SyntaxKind.TupleType); + let node = createNode(SyntaxKind.TupleType); node.elementTypes = parseBracketedList(ParsingContext.TupleElementTypes, parseType, SyntaxKind.OpenBracketToken, SyntaxKind.CloseBracketToken); return finishNode(node); } function parseParenthesizedType(): ParenthesizedTypeNode { - var node = createNode(SyntaxKind.ParenthesizedType); + let node = createNode(SyntaxKind.ParenthesizedType); parseExpected(SyntaxKind.OpenParenToken); node.type = parseType(); parseExpected(SyntaxKind.CloseParenToken); @@ -2627,7 +2627,7 @@ module ts { } function parseFunctionOrConstructorType(kind: SyntaxKind): FunctionOrConstructorTypeNode { - var node = createNode(kind); + let node = createNode(kind); if (kind === SyntaxKind.ConstructorType) { parseExpected(SyntaxKind.NewKeyword); } @@ -2636,7 +2636,7 @@ module ts { } function parseKeywordAndNoDot(): TypeNode { - var node = parseTokenNode(); + let node = parseTokenNode(); return token === SyntaxKind.DotToken ? undefined : node; } @@ -2648,7 +2648,7 @@ module ts { case SyntaxKind.BooleanKeyword: case SyntaxKind.SymbolKeyword: // If these are followed by a dot, then parse these out as a dotted type reference instead. - var node = tryParse(parseKeywordAndNoDot); + let node = tryParse(parseKeywordAndNoDot); return node || parseTypeReference(); case SyntaxKind.VoidKeyword: return parseTokenNode(); @@ -2694,10 +2694,10 @@ module ts { } function parseArrayTypeOrHigher(): TypeNode { - var type = parseNonArrayType(); + let type = parseNonArrayType(); while (!scanner.hasPrecedingLineBreak() && parseOptional(SyntaxKind.OpenBracketToken)) { parseExpected(SyntaxKind.CloseBracketToken); - var node = createNode(SyntaxKind.ArrayType, type.pos); + let node = createNode(SyntaxKind.ArrayType, type.pos); node.elementType = type; type = finishNode(node); } @@ -2705,15 +2705,15 @@ module ts { } function parseUnionTypeOrHigher(): TypeNode { - var type = parseArrayTypeOrHigher(); + let type = parseArrayTypeOrHigher(); if (token === SyntaxKind.BarToken) { - var types = >[type]; + let types = >[type]; types.pos = type.pos; while (parseOptional(SyntaxKind.BarToken)) { types.push(parseArrayTypeOrHigher()); } types.end = getNodeEnd(); - var node = createNode(SyntaxKind.UnionType, type.pos); + let node = createNode(SyntaxKind.UnionType, type.pos); node.types = types; type = finishNode(node); } @@ -2761,13 +2761,13 @@ module ts { function parseType(): TypeNode { // The rules about 'yield' only apply to actual code/expression contexts. They don't // apply to 'type' contexts. So we disable these parameters here before moving on. - var savedYieldContext = inYieldContext(); - var savedGeneratorParameterContext = inGeneratorParameterContext(); + let savedYieldContext = inYieldContext(); + let savedGeneratorParameterContext = inGeneratorParameterContext(); setYieldContext(false); setGeneratorParameterContext(false); - var result = parseTypeWorker(); + let result = parseTypeWorker(); setYieldContext(savedYieldContext); setGeneratorParameterContext(savedGeneratorParameterContext); @@ -2848,8 +2848,8 @@ module ts { // AssignmentExpression[in] // Expression[in] , AssignmentExpression[in] - var expr = parseAssignmentExpressionOrHigher(); - var operatorToken: Node; + let expr = parseAssignmentExpressionOrHigher(); + let operatorToken: Node; while ((operatorToken = parseOptionalToken(SyntaxKind.CommaToken))) { expr = makeBinaryExpression(expr, operatorToken, parseAssignmentExpressionOrHigher()); } @@ -2900,7 +2900,7 @@ module ts { // parameter list. If we do, we must *not* recurse for productions 1, 2 or 3. An ArrowFunction is // not a LeftHandSideExpression, nor does it start a ConditionalExpression. So we are done // with AssignmentExpression if we see one. - var arrowExpression = tryParseParenthesizedArrowFunctionExpression(); + let arrowExpression = tryParseParenthesizedArrowFunctionExpression(); if (arrowExpression) { return arrowExpression; } @@ -2914,7 +2914,7 @@ module ts { // Otherwise, we try to parse out the conditional expression bit. We want to allow any // binary expression here, so we pass in the 'lowest' precedence here so that it matches // and consumes anything. - var expr = parseBinaryExpressionOrHigher(/*precedence:*/ 0); + let expr = parseBinaryExpressionOrHigher(/*precedence:*/ 0); // To avoid a look-ahead, we did not handle the case of an arrow function with a single un-parenthesized // parameter ('x => ...') above. We handle it here by checking if the parsed expression was a single @@ -2976,8 +2976,14 @@ module ts { return !scanner.hasPrecedingLineBreak() && isIdentifier() } + function nextTokenIsIdentifierOrStartOfDestructuringOnTheSameLine() { + nextToken(); + return !scanner.hasPrecedingLineBreak() && + (isIdentifier() || token === SyntaxKind.OpenBraceToken || token === SyntaxKind.OpenBracketToken); + } + function parseYieldExpression(): YieldExpression { - var node = createNode(SyntaxKind.YieldExpression); + let node = createNode(SyntaxKind.YieldExpression); // YieldExpression[In] : // yield @@ -3001,9 +3007,9 @@ module ts { function parseSimpleArrowFunctionExpression(identifier: Identifier): Expression { Debug.assert(token === SyntaxKind.EqualsGreaterThanToken, "parseSimpleArrowFunctionExpression should only have been called if we had a =>"); - var node = createNode(SyntaxKind.ArrowFunction, identifier.pos); + let node = createNode(SyntaxKind.ArrowFunction, identifier.pos); - var parameter = createNode(SyntaxKind.Parameter, identifier.pos); + let parameter = createNode(SyntaxKind.Parameter, identifier.pos); parameter.name = identifier; finishNode(parameter); @@ -3018,7 +3024,7 @@ module ts { } function tryParseParenthesizedArrowFunctionExpression(): Expression { - var triState = isParenthesizedArrowFunctionExpression(); + let triState = isParenthesizedArrowFunctionExpression(); if (triState === Tristate.False) { // It's definitely not a parenthesized arrow function expression. @@ -3029,7 +3035,7 @@ module ts { // following => or { token. Otherwise, we *might* have an arrow function. Try to parse // it out, but don't allow any ambiguity, and return 'undefined' if this could be an // expression instead. - var arrowFunction = triState === Tristate.True + let arrowFunction = triState === Tristate.True ? parseParenthesizedArrowFunctionExpressionHead(/*allowAmbiguity:*/ true) : tryParse(parsePossibleParenthesizedArrowFunctionExpressionHead); @@ -3071,8 +3077,8 @@ module ts { } function isParenthesizedArrowFunctionExpressionWorker() { - var first = token; - var second = nextToken(); + let first = token; + let second = nextToken(); if (first === SyntaxKind.OpenParenToken) { if (second === SyntaxKind.CloseParenToken) { @@ -3080,7 +3086,7 @@ module ts { // This is an arrow function with no parameters. // The last one is not actually an arrow function, // but this is probably what the user intended. - var third = nextToken(); + let third = nextToken(); switch (third) { case SyntaxKind.EqualsGreaterThanToken: case SyntaxKind.ColonToken: @@ -3135,7 +3141,7 @@ module ts { } function parseParenthesizedArrowFunctionExpressionHead(allowAmbiguity: boolean): FunctionExpression { - var node = createNode(SyntaxKind.ArrowFunction); + let node = createNode(SyntaxKind.ArrowFunction); // Arrow functions are never generators. // // If we're speculatively parsing a signature for a parenthesized arrow function, then @@ -3178,7 +3184,7 @@ module ts { // user meant to supply a block. For example, if the user wrote: // // a => - // var v = 0; + // let v = 0; // } // // they may be missing an open brace. Check to see if that's the case so we can @@ -3194,14 +3200,14 @@ module ts { function parseConditionalExpressionRest(leftOperand: Expression): Expression { // Note: we are passed in an expression which was produced from parseBinaryExpressionOrHigher. - var questionToken = parseOptionalToken(SyntaxKind.QuestionToken); + let questionToken = parseOptionalToken(SyntaxKind.QuestionToken); if (!questionToken) { return leftOperand; } // Note: we explicitly 'allowIn' in the whenTrue part of the condition expression, and // we do not that for the 'whenFalse' part. - var node = createNode(SyntaxKind.ConditionalExpression, leftOperand.pos); + let node = createNode(SyntaxKind.ConditionalExpression, leftOperand.pos); node.condition = leftOperand; node.questionToken = questionToken; node.whenTrue = allowInAnd(parseAssignmentExpressionOrHigher); @@ -3212,7 +3218,7 @@ module ts { } function parseBinaryExpressionOrHigher(precedence: number): Expression { - var leftOperand = parseUnaryExpressionOrHigher(); + let leftOperand = parseUnaryExpressionOrHigher(); return parseBinaryExpressionRest(precedence, leftOperand); } @@ -3226,7 +3232,7 @@ module ts { // reScanGreaterToken so that we merge token sequences like > and = into >= reScanGreaterToken(); - var newPrecedence = getBinaryOperatorPrecedence(); + let newPrecedence = getBinaryOperatorPrecedence(); // Check the precedence to see if we should "take" this operator if (newPrecedence <= precedence) { @@ -3294,7 +3300,7 @@ module ts { } function makeBinaryExpression(left: Expression, operatorToken: Node, right: Expression): BinaryExpression { - var node = createNode(SyntaxKind.BinaryExpression, left.pos); + let node = createNode(SyntaxKind.BinaryExpression, left.pos); node.left = left; node.operatorToken = operatorToken; node.right = right; @@ -3302,7 +3308,7 @@ module ts { } function parsePrefixUnaryExpression() { - var node = createNode(SyntaxKind.PrefixUnaryExpression); + let node = createNode(SyntaxKind.PrefixUnaryExpression); node.operator = token; nextToken(); node.operand = parseUnaryExpressionOrHigher(); @@ -3310,21 +3316,21 @@ module ts { } function parseDeleteExpression() { - var node = createNode(SyntaxKind.DeleteExpression); + let node = createNode(SyntaxKind.DeleteExpression); nextToken(); node.expression = parseUnaryExpressionOrHigher(); return finishNode(node); } function parseTypeOfExpression() { - var node = createNode(SyntaxKind.TypeOfExpression); + let node = createNode(SyntaxKind.TypeOfExpression); nextToken(); node.expression = parseUnaryExpressionOrHigher(); return finishNode(node); } function parseVoidExpression() { - var node = createNode(SyntaxKind.VoidExpression); + let node = createNode(SyntaxKind.VoidExpression); nextToken(); node.expression = parseUnaryExpressionOrHigher(); return finishNode(node); @@ -3353,11 +3359,11 @@ module ts { } function parsePostfixExpressionOrHigher(): PostfixExpression { - var expression = parseLeftHandSideExpressionOrHigher(); + let expression = parseLeftHandSideExpressionOrHigher(); Debug.assert(isLeftHandSideExpression(expression)); if ((token === SyntaxKind.PlusPlusToken || token === SyntaxKind.MinusMinusToken) && !scanner.hasPrecedingLineBreak()) { - var node = createNode(SyntaxKind.PostfixUnaryExpression, expression.pos); + let node = createNode(SyntaxKind.PostfixUnaryExpression, expression.pos); node.operand = expression; node.operator = token; nextToken(); @@ -3398,7 +3404,7 @@ module ts { // the last two CallExpression productions. Or we have a MemberExpression which either // completes the LeftHandSideExpression, or starts the beginning of the first four // CallExpression productions. - var expression = token === SyntaxKind.SuperKeyword + let expression = token === SyntaxKind.SuperKeyword ? parseSuperExpression() : parseMemberExpressionOrHigher(); @@ -3455,19 +3461,19 @@ module ts { // // Because CallExpression and MemberExpression are left recursive, we need to bottom out // of the recursion immediately. So we parse out a primary expression to start with. - var expression = parsePrimaryExpression(); + let expression = parsePrimaryExpression(); return parseMemberExpressionRest(expression); } function parseSuperExpression(): MemberExpression { - var expression = parseTokenNode(); + let expression = parseTokenNode(); if (token === SyntaxKind.OpenParenToken || token === SyntaxKind.DotToken) { return expression; } // If we have seen "super" it must be followed by '(' or '.'. // If it wasn't then just try to parse out a '.' and report an error. - var node = createNode(SyntaxKind.PropertyAccessExpression, expression.pos); + let node = createNode(SyntaxKind.PropertyAccessExpression, expression.pos); node.expression = expression; node.dotToken = parseExpectedToken(SyntaxKind.DotToken, /*reportAtCurrentPosition:*/ false, Diagnostics.super_must_be_followed_by_an_argument_list_or_member_access); node.name = parseRightSideOfDot(/*allowIdentifierNames:*/ true); @@ -3475,7 +3481,7 @@ module ts { } function parseTypeAssertion(): TypeAssertion { - var node = createNode(SyntaxKind.TypeAssertionExpression); + let node = createNode(SyntaxKind.TypeAssertionExpression); parseExpected(SyntaxKind.LessThanToken); node.type = parseType(); parseExpected(SyntaxKind.GreaterThanToken); @@ -3485,9 +3491,9 @@ module ts { function parseMemberExpressionRest(expression: LeftHandSideExpression): MemberExpression { while (true) { - var dotToken = parseOptionalToken(SyntaxKind.DotToken); + let dotToken = parseOptionalToken(SyntaxKind.DotToken); if (dotToken) { - var propertyAccess = createNode(SyntaxKind.PropertyAccessExpression, expression.pos); + let propertyAccess = createNode(SyntaxKind.PropertyAccessExpression, expression.pos); propertyAccess.expression = expression; propertyAccess.dotToken = dotToken; propertyAccess.name = parseRightSideOfDot(/*allowIdentifierNames:*/ true); @@ -3496,7 +3502,7 @@ module ts { } if (parseOptional(SyntaxKind.OpenBracketToken)) { - var indexedAccess = createNode(SyntaxKind.ElementAccessExpression, expression.pos); + let indexedAccess = createNode(SyntaxKind.ElementAccessExpression, expression.pos); indexedAccess.expression = expression; // It's not uncommon for a user to write: "new Type[]". @@ -3504,7 +3510,7 @@ module ts { if (token !== SyntaxKind.CloseBracketToken) { indexedAccess.argumentExpression = allowInAnd(parseExpression); if (indexedAccess.argumentExpression.kind === SyntaxKind.StringLiteral || indexedAccess.argumentExpression.kind === SyntaxKind.NumericLiteral) { - var literal = indexedAccess.argumentExpression; + let literal = indexedAccess.argumentExpression; literal.text = internIdentifier(literal.text); } } @@ -3515,7 +3521,7 @@ module ts { } if (token === SyntaxKind.NoSubstitutionTemplateLiteral || token === SyntaxKind.TemplateHead) { - var tagExpression = createNode(SyntaxKind.TaggedTemplateExpression, expression.pos); + let tagExpression = createNode(SyntaxKind.TaggedTemplateExpression, expression.pos); tagExpression.tag = expression; tagExpression.template = token === SyntaxKind.NoSubstitutionTemplateLiteral ? parseLiteralNode() @@ -3537,12 +3543,12 @@ module ts { // keep checking for postfix expressions. Otherwise, it's just a '<' that's // part of an arithmetic expression. Break out so we consume it higher in the // stack. - var typeArguments = tryParse(parseTypeArgumentsInExpression); + let typeArguments = tryParse(parseTypeArgumentsInExpression); if (!typeArguments) { return expression; } - var callExpr = createNode(SyntaxKind.CallExpression, expression.pos); + let callExpr = createNode(SyntaxKind.CallExpression, expression.pos); callExpr.expression = expression; callExpr.typeArguments = typeArguments; callExpr.arguments = parseArgumentList(); @@ -3550,7 +3556,7 @@ module ts { continue; } else if (token === SyntaxKind.OpenParenToken) { - var callExpr = createNode(SyntaxKind.CallExpression, expression.pos); + let callExpr = createNode(SyntaxKind.CallExpression, expression.pos); callExpr.expression = expression; callExpr.arguments = parseArgumentList(); expression = finishNode(callExpr); @@ -3563,7 +3569,7 @@ module ts { function parseArgumentList() { parseExpected(SyntaxKind.OpenParenToken); - var result = parseDelimitedList(ParsingContext.ArgumentExpressions, parseArgumentExpression); + let result = parseDelimitedList(ParsingContext.ArgumentExpressions, parseArgumentExpression); parseExpected(SyntaxKind.CloseParenToken); return result; } @@ -3573,7 +3579,7 @@ module ts { return undefined; } - var typeArguments = parseDelimitedList(ParsingContext.TypeArguments, parseType); + let typeArguments = parseDelimitedList(ParsingContext.TypeArguments, parseType); if (!parseExpected(SyntaxKind.GreaterThanToken)) { // If it doesn't have the closing > then it's definitely not an type argument list. return undefined; @@ -3657,7 +3663,7 @@ module ts { } function parseParenthesizedExpression(): ParenthesizedExpression { - var node = createNode(SyntaxKind.ParenthesizedExpression); + let node = createNode(SyntaxKind.ParenthesizedExpression); parseExpected(SyntaxKind.OpenParenToken); node.expression = allowInAnd(parseExpression); parseExpected(SyntaxKind.CloseParenToken); @@ -3665,7 +3671,7 @@ module ts { } function parseSpreadElement(): Expression { - var node = createNode(SyntaxKind.SpreadElementExpression); + let node = createNode(SyntaxKind.SpreadElementExpression); parseExpected(SyntaxKind.DotDotDotToken); node.expression = parseAssignmentExpressionOrHigher(); return finishNode(node); @@ -3682,7 +3688,7 @@ module ts { } function parseArrayLiteralExpression(): ArrayLiteralExpression { - var node = createNode(SyntaxKind.ArrayLiteralExpression); + let node = createNode(SyntaxKind.ArrayLiteralExpression); parseExpected(SyntaxKind.OpenBracketToken); if (scanner.hasPrecedingLineBreak()) node.flags |= NodeFlags.MultiLine; node.elements = parseDelimitedList(ParsingContext.ArrayLiteralMembers, parseArgumentOrArrayLiteralElement); @@ -3702,34 +3708,34 @@ module ts { } function parseObjectLiteralElement(): ObjectLiteralElement { - var fullStart = scanner.getStartPos(); - var modifiers = parseModifiers(); + let fullStart = scanner.getStartPos(); + let modifiers = parseModifiers(); - var accessor = tryParseAccessorDeclaration(fullStart, modifiers); + let accessor = tryParseAccessorDeclaration(fullStart, modifiers); if (accessor) { return accessor; } - var asteriskToken = parseOptionalToken(SyntaxKind.AsteriskToken); - var tokenIsIdentifier = isIdentifier(); - var nameToken = token; - var propertyName = parsePropertyName(); + let asteriskToken = parseOptionalToken(SyntaxKind.AsteriskToken); + let tokenIsIdentifier = isIdentifier(); + let nameToken = token; + let propertyName = parsePropertyName(); // Disallowing of optional property assignments happens in the grammar checker. - var questionToken = parseOptionalToken(SyntaxKind.QuestionToken); + let questionToken = parseOptionalToken(SyntaxKind.QuestionToken); if (asteriskToken || token === SyntaxKind.OpenParenToken || token === SyntaxKind.LessThanToken) { return parseMethodDeclaration(fullStart, modifiers, asteriskToken, propertyName, questionToken); } // Parse to check if it is short-hand property assignment or normal property assignment if ((token === SyntaxKind.CommaToken || token === SyntaxKind.CloseBraceToken) && tokenIsIdentifier) { - var shorthandDeclaration = createNode(SyntaxKind.ShorthandPropertyAssignment, fullStart); + let shorthandDeclaration = createNode(SyntaxKind.ShorthandPropertyAssignment, fullStart); shorthandDeclaration.name = propertyName; shorthandDeclaration.questionToken = questionToken; return finishNode(shorthandDeclaration); } else { - var propertyAssignment = createNode(SyntaxKind.PropertyAssignment, fullStart); + let propertyAssignment = createNode(SyntaxKind.PropertyAssignment, fullStart); propertyAssignment.name = propertyName; propertyAssignment.questionToken = questionToken; parseExpected(SyntaxKind.ColonToken); @@ -3739,7 +3745,7 @@ module ts { } function parseObjectLiteralExpression(): ObjectLiteralExpression { - var node = createNode(SyntaxKind.ObjectLiteralExpression); + let node = createNode(SyntaxKind.ObjectLiteralExpression); parseExpected(SyntaxKind.OpenBraceToken); if (scanner.hasPrecedingLineBreak()) { node.flags |= NodeFlags.MultiLine; @@ -3755,7 +3761,7 @@ module ts { // function * BindingIdentifier[Yield]opt (FormalParameters[Yield, GeneratorParameter]) { GeneratorBody[Yield] } // FunctionExpression: // function BindingIdentifieropt(FormalParameters) { FunctionBody } - var node = createNode(SyntaxKind.FunctionExpression); + let node = createNode(SyntaxKind.FunctionExpression); parseExpected(SyntaxKind.FunctionKeyword); node.asteriskToken = parseOptionalToken(SyntaxKind.AsteriskToken); node.name = node.asteriskToken ? doInYieldContext(parseOptionalIdentifier) : parseOptionalIdentifier(); @@ -3769,7 +3775,7 @@ module ts { } function parseNewExpression(): NewExpression { - var node = createNode(SyntaxKind.NewExpression); + let node = createNode(SyntaxKind.NewExpression); parseExpected(SyntaxKind.NewKeyword); node.expression = parseMemberExpressionOrHigher(); node.typeArguments = tryParse(parseTypeArgumentsInExpression); @@ -3782,7 +3788,7 @@ module ts { // STATEMENTS function parseBlock(ignoreMissingOpenBrace: boolean, checkForStrictMode: boolean, diagnosticMessage?: DiagnosticMessage): Block { - var node = createNode(SyntaxKind.Block); + let node = createNode(SyntaxKind.Block); if (parseExpected(SyntaxKind.OpenBraceToken, diagnosticMessage) || ignoreMissingOpenBrace) { node.statements = parseList(ParsingContext.BlockStatements, checkForStrictMode, parseStatement); parseExpected(SyntaxKind.CloseBraceToken); @@ -3794,10 +3800,10 @@ module ts { } function parseFunctionBlock(allowYield: boolean, ignoreMissingOpenBrace: boolean, diagnosticMessage?: DiagnosticMessage): Block { - var savedYieldContext = inYieldContext(); + let savedYieldContext = inYieldContext(); setYieldContext(allowYield); - var block = parseBlock(ignoreMissingOpenBrace, /*checkForStrictMode*/ true, diagnosticMessage); + let block = parseBlock(ignoreMissingOpenBrace, /*checkForStrictMode*/ true, diagnosticMessage); setYieldContext(savedYieldContext); @@ -3805,13 +3811,13 @@ module ts { } function parseEmptyStatement(): Statement { - var node = createNode(SyntaxKind.EmptyStatement); + let node = createNode(SyntaxKind.EmptyStatement); parseExpected(SyntaxKind.SemicolonToken); return finishNode(node); } function parseIfStatement(): IfStatement { - var node = createNode(SyntaxKind.IfStatement); + let node = createNode(SyntaxKind.IfStatement); parseExpected(SyntaxKind.IfKeyword); parseExpected(SyntaxKind.OpenParenToken); node.expression = allowInAnd(parseExpression); @@ -3822,7 +3828,7 @@ module ts { } function parseDoStatement(): DoStatement { - var node = createNode(SyntaxKind.DoStatement); + let node = createNode(SyntaxKind.DoStatement); parseExpected(SyntaxKind.DoKeyword); node.statement = parseStatement(); parseExpected(SyntaxKind.WhileKeyword); @@ -3839,7 +3845,7 @@ module ts { } function parseWhileStatement(): WhileStatement { - var node = createNode(SyntaxKind.WhileStatement); + let node = createNode(SyntaxKind.WhileStatement); parseExpected(SyntaxKind.WhileKeyword); parseExpected(SyntaxKind.OpenParenToken); node.expression = allowInAnd(parseExpression); @@ -3849,11 +3855,11 @@ module ts { } function parseForOrForInOrForOfStatement(): Statement { - var pos = getNodePos(); + let pos = getNodePos(); parseExpected(SyntaxKind.ForKeyword); parseExpected(SyntaxKind.OpenParenToken); - var initializer: VariableDeclarationList | Expression = undefined; + let initializer: VariableDeclarationList | Expression = undefined; if (token !== SyntaxKind.SemicolonToken) { if (token === SyntaxKind.VarKeyword || token === SyntaxKind.LetKeyword || token === SyntaxKind.ConstKeyword) { initializer = parseVariableDeclarationList(/*inForStatementInitializer:*/ true); @@ -3862,22 +3868,22 @@ module ts { initializer = disallowInAnd(parseExpression); } } - var forOrForInOrForOfStatement: IterationStatement; + let forOrForInOrForOfStatement: IterationStatement; if (parseOptional(SyntaxKind.InKeyword)) { - var forInStatement = createNode(SyntaxKind.ForInStatement, pos); + let forInStatement = createNode(SyntaxKind.ForInStatement, pos); forInStatement.initializer = initializer; forInStatement.expression = allowInAnd(parseExpression); parseExpected(SyntaxKind.CloseParenToken); forOrForInOrForOfStatement = forInStatement; } else if (parseOptional(SyntaxKind.OfKeyword)) { - var forOfStatement = createNode(SyntaxKind.ForOfStatement, pos); + let forOfStatement = createNode(SyntaxKind.ForOfStatement, pos); forOfStatement.initializer = initializer; forOfStatement.expression = allowInAnd(parseAssignmentExpressionOrHigher); parseExpected(SyntaxKind.CloseParenToken); forOrForInOrForOfStatement = forOfStatement; } else { - var forStatement = createNode(SyntaxKind.ForStatement, pos); + let forStatement = createNode(SyntaxKind.ForStatement, pos); forStatement.initializer = initializer; parseExpected(SyntaxKind.SemicolonToken); if (token !== SyntaxKind.SemicolonToken && token !== SyntaxKind.CloseParenToken) { @@ -3897,7 +3903,7 @@ module ts { } function parseBreakOrContinueStatement(kind: SyntaxKind): BreakOrContinueStatement { - var node = createNode(kind); + let node = createNode(kind); parseExpected(kind === SyntaxKind.BreakStatement ? SyntaxKind.BreakKeyword : SyntaxKind.ContinueKeyword); if (!canParseSemicolon()) { @@ -3909,7 +3915,7 @@ module ts { } function parseReturnStatement(): ReturnStatement { - var node = createNode(SyntaxKind.ReturnStatement); + let node = createNode(SyntaxKind.ReturnStatement); parseExpected(SyntaxKind.ReturnKeyword); if (!canParseSemicolon()) { @@ -3921,7 +3927,7 @@ module ts { } function parseWithStatement(): WithStatement { - var node = createNode(SyntaxKind.WithStatement); + let node = createNode(SyntaxKind.WithStatement); parseExpected(SyntaxKind.WithKeyword); parseExpected(SyntaxKind.OpenParenToken); node.expression = allowInAnd(parseExpression); @@ -3931,7 +3937,7 @@ module ts { } function parseCaseClause(): CaseClause { - var node = createNode(SyntaxKind.CaseClause); + let node = createNode(SyntaxKind.CaseClause); parseExpected(SyntaxKind.CaseKeyword); node.expression = allowInAnd(parseExpression); parseExpected(SyntaxKind.ColonToken); @@ -3940,7 +3946,7 @@ module ts { } function parseDefaultClause(): DefaultClause { - var node = createNode(SyntaxKind.DefaultClause); + let node = createNode(SyntaxKind.DefaultClause); parseExpected(SyntaxKind.DefaultKeyword); parseExpected(SyntaxKind.ColonToken); node.statements = parseList(ParsingContext.SwitchClauseStatements, /*checkForStrictMode*/ false, parseStatement); @@ -3952,12 +3958,12 @@ module ts { } function parseSwitchStatement(): SwitchStatement { - var node = createNode(SyntaxKind.SwitchStatement); + let node = createNode(SyntaxKind.SwitchStatement); parseExpected(SyntaxKind.SwitchKeyword); parseExpected(SyntaxKind.OpenParenToken); node.expression = allowInAnd(parseExpression); parseExpected(SyntaxKind.CloseParenToken); - var caseBlock = createNode(SyntaxKind.CaseBlock, scanner.getStartPos()); + let caseBlock = createNode(SyntaxKind.CaseBlock, scanner.getStartPos()); parseExpected(SyntaxKind.OpenBraceToken); caseBlock.clauses = parseList(ParsingContext.SwitchClauses, /*checkForStrictMode*/ false, parseCaseOrDefaultClause); parseExpected(SyntaxKind.CloseBraceToken); @@ -3974,7 +3980,7 @@ module ts { // directly as that might consume an expression on the following line. // We just return 'undefined' in that case. The actual error will be reported in the // grammar walker. - var node = createNode(SyntaxKind.ThrowStatement); + let node = createNode(SyntaxKind.ThrowStatement); parseExpected(SyntaxKind.ThrowKeyword); node.expression = scanner.hasPrecedingLineBreak() ? undefined : allowInAnd(parseExpression); parseSemicolon(); @@ -3983,7 +3989,7 @@ module ts { // TODO: Review for error recovery function parseTryStatement(): TryStatement { - var node = createNode(SyntaxKind.TryStatement); + let node = createNode(SyntaxKind.TryStatement); parseExpected(SyntaxKind.TryKeyword); node.tryBlock = parseBlock(/*ignoreMissingOpenBrace:*/ false, /*checkForStrictMode*/ false); @@ -4000,7 +4006,7 @@ module ts { } function parseCatchClause(): CatchClause { - var result = createNode(SyntaxKind.CatchClause); + let result = createNode(SyntaxKind.CatchClause); parseExpected(SyntaxKind.CatchKeyword); if (parseExpected(SyntaxKind.OpenParenToken)) { result.variableDeclaration = parseVariableDeclaration(); @@ -4012,7 +4018,7 @@ module ts { } function parseDebuggerStatement(): Statement { - var node = createNode(SyntaxKind.DebuggerStatement); + let node = createNode(SyntaxKind.DebuggerStatement); parseExpected(SyntaxKind.DebuggerKeyword); parseSemicolon(); return finishNode(node); @@ -4022,17 +4028,17 @@ module ts { // Avoiding having to do the lookahead for a labeled statement by just trying to parse // out an expression, seeing if it is identifier and then seeing if it is followed by // a colon. - var fullStart = scanner.getStartPos(); - var expression = allowInAnd(parseExpression); + let fullStart = scanner.getStartPos(); + let expression = allowInAnd(parseExpression); if (expression.kind === SyntaxKind.Identifier && parseOptional(SyntaxKind.ColonToken)) { - var labeledStatement = createNode(SyntaxKind.LabeledStatement, fullStart); + let labeledStatement = createNode(SyntaxKind.LabeledStatement, fullStart); labeledStatement.label = expression; labeledStatement.statement = parseStatement(); return finishNode(labeledStatement); } else { - var expressionStatement = createNode(SyntaxKind.ExpressionStatement, fullStart); + let expressionStatement = createNode(SyntaxKind.ExpressionStatement, fullStart); expressionStatement.expression = expression; parseSemicolon(); return finishNode(expressionStatement); @@ -4046,7 +4052,7 @@ module ts { // as the parser will produce the same FunctionDeclaraiton or VariableStatement if it has // the same text regardless of whether it is inside a block or not. if (isModifier(token)) { - var result = lookAhead(parseVariableStatementOrFunctionDeclarationWithModifiers); + let result = lookAhead(parseVariableStatementOrFunctionDeclarationWithModifiers); if (result) { return true; } @@ -4086,7 +4092,7 @@ module ts { // const keyword can precede enum keyword when defining constant enums // 'const enum' do not start statement. // In ES 6 'enum' is a future reserved keyword, so it should not be used as identifier - var isConstEnum = lookAhead(nextTokenIsEnumKeyword); + let isConstEnum = lookAhead(nextTokenIsEnumKeyword); return !isConstEnum; case SyntaxKind.InterfaceKeyword: case SyntaxKind.ClassKeyword: @@ -4176,7 +4182,7 @@ module ts { // same FunctionDeclaraiton or VariableStatement if it has the same text // regardless of whether it is inside a block or not. if (isModifier(token)) { - var result = tryParse(parseVariableStatementOrFunctionDeclarationWithModifiers); + let result = tryParse(parseVariableStatementOrFunctionDeclarationWithModifiers); if (result) { return result; } @@ -4187,11 +4193,11 @@ module ts { } function parseVariableStatementOrFunctionDeclarationWithModifiers(): FunctionDeclaration | VariableStatement { - var start = scanner.getStartPos(); - var modifiers = parseModifiers(); + let start = scanner.getStartPos(); + let modifiers = parseModifiers(); switch (token) { case SyntaxKind.ConstKeyword: - var nextTokenIsEnum = lookAhead(nextTokenIsEnumKeyword) + let nextTokenIsEnum = lookAhead(nextTokenIsEnumKeyword) if (nextTokenIsEnum) { return undefined; } @@ -4227,7 +4233,7 @@ module ts { if (token === SyntaxKind.CommaToken) { return createNode(SyntaxKind.OmittedExpression); } - var node = createNode(SyntaxKind.BindingElement); + let node = createNode(SyntaxKind.BindingElement); node.dotDotDotToken = parseOptionalToken(SyntaxKind.DotDotDotToken); node.name = parseIdentifierOrPattern(); node.initializer = parseInitializer(/*inParameter*/ false); @@ -4235,9 +4241,9 @@ module ts { } function parseObjectBindingElement(): BindingElement { - var node = createNode(SyntaxKind.BindingElement); + let node = createNode(SyntaxKind.BindingElement); // TODO(andersh): Handle computed properties - var id = parsePropertyName(); + let id = parsePropertyName(); if (id.kind === SyntaxKind.Identifier && token !== SyntaxKind.ColonToken) { node.name = id; } @@ -4251,7 +4257,7 @@ module ts { } function parseObjectBindingPattern(): BindingPattern { - var node = createNode(SyntaxKind.ObjectBindingPattern); + let node = createNode(SyntaxKind.ObjectBindingPattern); parseExpected(SyntaxKind.OpenBraceToken); node.elements = parseDelimitedList(ParsingContext.ObjectBindingElements, parseObjectBindingElement); parseExpected(SyntaxKind.CloseBraceToken); @@ -4259,7 +4265,7 @@ module ts { } function parseArrayBindingPattern(): BindingPattern { - var node = createNode(SyntaxKind.ArrayBindingPattern); + let node = createNode(SyntaxKind.ArrayBindingPattern); parseExpected(SyntaxKind.OpenBracketToken); node.elements = parseDelimitedList(ParsingContext.ArrayBindingElements, parseArrayBindingElement); parseExpected(SyntaxKind.CloseBracketToken); @@ -4281,7 +4287,7 @@ module ts { } function parseVariableDeclaration(): VariableDeclaration { - var node = createNode(SyntaxKind.VariableDeclaration); + let node = createNode(SyntaxKind.VariableDeclaration); node.name = parseIdentifierOrPattern(); node.type = parseTypeAnnotation(); if (!isInOrOfKeyword(token)) { @@ -4291,7 +4297,7 @@ module ts { } function parseVariableDeclarationList(inForStatementInitializer: boolean): VariableDeclarationList { - var node = createNode(SyntaxKind.VariableDeclarationList); + let node = createNode(SyntaxKind.VariableDeclarationList); switch (token) { case SyntaxKind.VarKeyword: @@ -4310,7 +4316,7 @@ module ts { // The user may have written the following: // - // for (var of X) { } + // for (let of X) { } // // In this case, we want to parse an empty declaration list, and then parse 'of' // as a keyword. The reason this is not automatic is that 'of' is a valid identifier. @@ -4321,7 +4327,7 @@ module ts { node.declarations = createMissingList(); } else { - var savedDisallowIn = inDisallowInContext(); + let savedDisallowIn = inDisallowInContext(); setDisallowInContext(inForStatementInitializer); node.declarations = parseDelimitedList(ParsingContext.VariableDeclarations, parseVariableDeclaration); @@ -4337,7 +4343,7 @@ module ts { } function parseVariableStatement(fullStart: number, modifiers: ModifiersArray): VariableStatement { - var node = createNode(SyntaxKind.VariableStatement, fullStart); + let node = createNode(SyntaxKind.VariableStatement, fullStart); setModifiers(node, modifiers); node.declarationList = parseVariableDeclarationList(/*inForStatementInitializer:*/ false); parseSemicolon(); @@ -4345,7 +4351,7 @@ module ts { } function parseFunctionDeclaration(fullStart: number, modifiers: ModifiersArray): FunctionDeclaration { - var node = createNode(SyntaxKind.FunctionDeclaration, fullStart); + let node = createNode(SyntaxKind.FunctionDeclaration, fullStart); setModifiers(node, modifiers); parseExpected(SyntaxKind.FunctionKeyword); node.asteriskToken = parseOptionalToken(SyntaxKind.AsteriskToken); @@ -4356,7 +4362,7 @@ module ts { } function parseConstructorDeclaration(pos: number, modifiers: ModifiersArray): ConstructorDeclaration { - var node = createNode(SyntaxKind.Constructor, pos); + let node = createNode(SyntaxKind.Constructor, pos); setModifiers(node, modifiers); parseExpected(SyntaxKind.ConstructorKeyword); fillSignature(SyntaxKind.ColonToken, /*yieldAndGeneratorParameterContext:*/ false, /*requireCompleteParameterList:*/ false, node); @@ -4365,7 +4371,7 @@ module ts { } function parseMethodDeclaration(fullStart: number, modifiers: ModifiersArray, asteriskToken: Node, name: DeclarationName, questionToken: Node, diagnosticMessage?: DiagnosticMessage): MethodDeclaration { - var method = createNode(SyntaxKind.MethodDeclaration, fullStart); + let method = createNode(SyntaxKind.MethodDeclaration, fullStart); setModifiers(method, modifiers); method.asteriskToken = asteriskToken; method.name = name; @@ -4376,17 +4382,17 @@ module ts { } function parsePropertyOrMethodDeclaration(fullStart: number, modifiers: ModifiersArray): ClassElement { - var asteriskToken = parseOptionalToken(SyntaxKind.AsteriskToken); - var name = parsePropertyName(); + let asteriskToken = parseOptionalToken(SyntaxKind.AsteriskToken); + let name = parsePropertyName(); // Note: this is not legal as per the grammar. But we allow it in the parser and // report an error in the grammar checker. - var questionToken = parseOptionalToken(SyntaxKind.QuestionToken); + let questionToken = parseOptionalToken(SyntaxKind.QuestionToken); if (asteriskToken || token === SyntaxKind.OpenParenToken || token === SyntaxKind.LessThanToken) { return parseMethodDeclaration(fullStart, modifiers, asteriskToken, name, questionToken, Diagnostics.or_expected); } else { - var property = createNode(SyntaxKind.PropertyDeclaration, fullStart); + let property = createNode(SyntaxKind.PropertyDeclaration, fullStart); setModifiers(property, modifiers); property.name = name; property.questionToken = questionToken; @@ -4402,7 +4408,7 @@ module ts { } function parseAccessorDeclaration(kind: SyntaxKind, fullStart: number, modifiers: ModifiersArray): AccessorDeclaration { - var node = createNode(kind, fullStart); + let node = createNode(kind, fullStart); setModifiers(node, modifiers); node.name = parsePropertyName(); fillSignature(SyntaxKind.ColonToken, /*yieldAndGeneratorParameterContext:*/ false, /*requireCompleteParameterList:*/ false, node); @@ -4411,7 +4417,7 @@ module ts { } function isClassMemberStart(): boolean { - var idToken: SyntaxKind; + let idToken: SyntaxKind; // Eat up all modifiers, but hold on to the last one in case it is actually an identifier. while (isModifier(token)) { @@ -4465,11 +4471,11 @@ module ts { } function parseModifiers(): ModifiersArray { - var flags = 0; - var modifiers: ModifiersArray; + let flags = 0; + let modifiers: ModifiersArray; while (true) { - var modifierStart = scanner.getStartPos(); - var modifierKind = token; + let modifierStart = scanner.getStartPos(); + let modifierKind = token; if (!parseAnyContextualModifier()) { break; @@ -4490,10 +4496,10 @@ module ts { } function parseClassElement(): ClassElement { - var fullStart = getNodePos(); - var modifiers = parseModifiers(); + let fullStart = getNodePos(); + let modifiers = parseModifiers(); - var accessor = tryParseAccessorDeclaration(fullStart, modifiers); + let accessor = tryParseAccessorDeclaration(fullStart, modifiers); if (accessor) { return accessor; } @@ -4522,7 +4528,7 @@ module ts { } function parseClassDeclaration(fullStart: number, modifiers: ModifiersArray): ClassDeclaration { - var node = createNode(SyntaxKind.ClassDeclaration, fullStart); + let node = createNode(SyntaxKind.ClassDeclaration, fullStart); setModifiers(node, modifiers); parseExpected(SyntaxKind.ClassKeyword); node.name = node.flags & NodeFlags.Default ? parseOptionalIdentifier() : parseIdentifier(); @@ -4565,7 +4571,7 @@ module ts { function parseHeritageClause() { if (token === SyntaxKind.ExtendsKeyword || token === SyntaxKind.ImplementsKeyword) { - var node = createNode(SyntaxKind.HeritageClause); + let node = createNode(SyntaxKind.HeritageClause); node.token = token; nextToken(); node.types = parseDelimitedList(ParsingContext.TypeReferences, parseTypeReference); @@ -4584,7 +4590,7 @@ module ts { } function parseInterfaceDeclaration(fullStart: number, modifiers: ModifiersArray): InterfaceDeclaration { - var node = createNode(SyntaxKind.InterfaceDeclaration, fullStart); + let node = createNode(SyntaxKind.InterfaceDeclaration, fullStart); setModifiers(node, modifiers); parseExpected(SyntaxKind.InterfaceKeyword); node.name = parseIdentifier(); @@ -4595,7 +4601,7 @@ module ts { } function parseTypeAliasDeclaration(fullStart: number, modifiers: ModifiersArray): TypeAliasDeclaration { - var node = createNode(SyntaxKind.TypeAliasDeclaration, fullStart); + let node = createNode(SyntaxKind.TypeAliasDeclaration, fullStart); setModifiers(node, modifiers); parseExpected(SyntaxKind.TypeKeyword); node.name = parseIdentifier(); @@ -4610,14 +4616,14 @@ module ts { // ConstantEnumMemberSection, which starts at the beginning of an enum declaration // or any time an integer literal initializer is encountered. function parseEnumMember(): EnumMember { - var node = createNode(SyntaxKind.EnumMember, scanner.getStartPos()); + let node = createNode(SyntaxKind.EnumMember, scanner.getStartPos()); node.name = parsePropertyName(); node.initializer = allowInAnd(parseNonParameterInitializer); return finishNode(node); } function parseEnumDeclaration(fullStart: number, modifiers: ModifiersArray): EnumDeclaration { - var node = createNode(SyntaxKind.EnumDeclaration, fullStart); + let node = createNode(SyntaxKind.EnumDeclaration, fullStart); setModifiers(node, modifiers); parseExpected(SyntaxKind.EnumKeyword); node.name = parseIdentifier(); @@ -4632,7 +4638,7 @@ module ts { } function parseModuleBlock(): ModuleBlock { - var node = createNode(SyntaxKind.ModuleBlock, scanner.getStartPos()); + let node = createNode(SyntaxKind.ModuleBlock, scanner.getStartPos()); if (parseExpected(SyntaxKind.OpenBraceToken)) { node.statements = parseList(ParsingContext.ModuleElements, /*checkForStrictMode*/false, parseModuleElement); parseExpected(SyntaxKind.CloseBraceToken); @@ -4644,7 +4650,7 @@ module ts { } function parseInternalModuleTail(fullStart: number, modifiers: ModifiersArray, flags: NodeFlags): ModuleDeclaration { - var node = createNode(SyntaxKind.ModuleDeclaration, fullStart); + let node = createNode(SyntaxKind.ModuleDeclaration, fullStart); setModifiers(node, modifiers); node.flags |= flags; node.name = parseIdentifier(); @@ -4655,7 +4661,7 @@ module ts { } function parseAmbientExternalModuleDeclaration(fullStart: number, modifiers: ModifiersArray): ModuleDeclaration { - var node = createNode(SyntaxKind.ModuleDeclaration, fullStart); + let node = createNode(SyntaxKind.ModuleDeclaration, fullStart); setModifiers(node, modifiers); node.name = parseLiteralNode(/*internName:*/ true); node.body = parseModuleBlock(); @@ -4686,16 +4692,16 @@ module ts { function parseImportDeclarationOrImportEqualsDeclaration(fullStart: number, modifiers: ModifiersArray): ImportEqualsDeclaration | ImportDeclaration { parseExpected(SyntaxKind.ImportKeyword); - var afterImportPos = scanner.getStartPos(); + let afterImportPos = scanner.getStartPos(); - var identifier: Identifier; + let identifier: Identifier; if (isIdentifier()) { identifier = parseIdentifier(); if (token !== SyntaxKind.CommaToken && token !== SyntaxKind.FromKeyword) { // ImportEquals declaration of type: // import x = require("mod"); or // import x = M.x; - var importEqualsDeclaration = createNode(SyntaxKind.ImportEqualsDeclaration, fullStart); + let importEqualsDeclaration = createNode(SyntaxKind.ImportEqualsDeclaration, fullStart); setModifiers(importEqualsDeclaration, modifiers); importEqualsDeclaration.name = identifier; parseExpected(SyntaxKind.EqualsToken); @@ -4706,7 +4712,7 @@ module ts { } // Import statement - var importDeclaration = createNode(SyntaxKind.ImportDeclaration, fullStart); + let importDeclaration = createNode(SyntaxKind.ImportDeclaration, fullStart); setModifiers(importDeclaration, modifiers); // ImportDeclaration: @@ -4732,7 +4738,7 @@ module ts { // ImportedDefaultBinding, NameSpaceImport // ImportedDefaultBinding, NamedImports - var importClause = createNode(SyntaxKind.ImportClause, fullStart); + let importClause = createNode(SyntaxKind.ImportClause, fullStart); if (identifier) { // ImportedDefaultBinding: // ImportedBinding @@ -4756,7 +4762,7 @@ module ts { } function parseExternalModuleReference() { - var node = createNode(SyntaxKind.ExternalModuleReference); + let node = createNode(SyntaxKind.ExternalModuleReference); parseExpected(SyntaxKind.RequireKeyword); parseExpected(SyntaxKind.OpenParenToken); node.expression = parseModuleSpecifier(); @@ -4768,7 +4774,7 @@ module ts { // We allow arbitrary expressions here, even though the grammar only allows string // literals. We check to ensure that it is only a string literal later in the grammar // walker. - var result = parseExpression(); + let result = parseExpression(); // Ensure the string being required is in our 'identifier' table. This will ensure // that features like 'find refs' will look inside this file when search for its name. if (result.kind === SyntaxKind.StringLiteral) { @@ -4780,7 +4786,7 @@ module ts { function parseNamespaceImport(): NamespaceImport { // NameSpaceImport: // * as ImportedBinding - var namespaceImport = createNode(SyntaxKind.NamespaceImport); + let namespaceImport = createNode(SyntaxKind.NamespaceImport); parseExpected(SyntaxKind.AsteriskToken); parseExpected(SyntaxKind.AsKeyword); namespaceImport.name = parseIdentifier(); @@ -4788,7 +4794,7 @@ module ts { } function parseNamedImportsOrExports(kind: SyntaxKind): NamedImportsOrExports { - var node = createNode(kind); + let node = createNode(kind); // NamedImports: // { } @@ -4813,13 +4819,13 @@ module ts { } function parseImportOrExportSpecifier(kind: SyntaxKind): ImportOrExportSpecifier { - var node = createNode(kind); + let node = createNode(kind); // ImportSpecifier: // ImportedBinding // IdentifierName as ImportedBinding - var isFirstIdentifierNameNotAnIdentifier = isKeyword(token) && !isIdentifier(); - var start = scanner.getTokenPos(); - var identifierName = parseIdentifierName(); + let isFirstIdentifierNameNotAnIdentifier = isKeyword(token) && !isIdentifier(); + let start = scanner.getTokenPos(); + let identifierName = parseIdentifierName(); if (token === SyntaxKind.AsKeyword) { node.propertyName = identifierName; parseExpected(SyntaxKind.AsKeyword); @@ -4842,7 +4848,7 @@ module ts { } function parseExportDeclaration(fullStart: number, modifiers: ModifiersArray): ExportDeclaration { - var node = createNode(SyntaxKind.ExportDeclaration, fullStart); + let node = createNode(SyntaxKind.ExportDeclaration, fullStart); setModifiers(node, modifiers); if (parseOptional(SyntaxKind.AsteriskToken)) { parseExpected(SyntaxKind.FromKeyword); @@ -4859,7 +4865,7 @@ module ts { } function parseExportAssignment(fullStart: number, modifiers: ModifiersArray): ExportAssignment { - var node = createNode(SyntaxKind.ExportAssignment, fullStart); + let node = createNode(SyntaxKind.ExportAssignment, fullStart); setModifiers(node, modifiers); if (parseOptional(SyntaxKind.EqualsToken)) { node.isExportEquals = true; @@ -4879,9 +4885,9 @@ module ts { } function isLetDeclaration() { - // It is let declaration if in strict mode or next token is identifier on same line. + // It is let declaration if in strict mode or next token is identifier\open bracket\open curly on same line. // otherwise it needs to be treated like identifier - return inStrictModeContext() || lookAhead(nextTokenIsIdentifierOnSameLine); + return inStrictModeContext() || lookAhead(nextTokenIsIdentifierOrStartOfDestructuringOnTheSameLine); } function isDeclarationStart(): boolean { @@ -4953,8 +4959,8 @@ module ts { } function parseDeclaration(): ModuleElement { - var fullStart = getNodePos(); - var modifiers = parseModifiers(); + let fullStart = getNodePos(); + let modifiers = parseModifiers(); if (token === SyntaxKind.ExportKeyword) { nextToken(); if (token === SyntaxKind.DefaultKeyword || token === SyntaxKind.EqualsToken) { @@ -5008,16 +5014,16 @@ module ts { } function processReferenceComments(sourceFile: SourceFile): void { - var triviaScanner = createScanner(sourceFile.languageVersion, /*skipTrivia*/false, sourceText); - var referencedFiles: FileReference[] = []; - var amdDependencies: {path: string; name: string}[] = []; - var amdModuleName: string; + let triviaScanner = createScanner(sourceFile.languageVersion, /*skipTrivia*/false, sourceText); + let referencedFiles: FileReference[] = []; + let amdDependencies: {path: string; name: string}[] = []; + let amdModuleName: string; // Keep scanning all the leading trivia in the file until we get to something that // isn't trivia. Any single line comment will be analyzed to see if it is a // reference comment. while (true) { - var kind = triviaScanner.scan(); + let kind = triviaScanner.scan(); if (kind === SyntaxKind.WhitespaceTrivia || kind === SyntaxKind.NewLineTrivia || kind === SyntaxKind.MultiLineCommentTrivia) { continue; } @@ -5025,14 +5031,14 @@ module ts { break; } - var range = { pos: triviaScanner.getTokenPos(), end: triviaScanner.getTextPos() }; + let range = { pos: triviaScanner.getTokenPos(), end: triviaScanner.getTextPos() }; - var comment = sourceText.substring(range.pos, range.end); - var referencePathMatchResult = getFileReferenceFromReferencePath(comment, range); + let comment = sourceText.substring(range.pos, range.end); + let referencePathMatchResult = getFileReferenceFromReferencePath(comment, range); if (referencePathMatchResult) { - var fileReference = referencePathMatchResult.fileReference; + let fileReference = referencePathMatchResult.fileReference; sourceFile.hasNoDefaultLib = referencePathMatchResult.isNoDefaultLib; - var diagnosticMessage = referencePathMatchResult.diagnosticMessage; + let diagnosticMessage = referencePathMatchResult.diagnosticMessage; if (fileReference) { referencedFiles.push(fileReference); } @@ -5041,8 +5047,8 @@ module ts { } } else { - var amdModuleNameRegEx = /^\/\/\/\s* module ts { - /* @internal */ export var emitTime = 0; - /* @internal */ export var ioReadTime = 0; + /* @internal */ export let emitTime = 0; + /* @internal */ export let ioReadTime = 0; /** The version of the TypeScript compiler release */ - export var version = "1.5.0.0"; + export let version = "1.5.0.0"; export function createCompilerHost(options: CompilerOptions): CompilerHost { - var currentDirectory: string; - var existingDirectories: Map = {}; + let currentDirectory: string; + let existingDirectories: Map = {}; function getCanonicalFileName(fileName: string): string { // if underlying system can distinguish between two files whose names differs only in cases then file name already in canonical form. @@ -19,12 +19,13 @@ module ts { } // returned by CScript sys environment - var unsupportedFileEncodingErrorCode = -2147024809; + let unsupportedFileEncodingErrorCode = -2147024809; function getSourceFile(fileName: string, languageVersion: ScriptTarget, onError?: (message: string) => void): SourceFile { + let text: string; try { - var start = new Date().getTime(); - var text = sys.readFile(fileName, options.charset); + let start = new Date().getTime(); + text = sys.readFile(fileName, options.charset); ioReadTime += new Date().getTime() - start; } catch (e) { @@ -53,7 +54,7 @@ module ts { function ensureDirectoriesExist(directoryPath: string) { if (directoryPath.length > getRootLength(directoryPath) && !directoryExists(directoryPath)) { - var parentDirectory = getDirectoryPath(directoryPath); + let parentDirectory = getDirectoryPath(directoryPath); ensureDirectoriesExist(parentDirectory); sys.createDirectory(directoryPath); } @@ -82,7 +83,7 @@ module ts { } export function getPreEmitDiagnostics(program: Program): Diagnostic[] { - var diagnostics = program.getSyntacticDiagnostics().concat(program.getGlobalDiagnostics()).concat(program.getSemanticDiagnostics()); + let diagnostics = program.getSyntacticDiagnostics().concat(program.getGlobalDiagnostics()).concat(program.getSemanticDiagnostics()); return sortAndDeduplicateDiagnostics(diagnostics); } @@ -91,15 +92,15 @@ module ts { return messageText; } else { - var diagnosticChain = messageText; - var result = ""; + let diagnosticChain = messageText; + let result = ""; - var indent = 0; + let indent = 0; while (diagnosticChain) { if (indent) { result += newLine; - for (var i = 0; i < indent; i++) { + for (let i = 0; i < indent; i++) { result += " "; } } @@ -113,12 +114,12 @@ module ts { } export function createProgram(rootNames: string[], options: CompilerOptions, host?: CompilerHost): Program { - var program: Program; - var files: SourceFile[] = []; - var filesByName: Map = {}; - var diagnostics = createDiagnosticCollection(); - var seenNoDefaultLib = options.noLib; - var commonSourceDirectory: string; + let program: Program; + let files: SourceFile[] = []; + let filesByName: Map = {}; + let diagnostics = createDiagnosticCollection(); + let seenNoDefaultLib = options.noLib; + let commonSourceDirectory: string; host = host || createCompilerHost(options); forEach(rootNames, name => processRootFile(name, false)); @@ -127,8 +128,8 @@ module ts { } verifyCompilerOptions(); - var diagnosticsProducingTypeChecker: TypeChecker; - var noDiagnosticsTypeChecker: TypeChecker; + let diagnosticsProducingTypeChecker: TypeChecker; + let noDiagnosticsTypeChecker: TypeChecker; program = { getSourceFile: getSourceFile, @@ -172,7 +173,7 @@ module ts { } function getDeclarationDiagnostics(targetSourceFile: SourceFile): Diagnostic[] { - var resolver = getDiagnosticsProducingTypeChecker().getEmitResolver(targetSourceFile); + let resolver = getDiagnosticsProducingTypeChecker().getEmitResolver(targetSourceFile); return ts.getDeclarationDiagnostics(getEmitHost(), resolver, targetSourceFile); } @@ -186,11 +187,11 @@ module ts { // Create the emit resolver outside of the "emitTime" tracking code below. That way // any cost associated with it (like type checking) are appropriate associated with // the type-checking counter. - var emitResolver = getDiagnosticsProducingTypeChecker().getEmitResolver(sourceFile); + let emitResolver = getDiagnosticsProducingTypeChecker().getEmitResolver(sourceFile); - var start = new Date().getTime(); + let start = new Date().getTime(); - var emitResult = emitFiles( + let emitResult = emitFiles( emitResolver, getEmitHost(writeFileCallback), sourceFile); @@ -209,7 +210,7 @@ module ts { return getDiagnostics(sourceFile); } - var allDiagnostics: Diagnostic[] = []; + let allDiagnostics: Diagnostic[] = []; forEach(program.getSourceFiles(), sourceFile => { addRange(allDiagnostics, getDiagnostics(sourceFile)); }); @@ -230,20 +231,20 @@ module ts { } function getSemanticDiagnosticsForFile(sourceFile: SourceFile): Diagnostic[] { - var typeChecker = getDiagnosticsProducingTypeChecker(); + let typeChecker = getDiagnosticsProducingTypeChecker(); Debug.assert(!!sourceFile.bindDiagnostics); - var bindDiagnostics = sourceFile.bindDiagnostics; - var checkDiagnostics = typeChecker.getDiagnostics(sourceFile); - var programDiagnostics = diagnostics.getDiagnostics(sourceFile.fileName); + let bindDiagnostics = sourceFile.bindDiagnostics; + let checkDiagnostics = typeChecker.getDiagnostics(sourceFile); + let programDiagnostics = diagnostics.getDiagnostics(sourceFile.fileName); return bindDiagnostics.concat(checkDiagnostics).concat(programDiagnostics); } function getGlobalDiagnostics(): Diagnostic[] { - var typeChecker = getDiagnosticsProducingTypeChecker(); + let typeChecker = getDiagnosticsProducingTypeChecker(); - var allDiagnostics: Diagnostic[] = []; + let allDiagnostics: Diagnostic[] = []; addRange(allDiagnostics, typeChecker.getGlobalDiagnostics()); addRange(allDiagnostics, diagnostics.getGlobalDiagnostics()); @@ -259,11 +260,13 @@ module ts { } function processSourceFile(fileName: string, isDefaultLib: boolean, refFile?: SourceFile, refPos?: number, refEnd?: number) { + let start: number; + let length: number; if (refEnd !== undefined && refPos !== undefined) { - var start = refPos; - var length = refEnd - refPos; + start = refPos; + length = refEnd - refPos; } - var diagnostic: DiagnosticMessage; + let diagnostic: DiagnosticMessage; if (hasExtension(fileName)) { if (!options.allowNonTsExtensions && !fileExtensionIs(host.getCanonicalFileName(fileName), ".ts")) { diagnostic = Diagnostics.File_0_must_have_extension_ts_or_d_ts; @@ -297,20 +300,20 @@ module ts { // Get source file from normalized fileName function findSourceFile(fileName: string, isDefaultLib: boolean, refFile?: SourceFile, refStart?: number, refLength?: number): SourceFile { - var canonicalName = host.getCanonicalFileName(fileName); + let canonicalName = host.getCanonicalFileName(fileName); if (hasProperty(filesByName, canonicalName)) { // We've already looked for this file, use cached result return getSourceFileFromCache(fileName, canonicalName, /*useAbsolutePath*/ false); } else { - var normalizedAbsolutePath = getNormalizedAbsolutePath(fileName, host.getCurrentDirectory()); - var canonicalAbsolutePath = host.getCanonicalFileName(normalizedAbsolutePath); + let normalizedAbsolutePath = getNormalizedAbsolutePath(fileName, host.getCurrentDirectory()); + let canonicalAbsolutePath = host.getCanonicalFileName(normalizedAbsolutePath); if (hasProperty(filesByName, canonicalAbsolutePath)) { return getSourceFileFromCache(normalizedAbsolutePath, canonicalAbsolutePath, /*useAbsolutePath*/ true); } // We haven't looked for this file, do so now and cache result - var file = filesByName[canonicalName] = host.getSourceFile(fileName, options.target, hostErrorMessage => { + let file = filesByName[canonicalName] = host.getSourceFile(fileName, options.target, hostErrorMessage => { if (refFile) { diagnostics.add(createFileDiagnostic(refFile, refStart, refLength, Diagnostics.Cannot_read_file_0_Colon_1, fileName, hostErrorMessage)); @@ -326,7 +329,7 @@ module ts { filesByName[canonicalAbsolutePath] = file; if (!options.noResolve) { - var basePath = getDirectoryPath(fileName); + let basePath = getDirectoryPath(fileName); processReferencedFiles(file, basePath); processImportedModules(file, basePath); } @@ -337,13 +340,14 @@ module ts { files.push(file); } } + + return file; } - return file; function getSourceFileFromCache(fileName: string, canonicalName: string, useAbsolutePath: boolean): SourceFile { - var file = filesByName[canonicalName]; + let file = filesByName[canonicalName]; if (file && host.useCaseSensitiveFileNames()) { - var sourceFileName = useAbsolutePath ? getNormalizedAbsolutePath(file.fileName, host.getCurrentDirectory()) : file.fileName; + let sourceFileName = useAbsolutePath ? getNormalizedAbsolutePath(file.fileName, host.getCurrentDirectory()) : file.fileName; if (canonicalName !== sourceFileName) { diagnostics.add(createFileDiagnostic(refFile, refStart, refLength, Diagnostics.File_name_0_differs_from_already_included_file_name_1_only_in_casing, fileName, sourceFileName)); @@ -355,7 +359,7 @@ module ts { function processReferencedFiles(file: SourceFile, basePath: string) { forEach(file.referencedFiles, ref => { - var referencedFileName = isRootedDiskPath(ref.fileName) ? ref.fileName : combinePaths(basePath, ref.fileName); + let referencedFileName = isRootedDiskPath(ref.fileName) ? ref.fileName : combinePaths(basePath, ref.fileName); processSourceFile(normalizePath(referencedFileName), /* isDefaultLib */ false, file, ref.pos, ref.end); }); } @@ -363,17 +367,17 @@ module ts { function processImportedModules(file: SourceFile, basePath: string) { forEach(file.statements, node => { if (node.kind === SyntaxKind.ImportDeclaration || node.kind === SyntaxKind.ImportEqualsDeclaration || node.kind === SyntaxKind.ExportDeclaration) { - var moduleNameExpr = getExternalModuleName(node); + let moduleNameExpr = getExternalModuleName(node); if (moduleNameExpr && moduleNameExpr.kind === SyntaxKind.StringLiteral) { - var moduleNameText = (moduleNameExpr).text; + let moduleNameText = (moduleNameExpr).text; if (moduleNameText) { - var searchPath = basePath; + let searchPath = basePath; while (true) { - var searchName = normalizePath(combinePaths(searchPath, moduleNameText)); + let searchName = normalizePath(combinePaths(searchPath, moduleNameText)); if (findModuleSourceFile(searchName + ".ts", moduleNameExpr) || findModuleSourceFile(searchName + ".d.ts", moduleNameExpr)) { break; } - var parentPath = getDirectoryPath(searchPath); + let parentPath = getDirectoryPath(searchPath); if (parentPath === searchPath) { break; } @@ -392,14 +396,14 @@ module ts { if (isExternalModuleImportEqualsDeclaration(node) && getExternalModuleImportEqualsDeclarationExpression(node).kind === SyntaxKind.StringLiteral) { - var nameLiteral = getExternalModuleImportEqualsDeclarationExpression(node); - var moduleName = nameLiteral.text; + let nameLiteral = getExternalModuleImportEqualsDeclarationExpression(node); + let moduleName = nameLiteral.text; if (moduleName) { // TypeScript 1.0 spec (April 2014): 12.1.6 // An ExternalImportDeclaration in anAmbientExternalModuleDeclaration may reference other external modules // only through top - level external module names. Relative external module names are not permitted. - var searchName = normalizePath(combinePaths(basePath, moduleName)); - var tsFile = findModuleSourceFile(searchName + ".ts", nameLiteral); + let searchName = normalizePath(combinePaths(basePath, moduleName)); + let tsFile = findModuleSourceFile(searchName + ".ts", nameLiteral); if (!tsFile) { findModuleSourceFile(searchName + ".d.ts", nameLiteral); } @@ -426,10 +430,10 @@ module ts { return; } - var firstExternalModuleSourceFile = forEach(files, f => isExternalModule(f) ? f : undefined); + let firstExternalModuleSourceFile = forEach(files, f => isExternalModule(f) ? f : undefined); if (firstExternalModuleSourceFile && !options.module) { // We cannot use createDiagnosticFromNode because nodes do not have parents yet - var span = getErrorSpanForNode(firstExternalModuleSourceFile, firstExternalModuleSourceFile.externalModuleIndicator); + let span = getErrorSpanForNode(firstExternalModuleSourceFile, firstExternalModuleSourceFile.externalModuleIndicator); diagnostics.add(createFileDiagnostic(firstExternalModuleSourceFile, span.start, span.length, Diagnostics.Cannot_compile_external_modules_unless_the_module_flag_is_provided)); } @@ -440,15 +444,15 @@ module ts { (options.mapRoot && // there is --mapRoot Specified and there would be multiple js files generated (!options.out || firstExternalModuleSourceFile !== undefined))) { - var commonPathComponents: string[]; + let commonPathComponents: string[]; forEach(files, sourceFile => { // Each file contributes into common source file path if (!(sourceFile.flags & NodeFlags.DeclarationFile) && !fileExtensionIs(sourceFile.fileName, ".js")) { - var sourcePathComponents = getNormalizedPathComponents(sourceFile.fileName, host.getCurrentDirectory()); + let sourcePathComponents = getNormalizedPathComponents(sourceFile.fileName, host.getCurrentDirectory()); sourcePathComponents.pop(); // FileName is not part of directory if (commonPathComponents) { - for (var i = 0; i < Math.min(commonPathComponents.length, sourcePathComponents.length); i++) { + for (let i = 0; i < Math.min(commonPathComponents.length, sourcePathComponents.length); i++) { if (commonPathComponents[i] !== sourcePathComponents[i]) { if (i === 0) { diagnostics.add(createCompilerDiagnostic(Diagnostics.Cannot_find_the_common_subdirectory_path_for_the_input_files)); diff --git a/src/compiler/scanner.ts b/src/compiler/scanner.ts index 9bb66f10f41..fbcadab8c1d 100644 --- a/src/compiler/scanner.ts +++ b/src/compiler/scanner.ts @@ -37,7 +37,7 @@ module ts { tryScan(callback: () => T): T; } - var textToToken: Map = { + let textToToken: Map = { "any": SyntaxKind.AnyKeyword, "as": SyntaxKind.AsKeyword, "boolean": SyntaxKind.BooleanKeyword, @@ -170,8 +170,8 @@ module ts { Codepoint ranges for ES3 Identifiers are extracted from the Unicode 3.0.0 specification at: http://www.unicode.org/Public/3.0-Update/UnicodeData-3.0.0.txt */ - var unicodeES3IdentifierStart = [170, 170, 181, 181, 186, 186, 192, 214, 216, 246, 248, 543, 546, 563, 592, 685, 688, 696, 699, 705, 720, 721, 736, 740, 750, 750, 890, 890, 902, 902, 904, 906, 908, 908, 910, 929, 931, 974, 976, 983, 986, 1011, 1024, 1153, 1164, 1220, 1223, 1224, 1227, 1228, 1232, 1269, 1272, 1273, 1329, 1366, 1369, 1369, 1377, 1415, 1488, 1514, 1520, 1522, 1569, 1594, 1600, 1610, 1649, 1747, 1749, 1749, 1765, 1766, 1786, 1788, 1808, 1808, 1810, 1836, 1920, 1957, 2309, 2361, 2365, 2365, 2384, 2384, 2392, 2401, 2437, 2444, 2447, 2448, 2451, 2472, 2474, 2480, 2482, 2482, 2486, 2489, 2524, 2525, 2527, 2529, 2544, 2545, 2565, 2570, 2575, 2576, 2579, 2600, 2602, 2608, 2610, 2611, 2613, 2614, 2616, 2617, 2649, 2652, 2654, 2654, 2674, 2676, 2693, 2699, 2701, 2701, 2703, 2705, 2707, 2728, 2730, 2736, 2738, 2739, 2741, 2745, 2749, 2749, 2768, 2768, 2784, 2784, 2821, 2828, 2831, 2832, 2835, 2856, 2858, 2864, 2866, 2867, 2870, 2873, 2877, 2877, 2908, 2909, 2911, 2913, 2949, 2954, 2958, 2960, 2962, 2965, 2969, 2970, 2972, 2972, 2974, 2975, 2979, 2980, 2984, 2986, 2990, 2997, 2999, 3001, 3077, 3084, 3086, 3088, 3090, 3112, 3114, 3123, 3125, 3129, 3168, 3169, 3205, 3212, 3214, 3216, 3218, 3240, 3242, 3251, 3253, 3257, 3294, 3294, 3296, 3297, 3333, 3340, 3342, 3344, 3346, 3368, 3370, 3385, 3424, 3425, 3461, 3478, 3482, 3505, 3507, 3515, 3517, 3517, 3520, 3526, 3585, 3632, 3634, 3635, 3648, 3654, 3713, 3714, 3716, 3716, 3719, 3720, 3722, 3722, 3725, 3725, 3732, 3735, 3737, 3743, 3745, 3747, 3749, 3749, 3751, 3751, 3754, 3755, 3757, 3760, 3762, 3763, 3773, 3773, 3776, 3780, 3782, 3782, 3804, 3805, 3840, 3840, 3904, 3911, 3913, 3946, 3976, 3979, 4096, 4129, 4131, 4135, 4137, 4138, 4176, 4181, 4256, 4293, 4304, 4342, 4352, 4441, 4447, 4514, 4520, 4601, 4608, 4614, 4616, 4678, 4680, 4680, 4682, 4685, 4688, 4694, 4696, 4696, 4698, 4701, 4704, 4742, 4744, 4744, 4746, 4749, 4752, 4782, 4784, 4784, 4786, 4789, 4792, 4798, 4800, 4800, 4802, 4805, 4808, 4814, 4816, 4822, 4824, 4846, 4848, 4878, 4880, 4880, 4882, 4885, 4888, 4894, 4896, 4934, 4936, 4954, 5024, 5108, 5121, 5740, 5743, 5750, 5761, 5786, 5792, 5866, 6016, 6067, 6176, 6263, 6272, 6312, 7680, 7835, 7840, 7929, 7936, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8023, 8025, 8025, 8027, 8027, 8029, 8029, 8031, 8061, 8064, 8116, 8118, 8124, 8126, 8126, 8130, 8132, 8134, 8140, 8144, 8147, 8150, 8155, 8160, 8172, 8178, 8180, 8182, 8188, 8319, 8319, 8450, 8450, 8455, 8455, 8458, 8467, 8469, 8469, 8473, 8477, 8484, 8484, 8486, 8486, 8488, 8488, 8490, 8493, 8495, 8497, 8499, 8505, 8544, 8579, 12293, 12295, 12321, 12329, 12337, 12341, 12344, 12346, 12353, 12436, 12445, 12446, 12449, 12538, 12540, 12542, 12549, 12588, 12593, 12686, 12704, 12727, 13312, 19893, 19968, 40869, 40960, 42124, 44032, 55203, 63744, 64045, 64256, 64262, 64275, 64279, 64285, 64285, 64287, 64296, 64298, 64310, 64312, 64316, 64318, 64318, 64320, 64321, 64323, 64324, 64326, 64433, 64467, 64829, 64848, 64911, 64914, 64967, 65008, 65019, 65136, 65138, 65140, 65140, 65142, 65276, 65313, 65338, 65345, 65370, 65382, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500, ]; - var unicodeES3IdentifierPart = [170, 170, 181, 181, 186, 186, 192, 214, 216, 246, 248, 543, 546, 563, 592, 685, 688, 696, 699, 705, 720, 721, 736, 740, 750, 750, 768, 846, 864, 866, 890, 890, 902, 902, 904, 906, 908, 908, 910, 929, 931, 974, 976, 983, 986, 1011, 1024, 1153, 1155, 1158, 1164, 1220, 1223, 1224, 1227, 1228, 1232, 1269, 1272, 1273, 1329, 1366, 1369, 1369, 1377, 1415, 1425, 1441, 1443, 1465, 1467, 1469, 1471, 1471, 1473, 1474, 1476, 1476, 1488, 1514, 1520, 1522, 1569, 1594, 1600, 1621, 1632, 1641, 1648, 1747, 1749, 1756, 1759, 1768, 1770, 1773, 1776, 1788, 1808, 1836, 1840, 1866, 1920, 1968, 2305, 2307, 2309, 2361, 2364, 2381, 2384, 2388, 2392, 2403, 2406, 2415, 2433, 2435, 2437, 2444, 2447, 2448, 2451, 2472, 2474, 2480, 2482, 2482, 2486, 2489, 2492, 2492, 2494, 2500, 2503, 2504, 2507, 2509, 2519, 2519, 2524, 2525, 2527, 2531, 2534, 2545, 2562, 2562, 2565, 2570, 2575, 2576, 2579, 2600, 2602, 2608, 2610, 2611, 2613, 2614, 2616, 2617, 2620, 2620, 2622, 2626, 2631, 2632, 2635, 2637, 2649, 2652, 2654, 2654, 2662, 2676, 2689, 2691, 2693, 2699, 2701, 2701, 2703, 2705, 2707, 2728, 2730, 2736, 2738, 2739, 2741, 2745, 2748, 2757, 2759, 2761, 2763, 2765, 2768, 2768, 2784, 2784, 2790, 2799, 2817, 2819, 2821, 2828, 2831, 2832, 2835, 2856, 2858, 2864, 2866, 2867, 2870, 2873, 2876, 2883, 2887, 2888, 2891, 2893, 2902, 2903, 2908, 2909, 2911, 2913, 2918, 2927, 2946, 2947, 2949, 2954, 2958, 2960, 2962, 2965, 2969, 2970, 2972, 2972, 2974, 2975, 2979, 2980, 2984, 2986, 2990, 2997, 2999, 3001, 3006, 3010, 3014, 3016, 3018, 3021, 3031, 3031, 3047, 3055, 3073, 3075, 3077, 3084, 3086, 3088, 3090, 3112, 3114, 3123, 3125, 3129, 3134, 3140, 3142, 3144, 3146, 3149, 3157, 3158, 3168, 3169, 3174, 3183, 3202, 3203, 3205, 3212, 3214, 3216, 3218, 3240, 3242, 3251, 3253, 3257, 3262, 3268, 3270, 3272, 3274, 3277, 3285, 3286, 3294, 3294, 3296, 3297, 3302, 3311, 3330, 3331, 3333, 3340, 3342, 3344, 3346, 3368, 3370, 3385, 3390, 3395, 3398, 3400, 3402, 3405, 3415, 3415, 3424, 3425, 3430, 3439, 3458, 3459, 3461, 3478, 3482, 3505, 3507, 3515, 3517, 3517, 3520, 3526, 3530, 3530, 3535, 3540, 3542, 3542, 3544, 3551, 3570, 3571, 3585, 3642, 3648, 3662, 3664, 3673, 3713, 3714, 3716, 3716, 3719, 3720, 3722, 3722, 3725, 3725, 3732, 3735, 3737, 3743, 3745, 3747, 3749, 3749, 3751, 3751, 3754, 3755, 3757, 3769, 3771, 3773, 3776, 3780, 3782, 3782, 3784, 3789, 3792, 3801, 3804, 3805, 3840, 3840, 3864, 3865, 3872, 3881, 3893, 3893, 3895, 3895, 3897, 3897, 3902, 3911, 3913, 3946, 3953, 3972, 3974, 3979, 3984, 3991, 3993, 4028, 4038, 4038, 4096, 4129, 4131, 4135, 4137, 4138, 4140, 4146, 4150, 4153, 4160, 4169, 4176, 4185, 4256, 4293, 4304, 4342, 4352, 4441, 4447, 4514, 4520, 4601, 4608, 4614, 4616, 4678, 4680, 4680, 4682, 4685, 4688, 4694, 4696, 4696, 4698, 4701, 4704, 4742, 4744, 4744, 4746, 4749, 4752, 4782, 4784, 4784, 4786, 4789, 4792, 4798, 4800, 4800, 4802, 4805, 4808, 4814, 4816, 4822, 4824, 4846, 4848, 4878, 4880, 4880, 4882, 4885, 4888, 4894, 4896, 4934, 4936, 4954, 4969, 4977, 5024, 5108, 5121, 5740, 5743, 5750, 5761, 5786, 5792, 5866, 6016, 6099, 6112, 6121, 6160, 6169, 6176, 6263, 6272, 6313, 7680, 7835, 7840, 7929, 7936, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8023, 8025, 8025, 8027, 8027, 8029, 8029, 8031, 8061, 8064, 8116, 8118, 8124, 8126, 8126, 8130, 8132, 8134, 8140, 8144, 8147, 8150, 8155, 8160, 8172, 8178, 8180, 8182, 8188, 8255, 8256, 8319, 8319, 8400, 8412, 8417, 8417, 8450, 8450, 8455, 8455, 8458, 8467, 8469, 8469, 8473, 8477, 8484, 8484, 8486, 8486, 8488, 8488, 8490, 8493, 8495, 8497, 8499, 8505, 8544, 8579, 12293, 12295, 12321, 12335, 12337, 12341, 12344, 12346, 12353, 12436, 12441, 12442, 12445, 12446, 12449, 12542, 12549, 12588, 12593, 12686, 12704, 12727, 13312, 19893, 19968, 40869, 40960, 42124, 44032, 55203, 63744, 64045, 64256, 64262, 64275, 64279, 64285, 64296, 64298, 64310, 64312, 64316, 64318, 64318, 64320, 64321, 64323, 64324, 64326, 64433, 64467, 64829, 64848, 64911, 64914, 64967, 65008, 65019, 65056, 65059, 65075, 65076, 65101, 65103, 65136, 65138, 65140, 65140, 65142, 65276, 65296, 65305, 65313, 65338, 65343, 65343, 65345, 65370, 65381, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500, ]; + let unicodeES3IdentifierStart = [170, 170, 181, 181, 186, 186, 192, 214, 216, 246, 248, 543, 546, 563, 592, 685, 688, 696, 699, 705, 720, 721, 736, 740, 750, 750, 890, 890, 902, 902, 904, 906, 908, 908, 910, 929, 931, 974, 976, 983, 986, 1011, 1024, 1153, 1164, 1220, 1223, 1224, 1227, 1228, 1232, 1269, 1272, 1273, 1329, 1366, 1369, 1369, 1377, 1415, 1488, 1514, 1520, 1522, 1569, 1594, 1600, 1610, 1649, 1747, 1749, 1749, 1765, 1766, 1786, 1788, 1808, 1808, 1810, 1836, 1920, 1957, 2309, 2361, 2365, 2365, 2384, 2384, 2392, 2401, 2437, 2444, 2447, 2448, 2451, 2472, 2474, 2480, 2482, 2482, 2486, 2489, 2524, 2525, 2527, 2529, 2544, 2545, 2565, 2570, 2575, 2576, 2579, 2600, 2602, 2608, 2610, 2611, 2613, 2614, 2616, 2617, 2649, 2652, 2654, 2654, 2674, 2676, 2693, 2699, 2701, 2701, 2703, 2705, 2707, 2728, 2730, 2736, 2738, 2739, 2741, 2745, 2749, 2749, 2768, 2768, 2784, 2784, 2821, 2828, 2831, 2832, 2835, 2856, 2858, 2864, 2866, 2867, 2870, 2873, 2877, 2877, 2908, 2909, 2911, 2913, 2949, 2954, 2958, 2960, 2962, 2965, 2969, 2970, 2972, 2972, 2974, 2975, 2979, 2980, 2984, 2986, 2990, 2997, 2999, 3001, 3077, 3084, 3086, 3088, 3090, 3112, 3114, 3123, 3125, 3129, 3168, 3169, 3205, 3212, 3214, 3216, 3218, 3240, 3242, 3251, 3253, 3257, 3294, 3294, 3296, 3297, 3333, 3340, 3342, 3344, 3346, 3368, 3370, 3385, 3424, 3425, 3461, 3478, 3482, 3505, 3507, 3515, 3517, 3517, 3520, 3526, 3585, 3632, 3634, 3635, 3648, 3654, 3713, 3714, 3716, 3716, 3719, 3720, 3722, 3722, 3725, 3725, 3732, 3735, 3737, 3743, 3745, 3747, 3749, 3749, 3751, 3751, 3754, 3755, 3757, 3760, 3762, 3763, 3773, 3773, 3776, 3780, 3782, 3782, 3804, 3805, 3840, 3840, 3904, 3911, 3913, 3946, 3976, 3979, 4096, 4129, 4131, 4135, 4137, 4138, 4176, 4181, 4256, 4293, 4304, 4342, 4352, 4441, 4447, 4514, 4520, 4601, 4608, 4614, 4616, 4678, 4680, 4680, 4682, 4685, 4688, 4694, 4696, 4696, 4698, 4701, 4704, 4742, 4744, 4744, 4746, 4749, 4752, 4782, 4784, 4784, 4786, 4789, 4792, 4798, 4800, 4800, 4802, 4805, 4808, 4814, 4816, 4822, 4824, 4846, 4848, 4878, 4880, 4880, 4882, 4885, 4888, 4894, 4896, 4934, 4936, 4954, 5024, 5108, 5121, 5740, 5743, 5750, 5761, 5786, 5792, 5866, 6016, 6067, 6176, 6263, 6272, 6312, 7680, 7835, 7840, 7929, 7936, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8023, 8025, 8025, 8027, 8027, 8029, 8029, 8031, 8061, 8064, 8116, 8118, 8124, 8126, 8126, 8130, 8132, 8134, 8140, 8144, 8147, 8150, 8155, 8160, 8172, 8178, 8180, 8182, 8188, 8319, 8319, 8450, 8450, 8455, 8455, 8458, 8467, 8469, 8469, 8473, 8477, 8484, 8484, 8486, 8486, 8488, 8488, 8490, 8493, 8495, 8497, 8499, 8505, 8544, 8579, 12293, 12295, 12321, 12329, 12337, 12341, 12344, 12346, 12353, 12436, 12445, 12446, 12449, 12538, 12540, 12542, 12549, 12588, 12593, 12686, 12704, 12727, 13312, 19893, 19968, 40869, 40960, 42124, 44032, 55203, 63744, 64045, 64256, 64262, 64275, 64279, 64285, 64285, 64287, 64296, 64298, 64310, 64312, 64316, 64318, 64318, 64320, 64321, 64323, 64324, 64326, 64433, 64467, 64829, 64848, 64911, 64914, 64967, 65008, 65019, 65136, 65138, 65140, 65140, 65142, 65276, 65313, 65338, 65345, 65370, 65382, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500, ]; + let unicodeES3IdentifierPart = [170, 170, 181, 181, 186, 186, 192, 214, 216, 246, 248, 543, 546, 563, 592, 685, 688, 696, 699, 705, 720, 721, 736, 740, 750, 750, 768, 846, 864, 866, 890, 890, 902, 902, 904, 906, 908, 908, 910, 929, 931, 974, 976, 983, 986, 1011, 1024, 1153, 1155, 1158, 1164, 1220, 1223, 1224, 1227, 1228, 1232, 1269, 1272, 1273, 1329, 1366, 1369, 1369, 1377, 1415, 1425, 1441, 1443, 1465, 1467, 1469, 1471, 1471, 1473, 1474, 1476, 1476, 1488, 1514, 1520, 1522, 1569, 1594, 1600, 1621, 1632, 1641, 1648, 1747, 1749, 1756, 1759, 1768, 1770, 1773, 1776, 1788, 1808, 1836, 1840, 1866, 1920, 1968, 2305, 2307, 2309, 2361, 2364, 2381, 2384, 2388, 2392, 2403, 2406, 2415, 2433, 2435, 2437, 2444, 2447, 2448, 2451, 2472, 2474, 2480, 2482, 2482, 2486, 2489, 2492, 2492, 2494, 2500, 2503, 2504, 2507, 2509, 2519, 2519, 2524, 2525, 2527, 2531, 2534, 2545, 2562, 2562, 2565, 2570, 2575, 2576, 2579, 2600, 2602, 2608, 2610, 2611, 2613, 2614, 2616, 2617, 2620, 2620, 2622, 2626, 2631, 2632, 2635, 2637, 2649, 2652, 2654, 2654, 2662, 2676, 2689, 2691, 2693, 2699, 2701, 2701, 2703, 2705, 2707, 2728, 2730, 2736, 2738, 2739, 2741, 2745, 2748, 2757, 2759, 2761, 2763, 2765, 2768, 2768, 2784, 2784, 2790, 2799, 2817, 2819, 2821, 2828, 2831, 2832, 2835, 2856, 2858, 2864, 2866, 2867, 2870, 2873, 2876, 2883, 2887, 2888, 2891, 2893, 2902, 2903, 2908, 2909, 2911, 2913, 2918, 2927, 2946, 2947, 2949, 2954, 2958, 2960, 2962, 2965, 2969, 2970, 2972, 2972, 2974, 2975, 2979, 2980, 2984, 2986, 2990, 2997, 2999, 3001, 3006, 3010, 3014, 3016, 3018, 3021, 3031, 3031, 3047, 3055, 3073, 3075, 3077, 3084, 3086, 3088, 3090, 3112, 3114, 3123, 3125, 3129, 3134, 3140, 3142, 3144, 3146, 3149, 3157, 3158, 3168, 3169, 3174, 3183, 3202, 3203, 3205, 3212, 3214, 3216, 3218, 3240, 3242, 3251, 3253, 3257, 3262, 3268, 3270, 3272, 3274, 3277, 3285, 3286, 3294, 3294, 3296, 3297, 3302, 3311, 3330, 3331, 3333, 3340, 3342, 3344, 3346, 3368, 3370, 3385, 3390, 3395, 3398, 3400, 3402, 3405, 3415, 3415, 3424, 3425, 3430, 3439, 3458, 3459, 3461, 3478, 3482, 3505, 3507, 3515, 3517, 3517, 3520, 3526, 3530, 3530, 3535, 3540, 3542, 3542, 3544, 3551, 3570, 3571, 3585, 3642, 3648, 3662, 3664, 3673, 3713, 3714, 3716, 3716, 3719, 3720, 3722, 3722, 3725, 3725, 3732, 3735, 3737, 3743, 3745, 3747, 3749, 3749, 3751, 3751, 3754, 3755, 3757, 3769, 3771, 3773, 3776, 3780, 3782, 3782, 3784, 3789, 3792, 3801, 3804, 3805, 3840, 3840, 3864, 3865, 3872, 3881, 3893, 3893, 3895, 3895, 3897, 3897, 3902, 3911, 3913, 3946, 3953, 3972, 3974, 3979, 3984, 3991, 3993, 4028, 4038, 4038, 4096, 4129, 4131, 4135, 4137, 4138, 4140, 4146, 4150, 4153, 4160, 4169, 4176, 4185, 4256, 4293, 4304, 4342, 4352, 4441, 4447, 4514, 4520, 4601, 4608, 4614, 4616, 4678, 4680, 4680, 4682, 4685, 4688, 4694, 4696, 4696, 4698, 4701, 4704, 4742, 4744, 4744, 4746, 4749, 4752, 4782, 4784, 4784, 4786, 4789, 4792, 4798, 4800, 4800, 4802, 4805, 4808, 4814, 4816, 4822, 4824, 4846, 4848, 4878, 4880, 4880, 4882, 4885, 4888, 4894, 4896, 4934, 4936, 4954, 4969, 4977, 5024, 5108, 5121, 5740, 5743, 5750, 5761, 5786, 5792, 5866, 6016, 6099, 6112, 6121, 6160, 6169, 6176, 6263, 6272, 6313, 7680, 7835, 7840, 7929, 7936, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8023, 8025, 8025, 8027, 8027, 8029, 8029, 8031, 8061, 8064, 8116, 8118, 8124, 8126, 8126, 8130, 8132, 8134, 8140, 8144, 8147, 8150, 8155, 8160, 8172, 8178, 8180, 8182, 8188, 8255, 8256, 8319, 8319, 8400, 8412, 8417, 8417, 8450, 8450, 8455, 8455, 8458, 8467, 8469, 8469, 8473, 8477, 8484, 8484, 8486, 8486, 8488, 8488, 8490, 8493, 8495, 8497, 8499, 8505, 8544, 8579, 12293, 12295, 12321, 12335, 12337, 12341, 12344, 12346, 12353, 12436, 12441, 12442, 12445, 12446, 12449, 12542, 12549, 12588, 12593, 12686, 12704, 12727, 13312, 19893, 19968, 40869, 40960, 42124, 44032, 55203, 63744, 64045, 64256, 64262, 64275, 64279, 64285, 64296, 64298, 64310, 64312, 64316, 64318, 64318, 64320, 64321, 64323, 64324, 64326, 64433, 64467, 64829, 64848, 64911, 64914, 64967, 65008, 65019, 65056, 65059, 65075, 65076, 65101, 65103, 65136, 65138, 65140, 65140, 65142, 65276, 65296, 65305, 65313, 65338, 65343, 65343, 65345, 65370, 65381, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500, ]; /* As per ECMAScript Language Specification 5th Edition, Section 7.6: ISyntaxToken Names and Identifiers @@ -195,8 +195,8 @@ module ts { Codepoint ranges for ES5 Identifiers are extracted from the Unicode 6.2 specification at: http://www.unicode.org/Public/6.2.0/ucd/UnicodeData.txt */ - var unicodeES5IdentifierStart = [170, 170, 181, 181, 186, 186, 192, 214, 216, 246, 248, 705, 710, 721, 736, 740, 748, 748, 750, 750, 880, 884, 886, 887, 890, 893, 902, 902, 904, 906, 908, 908, 910, 929, 931, 1013, 1015, 1153, 1162, 1319, 1329, 1366, 1369, 1369, 1377, 1415, 1488, 1514, 1520, 1522, 1568, 1610, 1646, 1647, 1649, 1747, 1749, 1749, 1765, 1766, 1774, 1775, 1786, 1788, 1791, 1791, 1808, 1808, 1810, 1839, 1869, 1957, 1969, 1969, 1994, 2026, 2036, 2037, 2042, 2042, 2048, 2069, 2074, 2074, 2084, 2084, 2088, 2088, 2112, 2136, 2208, 2208, 2210, 2220, 2308, 2361, 2365, 2365, 2384, 2384, 2392, 2401, 2417, 2423, 2425, 2431, 2437, 2444, 2447, 2448, 2451, 2472, 2474, 2480, 2482, 2482, 2486, 2489, 2493, 2493, 2510, 2510, 2524, 2525, 2527, 2529, 2544, 2545, 2565, 2570, 2575, 2576, 2579, 2600, 2602, 2608, 2610, 2611, 2613, 2614, 2616, 2617, 2649, 2652, 2654, 2654, 2674, 2676, 2693, 2701, 2703, 2705, 2707, 2728, 2730, 2736, 2738, 2739, 2741, 2745, 2749, 2749, 2768, 2768, 2784, 2785, 2821, 2828, 2831, 2832, 2835, 2856, 2858, 2864, 2866, 2867, 2869, 2873, 2877, 2877, 2908, 2909, 2911, 2913, 2929, 2929, 2947, 2947, 2949, 2954, 2958, 2960, 2962, 2965, 2969, 2970, 2972, 2972, 2974, 2975, 2979, 2980, 2984, 2986, 2990, 3001, 3024, 3024, 3077, 3084, 3086, 3088, 3090, 3112, 3114, 3123, 3125, 3129, 3133, 3133, 3160, 3161, 3168, 3169, 3205, 3212, 3214, 3216, 3218, 3240, 3242, 3251, 3253, 3257, 3261, 3261, 3294, 3294, 3296, 3297, 3313, 3314, 3333, 3340, 3342, 3344, 3346, 3386, 3389, 3389, 3406, 3406, 3424, 3425, 3450, 3455, 3461, 3478, 3482, 3505, 3507, 3515, 3517, 3517, 3520, 3526, 3585, 3632, 3634, 3635, 3648, 3654, 3713, 3714, 3716, 3716, 3719, 3720, 3722, 3722, 3725, 3725, 3732, 3735, 3737, 3743, 3745, 3747, 3749, 3749, 3751, 3751, 3754, 3755, 3757, 3760, 3762, 3763, 3773, 3773, 3776, 3780, 3782, 3782, 3804, 3807, 3840, 3840, 3904, 3911, 3913, 3948, 3976, 3980, 4096, 4138, 4159, 4159, 4176, 4181, 4186, 4189, 4193, 4193, 4197, 4198, 4206, 4208, 4213, 4225, 4238, 4238, 4256, 4293, 4295, 4295, 4301, 4301, 4304, 4346, 4348, 4680, 4682, 4685, 4688, 4694, 4696, 4696, 4698, 4701, 4704, 4744, 4746, 4749, 4752, 4784, 4786, 4789, 4792, 4798, 4800, 4800, 4802, 4805, 4808, 4822, 4824, 4880, 4882, 4885, 4888, 4954, 4992, 5007, 5024, 5108, 5121, 5740, 5743, 5759, 5761, 5786, 5792, 5866, 5870, 5872, 5888, 5900, 5902, 5905, 5920, 5937, 5952, 5969, 5984, 5996, 5998, 6000, 6016, 6067, 6103, 6103, 6108, 6108, 6176, 6263, 6272, 6312, 6314, 6314, 6320, 6389, 6400, 6428, 6480, 6509, 6512, 6516, 6528, 6571, 6593, 6599, 6656, 6678, 6688, 6740, 6823, 6823, 6917, 6963, 6981, 6987, 7043, 7072, 7086, 7087, 7098, 7141, 7168, 7203, 7245, 7247, 7258, 7293, 7401, 7404, 7406, 7409, 7413, 7414, 7424, 7615, 7680, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8023, 8025, 8025, 8027, 8027, 8029, 8029, 8031, 8061, 8064, 8116, 8118, 8124, 8126, 8126, 8130, 8132, 8134, 8140, 8144, 8147, 8150, 8155, 8160, 8172, 8178, 8180, 8182, 8188, 8305, 8305, 8319, 8319, 8336, 8348, 8450, 8450, 8455, 8455, 8458, 8467, 8469, 8469, 8473, 8477, 8484, 8484, 8486, 8486, 8488, 8488, 8490, 8493, 8495, 8505, 8508, 8511, 8517, 8521, 8526, 8526, 8544, 8584, 11264, 11310, 11312, 11358, 11360, 11492, 11499, 11502, 11506, 11507, 11520, 11557, 11559, 11559, 11565, 11565, 11568, 11623, 11631, 11631, 11648, 11670, 11680, 11686, 11688, 11694, 11696, 11702, 11704, 11710, 11712, 11718, 11720, 11726, 11728, 11734, 11736, 11742, 11823, 11823, 12293, 12295, 12321, 12329, 12337, 12341, 12344, 12348, 12353, 12438, 12445, 12447, 12449, 12538, 12540, 12543, 12549, 12589, 12593, 12686, 12704, 12730, 12784, 12799, 13312, 19893, 19968, 40908, 40960, 42124, 42192, 42237, 42240, 42508, 42512, 42527, 42538, 42539, 42560, 42606, 42623, 42647, 42656, 42735, 42775, 42783, 42786, 42888, 42891, 42894, 42896, 42899, 42912, 42922, 43000, 43009, 43011, 43013, 43015, 43018, 43020, 43042, 43072, 43123, 43138, 43187, 43250, 43255, 43259, 43259, 43274, 43301, 43312, 43334, 43360, 43388, 43396, 43442, 43471, 43471, 43520, 43560, 43584, 43586, 43588, 43595, 43616, 43638, 43642, 43642, 43648, 43695, 43697, 43697, 43701, 43702, 43705, 43709, 43712, 43712, 43714, 43714, 43739, 43741, 43744, 43754, 43762, 43764, 43777, 43782, 43785, 43790, 43793, 43798, 43808, 43814, 43816, 43822, 43968, 44002, 44032, 55203, 55216, 55238, 55243, 55291, 63744, 64109, 64112, 64217, 64256, 64262, 64275, 64279, 64285, 64285, 64287, 64296, 64298, 64310, 64312, 64316, 64318, 64318, 64320, 64321, 64323, 64324, 64326, 64433, 64467, 64829, 64848, 64911, 64914, 64967, 65008, 65019, 65136, 65140, 65142, 65276, 65313, 65338, 65345, 65370, 65382, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500, ]; - var unicodeES5IdentifierPart = [170, 170, 181, 181, 186, 186, 192, 214, 216, 246, 248, 705, 710, 721, 736, 740, 748, 748, 750, 750, 768, 884, 886, 887, 890, 893, 902, 902, 904, 906, 908, 908, 910, 929, 931, 1013, 1015, 1153, 1155, 1159, 1162, 1319, 1329, 1366, 1369, 1369, 1377, 1415, 1425, 1469, 1471, 1471, 1473, 1474, 1476, 1477, 1479, 1479, 1488, 1514, 1520, 1522, 1552, 1562, 1568, 1641, 1646, 1747, 1749, 1756, 1759, 1768, 1770, 1788, 1791, 1791, 1808, 1866, 1869, 1969, 1984, 2037, 2042, 2042, 2048, 2093, 2112, 2139, 2208, 2208, 2210, 2220, 2276, 2302, 2304, 2403, 2406, 2415, 2417, 2423, 2425, 2431, 2433, 2435, 2437, 2444, 2447, 2448, 2451, 2472, 2474, 2480, 2482, 2482, 2486, 2489, 2492, 2500, 2503, 2504, 2507, 2510, 2519, 2519, 2524, 2525, 2527, 2531, 2534, 2545, 2561, 2563, 2565, 2570, 2575, 2576, 2579, 2600, 2602, 2608, 2610, 2611, 2613, 2614, 2616, 2617, 2620, 2620, 2622, 2626, 2631, 2632, 2635, 2637, 2641, 2641, 2649, 2652, 2654, 2654, 2662, 2677, 2689, 2691, 2693, 2701, 2703, 2705, 2707, 2728, 2730, 2736, 2738, 2739, 2741, 2745, 2748, 2757, 2759, 2761, 2763, 2765, 2768, 2768, 2784, 2787, 2790, 2799, 2817, 2819, 2821, 2828, 2831, 2832, 2835, 2856, 2858, 2864, 2866, 2867, 2869, 2873, 2876, 2884, 2887, 2888, 2891, 2893, 2902, 2903, 2908, 2909, 2911, 2915, 2918, 2927, 2929, 2929, 2946, 2947, 2949, 2954, 2958, 2960, 2962, 2965, 2969, 2970, 2972, 2972, 2974, 2975, 2979, 2980, 2984, 2986, 2990, 3001, 3006, 3010, 3014, 3016, 3018, 3021, 3024, 3024, 3031, 3031, 3046, 3055, 3073, 3075, 3077, 3084, 3086, 3088, 3090, 3112, 3114, 3123, 3125, 3129, 3133, 3140, 3142, 3144, 3146, 3149, 3157, 3158, 3160, 3161, 3168, 3171, 3174, 3183, 3202, 3203, 3205, 3212, 3214, 3216, 3218, 3240, 3242, 3251, 3253, 3257, 3260, 3268, 3270, 3272, 3274, 3277, 3285, 3286, 3294, 3294, 3296, 3299, 3302, 3311, 3313, 3314, 3330, 3331, 3333, 3340, 3342, 3344, 3346, 3386, 3389, 3396, 3398, 3400, 3402, 3406, 3415, 3415, 3424, 3427, 3430, 3439, 3450, 3455, 3458, 3459, 3461, 3478, 3482, 3505, 3507, 3515, 3517, 3517, 3520, 3526, 3530, 3530, 3535, 3540, 3542, 3542, 3544, 3551, 3570, 3571, 3585, 3642, 3648, 3662, 3664, 3673, 3713, 3714, 3716, 3716, 3719, 3720, 3722, 3722, 3725, 3725, 3732, 3735, 3737, 3743, 3745, 3747, 3749, 3749, 3751, 3751, 3754, 3755, 3757, 3769, 3771, 3773, 3776, 3780, 3782, 3782, 3784, 3789, 3792, 3801, 3804, 3807, 3840, 3840, 3864, 3865, 3872, 3881, 3893, 3893, 3895, 3895, 3897, 3897, 3902, 3911, 3913, 3948, 3953, 3972, 3974, 3991, 3993, 4028, 4038, 4038, 4096, 4169, 4176, 4253, 4256, 4293, 4295, 4295, 4301, 4301, 4304, 4346, 4348, 4680, 4682, 4685, 4688, 4694, 4696, 4696, 4698, 4701, 4704, 4744, 4746, 4749, 4752, 4784, 4786, 4789, 4792, 4798, 4800, 4800, 4802, 4805, 4808, 4822, 4824, 4880, 4882, 4885, 4888, 4954, 4957, 4959, 4992, 5007, 5024, 5108, 5121, 5740, 5743, 5759, 5761, 5786, 5792, 5866, 5870, 5872, 5888, 5900, 5902, 5908, 5920, 5940, 5952, 5971, 5984, 5996, 5998, 6000, 6002, 6003, 6016, 6099, 6103, 6103, 6108, 6109, 6112, 6121, 6155, 6157, 6160, 6169, 6176, 6263, 6272, 6314, 6320, 6389, 6400, 6428, 6432, 6443, 6448, 6459, 6470, 6509, 6512, 6516, 6528, 6571, 6576, 6601, 6608, 6617, 6656, 6683, 6688, 6750, 6752, 6780, 6783, 6793, 6800, 6809, 6823, 6823, 6912, 6987, 6992, 7001, 7019, 7027, 7040, 7155, 7168, 7223, 7232, 7241, 7245, 7293, 7376, 7378, 7380, 7414, 7424, 7654, 7676, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8023, 8025, 8025, 8027, 8027, 8029, 8029, 8031, 8061, 8064, 8116, 8118, 8124, 8126, 8126, 8130, 8132, 8134, 8140, 8144, 8147, 8150, 8155, 8160, 8172, 8178, 8180, 8182, 8188, 8204, 8205, 8255, 8256, 8276, 8276, 8305, 8305, 8319, 8319, 8336, 8348, 8400, 8412, 8417, 8417, 8421, 8432, 8450, 8450, 8455, 8455, 8458, 8467, 8469, 8469, 8473, 8477, 8484, 8484, 8486, 8486, 8488, 8488, 8490, 8493, 8495, 8505, 8508, 8511, 8517, 8521, 8526, 8526, 8544, 8584, 11264, 11310, 11312, 11358, 11360, 11492, 11499, 11507, 11520, 11557, 11559, 11559, 11565, 11565, 11568, 11623, 11631, 11631, 11647, 11670, 11680, 11686, 11688, 11694, 11696, 11702, 11704, 11710, 11712, 11718, 11720, 11726, 11728, 11734, 11736, 11742, 11744, 11775, 11823, 11823, 12293, 12295, 12321, 12335, 12337, 12341, 12344, 12348, 12353, 12438, 12441, 12442, 12445, 12447, 12449, 12538, 12540, 12543, 12549, 12589, 12593, 12686, 12704, 12730, 12784, 12799, 13312, 19893, 19968, 40908, 40960, 42124, 42192, 42237, 42240, 42508, 42512, 42539, 42560, 42607, 42612, 42621, 42623, 42647, 42655, 42737, 42775, 42783, 42786, 42888, 42891, 42894, 42896, 42899, 42912, 42922, 43000, 43047, 43072, 43123, 43136, 43204, 43216, 43225, 43232, 43255, 43259, 43259, 43264, 43309, 43312, 43347, 43360, 43388, 43392, 43456, 43471, 43481, 43520, 43574, 43584, 43597, 43600, 43609, 43616, 43638, 43642, 43643, 43648, 43714, 43739, 43741, 43744, 43759, 43762, 43766, 43777, 43782, 43785, 43790, 43793, 43798, 43808, 43814, 43816, 43822, 43968, 44010, 44012, 44013, 44016, 44025, 44032, 55203, 55216, 55238, 55243, 55291, 63744, 64109, 64112, 64217, 64256, 64262, 64275, 64279, 64285, 64296, 64298, 64310, 64312, 64316, 64318, 64318, 64320, 64321, 64323, 64324, 64326, 64433, 64467, 64829, 64848, 64911, 64914, 64967, 65008, 65019, 65024, 65039, 65056, 65062, 65075, 65076, 65101, 65103, 65136, 65140, 65142, 65276, 65296, 65305, 65313, 65338, 65343, 65343, 65345, 65370, 65382, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500, ]; + let unicodeES5IdentifierStart = [170, 170, 181, 181, 186, 186, 192, 214, 216, 246, 248, 705, 710, 721, 736, 740, 748, 748, 750, 750, 880, 884, 886, 887, 890, 893, 902, 902, 904, 906, 908, 908, 910, 929, 931, 1013, 1015, 1153, 1162, 1319, 1329, 1366, 1369, 1369, 1377, 1415, 1488, 1514, 1520, 1522, 1568, 1610, 1646, 1647, 1649, 1747, 1749, 1749, 1765, 1766, 1774, 1775, 1786, 1788, 1791, 1791, 1808, 1808, 1810, 1839, 1869, 1957, 1969, 1969, 1994, 2026, 2036, 2037, 2042, 2042, 2048, 2069, 2074, 2074, 2084, 2084, 2088, 2088, 2112, 2136, 2208, 2208, 2210, 2220, 2308, 2361, 2365, 2365, 2384, 2384, 2392, 2401, 2417, 2423, 2425, 2431, 2437, 2444, 2447, 2448, 2451, 2472, 2474, 2480, 2482, 2482, 2486, 2489, 2493, 2493, 2510, 2510, 2524, 2525, 2527, 2529, 2544, 2545, 2565, 2570, 2575, 2576, 2579, 2600, 2602, 2608, 2610, 2611, 2613, 2614, 2616, 2617, 2649, 2652, 2654, 2654, 2674, 2676, 2693, 2701, 2703, 2705, 2707, 2728, 2730, 2736, 2738, 2739, 2741, 2745, 2749, 2749, 2768, 2768, 2784, 2785, 2821, 2828, 2831, 2832, 2835, 2856, 2858, 2864, 2866, 2867, 2869, 2873, 2877, 2877, 2908, 2909, 2911, 2913, 2929, 2929, 2947, 2947, 2949, 2954, 2958, 2960, 2962, 2965, 2969, 2970, 2972, 2972, 2974, 2975, 2979, 2980, 2984, 2986, 2990, 3001, 3024, 3024, 3077, 3084, 3086, 3088, 3090, 3112, 3114, 3123, 3125, 3129, 3133, 3133, 3160, 3161, 3168, 3169, 3205, 3212, 3214, 3216, 3218, 3240, 3242, 3251, 3253, 3257, 3261, 3261, 3294, 3294, 3296, 3297, 3313, 3314, 3333, 3340, 3342, 3344, 3346, 3386, 3389, 3389, 3406, 3406, 3424, 3425, 3450, 3455, 3461, 3478, 3482, 3505, 3507, 3515, 3517, 3517, 3520, 3526, 3585, 3632, 3634, 3635, 3648, 3654, 3713, 3714, 3716, 3716, 3719, 3720, 3722, 3722, 3725, 3725, 3732, 3735, 3737, 3743, 3745, 3747, 3749, 3749, 3751, 3751, 3754, 3755, 3757, 3760, 3762, 3763, 3773, 3773, 3776, 3780, 3782, 3782, 3804, 3807, 3840, 3840, 3904, 3911, 3913, 3948, 3976, 3980, 4096, 4138, 4159, 4159, 4176, 4181, 4186, 4189, 4193, 4193, 4197, 4198, 4206, 4208, 4213, 4225, 4238, 4238, 4256, 4293, 4295, 4295, 4301, 4301, 4304, 4346, 4348, 4680, 4682, 4685, 4688, 4694, 4696, 4696, 4698, 4701, 4704, 4744, 4746, 4749, 4752, 4784, 4786, 4789, 4792, 4798, 4800, 4800, 4802, 4805, 4808, 4822, 4824, 4880, 4882, 4885, 4888, 4954, 4992, 5007, 5024, 5108, 5121, 5740, 5743, 5759, 5761, 5786, 5792, 5866, 5870, 5872, 5888, 5900, 5902, 5905, 5920, 5937, 5952, 5969, 5984, 5996, 5998, 6000, 6016, 6067, 6103, 6103, 6108, 6108, 6176, 6263, 6272, 6312, 6314, 6314, 6320, 6389, 6400, 6428, 6480, 6509, 6512, 6516, 6528, 6571, 6593, 6599, 6656, 6678, 6688, 6740, 6823, 6823, 6917, 6963, 6981, 6987, 7043, 7072, 7086, 7087, 7098, 7141, 7168, 7203, 7245, 7247, 7258, 7293, 7401, 7404, 7406, 7409, 7413, 7414, 7424, 7615, 7680, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8023, 8025, 8025, 8027, 8027, 8029, 8029, 8031, 8061, 8064, 8116, 8118, 8124, 8126, 8126, 8130, 8132, 8134, 8140, 8144, 8147, 8150, 8155, 8160, 8172, 8178, 8180, 8182, 8188, 8305, 8305, 8319, 8319, 8336, 8348, 8450, 8450, 8455, 8455, 8458, 8467, 8469, 8469, 8473, 8477, 8484, 8484, 8486, 8486, 8488, 8488, 8490, 8493, 8495, 8505, 8508, 8511, 8517, 8521, 8526, 8526, 8544, 8584, 11264, 11310, 11312, 11358, 11360, 11492, 11499, 11502, 11506, 11507, 11520, 11557, 11559, 11559, 11565, 11565, 11568, 11623, 11631, 11631, 11648, 11670, 11680, 11686, 11688, 11694, 11696, 11702, 11704, 11710, 11712, 11718, 11720, 11726, 11728, 11734, 11736, 11742, 11823, 11823, 12293, 12295, 12321, 12329, 12337, 12341, 12344, 12348, 12353, 12438, 12445, 12447, 12449, 12538, 12540, 12543, 12549, 12589, 12593, 12686, 12704, 12730, 12784, 12799, 13312, 19893, 19968, 40908, 40960, 42124, 42192, 42237, 42240, 42508, 42512, 42527, 42538, 42539, 42560, 42606, 42623, 42647, 42656, 42735, 42775, 42783, 42786, 42888, 42891, 42894, 42896, 42899, 42912, 42922, 43000, 43009, 43011, 43013, 43015, 43018, 43020, 43042, 43072, 43123, 43138, 43187, 43250, 43255, 43259, 43259, 43274, 43301, 43312, 43334, 43360, 43388, 43396, 43442, 43471, 43471, 43520, 43560, 43584, 43586, 43588, 43595, 43616, 43638, 43642, 43642, 43648, 43695, 43697, 43697, 43701, 43702, 43705, 43709, 43712, 43712, 43714, 43714, 43739, 43741, 43744, 43754, 43762, 43764, 43777, 43782, 43785, 43790, 43793, 43798, 43808, 43814, 43816, 43822, 43968, 44002, 44032, 55203, 55216, 55238, 55243, 55291, 63744, 64109, 64112, 64217, 64256, 64262, 64275, 64279, 64285, 64285, 64287, 64296, 64298, 64310, 64312, 64316, 64318, 64318, 64320, 64321, 64323, 64324, 64326, 64433, 64467, 64829, 64848, 64911, 64914, 64967, 65008, 65019, 65136, 65140, 65142, 65276, 65313, 65338, 65345, 65370, 65382, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500, ]; + let unicodeES5IdentifierPart = [170, 170, 181, 181, 186, 186, 192, 214, 216, 246, 248, 705, 710, 721, 736, 740, 748, 748, 750, 750, 768, 884, 886, 887, 890, 893, 902, 902, 904, 906, 908, 908, 910, 929, 931, 1013, 1015, 1153, 1155, 1159, 1162, 1319, 1329, 1366, 1369, 1369, 1377, 1415, 1425, 1469, 1471, 1471, 1473, 1474, 1476, 1477, 1479, 1479, 1488, 1514, 1520, 1522, 1552, 1562, 1568, 1641, 1646, 1747, 1749, 1756, 1759, 1768, 1770, 1788, 1791, 1791, 1808, 1866, 1869, 1969, 1984, 2037, 2042, 2042, 2048, 2093, 2112, 2139, 2208, 2208, 2210, 2220, 2276, 2302, 2304, 2403, 2406, 2415, 2417, 2423, 2425, 2431, 2433, 2435, 2437, 2444, 2447, 2448, 2451, 2472, 2474, 2480, 2482, 2482, 2486, 2489, 2492, 2500, 2503, 2504, 2507, 2510, 2519, 2519, 2524, 2525, 2527, 2531, 2534, 2545, 2561, 2563, 2565, 2570, 2575, 2576, 2579, 2600, 2602, 2608, 2610, 2611, 2613, 2614, 2616, 2617, 2620, 2620, 2622, 2626, 2631, 2632, 2635, 2637, 2641, 2641, 2649, 2652, 2654, 2654, 2662, 2677, 2689, 2691, 2693, 2701, 2703, 2705, 2707, 2728, 2730, 2736, 2738, 2739, 2741, 2745, 2748, 2757, 2759, 2761, 2763, 2765, 2768, 2768, 2784, 2787, 2790, 2799, 2817, 2819, 2821, 2828, 2831, 2832, 2835, 2856, 2858, 2864, 2866, 2867, 2869, 2873, 2876, 2884, 2887, 2888, 2891, 2893, 2902, 2903, 2908, 2909, 2911, 2915, 2918, 2927, 2929, 2929, 2946, 2947, 2949, 2954, 2958, 2960, 2962, 2965, 2969, 2970, 2972, 2972, 2974, 2975, 2979, 2980, 2984, 2986, 2990, 3001, 3006, 3010, 3014, 3016, 3018, 3021, 3024, 3024, 3031, 3031, 3046, 3055, 3073, 3075, 3077, 3084, 3086, 3088, 3090, 3112, 3114, 3123, 3125, 3129, 3133, 3140, 3142, 3144, 3146, 3149, 3157, 3158, 3160, 3161, 3168, 3171, 3174, 3183, 3202, 3203, 3205, 3212, 3214, 3216, 3218, 3240, 3242, 3251, 3253, 3257, 3260, 3268, 3270, 3272, 3274, 3277, 3285, 3286, 3294, 3294, 3296, 3299, 3302, 3311, 3313, 3314, 3330, 3331, 3333, 3340, 3342, 3344, 3346, 3386, 3389, 3396, 3398, 3400, 3402, 3406, 3415, 3415, 3424, 3427, 3430, 3439, 3450, 3455, 3458, 3459, 3461, 3478, 3482, 3505, 3507, 3515, 3517, 3517, 3520, 3526, 3530, 3530, 3535, 3540, 3542, 3542, 3544, 3551, 3570, 3571, 3585, 3642, 3648, 3662, 3664, 3673, 3713, 3714, 3716, 3716, 3719, 3720, 3722, 3722, 3725, 3725, 3732, 3735, 3737, 3743, 3745, 3747, 3749, 3749, 3751, 3751, 3754, 3755, 3757, 3769, 3771, 3773, 3776, 3780, 3782, 3782, 3784, 3789, 3792, 3801, 3804, 3807, 3840, 3840, 3864, 3865, 3872, 3881, 3893, 3893, 3895, 3895, 3897, 3897, 3902, 3911, 3913, 3948, 3953, 3972, 3974, 3991, 3993, 4028, 4038, 4038, 4096, 4169, 4176, 4253, 4256, 4293, 4295, 4295, 4301, 4301, 4304, 4346, 4348, 4680, 4682, 4685, 4688, 4694, 4696, 4696, 4698, 4701, 4704, 4744, 4746, 4749, 4752, 4784, 4786, 4789, 4792, 4798, 4800, 4800, 4802, 4805, 4808, 4822, 4824, 4880, 4882, 4885, 4888, 4954, 4957, 4959, 4992, 5007, 5024, 5108, 5121, 5740, 5743, 5759, 5761, 5786, 5792, 5866, 5870, 5872, 5888, 5900, 5902, 5908, 5920, 5940, 5952, 5971, 5984, 5996, 5998, 6000, 6002, 6003, 6016, 6099, 6103, 6103, 6108, 6109, 6112, 6121, 6155, 6157, 6160, 6169, 6176, 6263, 6272, 6314, 6320, 6389, 6400, 6428, 6432, 6443, 6448, 6459, 6470, 6509, 6512, 6516, 6528, 6571, 6576, 6601, 6608, 6617, 6656, 6683, 6688, 6750, 6752, 6780, 6783, 6793, 6800, 6809, 6823, 6823, 6912, 6987, 6992, 7001, 7019, 7027, 7040, 7155, 7168, 7223, 7232, 7241, 7245, 7293, 7376, 7378, 7380, 7414, 7424, 7654, 7676, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8023, 8025, 8025, 8027, 8027, 8029, 8029, 8031, 8061, 8064, 8116, 8118, 8124, 8126, 8126, 8130, 8132, 8134, 8140, 8144, 8147, 8150, 8155, 8160, 8172, 8178, 8180, 8182, 8188, 8204, 8205, 8255, 8256, 8276, 8276, 8305, 8305, 8319, 8319, 8336, 8348, 8400, 8412, 8417, 8417, 8421, 8432, 8450, 8450, 8455, 8455, 8458, 8467, 8469, 8469, 8473, 8477, 8484, 8484, 8486, 8486, 8488, 8488, 8490, 8493, 8495, 8505, 8508, 8511, 8517, 8521, 8526, 8526, 8544, 8584, 11264, 11310, 11312, 11358, 11360, 11492, 11499, 11507, 11520, 11557, 11559, 11559, 11565, 11565, 11568, 11623, 11631, 11631, 11647, 11670, 11680, 11686, 11688, 11694, 11696, 11702, 11704, 11710, 11712, 11718, 11720, 11726, 11728, 11734, 11736, 11742, 11744, 11775, 11823, 11823, 12293, 12295, 12321, 12335, 12337, 12341, 12344, 12348, 12353, 12438, 12441, 12442, 12445, 12447, 12449, 12538, 12540, 12543, 12549, 12589, 12593, 12686, 12704, 12730, 12784, 12799, 13312, 19893, 19968, 40908, 40960, 42124, 42192, 42237, 42240, 42508, 42512, 42539, 42560, 42607, 42612, 42621, 42623, 42647, 42655, 42737, 42775, 42783, 42786, 42888, 42891, 42894, 42896, 42899, 42912, 42922, 43000, 43047, 43072, 43123, 43136, 43204, 43216, 43225, 43232, 43255, 43259, 43259, 43264, 43309, 43312, 43347, 43360, 43388, 43392, 43456, 43471, 43481, 43520, 43574, 43584, 43597, 43600, 43609, 43616, 43638, 43642, 43643, 43648, 43714, 43739, 43741, 43744, 43759, 43762, 43766, 43777, 43782, 43785, 43790, 43793, 43798, 43808, 43814, 43816, 43822, 43968, 44010, 44012, 44013, 44016, 44025, 44032, 55203, 55216, 55238, 55243, 55291, 63744, 64109, 64112, 64217, 64256, 64262, 64275, 64279, 64285, 64296, 64298, 64310, 64312, 64316, 64318, 64318, 64320, 64321, 64323, 64324, 64326, 64433, 64467, 64829, 64848, 64911, 64914, 64967, 65008, 65019, 65024, 65039, 65056, 65062, 65075, 65076, 65101, 65103, 65136, 65140, 65142, 65276, 65296, 65305, 65313, 65338, 65343, 65343, 65345, 65370, 65382, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500, ]; function lookupInUnicodeMap(code: number, map: number[]): boolean { // Bail out quickly if it couldn't possibly be in the map. @@ -205,9 +205,9 @@ module ts { } // Perform binary search in one of the Unicode range maps - var lo: number = 0; - var hi: number = map.length; - var mid: number; + let lo: number = 0; + let hi: number = map.length; + let mid: number; while (lo + 1 < hi) { mid = lo + (hi - lo) / 2; @@ -241,8 +241,8 @@ module ts { } function makeReverseMap(source: Map): string[] { - var result: string[] = []; - for (var name in source) { + let result: string[] = []; + for (let name in source) { if (source.hasOwnProperty(name)) { result[source[name]] = name; } @@ -250,18 +250,18 @@ module ts { return result; } - var tokenStrings = makeReverseMap(textToToken); + let tokenStrings = makeReverseMap(textToToken); export function tokenToString(t: SyntaxKind): string { return tokenStrings[t]; } export function computeLineStarts(text: string): number[] { - var result: number[] = new Array(); - var pos = 0; - var lineStart = 0; + let result: number[] = new Array(); + let pos = 0; + let lineStart = 0; while (pos < text.length) { - var ch = text.charCodeAt(pos++); + let ch = text.charCodeAt(pos++); switch (ch) { case CharacterCodes.carriageReturn: if (text.charCodeAt(pos) === CharacterCodes.lineFeed) { @@ -297,7 +297,7 @@ module ts { } export function computeLineAndCharacterOfPosition(lineStarts: number[], position: number) { - var lineNumber = binarySearch(lineStarts, position); + let lineNumber = binarySearch(lineStarts, position); if (lineNumber < 0) { // If the actual position was not found, // the binary search returns the negative value of the next line start @@ -315,7 +315,7 @@ module ts { return computeLineAndCharacterOfPosition(getLineStarts(sourceFile), position); } - var hasOwnProperty = Object.prototype.hasOwnProperty; + let hasOwnProperty = Object.prototype.hasOwnProperty; export function isWhiteSpace(ch: number): boolean { return ch === CharacterCodes.space || ch === CharacterCodes.tab || ch === CharacterCodes.verticalTab || ch === CharacterCodes.formFeed || @@ -337,7 +337,7 @@ module ts { export function skipTrivia(text: string, pos: number, stopAfterLineBreak?: boolean): number { while (true) { - var ch = text.charCodeAt(pos); + let ch = text.charCodeAt(pos); switch (ch) { case CharacterCodes.carriageReturn: if (text.charCodeAt(pos + 1) === CharacterCodes.lineFeed) { @@ -401,17 +401,17 @@ module ts { // All conflict markers consist of the same character repeated seven times. If it is // a <<<<<<< or >>>>>>> marker then it is also followd by a space. - var mergeConflictMarkerLength = "<<<<<<<".length; + let mergeConflictMarkerLength = "<<<<<<<".length; function isConflictMarkerTrivia(text: string, pos: number) { Debug.assert(pos >= 0); // Conflict markers must be at the start of a line. if (pos === 0 || isLineBreak(text.charCodeAt(pos - 1))) { - var ch = text.charCodeAt(pos); + let ch = text.charCodeAt(pos); if ((pos + mergeConflictMarkerLength) < text.length) { - for (var i = 0, n = mergeConflictMarkerLength; i < n; i++) { + for (let i = 0, n = mergeConflictMarkerLength; i < n; i++) { if (text.charCodeAt(pos + i) !== ch) { return false; } @@ -430,8 +430,8 @@ module ts { error(Diagnostics.Merge_conflict_marker_encountered, mergeConflictMarkerLength); } - var ch = text.charCodeAt(pos); - var len = text.length; + let ch = text.charCodeAt(pos); + let len = text.length; if (ch === CharacterCodes.lessThan || ch === CharacterCodes.greaterThan) { while (pos < len && !isLineBreak(text.charCodeAt(pos))) { @@ -443,7 +443,7 @@ module ts { // Consume everything from the start of the mid-conlict marker to the start of the next // end-conflict marker. while (pos < len) { - var ch = text.charCodeAt(pos); + let ch = text.charCodeAt(pos); if (ch === CharacterCodes.greaterThan && isConflictMarkerTrivia(text, pos)) { break; } @@ -461,10 +461,10 @@ module ts { // comment. Single-line comment ranges include the beginning '//' characters but not the ending line break. Multi-line comment // ranges include the beginning '/* and ending '*/' characters. The return value is undefined if no comments were found. function getCommentRanges(text: string, pos: number, trailing: boolean): CommentRange[] { - var result: CommentRange[]; - var collecting = trailing || pos === 0; + let result: CommentRange[]; + let collecting = trailing || pos === 0; while (true) { - var ch = text.charCodeAt(pos); + let ch = text.charCodeAt(pos); switch (ch) { case CharacterCodes.carriageReturn: if (text.charCodeAt(pos + 1) === CharacterCodes.lineFeed) pos++; @@ -485,10 +485,10 @@ module ts { pos++; continue; case CharacterCodes.slash: - var nextChar = text.charCodeAt(pos + 1); - var hasTrailingNewLine = false; + let nextChar = text.charCodeAt(pos + 1); + let hasTrailingNewLine = false; if (nextChar === CharacterCodes.slash || nextChar === CharacterCodes.asterisk) { - var startPos = pos; + let startPos = pos; pos += 2; if (nextChar === CharacterCodes.slash) { while (pos < text.length) { @@ -550,15 +550,15 @@ module ts { } export function createScanner(languageVersion: ScriptTarget, skipTrivia: boolean, text?: string, onError?: ErrorCallback): Scanner { - var pos: number; // Current position (end position of text of current token) - var len: number; // Length of text - var startPos: number; // Start position of whitespace before current token - var tokenPos: number; // Start position of text of current token - var token: SyntaxKind; - var tokenValue: string; - var precedingLineBreak: boolean; - var hasExtendedUnicodeEscape: boolean; - var tokenIsUnterminated: boolean; + let pos: number; // Current position (end position of text of current token) + let len: number; // Length of text + let startPos: number; // Start position of whitespace before current token + let tokenPos: number; // Start position of text of current token + let token: SyntaxKind; + let tokenValue: string; + let precedingLineBreak: boolean; + let hasExtendedUnicodeEscape: boolean; + let tokenIsUnterminated: boolean; function error(message: DiagnosticMessage, length?: number): void { if (onError) { @@ -579,13 +579,13 @@ module ts { } function scanNumber(): number { - var start = pos; + let start = pos; while (isDigit(text.charCodeAt(pos))) pos++; if (text.charCodeAt(pos) === CharacterCodes.dot) { pos++; while (isDigit(text.charCodeAt(pos))) pos++; } - var end = pos; + let end = pos; if (text.charCodeAt(pos) === CharacterCodes.E || text.charCodeAt(pos) === CharacterCodes.e) { pos++; if (text.charCodeAt(pos) === CharacterCodes.plus || text.charCodeAt(pos) === CharacterCodes.minus) pos++; @@ -602,7 +602,7 @@ module ts { } function scanOctalDigits(): number { - var start = pos; + let start = pos; while (isOctalDigit(text.charCodeAt(pos))) { pos++; } @@ -626,10 +626,10 @@ module ts { } function scanHexDigits(minCount: number, scanAsManyAsPossible: boolean): number { - var digits = 0; - var value = 0; + let digits = 0; + let value = 0; while (digits < minCount || scanAsManyAsPossible) { - var ch = text.charCodeAt(pos); + let ch = text.charCodeAt(pos); if (ch >= CharacterCodes._0 && ch <= CharacterCodes._9) { value = value * 16 + ch - CharacterCodes._0; } @@ -652,9 +652,9 @@ module ts { } function scanString(): string { - var quote = text.charCodeAt(pos++); - var result = ""; - var start = pos; + let quote = text.charCodeAt(pos++); + let result = ""; + let start = pos; while (true) { if (pos >= len) { result += text.substring(start, pos); @@ -662,7 +662,7 @@ module ts { error(Diagnostics.Unterminated_string_literal); break; } - var ch = text.charCodeAt(pos); + let ch = text.charCodeAt(pos); if (ch === quote) { result += text.substring(start, pos); pos++; @@ -690,12 +690,12 @@ module ts { * a literal component of a TemplateExpression. */ function scanTemplateAndSetTokenValue(): SyntaxKind { - var startedWithBacktick = text.charCodeAt(pos) === CharacterCodes.backtick; + let startedWithBacktick = text.charCodeAt(pos) === CharacterCodes.backtick; pos++; - var start = pos; - var contents = "" - var resultingToken: SyntaxKind; + let start = pos; + let contents = "" + let resultingToken: SyntaxKind; while (true) { if (pos >= len) { @@ -706,7 +706,7 @@ module ts { break; } - var currChar = text.charCodeAt(pos); + let currChar = text.charCodeAt(pos); // '`' if (currChar === CharacterCodes.backtick) { @@ -762,7 +762,7 @@ module ts { error(Diagnostics.Unexpected_end_of_text); return ""; } - var ch = text.charCodeAt(pos++); + let ch = text.charCodeAt(pos++); switch (ch) { case CharacterCodes._0: return "\0"; @@ -814,7 +814,7 @@ module ts { } function scanHexadecimalEscape(numDigits: number): string { - var escapedValue = scanExactNumberOfHexDigits(numDigits); + let escapedValue = scanExactNumberOfHexDigits(numDigits); if (escapedValue >= 0) { return String.fromCharCode(escapedValue); @@ -826,8 +826,8 @@ module ts { } function scanExtendedUnicodeEscape(): string { - var escapedValue = scanMinimumNumberOfHexDigits(1); - var isInvalidExtendedEscape = false; + let escapedValue = scanMinimumNumberOfHexDigits(1); + let isInvalidExtendedEscape = false; // Validate the value of the digit if (escapedValue < 0) { @@ -867,8 +867,8 @@ module ts { return String.fromCharCode(codePoint); } - var codeUnit1 = Math.floor((codePoint - 65536) / 1024) + 0xD800; - var codeUnit2 = ((codePoint - 65536) % 1024) + 0xDC00; + let codeUnit1 = Math.floor((codePoint - 65536) / 1024) + 0xD800; + let codeUnit2 = ((codePoint - 65536) % 1024) + 0xDC00; return String.fromCharCode(codeUnit1, codeUnit2); } @@ -877,9 +877,9 @@ module ts { // and return code point value if valid Unicode escape is found. Otherwise return -1. function peekUnicodeEscape(): number { if (pos + 5 < len && text.charCodeAt(pos + 1) === CharacterCodes.u) { - var start = pos; + let start = pos; pos += 2; - var value = scanExactNumberOfHexDigits(4); + let value = scanExactNumberOfHexDigits(4); pos = start; return value; } @@ -887,10 +887,10 @@ module ts { } function scanIdentifierParts(): string { - var result = ""; - var start = pos; + let result = ""; + let start = pos; while (pos < len) { - var ch = text.charCodeAt(pos); + let ch = text.charCodeAt(pos); if (isIdentifierPart(ch)) { pos++; } @@ -915,9 +915,9 @@ module ts { function getIdentifierToken(): SyntaxKind { // Reserved words are between 2 and 11 characters long and start with a lowercase letter - var len = tokenValue.length; + let len = tokenValue.length; if (len >= 2 && len <= 11) { - var ch = tokenValue.charCodeAt(0); + let ch = tokenValue.charCodeAt(0); if (ch >= CharacterCodes.a && ch <= CharacterCodes.z && hasOwnProperty.call(textToToken, tokenValue)) { return token = textToToken[tokenValue]; } @@ -928,13 +928,13 @@ module ts { function scanBinaryOrOctalDigits(base: number): number { Debug.assert(base !== 2 || base !== 8, "Expected either base 2 or base 8"); - var value = 0; + let value = 0; // For counting number of digits; Valid binaryIntegerLiteral must have at least one binary digit following B or b. // Similarly valid octalIntegerLiteral must have at least one octal digit following o or O. - var numberOfDigits = 0; + let numberOfDigits = 0; while (true) { - var ch = text.charCodeAt(pos); - var valueOfCh = ch - CharacterCodes._0; + let ch = text.charCodeAt(pos); + let valueOfCh = ch - CharacterCodes._0; if (!isDigit(ch) || valueOfCh >= base) { break; } @@ -959,7 +959,7 @@ module ts { if (pos >= len) { return token = SyntaxKind.EndOfFileToken; } - var ch = text.charCodeAt(pos); + let ch = text.charCodeAt(pos); switch (ch) { case CharacterCodes.lineFeed: case CharacterCodes.carriageReturn: @@ -1079,9 +1079,9 @@ module ts { if (text.charCodeAt(pos + 1) === CharacterCodes.asterisk) { pos += 2; - var commentClosed = false; + let commentClosed = false; while (pos < len) { - var ch = text.charCodeAt(pos); + let ch = text.charCodeAt(pos); if (ch === CharacterCodes.asterisk && text.charCodeAt(pos + 1) === CharacterCodes.slash) { pos += 2; @@ -1117,7 +1117,7 @@ module ts { case CharacterCodes._0: if (pos + 2 < len && (text.charCodeAt(pos + 1) === CharacterCodes.X || text.charCodeAt(pos + 1) === CharacterCodes.x)) { pos += 2; - var value = scanMinimumNumberOfHexDigits(1); + let value = scanMinimumNumberOfHexDigits(1); if (value < 0) { error(Diagnostics.Hexadecimal_digit_expected); value = 0; @@ -1127,7 +1127,7 @@ module ts { } else if (pos + 2 < len && (text.charCodeAt(pos + 1) === CharacterCodes.B || text.charCodeAt(pos + 1) === CharacterCodes.b)) { pos += 2; - var value = scanBinaryOrOctalDigits(/* base */ 2); + let value = scanBinaryOrOctalDigits(/* base */ 2); if (value < 0) { error(Diagnostics.Binary_digit_expected); value = 0; @@ -1137,7 +1137,7 @@ module ts { } else if (pos + 2 < len && (text.charCodeAt(pos + 1) === CharacterCodes.O || text.charCodeAt(pos + 1) === CharacterCodes.o)) { pos += 2; - var value = scanBinaryOrOctalDigits(/* base */ 8); + let value = scanBinaryOrOctalDigits(/* base */ 8); if (value < 0) { error(Diagnostics.Octal_digit_expected); value = 0; @@ -1248,10 +1248,10 @@ module ts { case CharacterCodes.tilde: return pos++, token = SyntaxKind.TildeToken; case CharacterCodes.backslash: - var ch = peekUnicodeEscape(); - if (ch >= 0 && isIdentifierStart(ch)) { + let cookedChar = peekUnicodeEscape(); + if (cookedChar >= 0 && isIdentifierStart(cookedChar)) { pos += 6; - tokenValue = String.fromCharCode(ch) + scanIdentifierParts(); + tokenValue = String.fromCharCode(cookedChar) + scanIdentifierParts(); return token = getIdentifierToken(); } error(Diagnostics.Invalid_character); @@ -1304,9 +1304,9 @@ module ts { function reScanSlashToken(): SyntaxKind { if (token === SyntaxKind.SlashToken || token === SyntaxKind.SlashEqualsToken) { - var p = tokenPos + 1; - var inEscape = false; - var inCharacterClass = false; + let p = tokenPos + 1; + let inEscape = false; + let inCharacterClass = false; while (true) { // If we reach the end of a file, or hit a newline, then this is an unterminated // regex. Report error and return what we have so far. @@ -1316,7 +1316,7 @@ module ts { break; } - var ch = text.charCodeAt(p); + let ch = text.charCodeAt(p); if (isLineBreak(ch)) { tokenIsUnterminated = true; error(Diagnostics.Unterminated_regular_expression_literal) @@ -1366,13 +1366,13 @@ module ts { } function speculationHelper(callback: () => T, isLookahead: boolean): T { - var savePos = pos; - var saveStartPos = startPos; - var saveTokenPos = tokenPos; - var saveToken = token; - var saveTokenValue = tokenValue; - var savePrecedingLineBreak = precedingLineBreak; - var result = callback(); + let savePos = pos; + let saveStartPos = startPos; + let saveTokenPos = tokenPos; + let saveToken = token; + let saveTokenValue = tokenValue; + let savePrecedingLineBreak = precedingLineBreak; + let result = callback(); // If our callback returned something 'falsy' or we're just looking ahead, // then unconditionally restore us to where we were. diff --git a/src/compiler/sys.ts b/src/compiler/sys.ts index 5f10a747d42..f89c474ce7f 100644 --- a/src/compiler/sys.ts +++ b/src/compiler/sys.ts @@ -124,15 +124,14 @@ module ts { function visitDirectory(path: string) { var folder = fso.GetFolder(path || "."); var files = getNames(folder.files); - for (var i = 0; i < files.length; i++) { - var name = files[i]; + for (let name of files) { if (!extension || fileExtensionIs(name, extension)) { result.push(combinePaths(path, name)); } } var subfolders = getNames(folder.subfolders); - for (var i = 0; i < subfolders.length; i++) { - visitDirectory(combinePaths(path, subfolders[i])); + for (let current of subfolders) { + visitDirectory(combinePaths(path, current)); } } } @@ -230,8 +229,8 @@ module ts { function visitDirectory(path: string) { var files = _fs.readdirSync(path || ".").sort(); var directories: string[] = []; - for (var i = 0; i < files.length; i++) { - var name = combinePaths(path, files[i]); + for (let current of files) { + var name = combinePaths(path, current); var stat = _fs.lstatSync(name); if (stat.isFile()) { if (!extension || fileExtensionIs(name, extension)) { @@ -242,8 +241,8 @@ module ts { directories.push(name); } } - for (var i = 0; i < directories.length; i++) { - visitDirectory(directories[i]); + for (let current of directories) { + visitDirectory(current); } } } diff --git a/src/compiler/types.ts b/src/compiler/types.ts index a893c36c359..a6af04704ae 100644 --- a/src/compiler/types.ts +++ b/src/compiler/types.ts @@ -1559,8 +1559,9 @@ module ts { target?: ScriptTarget; version?: boolean; watch?: boolean; - stripInternal?: boolean; - preserveNewLines?: boolean; + /* @internal */ stripInternal?: boolean; + /* @internal */ preserveNewLines?: boolean; + /* @internal */ cacheDownlevelForOfLength?: boolean; [option: string]: string | number | boolean; } diff --git a/src/compiler/utilities.ts b/src/compiler/utilities.ts index b0e2540bdf0..4fce9c928f7 100644 --- a/src/compiler/utilities.ts +++ b/src/compiler/utilities.ts @@ -14,9 +14,8 @@ module ts { } export function getDeclarationOfKind(symbol: Symbol, kind: SyntaxKind): Declaration { - var declarations = symbol.declarations; - for (var i = 0; i < declarations.length; i++) { - var declaration = declarations[i]; + let declarations = symbol.declarations; + for (let declaration of declarations) { if (declaration.kind === kind) { return declaration; } @@ -40,12 +39,12 @@ module ts { } // Pool writers to avoid needing to allocate them for every symbol we write. - var stringWriters: StringSymbolWriter[] = []; + let stringWriters: StringSymbolWriter[] = []; export function getSingleLineStringWriter(): StringSymbolWriter { if (stringWriters.length == 0) { - var str = ""; + let str = ""; - var writeText: (text: string) => void = text => str += text; + let writeText: (text: string) => void = text => str += text; return { string: () => str, writeKeyword: writeText, @@ -89,7 +88,7 @@ module ts { // A node is considered to contain a parse error if: // a) the parser explicitly marked that it had an error // b) any of it's children reported that it had an error. - var thisNodeOrAnySubNodesHasError = ((node.parserContextFlags & ParserContextFlags.ThisNodeHasError) !== 0) || + let thisNodeOrAnySubNodesHasError = ((node.parserContextFlags & ParserContextFlags.ThisNodeHasError) !== 0) || forEachChild(node, containsParseError); // If so, mark ourselves accordingly. @@ -118,8 +117,8 @@ module ts { // This is a useful function for debugging purposes. export function nodePosToString(node: Node): string { - var file = getSourceFileOfNode(node); - var loc = getLineAndCharacterOfPosition(file, node.pos); + let file = getSourceFileOfNode(node); + let loc = getLineAndCharacterOfPosition(file, node.pos); return `${ file.fileName }(${ loc.line + 1 },${ loc.character + 1 })`; } @@ -133,7 +132,7 @@ module ts { // missing. This happens whenever the parser knows it needs to parse something, but can't // get anything in the source code that it expects at that location. For example: // - // var a: ; + // let a: ; // // Here, the Type in the Type-Annotation is not-optional (as there is a colon in the source // code). So the parser will attempt to parse out a type, and will create an actual node. @@ -166,7 +165,7 @@ module ts { return ""; } - var text = sourceFile.text; + let text = sourceFile.text; return text.substring(skipTrivia(text, node.pos), node.end); } @@ -204,7 +203,7 @@ module ts { } export function getEnclosingBlockScopeContainer(node: Node): Node { - var current = node; + let current = node; while (current) { if (isFunctionLike(current)) { return current; @@ -245,14 +244,14 @@ module ts { } export function createDiagnosticForNode(node: Node, message: DiagnosticMessage, arg0?: any, arg1?: any, arg2?: any): Diagnostic { - var sourceFile = getSourceFileOfNode(node); - var span = getErrorSpanForNode(sourceFile, node); + let sourceFile = getSourceFileOfNode(node); + let span = getErrorSpanForNode(sourceFile, node); return createFileDiagnostic(sourceFile, span.start, span.length, message, arg0, arg1, arg2); } export function createDiagnosticForNodeFromMessageChain(node: Node, messageChain: DiagnosticMessageChain): Diagnostic { - var sourceFile = getSourceFileOfNode(node); - var span = getErrorSpanForNode(sourceFile, node); + let sourceFile = getSourceFileOfNode(node); + let span = getErrorSpanForNode(sourceFile, node); return { file: sourceFile, start: span.start, @@ -265,15 +264,15 @@ module ts { /* @internal */ export function getSpanOfTokenAtPosition(sourceFile: SourceFile, pos: number): TextSpan { - var scanner = createScanner(sourceFile.languageVersion, /*skipTrivia*/ true, sourceFile.text); + let scanner = createScanner(sourceFile.languageVersion, /*skipTrivia*/ true, sourceFile.text); scanner.setTextPos(pos); scanner.scan(); - var start = scanner.getTokenPos(); + let start = scanner.getTokenPos(); return createTextSpanFromBounds(start, scanner.getTextPos()); } export function getErrorSpanForNode(sourceFile: SourceFile, node: Node): TextSpan { - var errorNode = node; + let errorNode = node; switch (node.kind) { // This list is a work in progress. Add missing node kinds to improve their error // spans. @@ -296,7 +295,7 @@ module ts { return getSpanOfTokenAtPosition(sourceFile, node.pos); } - var pos = nodeIsMissing(errorNode) + let pos = nodeIsMissing(errorNode) ? errorNode.pos : skipTrivia(sourceFile.text, errorNode.pos); @@ -333,7 +332,7 @@ module ts { export function getCombinedNodeFlags(node: Node): NodeFlags { node = walkUpBindingElementsAndPatterns(node); - var flags = node.flags; + let flags = node.flags; if (node.kind === SyntaxKind.VariableDeclaration) { node = node.parent; } @@ -390,7 +389,7 @@ module ts { } } - export var fullTripleSlashReferencePathRegEx = /^(\/\/\/\s*/ + export let fullTripleSlashReferencePathRegEx = /^(\/\/\/\s*/ // Warning: This has the same semantics as the forEach family of functions, @@ -620,7 +619,7 @@ module ts { // fall through case SyntaxKind.NumericLiteral: case SyntaxKind.StringLiteral: - var parent = node.parent; + let parent = node.parent; switch (parent.kind) { case SyntaxKind.VariableDeclaration: case SyntaxKind.Parameter: @@ -642,13 +641,13 @@ module ts { case SyntaxKind.SwitchStatement: return (parent).expression === node; case SyntaxKind.ForStatement: - var forStatement = parent; + let forStatement = parent; return (forStatement.initializer === node && forStatement.initializer.kind !== SyntaxKind.VariableDeclarationList) || forStatement.condition === node || forStatement.iterator === node; case SyntaxKind.ForInStatement: case SyntaxKind.ForOfStatement: - var forInStatement = parent; + let forInStatement = parent; return (forInStatement.initializer === node && forInStatement.initializer.kind !== SyntaxKind.VariableDeclarationList) || forInStatement.expression === node; case SyntaxKind.TypeAssertionExpression: @@ -667,7 +666,7 @@ module ts { } export function isInstantiatedModule(node: ModuleDeclaration, preserveConstEnums: boolean) { - var moduleState = getModuleInstanceState(node) + let moduleState = getModuleInstanceState(node) return moduleState === ModuleInstanceState.Instantiated || (preserveConstEnums && moduleState === ModuleInstanceState.ConstEnumOnly); } @@ -690,7 +689,7 @@ module ts { return (node).moduleSpecifier; } if (node.kind === SyntaxKind.ImportEqualsDeclaration) { - var reference = (node).moduleReference; + let reference = (node).moduleReference; if (reference.kind === SyntaxKind.ExternalModuleReference) { return (reference).expression; } @@ -821,7 +820,7 @@ module ts { return false; } - var parent = name.parent; + let parent = name.parent; if (parent.kind === SyntaxKind.ImportSpecifier || parent.kind === SyntaxKind.ExportSpecifier) { if ((parent).propertyName) { return true; @@ -836,25 +835,25 @@ module ts { } export function getClassBaseTypeNode(node: ClassDeclaration) { - var heritageClause = getHeritageClause(node.heritageClauses, SyntaxKind.ExtendsKeyword); + let heritageClause = getHeritageClause(node.heritageClauses, SyntaxKind.ExtendsKeyword); return heritageClause && heritageClause.types.length > 0 ? heritageClause.types[0] : undefined; } export function getClassImplementedTypeNodes(node: ClassDeclaration) { - var heritageClause = getHeritageClause(node.heritageClauses, SyntaxKind.ImplementsKeyword); + let heritageClause = getHeritageClause(node.heritageClauses, SyntaxKind.ImplementsKeyword); return heritageClause ? heritageClause.types : undefined; } export function getInterfaceBaseTypeNodes(node: InterfaceDeclaration) { - var heritageClause = getHeritageClause(node.heritageClauses, SyntaxKind.ExtendsKeyword); + let heritageClause = getHeritageClause(node.heritageClauses, SyntaxKind.ExtendsKeyword); return heritageClause ? heritageClause.types : undefined; } export function getHeritageClause(clauses: NodeArray, kind: SyntaxKind) { if (clauses) { - for (var i = 0, n = clauses.length; i < n; i++) { - if (clauses[i].token === kind) { - return clauses[i]; + for (let clause of clauses) { + if (clause.token === kind) { + return clause; } } } @@ -864,7 +863,7 @@ module ts { export function tryResolveScriptReference(host: ScriptReferenceHost, sourceFile: SourceFile, reference: FileReference) { if (!host.getCompilerOptions().noResolve) { - var referenceFileName = isRootedDiskPath(reference.fileName) ? reference.fileName : combinePaths(getDirectoryPath(sourceFile.fileName), reference.fileName); + let referenceFileName = isRootedDiskPath(reference.fileName) ? reference.fileName : combinePaths(getDirectoryPath(sourceFile.fileName), reference.fileName); referenceFileName = getNormalizedAbsolutePath(referenceFileName, host.getCurrentDirectory()); return host.getSourceFile(referenceFileName); } @@ -881,8 +880,8 @@ module ts { } export function getFileReferenceFromReferencePath(comment: string, commentRange: CommentRange): ReferencePathMatchResult { - var simpleReferenceRegEx = /^\/\/\/\s*/gim; + let simpleReferenceRegEx = /^\/\/\/\s*/gim; if (simpleReferenceRegEx.exec(comment)) { if (isNoDefaultLibRegEx.exec(comment)) { return { @@ -890,10 +889,10 @@ module ts { } } else { - var matchResult = fullTripleSlashReferencePathRegEx.exec(comment); + let matchResult = fullTripleSlashReferencePathRegEx.exec(comment); if (matchResult) { - var start = commentRange.pos; - var end = commentRange.end; + let start = commentRange.pos; + let end = commentRange.end; return { fileReference: { pos: start, @@ -950,9 +949,9 @@ module ts { return (name).text; } if (name.kind === SyntaxKind.ComputedPropertyName) { - var nameExpression = (name).expression; + let nameExpression = (name).expression; if (isWellKnownSymbolSyntactically(nameExpression)) { - var rightHandSideName = (nameExpression).name.text; + let rightHandSideName = (nameExpression).name.text; return getPropertyNameForKnownSymbolName(rightHandSideName); } } @@ -1004,14 +1003,14 @@ module ts { } export function textSpanOverlapsWith(span: TextSpan, other: TextSpan) { - var overlapStart = Math.max(span.start, other.start); - var overlapEnd = Math.min(textSpanEnd(span), textSpanEnd(other)); + let overlapStart = Math.max(span.start, other.start); + let overlapEnd = Math.min(textSpanEnd(span), textSpanEnd(other)); return overlapStart < overlapEnd; } export function textSpanOverlap(span1: TextSpan, span2: TextSpan) { - var overlapStart = Math.max(span1.start, span2.start); - var overlapEnd = Math.min(textSpanEnd(span1), textSpanEnd(span2)); + let overlapStart = Math.max(span1.start, span2.start); + let overlapEnd = Math.min(textSpanEnd(span1), textSpanEnd(span2)); if (overlapStart < overlapEnd) { return createTextSpanFromBounds(overlapStart, overlapEnd); } @@ -1023,7 +1022,7 @@ module ts { } export function textSpanIntersectsWith(span: TextSpan, start: number, length: number) { - var end = start + length; + let end = start + length; return start <= textSpanEnd(span) && end >= span.start; } @@ -1032,8 +1031,8 @@ module ts { } export function textSpanIntersection(span1: TextSpan, span2: TextSpan) { - var intersectStart = Math.max(span1.start, span2.start); - var intersectEnd = Math.min(textSpanEnd(span1), textSpanEnd(span2)); + let intersectStart = Math.max(span1.start, span2.start); + let intersectEnd = Math.min(textSpanEnd(span1), textSpanEnd(span2)); if (intersectStart <= intersectEnd) { return createTextSpanFromBounds(intersectStart, intersectEnd); } @@ -1071,7 +1070,7 @@ module ts { return { span, newLength }; } - export var unchangedTextChangeRange = createTextChangeRange(createTextSpan(0, 0), 0); + export let unchangedTextChangeRange = createTextChangeRange(createTextSpan(0, 0), 0); /** * Called to merge all the changes that occurred across several versions of a script snapshot @@ -1092,14 +1091,14 @@ module ts { // We change from talking about { { oldStart, oldLength }, newLength } to { oldStart, oldEnd, newEnd } // as it makes things much easier to reason about. - var change0 = changes[0]; + let change0 = changes[0]; - var oldStartN = change0.span.start; - var oldEndN = textSpanEnd(change0.span); - var newEndN = oldStartN + change0.newLength; + let oldStartN = change0.span.start; + let oldEndN = textSpanEnd(change0.span); + let newEndN = oldStartN + change0.newLength; - for (var i = 1; i < changes.length; i++) { - var nextChange = changes[i]; + for (let i = 1; i < changes.length; i++) { + let nextChange = changes[i]; // Consider the following case: // i.e. two edits. The first represents the text change range { { 10, 50 }, 30 }. i.e. The span starting @@ -1181,13 +1180,13 @@ module ts { // newEnd3 : Max(newEnd2, newEnd2 + (newEnd1 - oldEnd2)) // } - var oldStart1 = oldStartN; - var oldEnd1 = oldEndN; - var newEnd1 = newEndN; + let oldStart1 = oldStartN; + let oldEnd1 = oldEndN; + let newEnd1 = newEndN; - var oldStart2 = nextChange.span.start; - var oldEnd2 = textSpanEnd(nextChange.span); - var newEnd2 = oldStart2 + nextChange.newLength; + let oldStart2 = nextChange.span.start; + let oldEnd2 = textSpanEnd(nextChange.span); + let newEnd2 = oldStart2 + nextChange.newLength; oldStartN = Math.min(oldStart1, oldStart2); oldEndN = Math.max(oldEnd1, oldEnd1 + (oldEnd2 - newEnd1)); @@ -1206,7 +1205,7 @@ module ts { } export function createSynthesizedNode(kind: SyntaxKind, startsOnNewLine?: boolean): Node { - var node = createNode(kind); + let node = createNode(kind); node.pos = -1; node.end = -1; node.startsOnNewLine = startsOnNewLine; @@ -1216,7 +1215,7 @@ module ts { export function generateUniqueName(baseName: string, isExistingName: (name: string) => boolean): string { // First try '_name' if (baseName.charCodeAt(0) !== CharacterCodes._) { - var baseName = "_" + baseName; + baseName = "_" + baseName; if (!isExistingName(baseName)) { return baseName; } @@ -1225,9 +1224,9 @@ module ts { if (baseName.charCodeAt(baseName.length - 1) !== CharacterCodes._) { baseName += "_"; } - var i = 1; + let i = 1; while (true) { - var name = baseName + i; + let name = baseName + i; if (!isExistingName(name)) { return name; } @@ -1237,11 +1236,11 @@ module ts { // @internal export function createDiagnosticCollection(): DiagnosticCollection { - var nonFileDiagnostics: Diagnostic[] = []; - var fileDiagnostics: Map = {}; + let nonFileDiagnostics: Diagnostic[] = []; + let fileDiagnostics: Map = {}; - var diagnosticsModified = false; - var modificationCount = 0; + let diagnosticsModified = false; + let modificationCount = 0; return { add, @@ -1255,7 +1254,7 @@ module ts { } function add(diagnostic: Diagnostic): void { - var diagnostics: Diagnostic[]; + let diagnostics: Diagnostic[]; if (diagnostic.file) { diagnostics = fileDiagnostics[diagnostic.file.fileName]; if (!diagnostics) { @@ -1283,14 +1282,14 @@ module ts { return fileDiagnostics[fileName] || []; } - var allDiagnostics: Diagnostic[] = []; + let allDiagnostics: Diagnostic[] = []; function pushDiagnostic(d: Diagnostic) { allDiagnostics.push(d); } forEach(nonFileDiagnostics, pushDiagnostic); - for (var key in fileDiagnostics) { + for (let key in fileDiagnostics) { if (hasProperty(fileDiagnostics, key)) { forEach(fileDiagnostics[key], pushDiagnostic); } @@ -1307,7 +1306,7 @@ module ts { diagnosticsModified = false; nonFileDiagnostics = sortAndDeduplicateDiagnostics(nonFileDiagnostics); - for (var key in fileDiagnostics) { + for (let key in fileDiagnostics) { if (hasProperty(fileDiagnostics, key)) { fileDiagnostics[key] = sortAndDeduplicateDiagnostics(fileDiagnostics[key]); } @@ -1320,8 +1319,8 @@ module ts { // the language service. These characters should be escaped when printing, and if any characters are added, // the map below must be updated. Note that this regexp *does not* include the 'delete' character. // There is no reason for this other than that JSON.stringify does not handle it either. - var escapedCharsRegExp = /[\\\"\u0000-\u001f\t\v\f\b\r\n\u2028\u2029\u0085]/g; - var escapedCharsMap: Map = { + let escapedCharsRegExp = /[\\\"\u0000-\u001f\t\v\f\b\r\n\u2028\u2029\u0085]/g; + let escapedCharsMap: Map = { "\0": "\\0", "\t": "\\t", "\v": "\\v", @@ -1352,12 +1351,12 @@ module ts { } function get16BitUnicodeEscapeSequence(charCode: number): string { - var hexCharCode = charCode.toString(16).toUpperCase(); - var paddedHexCode = ("0000" + hexCharCode).slice(-4); + let hexCharCode = charCode.toString(16).toUpperCase(); + let paddedHexCode = ("0000" + hexCharCode).slice(-4); return "\\u" + paddedHexCode; } - var nonAsciiCharacters = /[^\u0000-\u007F]/g; + let nonAsciiCharacters = /[^\u0000-\u007F]/g; export function escapeNonAsciiCharacters(s: string): string { // Replace non-ASCII characters with '\uNNNN' escapes if any exist. // Otherwise just return the original string. diff --git a/src/services/breakpoints.ts b/src/services/breakpoints.ts index e3d8fa9256e..395141cc4cc 100644 --- a/src/services/breakpoints.ts +++ b/src/services/breakpoints.ts @@ -13,13 +13,13 @@ module ts.BreakpointResolver { return undefined; } - var tokenAtLocation = getTokenAtPosition(sourceFile, position); - var lineOfPosition = sourceFile.getLineAndCharacterOfPosition(position).line; + let tokenAtLocation = getTokenAtPosition(sourceFile, position); + let lineOfPosition = sourceFile.getLineAndCharacterOfPosition(position).line; if (sourceFile.getLineAndCharacterOfPosition(tokenAtLocation.getStart()).line > lineOfPosition) { // Get previous token if the token is returned starts on new line - // eg: var x =10; |--- cursor is here - // var y = 10; - // token at position will return var keyword on second line as the token but we would like to use + // eg: let x =10; |--- cursor is here + // let y = 10; + // token at position will return let keyword on second line as the token but we would like to use // token on same line if trailing trivia (comments or white spaces on same line) part of the last token on that line tokenAtLocation = findPrecedingToken(tokenAtLocation.pos, sourceFile); @@ -279,9 +279,9 @@ module ts.BreakpointResolver { return spanInNode(variableDeclaration.parent.parent); } - var isParentVariableStatement = variableDeclaration.parent.parent.kind === SyntaxKind.VariableStatement; - var isDeclarationOfForStatement = variableDeclaration.parent.parent.kind === SyntaxKind.ForStatement && contains(((variableDeclaration.parent.parent).initializer).declarations, variableDeclaration); - var declarations = isParentVariableStatement + let isParentVariableStatement = variableDeclaration.parent.parent.kind === SyntaxKind.VariableStatement; + let isDeclarationOfForStatement = variableDeclaration.parent.parent.kind === SyntaxKind.ForStatement && contains(((variableDeclaration.parent.parent).initializer).declarations, variableDeclaration); + let declarations = isParentVariableStatement ? (variableDeclaration.parent.parent).declarationList.declarations : isDeclarationOfForStatement ? ((variableDeclaration.parent.parent).initializer).declarations @@ -291,12 +291,12 @@ module ts.BreakpointResolver { if (variableDeclaration.initializer || (variableDeclaration.flags & NodeFlags.Export)) { if (declarations && declarations[0] === variableDeclaration) { if (isParentVariableStatement) { - // First declaration - include var keyword + // First declaration - include let keyword return textSpan(variableDeclaration.parent, variableDeclaration); } else { Debug.assert(isDeclarationOfForStatement); - // Include var keyword from for statement declarations in the span + // Include let keyword from for statement declarations in the span return textSpan(findPrecedingToken(variableDeclaration.pos, sourceFile, variableDeclaration.parent), variableDeclaration); } } @@ -307,7 +307,7 @@ module ts.BreakpointResolver { } else if (declarations && declarations[0] !== variableDeclaration) { // If we cant set breakpoint on this declaration, set it on previous one - var indexOfCurrentDeclaration = indexOf(declarations, variableDeclaration); + let indexOfCurrentDeclaration = indexOf(declarations, variableDeclaration); return spanInVariableDeclaration(declarations[indexOfCurrentDeclaration - 1]); } } @@ -323,8 +323,8 @@ module ts.BreakpointResolver { return textSpan(parameter); } else { - var functionDeclaration = parameter.parent; - var indexOfParameter = indexOf(functionDeclaration.parameters, parameter); + let functionDeclaration = parameter.parent; + let indexOfParameter = indexOf(functionDeclaration.parameters, parameter); if (indexOfParameter) { // Not a first parameter, go to previous parameter return spanInParameterDeclaration(functionDeclaration.parameters[indexOfParameter - 1]); @@ -357,7 +357,7 @@ module ts.BreakpointResolver { } function spanInFunctionBlock(block: Block): TextSpan { - var nodeForSpanInBlock = block.statements.length ? block.statements[0] : block.getLastToken(); + let nodeForSpanInBlock = block.statements.length ? block.statements[0] : block.getLastToken(); if (canFunctionHaveSpanInWholeDeclaration(block.parent)) { return spanInNodeIfStartsOnSameLine(block.parent, nodeForSpanInBlock); } @@ -391,7 +391,7 @@ module ts.BreakpointResolver { function spanInForStatement(forStatement: ForStatement): TextSpan { if (forStatement.initializer) { if (forStatement.initializer.kind === SyntaxKind.VariableDeclarationList) { - var variableDeclarationList = forStatement.initializer; + let variableDeclarationList = forStatement.initializer; if (variableDeclarationList.declarations.length > 0) { return spanInNode(variableDeclarationList.declarations[0]); } @@ -413,11 +413,11 @@ module ts.BreakpointResolver { function spanInOpenBraceToken(node: Node): TextSpan { switch (node.parent.kind) { case SyntaxKind.EnumDeclaration: - var enumDeclaration = node.parent; + let enumDeclaration = node.parent; return spanInNodeIfStartsOnSameLine(findPrecedingToken(node.pos, sourceFile, node.parent), enumDeclaration.members.length ? enumDeclaration.members[0] : enumDeclaration.getLastToken(sourceFile)); case SyntaxKind.ClassDeclaration: - var classDeclaration = node.parent; + let classDeclaration = node.parent; return spanInNodeIfStartsOnSameLine(findPrecedingToken(node.pos, sourceFile, node.parent), classDeclaration.members.length ? classDeclaration.members[0] : classDeclaration.getLastToken(sourceFile)); case SyntaxKind.CaseBlock: @@ -453,8 +453,8 @@ module ts.BreakpointResolver { case SyntaxKind.CaseBlock: // breakpoint in last statement of the last clause - var caseBlock = node.parent; - var lastClause = caseBlock.clauses[caseBlock.clauses.length - 1]; + let caseBlock = node.parent; + let lastClause = caseBlock.clauses[caseBlock.clauses.length - 1]; if (lastClause) { return spanInNode(lastClause.statements[lastClause.statements.length - 1]); } diff --git a/src/services/formatting/formatting.ts b/src/services/formatting/formatting.ts index dd12b452b57..24ddabc2b2b 100644 --- a/src/services/formatting/formatting.ts +++ b/src/services/formatting/formatting.ts @@ -23,7 +23,7 @@ module ts.formatting { * Indentation for the scope that can be dynamically recomputed. * i.e * while(true) - * { var x; + * { let x; * } * Normally indentation is applied only to the first token in line so at glance 'var' should not be touched. * However if some format rule adds new line between '}' and 'var' 'var' will become @@ -67,12 +67,12 @@ module ts.formatting { } export function formatOnEnter(position: number, sourceFile: SourceFile, rulesProvider: RulesProvider, options: FormatCodeOptions): TextChange[] { - var line = sourceFile.getLineAndCharacterOfPosition(position).line; + let line = sourceFile.getLineAndCharacterOfPosition(position).line; if (line === 0) { return []; } // get the span for the previous\current line - var span = { + let span = { // get start position for the previous line pos: getStartPositionOfLine(line - 1, sourceFile), // get end position for the current line (end value is exclusive so add 1 to the result) @@ -90,7 +90,7 @@ module ts.formatting { } export function formatDocument(sourceFile: SourceFile, rulesProvider: RulesProvider, options: FormatCodeOptions): TextChange[] { - var span = { + let span = { pos: 0, end: sourceFile.text.length }; @@ -99,7 +99,7 @@ module ts.formatting { export function formatSelection(start: number, end: number, sourceFile: SourceFile, rulesProvider: RulesProvider, options: FormatCodeOptions): TextChange[] { // format from the beginning of the line - var span = { + let span = { pos: getLineStartPositionForPosition(start, sourceFile), end: end }; @@ -107,11 +107,11 @@ module ts.formatting { } function formatOutermostParent(position: number, expectedLastToken: SyntaxKind, sourceFile: SourceFile, options: FormatCodeOptions, rulesProvider: RulesProvider, requestKind: FormattingRequestKind): TextChange[] { - var parent = findOutermostParent(position, expectedLastToken, sourceFile); + let parent = findOutermostParent(position, expectedLastToken, sourceFile); if (!parent) { return []; } - var span = { + let span = { pos: getLineStartPositionForPosition(parent.getStart(sourceFile), sourceFile), end: parent.end }; @@ -119,7 +119,7 @@ module ts.formatting { } function findOutermostParent(position: number, expectedTokenKind: SyntaxKind, sourceFile: SourceFile): Node { - var precedingToken = findPrecedingToken(position, sourceFile); + let precedingToken = findPrecedingToken(position, sourceFile); // when it is claimed that trigger character was typed at given position // we verify that there is a token with a matching kind whose end is equal to position (because the character was just typed). @@ -134,13 +134,13 @@ module ts.formatting { // walk up and search for the parent node that ends at the same position with precedingToken. // for cases like this // - // var x = 1; + // let x = 1; // while (true) { // } // after typing close curly in while statement we want to reformat just the while statement. // However if we just walk upwards searching for the parent that has the same end value - // we'll end up with the whole source file. isListElement allows to stop on the list element level - var current = precedingToken; + let current = precedingToken; while (current && current.parent && current.parent.end === precedingToken.end && @@ -159,7 +159,7 @@ module ts.formatting { case SyntaxKind.InterfaceDeclaration: return rangeContainsRange((parent).members, node); case SyntaxKind.ModuleDeclaration: - var body = (parent).body; + let body = (parent).body; return body && body.kind === SyntaxKind.Block && rangeContainsRange((body).statements, node); case SyntaxKind.SourceFile: case SyntaxKind.Block: @@ -177,9 +177,9 @@ module ts.formatting { return find(sourceFile); function find(n: Node): Node { - var candidate = forEachChild(n, c => startEndContainsRange(c.getStart(sourceFile), c.end, range) && c); + let candidate = forEachChild(n, c => startEndContainsRange(c.getStart(sourceFile), c.end, range) && c); if (candidate) { - var result = find(candidate); + let result = find(candidate); if (result) { return result; } @@ -199,7 +199,7 @@ module ts.formatting { } // pick only errors that fall in range - var sorted = errors + let sorted = errors .filter(d => rangeOverlapsWithStartEnd(originalRange, d.start, d.start + d.length)) .sort((e1, e2) => e1.start - e2.start); @@ -207,7 +207,7 @@ module ts.formatting { return rangeHasNoErrors; } - var index = 0; + let index = 0; return r => { // in current implementation sequence of arguments [r1, r2...] is monotonically increasing. @@ -218,7 +218,7 @@ module ts.formatting { return false; } - var error = sorted[index]; + let error = sorted[index]; if (r.end <= error.start) { // specified range ends before the error refered by 'index' - no error in range return false; @@ -244,12 +244,12 @@ module ts.formatting { * and return its end as start position for the scanner. */ function getScanStartPosition(enclosingNode: Node, originalRange: TextRange, sourceFile: SourceFile): number { - var start = enclosingNode.getStart(sourceFile); + let start = enclosingNode.getStart(sourceFile); if (start === originalRange.pos && enclosingNode.end === originalRange.end) { return start; } - var precedingToken = findPrecedingToken(originalRange.pos, sourceFile); + let precedingToken = findPrecedingToken(originalRange.pos, sourceFile); if (!precedingToken) { // no preceding token found - start from the beginning of enclosing node return enclosingNode.pos; @@ -280,10 +280,10 @@ module ts.formatting { * to the initial indentation. */ function getOwnOrInheritedDelta(n: Node, options: FormatCodeOptions, sourceFile: SourceFile): number { - var previousLine = Constants.Unknown; - var childKind = SyntaxKind.Unknown; + let previousLine = Constants.Unknown; + let childKind = SyntaxKind.Unknown; while (n) { - var line = sourceFile.getLineAndCharacterOfPosition(n.getStart(sourceFile)).line; + let line = sourceFile.getLineAndCharacterOfPosition(n.getStart(sourceFile)).line; if (previousLine !== Constants.Unknown && line !== previousLine) { break; } @@ -305,30 +305,30 @@ module ts.formatting { rulesProvider: RulesProvider, requestKind: FormattingRequestKind): TextChange[] { - var rangeContainsError = prepareRangeContainsErrorFunction(sourceFile.parseDiagnostics, originalRange); + let rangeContainsError = prepareRangeContainsErrorFunction(sourceFile.parseDiagnostics, originalRange); // formatting context is used by rules provider - var formattingContext = new FormattingContext(sourceFile, requestKind); + let formattingContext = new FormattingContext(sourceFile, requestKind); // find the smallest node that fully wraps the range and compute the initial indentation for the node - var enclosingNode = findEnclosingNode(originalRange, sourceFile); + let enclosingNode = findEnclosingNode(originalRange, sourceFile); - var formattingScanner = getFormattingScanner(sourceFile, getScanStartPosition(enclosingNode, originalRange, sourceFile), originalRange.end); + let formattingScanner = getFormattingScanner(sourceFile, getScanStartPosition(enclosingNode, originalRange, sourceFile), originalRange.end); - var initialIndentation = SmartIndenter.getIndentationForNode(enclosingNode, originalRange, sourceFile, options); + let initialIndentation = SmartIndenter.getIndentationForNode(enclosingNode, originalRange, sourceFile, options); - var previousRangeHasError: boolean; - var previousRange: TextRangeWithKind; - var previousParent: Node; - var previousRangeStartLine: number; + let previousRangeHasError: boolean; + let previousRange: TextRangeWithKind; + let previousParent: Node; + let previousRangeStartLine: number; - var edits: TextChange[] = []; + let edits: TextChange[] = []; formattingScanner.advance(); if (formattingScanner.isOnToken()) { - var startLine = sourceFile.getLineAndCharacterOfPosition(enclosingNode.getStart(sourceFile)).line; - var delta = getOwnOrInheritedDelta(enclosingNode, options, sourceFile); + let startLine = sourceFile.getLineAndCharacterOfPosition(enclosingNode.getStart(sourceFile)).line; + let delta = getOwnOrInheritedDelta(enclosingNode, options, sourceFile); processNode(enclosingNode, enclosingNode, startLine, initialIndentation, delta); } @@ -357,9 +357,9 @@ module ts.formatting { } } else { - var startLine = sourceFile.getLineAndCharacterOfPosition(startPos).line; - var startLinePosition = getLineStartPositionForPosition(startPos, sourceFile); - var column = SmartIndenter.findFirstNonWhitespaceColumn(startLinePosition, startPos, sourceFile, options); + let startLine = sourceFile.getLineAndCharacterOfPosition(startPos).line; + let startLinePosition = getLineStartPositionForPosition(startPos, sourceFile); + let column = SmartIndenter.findFirstNonWhitespaceColumn(startLinePosition, startPos, sourceFile, options); if (startLine !== parentStartLine || startPos === column) { return column } @@ -376,7 +376,7 @@ module ts.formatting { parentDynamicIndentation: DynamicIndentation, effectiveParentStartLine: number): Indentation { - var indentation = inheritedIndentation; + let indentation = inheritedIndentation; if (indentation === Constants.Unknown) { if (isSomeBlock(node.kind)) { // blocks should be indented in @@ -475,7 +475,7 @@ module ts.formatting { return; } - var nodeDynamicIndentation = getDynamicIndentation(node, nodeStartLine, indentation, delta); + let nodeDynamicIndentation = getDynamicIndentation(node, nodeStartLine, indentation, delta); // a useful observations when tracking context node // / @@ -489,7 +489,7 @@ module ts.formatting { // context node is set to parent node value after processing every child node // context node is set to parent of the token after processing every token - var childContextNode = contextNode; + let childContextNode = contextNode; // if there are any tokens that logically belong to node and interleave child nodes // such tokens will be consumed in processChildNode for for the child that follows them @@ -504,7 +504,7 @@ module ts.formatting { // proceed any tokens in the node that are located after child nodes while (formattingScanner.isOnToken()) { - var tokenInfo = formattingScanner.readTokenInfo(node); + let tokenInfo = formattingScanner.readTokenInfo(node); if (tokenInfo.token.end > node.end) { break; } @@ -519,12 +519,12 @@ module ts.formatting { parentStartLine: number, isListItem: boolean): number { - var childStartPos = child.getStart(sourceFile); + let childStartPos = child.getStart(sourceFile); - var childStart = sourceFile.getLineAndCharacterOfPosition(childStartPos); + let childStart = sourceFile.getLineAndCharacterOfPosition(childStartPos); // if child is a list item - try to get its indentation - var childIndentationAmount = Constants.Unknown; + let childIndentationAmount = Constants.Unknown; if (isListItem) { childIndentationAmount = tryComputeIndentationForListItem(childStartPos, child.end, parentStartLine, originalRange, inheritedIndentation); if (childIndentationAmount !== Constants.Unknown) { @@ -543,7 +543,7 @@ module ts.formatting { while (formattingScanner.isOnToken()) { // proceed any parent tokens that are located prior to child.getStart() - var tokenInfo = formattingScanner.readTokenInfo(node); + let tokenInfo = formattingScanner.readTokenInfo(node); if (tokenInfo.token.end > childStartPos) { // stop when formatting scanner advances past the beginning of the child break; @@ -558,13 +558,13 @@ module ts.formatting { if (isToken(child)) { // if child node is a token, it does not impact indentation, proceed it using parent indentation scope rules - var tokenInfo = formattingScanner.readTokenInfo(child); + let tokenInfo = formattingScanner.readTokenInfo(child); Debug.assert(tokenInfo.token.end === child.end); consumeTokenAndAdvanceScanner(tokenInfo, node, parentDynamicIndentation); return inheritedIndentation; } - var childIndentation = computeIndentation(child, childStart.line, childIndentationAmount, node, parentDynamicIndentation, parentStartLine); + let childIndentation = computeIndentation(child, childStart.line, childIndentationAmount, node, parentDynamicIndentation, parentStartLine); processNode(child, childContextNode, childStart.line, childIndentation.indentation, childIndentation.delta); @@ -578,16 +578,16 @@ module ts.formatting { parentStartLine: number, parentDynamicIndentation: DynamicIndentation): void { - var listStartToken = getOpenTokenForList(parent, nodes); - var listEndToken = getCloseTokenForOpenToken(listStartToken); + let listStartToken = getOpenTokenForList(parent, nodes); + let listEndToken = getCloseTokenForOpenToken(listStartToken); - var listDynamicIndentation = parentDynamicIndentation; - var startLine = parentStartLine; + let listDynamicIndentation = parentDynamicIndentation; + let startLine = parentStartLine; if (listStartToken !== SyntaxKind.Unknown) { // introduce a new indentation scope for lists (including list start and end tokens) while (formattingScanner.isOnToken()) { - var tokenInfo = formattingScanner.readTokenInfo(parent); + let tokenInfo = formattingScanner.readTokenInfo(parent); if (tokenInfo.token.end > nodes.pos) { // stop when formatting scanner moves past the beginning of node list break; @@ -595,7 +595,7 @@ module ts.formatting { else if (tokenInfo.token.kind === listStartToken) { // consume list start token startLine = sourceFile.getLineAndCharacterOfPosition(tokenInfo.token.pos).line; - var indentation = + let indentation = computeIndentation(tokenInfo.token, startLine, Constants.Unknown, parent, parentDynamicIndentation, startLine); listDynamicIndentation = getDynamicIndentation(parent, parentStartLine, indentation.indentation, indentation.delta); @@ -608,14 +608,14 @@ module ts.formatting { } } - var inheritedIndentation = Constants.Unknown; - for (var i = 0, len = nodes.length; i < len; ++i) { - inheritedIndentation = processChildNode(nodes[i], inheritedIndentation, node, listDynamicIndentation, startLine, /*isListElement*/ true) + let inheritedIndentation = Constants.Unknown; + for (let child of nodes) { + inheritedIndentation = processChildNode(child, inheritedIndentation, node, listDynamicIndentation, startLine, /*isListElement*/ true) } if (listEndToken !== SyntaxKind.Unknown) { if (formattingScanner.isOnToken()) { - var tokenInfo = formattingScanner.readTokenInfo(parent); + let tokenInfo = formattingScanner.readTokenInfo(parent); // consume the list end token only if it is still belong to the parent // there might be the case when current token matches end token but does not considered as one // function (x: function) <-- @@ -631,21 +631,21 @@ module ts.formatting { function consumeTokenAndAdvanceScanner(currentTokenInfo: TokenInfo, parent: Node, dynamicIndentation: DynamicIndentation): void { Debug.assert(rangeContainsRange(parent, currentTokenInfo.token)); - var lastTriviaWasNewLine = formattingScanner.lastTrailingTriviaWasNewLine(); - var indentToken = false; + let lastTriviaWasNewLine = formattingScanner.lastTrailingTriviaWasNewLine(); + let indentToken = false; if (currentTokenInfo.leadingTrivia) { processTrivia(currentTokenInfo.leadingTrivia, parent, childContextNode, dynamicIndentation); } - var lineAdded: boolean; - var isTokenInRange = rangeContainsRange(originalRange, currentTokenInfo.token); + let lineAdded: boolean; + let isTokenInRange = rangeContainsRange(originalRange, currentTokenInfo.token); - var tokenStart = sourceFile.getLineAndCharacterOfPosition(currentTokenInfo.token.pos); + let tokenStart = sourceFile.getLineAndCharacterOfPosition(currentTokenInfo.token.pos); if (isTokenInRange) { - var rangeHasError = rangeContainsError(currentTokenInfo.token); + let rangeHasError = rangeContainsError(currentTokenInfo.token); // save prevStartLine since processRange will overwrite this value with current ones - var prevStartLine = previousRangeStartLine; + let prevStartLine = previousRangeStartLine; lineAdded = processRange(currentTokenInfo.token, tokenStart, parent, childContextNode, dynamicIndentation); if (rangeHasError) { // do not indent comments\token if token range overlaps with some error @@ -666,24 +666,23 @@ module ts.formatting { } if (indentToken) { - var indentNextTokenOrTrivia = true; + let indentNextTokenOrTrivia = true; if (currentTokenInfo.leadingTrivia) { - for (var i = 0, len = currentTokenInfo.leadingTrivia.length; i < len; ++i) { - var triviaItem = currentTokenInfo.leadingTrivia[i]; + for (let triviaItem of currentTokenInfo.leadingTrivia) { if (!rangeContainsRange(originalRange, triviaItem)) { continue; } - var triviaStartLine = sourceFile.getLineAndCharacterOfPosition(triviaItem.pos).line; + let triviaStartLine = sourceFile.getLineAndCharacterOfPosition(triviaItem.pos).line; switch (triviaItem.kind) { case SyntaxKind.MultiLineCommentTrivia: - var commentIndentation = dynamicIndentation.getIndentationForComment(currentTokenInfo.token.kind); + let commentIndentation = dynamicIndentation.getIndentationForComment(currentTokenInfo.token.kind); indentMultilineComment(triviaItem, commentIndentation, /*firstLineIsIndented*/ !indentNextTokenOrTrivia); indentNextTokenOrTrivia = false; break; case SyntaxKind.SingleLineCommentTrivia: if (indentNextTokenOrTrivia) { - var commentIndentation = dynamicIndentation.getIndentationForComment(currentTokenInfo.token.kind); + let commentIndentation = dynamicIndentation.getIndentationForComment(currentTokenInfo.token.kind); insertIndentation(triviaItem.pos, commentIndentation, /*lineAdded*/ false); indentNextTokenOrTrivia = false; } @@ -697,7 +696,7 @@ module ts.formatting { // indent token only if is it is in target range and does not overlap with any error ranges if (isTokenInRange && !rangeContainsError(currentTokenInfo.token)) { - var tokenIndentation = dynamicIndentation.getIndentationForToken(tokenStart.line, currentTokenInfo.token.kind); + let tokenIndentation = dynamicIndentation.getIndentationForToken(tokenStart.line, currentTokenInfo.token.kind); insertIndentation(currentTokenInfo.token.pos, tokenIndentation, lineAdded); } } @@ -709,10 +708,9 @@ module ts.formatting { } function processTrivia(trivia: TextRangeWithKind[], parent: Node, contextNode: Node, dynamicIndentation: DynamicIndentation): void { - for (var i = 0, len = trivia.length; i < len; ++i) { - var triviaItem = trivia[i]; + for (let triviaItem of trivia) { if (isComment(triviaItem.kind) && rangeContainsRange(originalRange, triviaItem)) { - var triviaItemStart = sourceFile.getLineAndCharacterOfPosition(triviaItem.pos); + let triviaItemStart = sourceFile.getLineAndCharacterOfPosition(triviaItem.pos); processRange(triviaItem, triviaItemStart, parent, contextNode, dynamicIndentation); } } @@ -724,12 +722,12 @@ module ts.formatting { contextNode: Node, dynamicIndentation: DynamicIndentation): boolean { - var rangeHasError = rangeContainsError(range); - var lineAdded: boolean; + let rangeHasError = rangeContainsError(range); + let lineAdded: boolean; if (!rangeHasError && !previousRangeHasError) { if (!previousRange) { // trim whitespaces starting from the beginning of the span up to the current line - var originalStart = sourceFile.getLineAndCharacterOfPosition(originalRange.pos); + let originalStart = sourceFile.getLineAndCharacterOfPosition(originalRange.pos); trimTrailingWhitespacesForLines(originalStart.line, rangeStart.line); } else { @@ -757,10 +755,10 @@ module ts.formatting { formattingContext.updateContext(previousItem, previousParent, currentItem, currentParent, contextNode); - var rule = rulesProvider.getRulesMap().GetRule(formattingContext); + let rule = rulesProvider.getRulesMap().GetRule(formattingContext); - var trimTrailingWhitespaces: boolean; - var lineAdded: boolean; + let trimTrailingWhitespaces: boolean; + let lineAdded: boolean; if (rule) { applyRuleEdits(rule, previousItem, previousStartLine, currentItem, currentStartLine); @@ -800,16 +798,16 @@ module ts.formatting { } function insertIndentation(pos: number, indentation: number, lineAdded: boolean): void { - var indentationString = getIndentationString(indentation, options); + let indentationString = getIndentationString(indentation, options); if (lineAdded) { // new line is added before the token by the formatting rules // insert indentation string at the very beginning of the token recordReplace(pos, 0, indentationString); } else { - var tokenStart = sourceFile.getLineAndCharacterOfPosition(pos); + let tokenStart = sourceFile.getLineAndCharacterOfPosition(pos); if (indentation !== tokenStart.character) { - var startLinePosition = getStartPositionOfLine(tokenStart.line, sourceFile); + let startLinePosition = getStartPositionOfLine(tokenStart.line, sourceFile); recordReplace(startLinePosition, tokenStart.character, indentationString); } } @@ -817,9 +815,9 @@ module ts.formatting { function indentMultilineComment(commentRange: TextRange, indentation: number, firstLineIsIndented: boolean) { // split comment in lines - var startLine = sourceFile.getLineAndCharacterOfPosition(commentRange.pos).line; - var endLine = sourceFile.getLineAndCharacterOfPosition(commentRange.end).line; - + let startLine = sourceFile.getLineAndCharacterOfPosition(commentRange.pos).line; + let endLine = sourceFile.getLineAndCharacterOfPosition(commentRange.end).line; + let parts: TextRange[]; if (startLine === endLine) { if (!firstLineIsIndented) { // treat as single line comment @@ -828,10 +826,10 @@ module ts.formatting { return; } else { - var parts: TextRange[] = []; - var startPos = commentRange.pos; - for (var line = startLine; line < endLine; ++line) { - var endOfLine = getEndLinePosition(line, sourceFile); + parts = []; + let startPos = commentRange.pos; + for (let line = startLine; line < endLine; ++line) { + let endOfLine = getEndLinePosition(line, sourceFile); parts.push({ pos: startPos, end: endOfLine }); startPos = getStartPositionOfLine(line + 1, sourceFile); } @@ -839,33 +837,33 @@ module ts.formatting { parts.push({ pos: startPos, end: commentRange.end }); } - var startLinePos = getStartPositionOfLine(startLine, sourceFile); + let startLinePos = getStartPositionOfLine(startLine, sourceFile); - var nonWhitespaceColumnInFirstPart = + let nonWhitespaceColumnInFirstPart = SmartIndenter.findFirstNonWhitespaceCharacterAndColumn(startLinePos, parts[0].pos, sourceFile, options); if (indentation === nonWhitespaceColumnInFirstPart.column) { return; } - var startIndex = 0; + let startIndex = 0; if (firstLineIsIndented) { startIndex = 1; startLine++; } // shift all parts on the delta size - var delta = indentation - nonWhitespaceColumnInFirstPart.column; - for (var i = startIndex, len = parts.length; i < len; ++i, ++startLine) { - var startLinePos = getStartPositionOfLine(startLine, sourceFile); - var nonWhitespaceCharacterAndColumn = + let delta = indentation - nonWhitespaceColumnInFirstPart.column; + for (let i = startIndex, len = parts.length; i < len; ++i, ++startLine) { + let startLinePos = getStartPositionOfLine(startLine, sourceFile); + let nonWhitespaceCharacterAndColumn = i === 0 ? nonWhitespaceColumnInFirstPart : SmartIndenter.findFirstNonWhitespaceCharacterAndColumn(parts[i].pos, parts[i].end, sourceFile, options); - var newIndentation = nonWhitespaceCharacterAndColumn.column + delta; + let newIndentation = nonWhitespaceCharacterAndColumn.column + delta; if (newIndentation > 0) { - var indentationString = getIndentationString(newIndentation, options); + let indentationString = getIndentationString(newIndentation, options); recordReplace(startLinePos, nonWhitespaceCharacterAndColumn.character, indentationString); } else { @@ -875,16 +873,16 @@ module ts.formatting { } function trimTrailingWhitespacesForLines(line1: number, line2: number, range?: TextRangeWithKind) { - for (var line = line1; line < line2; ++line) { - var lineStartPosition = getStartPositionOfLine(line, sourceFile); - var lineEndPosition = getEndLinePosition(line, sourceFile); + for (let line = line1; line < line2; ++line) { + let lineStartPosition = getStartPositionOfLine(line, sourceFile); + let lineEndPosition = getEndLinePosition(line, sourceFile); // do not trim whitespaces in comments if (range && isComment(range.kind) && range.pos <= lineEndPosition && range.end > lineEndPosition) { continue; } - var pos = lineEndPosition; + let pos = lineEndPosition; while (pos >= lineStartPosition && isWhiteSpace(sourceFile.text.charCodeAt(pos))) { pos--; } @@ -917,7 +915,7 @@ module ts.formatting { currentRange: TextRangeWithKind, currentStartLine: number): void { - var between: TextRange; + let between: TextRange; switch (rule.Operation.Action) { case RuleAction.Ignore: // no action required @@ -937,7 +935,7 @@ module ts.formatting { } // edit should not be applied only if we have one line feed between elements - var lineDelta = currentStartLine - previousStartLine; + let lineDelta = currentStartLine - previousStartLine; if (lineDelta !== 1) { recordReplace(previousRange.end, currentRange.pos - previousRange.end, options.NewLineCharacter); } @@ -948,7 +946,7 @@ module ts.formatting { return; } - var posDelta = currentRange.pos - previousRange.end; + let posDelta = currentRange.pos - previousRange.end; if (posDelta !== 1 || sourceFile.text.charCodeAt(previousRange.end) !== CharacterCodes.space) { recordReplace(previousRange.end, currentRange.pos - previousRange.end, " "); } @@ -1010,15 +1008,15 @@ module ts.formatting { return SyntaxKind.Unknown; } - var internedTabsIndentation: string[]; - var internedSpacesIndentation: string[]; + let internedTabsIndentation: string[]; + let internedSpacesIndentation: string[]; export function getIndentationString(indentation: number, options: FormatCodeOptions): string { if (!options.ConvertTabsToSpaces) { - var tabs = Math.floor(indentation / options.TabSize); - var spaces = indentation - tabs * options.TabSize; + let tabs = Math.floor(indentation / options.TabSize); + let spaces = indentation - tabs * options.TabSize; - var tabString: string; + let tabString: string; if (!internedTabsIndentation) { internedTabsIndentation = []; } @@ -1033,9 +1031,9 @@ module ts.formatting { return spaces ? tabString + repeat(" ", spaces) : tabString; } else { - var spacesString: string; - var quotient = Math.floor(indentation / options.IndentSize); - var remainder = indentation % options.IndentSize; + let spacesString: string; + let quotient = Math.floor(indentation / options.IndentSize); + let remainder = indentation % options.IndentSize; if (!internedSpacesIndentation) { internedSpacesIndentation = []; } @@ -1048,13 +1046,12 @@ module ts.formatting { spacesString = internedSpacesIndentation[quotient]; } - return remainder ? spacesString + repeat(" ", remainder) : spacesString; } function repeat(value: string, count: number): string { - var s = ""; - for (var i = 0; i < count; ++i) { + let s = ""; + for (let i = 0; i < count; ++i) { s += value; } diff --git a/src/services/formatting/formattingContext.ts b/src/services/formatting/formattingContext.ts index 52de4105df6..8683a975777 100644 --- a/src/services/formatting/formattingContext.ts +++ b/src/services/formatting/formattingContext.ts @@ -71,8 +71,8 @@ module ts.formatting { public TokensAreOnSameLine(): boolean { if (this.tokensAreOnSameLine === undefined) { - var startLine = this.sourceFile.getLineAndCharacterOfPosition(this.currentTokenSpan.pos).line; - var endLine = this.sourceFile.getLineAndCharacterOfPosition(this.nextTokenSpan.pos).line; + let startLine = this.sourceFile.getLineAndCharacterOfPosition(this.currentTokenSpan.pos).line; + let endLine = this.sourceFile.getLineAndCharacterOfPosition(this.nextTokenSpan.pos).line; this.tokensAreOnSameLine = (startLine == endLine); } @@ -96,17 +96,17 @@ module ts.formatting { } private NodeIsOnOneLine(node: Node): boolean { - var startLine = this.sourceFile.getLineAndCharacterOfPosition(node.getStart(this.sourceFile)).line; - var endLine = this.sourceFile.getLineAndCharacterOfPosition(node.getEnd()).line; + let startLine = this.sourceFile.getLineAndCharacterOfPosition(node.getStart(this.sourceFile)).line; + let endLine = this.sourceFile.getLineAndCharacterOfPosition(node.getEnd()).line; return startLine == endLine; } private BlockIsOnOneLine(node: Node): boolean { - var openBrace = findChildOfKind(node, SyntaxKind.OpenBraceToken, this.sourceFile); - var closeBrace = findChildOfKind(node, SyntaxKind.CloseBraceToken, this.sourceFile); + let openBrace = findChildOfKind(node, SyntaxKind.OpenBraceToken, this.sourceFile); + let closeBrace = findChildOfKind(node, SyntaxKind.CloseBraceToken, this.sourceFile); if (openBrace && closeBrace) { - var startLine = this.sourceFile.getLineAndCharacterOfPosition(openBrace.getEnd()).line; - var endLine = this.sourceFile.getLineAndCharacterOfPosition(closeBrace.getStart(this.sourceFile)).line; + let startLine = this.sourceFile.getLineAndCharacterOfPosition(openBrace.getEnd()).line; + let endLine = this.sourceFile.getLineAndCharacterOfPosition(closeBrace.getStart(this.sourceFile)).line; return startLine === endLine; } return false; diff --git a/src/services/formatting/formattingScanner.ts b/src/services/formatting/formattingScanner.ts index 962f142f609..f93739d6fb5 100644 --- a/src/services/formatting/formattingScanner.ts +++ b/src/services/formatting/formattingScanner.ts @@ -2,7 +2,7 @@ /// module ts.formatting { - var scanner = createScanner(ScriptTarget.Latest, /*skipTrivia*/ false); + let scanner = createScanner(ScriptTarget.Latest, /*skipTrivia*/ false); export interface FormattingScanner { advance(): void; @@ -24,13 +24,13 @@ module ts.formatting { scanner.setText(sourceFile.text); scanner.setTextPos(startPos); - var wasNewLine: boolean = true; - var leadingTrivia: TextRangeWithKind[]; - var trailingTrivia: TextRangeWithKind[]; + let wasNewLine: boolean = true; + let leadingTrivia: TextRangeWithKind[]; + let trailingTrivia: TextRangeWithKind[]; - var savedPos: number; - var lastScanAction: ScanAction; - var lastTokenInfo: TokenInfo; + let savedPos: number; + let lastScanAction: ScanAction; + let lastTokenInfo: TokenInfo; return { advance: advance, @@ -45,7 +45,7 @@ module ts.formatting { function advance(): void { lastTokenInfo = undefined; - var isStarted = scanner.getStartPos() !== startPos; + let isStarted = scanner.getStartPos() !== startPos; if (isStarted) { if (trailingTrivia) { @@ -64,19 +64,19 @@ module ts.formatting { scanner.scan(); } - var t: SyntaxKind; - var pos = scanner.getStartPos(); + let t: SyntaxKind; + let pos = scanner.getStartPos(); // Read leading trivia and token while (pos < endPos) { - var t = scanner.getToken(); + let t = scanner.getToken(); if (!isTrivia(t)) { break; } // consume leading trivia scanner.scan(); - var item = { + let item = { pos: pos, end: scanner.getStartPos(), kind: t @@ -133,7 +133,7 @@ module ts.formatting { // normally scanner returns the smallest available token // check the kind of context node to determine if scanner should have more greedy behavior and consume more text. - var expectedScanAction = + let expectedScanAction = shouldRescanGreaterThanToken(n) ? ScanAction.RescanGreaterThanToken : shouldRescanSlashToken(n) @@ -159,7 +159,7 @@ module ts.formatting { scanner.scan(); } - var currentToken = scanner.getToken(); + let currentToken = scanner.getToken(); if (expectedScanAction === ScanAction.RescanGreaterThanToken && currentToken === SyntaxKind.GreaterThanToken) { currentToken = scanner.reScanGreaterToken(); @@ -179,7 +179,7 @@ module ts.formatting { lastScanAction = ScanAction.Scan; } - var token: TextRangeWithKind = { + let token: TextRangeWithKind = { pos: scanner.getStartPos(), end: scanner.getTextPos(), kind: currentToken @@ -194,7 +194,7 @@ module ts.formatting { if (!isTrivia(currentToken)) { break; } - var trivia = { + let trivia = { pos: scanner.getStartPos(), end: scanner.getTextPos(), kind: currentToken @@ -223,8 +223,8 @@ module ts.formatting { } function isOnToken(): boolean { - var current = (lastTokenInfo && lastTokenInfo.token.kind) || scanner.getToken(); - var startPos = (lastTokenInfo && lastTokenInfo.token.pos) || scanner.getStartPos(); + let current = (lastTokenInfo && lastTokenInfo.token.kind) || scanner.getToken(); + let startPos = (lastTokenInfo && lastTokenInfo.token.pos) || scanner.getStartPos(); return startPos < endPos && current !== SyntaxKind.EndOfFileToken && !isTrivia(current); } diff --git a/src/services/formatting/ruleDescriptor.ts b/src/services/formatting/ruleDescriptor.ts index e5b7d6f3186..031f88be00e 100644 --- a/src/services/formatting/ruleDescriptor.ts +++ b/src/services/formatting/ruleDescriptor.ts @@ -33,8 +33,7 @@ module ts.formatting { return RuleDescriptor.create4(left, Shared.TokenRange.FromToken(right)); } - static create3(left: SyntaxKind, right: Shared.TokenRange): RuleDescriptor - { + static create3(left: SyntaxKind, right: Shared.TokenRange): RuleDescriptor { return RuleDescriptor.create4(Shared.TokenRange.FromToken(left), right); } diff --git a/src/services/formatting/ruleOperation.ts b/src/services/formatting/ruleOperation.ts index c73e3b6bcf7..7bd092e9584 100644 --- a/src/services/formatting/ruleOperation.ts +++ b/src/services/formatting/ruleOperation.ts @@ -35,7 +35,7 @@ module ts.formatting { } static create2(context: RuleOperationContext, action: RuleAction) { - var result = new RuleOperation(); + let result = new RuleOperation(); result.Context = context; result.Action = action; return result; diff --git a/src/services/formatting/ruleOperationContext.ts b/src/services/formatting/ruleOperationContext.ts index d037f8e70d7..dc4e5d4f105 100644 --- a/src/services/formatting/ruleOperationContext.ts +++ b/src/services/formatting/ruleOperationContext.ts @@ -36,8 +36,8 @@ module ts.formatting { return true; } - for (var i = 0, len = this.customContextChecks.length; i < len; i++) { - if (!this.customContextChecks[i](context)) { + for (let check of this.customContextChecks) { + if (!check(context)) { return false; } } diff --git a/src/services/formatting/rules.ts b/src/services/formatting/rules.ts index 7eb5232af18..7d3509ef495 100644 --- a/src/services/formatting/rules.ts +++ b/src/services/formatting/rules.ts @@ -18,8 +18,8 @@ module ts.formatting { export class Rules { public getRuleName(rule: Rule) { - var o: ts.Map = this; - for (var name in o) { + let o: ts.Map = this; + for (let name in o) { if (o[name] === rule) { return name; } @@ -139,7 +139,7 @@ module ts.formatting { // Lambda expressions public SpaceAfterArrow: Rule; - // Optional parameters and var args + // Optional parameters and let args public NoSpaceAfterEllipsis: Rule; public NoSpaceAfterOptionalParameters: Rule; @@ -330,7 +330,7 @@ module ts.formatting { // Lambda expressions this.SpaceAfterArrow = new Rule(RuleDescriptor.create3(SyntaxKind.EqualsGreaterThanToken, Shared.TokenRange.Any), RuleOperation.create2(new RuleOperationContext(Rules.IsSameLineTokenContext), RuleAction.Space)); - // Optional parameters and var args + // Optional parameters and let args this.NoSpaceAfterEllipsis = new Rule(RuleDescriptor.create1(SyntaxKind.DotDotDotToken, SyntaxKind.Identifier), RuleOperation.create2(new RuleOperationContext(Rules.IsSameLineTokenContext), RuleAction.Delete)); this.NoSpaceAfterOptionalParameters = new Rule(RuleDescriptor.create3(SyntaxKind.QuestionToken, Shared.TokenRange.FromTokens([SyntaxKind.CloseParenToken, SyntaxKind.CommaToken])), RuleOperation.create2(new RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsNotBinaryOpContext), RuleAction.Delete)); @@ -462,7 +462,7 @@ module ts.formatting { // equal in import a = module('a'); case SyntaxKind.ImportEqualsDeclaration: - // equal in var a = 0; + // equal in let a = 0; case SyntaxKind.VariableDeclaration: // equal in p = 0; case SyntaxKind.Parameter: @@ -470,7 +470,7 @@ module ts.formatting { case SyntaxKind.PropertyDeclaration: case SyntaxKind.PropertySignature: return context.currentTokenSpan.kind === SyntaxKind.EqualsToken || context.nextTokenSpan.kind === SyntaxKind.EqualsToken; - // "in" keyword in for (var x in []) { } + // "in" keyword in for (let x in []) { } case SyntaxKind.ForInStatement: return context.currentTokenSpan.kind === SyntaxKind.InKeyword || context.nextTokenSpan.kind === SyntaxKind.InKeyword; // Technically, "of" is not a binary operator, but format it the same way as "in" diff --git a/src/services/formatting/rulesMap.ts b/src/services/formatting/rulesMap.ts index d25320f16a8..b43e91424f8 100644 --- a/src/services/formatting/rulesMap.ts +++ b/src/services/formatting/rulesMap.ts @@ -26,7 +26,7 @@ module ts.formatting { } static create(rules: Rule[]): RulesMap { - var result = new RulesMap(); + let result = new RulesMap(); result.Initialize(rules); return result; } @@ -36,7 +36,7 @@ module ts.formatting { this.map = new Array(this.mapRowLength * this.mapRowLength);//new Array(this.mapRowLength * this.mapRowLength); // This array is used only during construction of the rulesbucket in the map - var rulesBucketConstructionStateList: RulesBucketConstructionState[] = new Array(this.map.length);//new Array(this.map.length); + let rulesBucketConstructionStateList: RulesBucketConstructionState[] = new Array(this.map.length);//new Array(this.map.length); this.FillRules(rules, rulesBucketConstructionStateList); return this.map; @@ -49,20 +49,20 @@ module ts.formatting { } private GetRuleBucketIndex(row: number, column: number): number { - var rulesBucketIndex = (row * this.mapRowLength) + column; + let rulesBucketIndex = (row * this.mapRowLength) + column; //Debug.Assert(rulesBucketIndex < this.map.Length, "Trying to access an index outside the array."); return rulesBucketIndex; } private FillRule(rule: Rule, rulesBucketConstructionStateList: RulesBucketConstructionState[]): void { - var specificRule = rule.Descriptor.LeftTokenRange != Shared.TokenRange.Any && + let specificRule = rule.Descriptor.LeftTokenRange != Shared.TokenRange.Any && rule.Descriptor.RightTokenRange != Shared.TokenRange.Any; rule.Descriptor.LeftTokenRange.GetTokens().forEach((left) => { rule.Descriptor.RightTokenRange.GetTokens().forEach((right) => { - var rulesBucketIndex = this.GetRuleBucketIndex(left, right); + let rulesBucketIndex = this.GetRuleBucketIndex(left, right); - var rulesBucket = this.map[rulesBucketIndex]; + let rulesBucket = this.map[rulesBucketIndex]; if (rulesBucket == undefined) { rulesBucket = this.map[rulesBucketIndex] = new RulesBucket(); } @@ -73,21 +73,21 @@ module ts.formatting { } public GetRule(context: FormattingContext): Rule { - var bucketIndex = this.GetRuleBucketIndex(context.currentTokenSpan.kind, context.nextTokenSpan.kind); - var bucket = this.map[bucketIndex]; + let bucketIndex = this.GetRuleBucketIndex(context.currentTokenSpan.kind, context.nextTokenSpan.kind); + let bucket = this.map[bucketIndex]; if (bucket != null) { - for (var i = 0, len = bucket.Rules().length; i < len; i++) { - var rule = bucket.Rules()[i]; - if (rule.Operation.Context.InContext(context)) + for (let rule of bucket.Rules()) { + if (rule.Operation.Context.InContext(context)) { return rule; + } } } return null; } } - var MaskBitSize = 5; - var Mask = 0x1f; + let MaskBitSize = 5; + let Mask = 0x1f; export enum RulesPosition { IgnoreRulesSpecific = 0, @@ -121,10 +121,10 @@ module ts.formatting { } public GetInsertionIndex(maskPosition: RulesPosition): number { - var index = 0; + let index = 0; - var pos = 0; - var indexBitmap = this.rulesInsertionIndexBitmap; + let pos = 0; + let indexBitmap = this.rulesInsertionIndexBitmap; while (pos <= maskPosition) { index += (indexBitmap & Mask); @@ -136,11 +136,11 @@ module ts.formatting { } public IncreaseInsertionIndex(maskPosition: RulesPosition): void { - var value = (this.rulesInsertionIndexBitmap >> maskPosition) & Mask; + let value = (this.rulesInsertionIndexBitmap >> maskPosition) & Mask; value++; Debug.assert((value & Mask) == value, "Adding more rules into the sub-bucket than allowed. Maximum allowed is 32 rules."); - var temp = this.rulesInsertionIndexBitmap & ~(Mask << maskPosition); + let temp = this.rulesInsertionIndexBitmap & ~(Mask << maskPosition); temp |= value << maskPosition; this.rulesInsertionIndexBitmap = temp; @@ -159,7 +159,7 @@ module ts.formatting { } public AddRule(rule: Rule, specificTokens: boolean, constructionState: RulesBucketConstructionState[], rulesBucketIndex: number): void { - var position: RulesPosition; + let position: RulesPosition; if (rule.Operation.Action == RuleAction.Ignore) { position = specificTokens ? @@ -177,11 +177,11 @@ module ts.formatting { RulesPosition.NoContextRulesAny; } - var state = constructionState[rulesBucketIndex]; + let state = constructionState[rulesBucketIndex]; if (state === undefined) { state = constructionState[rulesBucketIndex] = new RulesBucketConstructionState(); } - var index = state.GetInsertionIndex(position); + let index = state.GetInsertionIndex(position); this.rules.splice(index, 0, rule); state.IncreaseInsertionIndex(position); } diff --git a/src/services/formatting/rulesProvider.ts b/src/services/formatting/rulesProvider.ts index 25b6f1ba772..5f63db8630b 100644 --- a/src/services/formatting/rulesProvider.ts +++ b/src/services/formatting/rulesProvider.ts @@ -40,8 +40,8 @@ module ts.formatting { public ensureUpToDate(options: ts.FormatCodeOptions) { if (this.options == null || !ts.compareDataObjects(this.options, options)) { - var activeRules = this.createActiveRules(options); - var rulesMap = RulesMap.create(activeRules); + let activeRules = this.createActiveRules(options); + let rulesMap = RulesMap.create(activeRules); this.activeRules = activeRules; this.rulesMap = rulesMap; @@ -50,7 +50,7 @@ module ts.formatting { } private createActiveRules(options: ts.FormatCodeOptions): Rule[] { - var rules = this.globalRules.HighPriorityCommonRules.slice(0); + let rules = this.globalRules.HighPriorityCommonRules.slice(0); if (options.InsertSpaceAfterCommaDelimiter) { rules.push(this.globalRules.SpaceAfterComma); diff --git a/src/services/formatting/smartIndenter.ts b/src/services/formatting/smartIndenter.ts index f1d0935c132..e7beebf6866 100644 --- a/src/services/formatting/smartIndenter.ts +++ b/src/services/formatting/smartIndenter.ts @@ -12,13 +12,13 @@ module ts.formatting { return 0; // past EOF } - var precedingToken = findPrecedingToken(position, sourceFile); + let precedingToken = findPrecedingToken(position, sourceFile); if (!precedingToken) { return 0; } // no indentation in string \regex\template literals - var precedingTokenIsLiteral = + let precedingTokenIsLiteral = precedingToken.kind === SyntaxKind.StringLiteral || precedingToken.kind === SyntaxKind.RegularExpressionLiteral || precedingToken.kind === SyntaxKind.NoSubstitutionTemplateLiteral || @@ -29,11 +29,11 @@ module ts.formatting { return 0; } - var lineAtPosition = sourceFile.getLineAndCharacterOfPosition(position).line; + let lineAtPosition = sourceFile.getLineAndCharacterOfPosition(position).line; if (precedingToken.kind === SyntaxKind.CommaToken && precedingToken.parent.kind !== SyntaxKind.BinaryExpression) { // previous token is comma that separates items in list - find the previous item and try to derive indentation from it - var actualIndentation = getActualIndentationForListItemBeforeComma(precedingToken, sourceFile, options); + let actualIndentation = getActualIndentationForListItemBeforeComma(precedingToken, sourceFile, options); if (actualIndentation !== Value.Unknown) { return actualIndentation; } @@ -41,10 +41,10 @@ module ts.formatting { // try to find node that can contribute to indentation and includes 'position' starting from 'precedingToken' // if such node is found - compute initial indentation for 'position' inside this node - var previous: Node; - var current = precedingToken; - var currentStart: LineAndCharacter; - var indentationDelta: number; + let previous: Node; + let current = precedingToken; + let currentStart: LineAndCharacter; + let indentationDelta: number; while (current) { if (positionBelongsToNode(current, position, sourceFile) && shouldIndentChildNode(current.kind, previous ? previous.kind : SyntaxKind.Unknown)) { @@ -61,7 +61,7 @@ module ts.formatting { } // check if current node is a list item - if yes, take indentation from it - var actualIndentation = getActualIndentationForListItem(current, sourceFile, options); + let actualIndentation = getActualIndentationForListItem(current, sourceFile, options); if (actualIndentation !== Value.Unknown) { return actualIndentation; } @@ -79,7 +79,7 @@ module ts.formatting { } export function getIndentationForNode(n: Node, ignoreActualIndentationRange: TextRange, sourceFile: SourceFile, options: FormatCodeOptions): number { - var start = sourceFile.getLineAndCharacterOfPosition(n.getStart(sourceFile)); + let start = sourceFile.getLineAndCharacterOfPosition(n.getStart(sourceFile)); return getIndentationForNodeWorker(n, start, ignoreActualIndentationRange, /*indentationDelta*/ 0, sourceFile, options); } @@ -91,33 +91,33 @@ module ts.formatting { sourceFile: SourceFile, options: EditorOptions): number { - var parent: Node = current.parent; - var parentStart: LineAndCharacter; + let parent: Node = current.parent; + let parentStart: LineAndCharacter; // walk upwards and collect indentations for pairs of parent-child nodes // indentation is not added if parent and child nodes start on the same line or if parent is IfStatement and child starts on the same line with 'else clause' while (parent) { - var useActualIndentation = true; + let useActualIndentation = true; if (ignoreActualIndentationRange) { - var start = current.getStart(sourceFile); + let start = current.getStart(sourceFile); useActualIndentation = start < ignoreActualIndentationRange.pos || start > ignoreActualIndentationRange.end; } if (useActualIndentation) { // check if current node is a list item - if yes, take indentation from it - var actualIndentation = getActualIndentationForListItem(current, sourceFile, options); + let actualIndentation = getActualIndentationForListItem(current, sourceFile, options); if (actualIndentation !== Value.Unknown) { return actualIndentation + indentationDelta; } } parentStart = getParentStart(parent, current, sourceFile); - var parentAndChildShareLine = + let parentAndChildShareLine = parentStart.line === currentStart.line || childStartsOnTheSameLineWithElseInIfStatement(parent, current, currentStart.line, sourceFile); if (useActualIndentation) { // try to fetch actual indentation for current node from source text - var actualIndentation = getActualIndentationForNode(current, parent, currentStart, parentAndChildShareLine, sourceFile, options); + let actualIndentation = getActualIndentationForNode(current, parent, currentStart, parentAndChildShareLine, sourceFile, options); if (actualIndentation !== Value.Unknown) { return actualIndentation + indentationDelta; } @@ -138,7 +138,7 @@ module ts.formatting { function getParentStart(parent: Node, child: Node, sourceFile: SourceFile): LineAndCharacter { - var containingList = getContainingList(child, sourceFile); + let containingList = getContainingList(child, sourceFile); if (containingList) { return sourceFile.getLineAndCharacterOfPosition(containingList.pos); } @@ -151,7 +151,7 @@ module ts.formatting { */ function getActualIndentationForListItemBeforeComma(commaToken: Node, sourceFile: SourceFile, options: EditorOptions): number { // previous token is comma that separates items in list - find the previous item and try to derive indentation from it - var commaItemInfo = findListItemInfo(commaToken); + let commaItemInfo = findListItemInfo(commaToken); if (commaItemInfo && commaItemInfo.listItemIndex > 0) { return deriveActualIndentationFromList(commaItemInfo.list.getChildren(), commaItemInfo.listItemIndex - 1, sourceFile, options); } @@ -174,7 +174,7 @@ module ts.formatting { // actual indentation is used for statements\declarations if one of cases below is true: // - parent is SourceFile - by default immediate children of SourceFile are not indented except when user indents them manually // - parent and child are not on the same line - var useActualIndentation = + let useActualIndentation = (isDeclaration(current) || isStatement(current)) && (parent.kind === SyntaxKind.SourceFile || !parentAndChildShareLine); @@ -186,7 +186,7 @@ module ts.formatting { } function nextTokenIsCurlyBraceOnSameLineAsCursor(precedingToken: Node, current: Node, lineAtPosition: number, sourceFile: SourceFile): boolean { - var nextToken = findNextToken(precedingToken, current); + let nextToken = findNextToken(precedingToken, current); if (!nextToken) { return false; } @@ -205,7 +205,7 @@ module ts.formatting { // class A { // $} - var nextTokenStartLine = getStartLineAndCharacterForNode(nextToken, sourceFile).line; + let nextTokenStartLine = getStartLineAndCharacterForNode(nextToken, sourceFile).line; return lineAtPosition === nextTokenStartLine; } @@ -222,10 +222,10 @@ module ts.formatting { export function childStartsOnTheSameLineWithElseInIfStatement(parent: Node, child: TextRangeWithKind, childStartLine: number, sourceFile: SourceFile): boolean { if (parent.kind === SyntaxKind.IfStatement && (parent).elseStatement === child) { - var elseKeyword = findChildOfKind(parent, SyntaxKind.ElseKeyword, sourceFile); + let elseKeyword = findChildOfKind(parent, SyntaxKind.ElseKeyword, sourceFile); Debug.assert(elseKeyword !== undefined); - var elseKeywordStartLine = getStartLineAndCharacterForNode(elseKeyword, sourceFile).line; + let elseKeywordStartLine = getStartLineAndCharacterForNode(elseKeyword, sourceFile).line; return elseKeywordStartLine === childStartLine; } @@ -251,8 +251,8 @@ module ts.formatting { case SyntaxKind.MethodDeclaration: case SyntaxKind.MethodSignature: case SyntaxKind.CallSignature: - case SyntaxKind.ConstructSignature: - var start = node.getStart(sourceFile); + case SyntaxKind.ConstructSignature: { + let start = node.getStart(sourceFile); if ((node.parent).typeParameters && rangeContainsStartEnd((node.parent).typeParameters, start, node.getEnd())) { return (node.parent).typeParameters; @@ -261,9 +261,10 @@ module ts.formatting { return (node.parent).parameters; } break; + } case SyntaxKind.NewExpression: - case SyntaxKind.CallExpression: - var start = node.getStart(sourceFile); + case SyntaxKind.CallExpression: { + let start = node.getStart(sourceFile); if ((node.parent).typeArguments && rangeContainsStartEnd((node.parent).typeArguments, start, node.getEnd())) { return (node.parent).typeArguments; @@ -273,34 +274,35 @@ module ts.formatting { return (node.parent).arguments; } break; + } } } return undefined; } function getActualIndentationForListItem(node: Node, sourceFile: SourceFile, options: EditorOptions): number { - var containingList = getContainingList(node, sourceFile); + let containingList = getContainingList(node, sourceFile); return containingList ? getActualIndentationFromList(containingList) : Value.Unknown; function getActualIndentationFromList(list: Node[]): number { - var index = indexOf(list, node); + let index = indexOf(list, node); return index !== -1 ? deriveActualIndentationFromList(list, index, sourceFile, options) : Value.Unknown; } } function deriveActualIndentationFromList(list: Node[], index: number, sourceFile: SourceFile, options: EditorOptions): number { Debug.assert(index >= 0 && index < list.length); - var node = list[index]; + let node = list[index]; // walk toward the start of the list starting from current node and check if the line is the same for all items. // if end line for item [i - 1] differs from the start line for item [i] - find column of the first non-whitespace character on the line of item [i] - var lineAndCharacter = getStartLineAndCharacterForNode(node, sourceFile); - for (var i = index - 1; i >= 0; --i) { + let lineAndCharacter = getStartLineAndCharacterForNode(node, sourceFile); + for (let i = index - 1; i >= 0; --i) { if (list[i].kind === SyntaxKind.CommaToken) { continue; } // skip list items that ends on the same line with the current list element - var prevEndLine = sourceFile.getLineAndCharacterOfPosition(list[i].end).line; + let prevEndLine = sourceFile.getLineAndCharacterOfPosition(list[i].end).line; if (prevEndLine !== lineAndCharacter.line) { return findColumnForFirstNonWhitespaceCharacterInLine(lineAndCharacter, sourceFile, options); } @@ -311,7 +313,7 @@ module ts.formatting { } function findColumnForFirstNonWhitespaceCharacterInLine(lineAndCharacter: LineAndCharacter, sourceFile: SourceFile, options: EditorOptions): number { - var lineStart = sourceFile.getPositionOfLineAndCharacter(lineAndCharacter.line, 0); + let lineStart = sourceFile.getPositionOfLineAndCharacter(lineAndCharacter.line, 0); return findFirstNonWhitespaceColumn(lineStart, lineStart + lineAndCharacter.character, sourceFile, options); } @@ -323,10 +325,10 @@ module ts.formatting { value of 'column' for '$' is 6 (assuming that tab size is 4) */ export function findFirstNonWhitespaceCharacterAndColumn(startPos: number, endPos: number, sourceFile: SourceFile, options: EditorOptions) { - var character = 0; - var column = 0; - for (var pos = startPos; pos < endPos; ++pos) { - var ch = sourceFile.text.charCodeAt(pos); + let character = 0; + let column = 0; + for (let pos = startPos; pos < endPos; ++pos) { + let ch = sourceFile.text.charCodeAt(pos); if (!isWhiteSpace(ch)) { break; } @@ -403,9 +405,9 @@ module ts.formatting { * If child at position 'length - 1' is 'SemicolonToken' it is skipped and 'expectedLastToken' is compared with child at position 'length - 2'. */ function nodeEndsWith(n: Node, expectedLastToken: SyntaxKind, sourceFile: SourceFile): boolean { - var children = n.getChildren(sourceFile); + let children = n.getChildren(sourceFile); if (children.length) { - var last = children[children.length - 1]; + let last = children[children.length - 1]; if (last.kind === expectedLastToken) { return true; } @@ -471,7 +473,7 @@ module ts.formatting { return isCompletedNode((n).statement, sourceFile); case SyntaxKind.DoStatement: // rough approximation: if DoStatement has While keyword - then if node is completed is checking the presence of ')'; - var hasWhileKeyword = findChildOfKind(n, SyntaxKind.WhileKeyword, sourceFile); + let hasWhileKeyword = findChildOfKind(n, SyntaxKind.WhileKeyword, sourceFile); if (hasWhileKeyword) { return nodeEndsWith(n, SyntaxKind.CloseParenToken, sourceFile); } diff --git a/src/services/formatting/tokenRange.ts b/src/services/formatting/tokenRange.ts index ff9cb91ce68..f1cdfebc978 100644 --- a/src/services/formatting/tokenRange.ts +++ b/src/services/formatting/tokenRange.ts @@ -27,7 +27,7 @@ module ts.formatting { constructor(from: SyntaxKind, to: SyntaxKind, except: SyntaxKind[]) { this.tokens = []; - for (var token = from; token <= to; token++) { + for (let token = from; token <= to; token++) { if (except.indexOf(token) < 0) { this.tokens.push(token); } @@ -74,8 +74,8 @@ module ts.formatting { export class TokenAllAccess implements ITokenAccess { public GetTokens(): SyntaxKind[] { - var result: SyntaxKind[] = []; - for (var token = SyntaxKind.FirstToken; token <= SyntaxKind.LastToken; token++) { + let result: SyntaxKind[] = []; + for (let token = SyntaxKind.FirstToken; token <= SyntaxKind.LastToken; token++) { result.push(token); } return result; diff --git a/src/services/navigateTo.ts b/src/services/navigateTo.ts index b3f72d83cb3..9871a447c05 100644 --- a/src/services/navigateTo.ts +++ b/src/services/navigateTo.ts @@ -2,22 +2,21 @@ module ts.NavigateTo { type RawNavigateToItem = { name: string; fileName: string; matchKind: PatternMatchKind; isCaseSensitive: boolean; declaration: Declaration }; export function getNavigateToItems(program: Program, cancellationToken: CancellationTokenObject, searchValue: string, maxResultCount: number): NavigateToItem[] { - var patternMatcher = createPatternMatcher(searchValue); - var rawItems: RawNavigateToItem[] = []; + let patternMatcher = createPatternMatcher(searchValue); + let rawItems: RawNavigateToItem[] = []; // Search the declarations in all files and output matched NavigateToItem into array of NavigateToItem[] forEach(program.getSourceFiles(), sourceFile => { cancellationToken.throwIfCancellationRequested(); - var declarations = sourceFile.getNamedDeclarations(); - for (var i = 0, n = declarations.length; i < n; i++) { - var declaration = declarations[i]; + let declarations = sourceFile.getNamedDeclarations(); + for (let declaration of declarations) { var name = getDeclarationName(declaration); if (name !== undefined) { // First do a quick check to see if the name of the declaration matches the // last portion of the (possibly) dotted name they're searching for. - var matches = patternMatcher.getMatchesForLastSegmentOfPattern(name); + let matches = patternMatcher.getMatchesForLastSegmentOfPattern(name); if (!matches) { continue; @@ -26,7 +25,7 @@ module ts.NavigateTo { // It was a match! If the pattern has dots in it, then also see if hte // declaration container matches as well. if (patternMatcher.patternContainsDots) { - var containers = getContainers(declaration); + let containers = getContainers(declaration); if (!containers) { return undefined; } @@ -38,8 +37,8 @@ module ts.NavigateTo { } } - var fileName = sourceFile.fileName; - var matchKind = bestMatchKind(matches); + let fileName = sourceFile.fileName; + let matchKind = bestMatchKind(matches); rawItems.push({ name, fileName, matchKind, isCaseSensitive: allMatchesAreCaseSensitive(matches), declaration }); } } @@ -50,7 +49,7 @@ module ts.NavigateTo { rawItems = rawItems.slice(0, maxResultCount); } - var items = map(rawItems, createNavigateToItem); + let items = map(rawItems, createNavigateToItem); return items; @@ -58,8 +57,8 @@ module ts.NavigateTo { Debug.assert(matches.length > 0); // This is a case sensitive match, only if all the submatches were case sensitive. - for (var i = 0, n = matches.length; i < n; i++) { - if (!matches[i].isCaseSensitive) { + for (let match of matches) { + if (!match.isCaseSensitive) { return false; } } @@ -68,13 +67,13 @@ module ts.NavigateTo { } function getDeclarationName(declaration: Declaration): string { - var result = getTextOfIdentifierOrLiteral(declaration.name); + let result = getTextOfIdentifierOrLiteral(declaration.name); if (result !== undefined) { return result; } if (declaration.name.kind === SyntaxKind.ComputedPropertyName) { - var expr = (declaration.name).expression; + let expr = (declaration.name).expression; if (expr.kind === SyntaxKind.PropertyAccessExpression) { return (expr).name.text; } @@ -98,7 +97,7 @@ module ts.NavigateTo { function tryAddSingleDeclarationName(declaration: Declaration, containers: string[]) { if (declaration && declaration.name) { - var text = getTextOfIdentifierOrLiteral(declaration.name); + let text = getTextOfIdentifierOrLiteral(declaration.name); if (text !== undefined) { containers.unshift(text); } @@ -118,7 +117,7 @@ module ts.NavigateTo { // // [X.Y.Z]() { } function tryAddComputedPropertyName(expression: Expression, containers: string[], includeLastPortion: boolean): boolean { - var text = getTextOfIdentifierOrLiteral(expression); + let text = getTextOfIdentifierOrLiteral(expression); if (text !== undefined) { if (includeLastPortion) { containers.unshift(text); @@ -127,7 +126,7 @@ module ts.NavigateTo { } if (expression.kind === SyntaxKind.PropertyAccessExpression) { - var propertyAccess = expression; + let propertyAccess = expression; if (includeLastPortion) { containers.unshift(propertyAccess.name.text); } @@ -139,7 +138,7 @@ module ts.NavigateTo { } function getContainers(declaration: Declaration) { - var containers: string[] = []; + let containers: string[] = []; // First, if we started with a computed property name, then add all but the last // portion into the container array. @@ -165,10 +164,10 @@ module ts.NavigateTo { function bestMatchKind(matches: PatternMatch[]) { Debug.assert(matches.length > 0); - var bestMatchKind = PatternMatchKind.camelCase; + let bestMatchKind = PatternMatchKind.camelCase; - for (var i = 0, n = matches.length; i < n; i++) { - var kind = matches[i].kind; + for (let match of matches) { + let kind = match.kind; if (kind < bestMatchKind) { bestMatchKind = kind; } @@ -178,7 +177,7 @@ module ts.NavigateTo { } // This means "compare in a case insensitive manner." - var baseSensitivity: Intl.CollatorOptions = { sensitivity: "base" }; + let baseSensitivity: Intl.CollatorOptions = { sensitivity: "base" }; function compareNavigateToItems(i1: RawNavigateToItem, i2: RawNavigateToItem) { // TODO(cyrusn): get the gamut of comparisons that VS already uses here. // Right now we just sort by kind first, and then by name of the item. @@ -190,8 +189,8 @@ module ts.NavigateTo { } function createNavigateToItem(rawItem: RawNavigateToItem): NavigateToItem { - var declaration = rawItem.declaration; - var container = getContainerNode(declaration); + let declaration = rawItem.declaration; + let container = getContainerNode(declaration); return { name: rawItem.name, kind: getNodeKind(declaration), diff --git a/src/services/navigationBar.ts b/src/services/navigationBar.ts index 20e80cc88c0..c6463aba733 100644 --- a/src/services/navigationBar.ts +++ b/src/services/navigationBar.ts @@ -4,16 +4,16 @@ module ts.NavigationBar { export function getNavigationBarItems(sourceFile: SourceFile): ts.NavigationBarItem[] { // If the source file has any child items, then it included in the tree // and takes lexical ownership of all other top-level items. - var hasGlobalNode = false; + let hasGlobalNode = false; return getItemsWorker(getTopLevelNodes(sourceFile), createTopLevelItem); function getIndent(node: Node): number { // If we have a global node in the tree, // then it adds an extra layer of depth to all subnodes. - var indent = hasGlobalNode ? 1 : 0; + let indent = hasGlobalNode ? 1 : 0; - var current = node.parent; + let current = node.parent; while (current) { switch (current.kind) { case SyntaxKind.ModuleDeclaration: @@ -39,7 +39,7 @@ module ts.NavigationBar { } function getChildNodes(nodes: Node[]): Node[] { - var childNodes: Node[] = []; + let childNodes: Node[] = []; function visit(node: Node) { switch (node.kind) { @@ -60,7 +60,7 @@ module ts.NavigationBar { break; case SyntaxKind.ImportDeclaration: - var importClause = (node).importClause; + let importClause = (node).importClause; if (importClause) { // Handle default import case e.g.: // import d from "mod"; @@ -102,8 +102,8 @@ module ts.NavigationBar { } } - //for (var i = 0, n = nodes.length; i < n; i++) { - // var node = nodes[i]; + //for (let i = 0, n = nodes.length; i < n; i++) { + // let node = nodes[i]; // if (node.kind === SyntaxKind.ClassDeclaration || // node.kind === SyntaxKind.EnumDeclaration || @@ -122,7 +122,7 @@ module ts.NavigationBar { } function getTopLevelNodes(node: SourceFile): Node[] { - var topLevelNodes: Node[] = []; + let topLevelNodes: Node[] = []; topLevelNodes.push(node); addTopLevelNodes(node.statements, topLevelNodes); @@ -150,8 +150,7 @@ module ts.NavigationBar { function addTopLevelNodes(nodes: Node[], topLevelNodes: Node[]): void { nodes = sortNodes(nodes); - for (var i = 0, n = nodes.length; i < n; i++) { - var node = nodes[i]; + for (let node of nodes) { switch (node.kind) { case SyntaxKind.ClassDeclaration: case SyntaxKind.EnumDeclaration: @@ -160,13 +159,13 @@ module ts.NavigationBar { break; case SyntaxKind.ModuleDeclaration: - var moduleDeclaration = node; + let moduleDeclaration = node; topLevelNodes.push(node); addTopLevelNodes((getInnermostModule(moduleDeclaration).body).statements, topLevelNodes); break; case SyntaxKind.FunctionDeclaration: - var functionDeclaration = node; + let functionDeclaration = node; if (isTopLevelFunctionDeclaration(functionDeclaration)) { topLevelNodes.push(node); addTopLevelNodes((functionDeclaration.body).statements, topLevelNodes); @@ -200,18 +199,17 @@ module ts.NavigationBar { } function getItemsWorker(nodes: Node[], createItem: (n: Node) => ts.NavigationBarItem): ts.NavigationBarItem[] { - var items: ts.NavigationBarItem[] = []; + let items: ts.NavigationBarItem[] = []; - var keyToItem: Map = {}; + let keyToItem: Map = {}; - for (var i = 0, n = nodes.length; i < n; i++) { - var child = nodes[i]; - var item = createItem(child); + for (let child of nodes) { + let item = createItem(child); if (item !== undefined) { if (item.text.length > 0) { - var key = item.text + "-" + item.kind + "-" + item.indent; + let key = item.text + "-" + item.kind + "-" + item.indent; - var itemWithSameName = keyToItem[key]; + let itemWithSameName = keyToItem[key]; if (itemWithSameName) { // We had an item with the same name. Merge these items together. merge(itemWithSameName, item); @@ -238,12 +236,8 @@ module ts.NavigationBar { // Next, recursively merge or add any children in the source as appropriate. outer: - for (var i = 0, n = source.childItems.length; i < n; i++) { - var sourceChild = source.childItems[i]; - - for (var j = 0, m = target.childItems.length; j < m; j++) { - var targetChild = target.childItems[j]; - + for (let sourceChild of source.childItems) { + for (let targetChild of target.childItems) { if (targetChild.text === sourceChild.text && targetChild.kind === sourceChild.kind) { // Found a match. merge them. merge(targetChild, sourceChild); @@ -299,8 +293,8 @@ module ts.NavigationBar { case SyntaxKind.VariableDeclaration: case SyntaxKind.BindingElement: - var variableDeclarationNode: Node; - var name: Node; + let variableDeclarationNode: Node; + let name: Node; if (node.kind === SyntaxKind.BindingElement) { name = (node).name; @@ -397,7 +391,7 @@ module ts.NavigationBar { } // Otherwise, we need to aggregate each identifier to build up the qualified name. - var result: string[] = []; + let result: string[] = []; result.push(moduleDeclaration.name.text); @@ -411,9 +405,9 @@ module ts.NavigationBar { } function createModuleItem(node: ModuleDeclaration): NavigationBarItem { - var moduleName = getModuleName(node); + let moduleName = getModuleName(node); - var childItems = getItemsWorker(getChildNodes((getInnermostModule(node).body).statements), createChildItem); + let childItems = getItemsWorker(getChildNodes((getInnermostModule(node).body).statements), createChildItem); return getNavigationBarItem(moduleName, ts.ScriptElementKind.moduleElement, @@ -424,10 +418,10 @@ module ts.NavigationBar { } function createFunctionItem(node: FunctionDeclaration) { - if (node.name && node.body && node.body.kind === SyntaxKind.Block) { - var childItems = getItemsWorker(sortNodes((node.body).statements), createChildItem); + if ((node.name || node.flags & NodeFlags.Default) && node.body && node.body.kind === SyntaxKind.Block) { + let childItems = getItemsWorker(sortNodes((node.body).statements), createChildItem); - return getNavigationBarItem(node.name.text, + return getNavigationBarItem((!node.name && node.flags & NodeFlags.Default) ? "default": node.name.text , ts.ScriptElementKind.functionElement, getNodeModifiers(node), [getNodeSpan(node)], @@ -439,14 +433,14 @@ module ts.NavigationBar { } function createSourceFileItem(node: SourceFile): ts.NavigationBarItem { - var childItems = getItemsWorker(getChildNodes(node.statements), createChildItem); + let childItems = getItemsWorker(getChildNodes(node.statements), createChildItem); if (childItems === undefined || childItems.length === 0) { return undefined; } hasGlobalNode = true; - var rootName = isExternalModule(node) + let rootName = isExternalModule(node) ? "\"" + escapeString(getBaseFileName(removeFileExtension(normalizePath(node.fileName)))) + "\"" : "" @@ -458,31 +452,28 @@ module ts.NavigationBar { } function createClassItem(node: ClassDeclaration): ts.NavigationBarItem { - if (!node.name) { - // An export default class may be nameless - return undefined; - } - - var childItems: NavigationBarItem[]; + let childItems: NavigationBarItem[]; if (node.members) { - var constructor = forEach(node.members, member => { + let constructor = forEach(node.members, member => { return member.kind === SyntaxKind.Constructor && member; }); // Add the constructor parameters in as children of the class (for property parameters). // Note that *all non-binding pattern named* parameters will be added to the nodes array, but parameters that // are not properties will be filtered out later by createChildItem. - var nodes: Node[] = removeDynamicallyNamedProperties(node); + let nodes: Node[] = removeDynamicallyNamedProperties(node); if (constructor) { nodes.push.apply(nodes, filter(constructor.parameters, p => !isBindingPattern(p.name))); } - var childItems = getItemsWorker(sortNodes(nodes), createChildItem); + childItems = getItemsWorker(sortNodes(nodes), createChildItem); } + var nodeName = !node.name && (node.flags & NodeFlags.Default) ? "default" : node.name.text; + return getNavigationBarItem( - node.name.text, + nodeName, ts.ScriptElementKind.classElement, getNodeModifiers(node), [getNodeSpan(node)], @@ -491,7 +482,7 @@ module ts.NavigationBar { } function createEnumItem(node: EnumDeclaration): ts.NavigationBarItem { - var childItems = getItemsWorker(sortNodes(removeComputedProperties(node)), createChildItem); + let childItems = getItemsWorker(sortNodes(removeComputedProperties(node)), createChildItem); return getNavigationBarItem( node.name.text, ts.ScriptElementKind.enumElement, @@ -502,7 +493,7 @@ module ts.NavigationBar { } function createIterfaceItem(node: InterfaceDeclaration): ts.NavigationBarItem { - var childItems = getItemsWorker(sortNodes(removeDynamicallyNamedProperties(node)), createChildItem); + let childItems = getItemsWorker(sortNodes(removeDynamicallyNamedProperties(node)), createChildItem); return getNavigationBarItem( node.name.text, ts.ScriptElementKind.interfaceElement, diff --git a/src/services/outliningElementsCollector.ts b/src/services/outliningElementsCollector.ts index eee537bbebb..4c9dcedc7a4 100644 --- a/src/services/outliningElementsCollector.ts +++ b/src/services/outliningElementsCollector.ts @@ -16,12 +16,12 @@ module ts { export module OutliningElementsCollector { export function collectElements(sourceFile: SourceFile): OutliningSpan[] { - var elements: OutliningSpan[] = []; - var collapseText = "..."; + let elements: OutliningSpan[] = []; + let collapseText = "..."; function addOutliningSpan(hintSpanNode: Node, startElement: Node, endElement: Node, autoCollapse: boolean) { if (hintSpanNode && startElement && endElement) { - var span: OutliningSpan = { + let span: OutliningSpan = { textSpan: createTextSpanFromBounds(startElement.pos, endElement.end), hintSpan: createTextSpanFromBounds(hintSpanNode.getStart(), hintSpanNode.end), bannerText: collapseText, @@ -35,8 +35,8 @@ module ts { return isFunctionBlock(node) && node.parent.kind !== SyntaxKind.ArrowFunction; } - var depth = 0; - var maxDepth = 20; + let depth = 0; + let maxDepth = 20; function walk(n: Node): void { if (depth > maxDepth) { return; @@ -44,9 +44,9 @@ module ts { switch (n.kind) { case SyntaxKind.Block: if (!isFunctionBlock(n)) { - var parent = n.parent; - var openBrace = findChildOfKind(n, SyntaxKind.OpenBraceToken, sourceFile); - var closeBrace = findChildOfKind(n, SyntaxKind.CloseBraceToken, sourceFile); + let parent = n.parent; + let openBrace = findChildOfKind(n, SyntaxKind.OpenBraceToken, sourceFile); + let closeBrace = findChildOfKind(n, SyntaxKind.CloseBraceToken, sourceFile); // Check if the block is standalone, or 'attached' to some parent statement. // If the latter, we want to collaps the block, but consider its hint span @@ -66,13 +66,13 @@ module ts { if (parent.kind === SyntaxKind.TryStatement) { // Could be the try-block, or the finally-block. - var tryStatement = parent; + let tryStatement = parent; if (tryStatement.tryBlock === n) { addOutliningSpan(parent, openBrace, closeBrace, autoCollapse(n)); break; } else if (tryStatement.finallyBlock === n) { - var finallyKeyword = findChildOfKind(tryStatement, SyntaxKind.FinallyKeyword, sourceFile); + let finallyKeyword = findChildOfKind(tryStatement, SyntaxKind.FinallyKeyword, sourceFile); if (finallyKeyword) { addOutliningSpan(finallyKeyword, openBrace, closeBrace, autoCollapse(n)); break; @@ -84,7 +84,7 @@ module ts { // Block was a standalone block. In this case we want to only collapse // the span of the block, independent of any parent span. - var span = createTextSpanFromBounds(n.getStart(), n.end); + let span = createTextSpanFromBounds(n.getStart(), n.end); elements.push({ textSpan: span, hintSpan: span, @@ -95,23 +95,25 @@ module ts { } // Fallthrough. - case SyntaxKind.ModuleBlock: - var openBrace = findChildOfKind(n, SyntaxKind.OpenBraceToken, sourceFile); - var closeBrace = findChildOfKind(n, SyntaxKind.CloseBraceToken, sourceFile); + case SyntaxKind.ModuleBlock: { + let openBrace = findChildOfKind(n, SyntaxKind.OpenBraceToken, sourceFile); + let closeBrace = findChildOfKind(n, SyntaxKind.CloseBraceToken, sourceFile); addOutliningSpan(n.parent, openBrace, closeBrace, autoCollapse(n)); break; + } case SyntaxKind.ClassDeclaration: case SyntaxKind.InterfaceDeclaration: case SyntaxKind.EnumDeclaration: case SyntaxKind.ObjectLiteralExpression: - case SyntaxKind.CaseBlock: - var openBrace = findChildOfKind(n, SyntaxKind.OpenBraceToken, sourceFile); - var closeBrace = findChildOfKind(n, SyntaxKind.CloseBraceToken, sourceFile); + case SyntaxKind.CaseBlock: { + let openBrace = findChildOfKind(n, SyntaxKind.OpenBraceToken, sourceFile); + let closeBrace = findChildOfKind(n, SyntaxKind.CloseBraceToken, sourceFile); addOutliningSpan(n, openBrace, closeBrace, autoCollapse(n)); break; + } case SyntaxKind.ArrayLiteralExpression: - var openBracket = findChildOfKind(n, SyntaxKind.OpenBracketToken, sourceFile); - var closeBracket = findChildOfKind(n, SyntaxKind.CloseBracketToken, sourceFile); + let openBracket = findChildOfKind(n, SyntaxKind.OpenBracketToken, sourceFile); + let closeBracket = findChildOfKind(n, SyntaxKind.CloseBracketToken, sourceFile); addOutliningSpan(n, openBracket, closeBracket, autoCollapse(n)); break; } diff --git a/src/services/patternMatcher.ts b/src/services/patternMatcher.ts index 9bcd3e1d000..61642552cab 100644 --- a/src/services/patternMatcher.ts +++ b/src/services/patternMatcher.ts @@ -112,13 +112,13 @@ module ts { // we see the name of a module that is used everywhere, or the name of an overload). As // such, we cache the information we compute about the candidate for the life of this // pattern matcher so we don't have to compute it multiple times. - var stringToWordSpans: Map = {}; + let stringToWordSpans: Map = {}; pattern = pattern.trim(); - var fullPatternSegment = createSegment(pattern); - var dotSeparatedSegments = pattern.split(".").map(p => createSegment(p.trim())); - var invalidPattern = dotSeparatedSegments.length === 0 || forEach(dotSeparatedSegments, segmentIsInvalid); + let fullPatternSegment = createSegment(pattern); + let dotSeparatedSegments = pattern.split(".").map(p => createSegment(p.trim())); + let invalidPattern = dotSeparatedSegments.length === 0 || forEach(dotSeparatedSegments, segmentIsInvalid); return { getMatches, @@ -147,7 +147,7 @@ module 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. - var candidateMatch = matchSegment(candidate, lastOrUndefined(dotSeparatedSegments)); + let candidateMatch = matchSegment(candidate, lastOrUndefined(dotSeparatedSegments)); if (!candidateMatch) { return undefined; } @@ -164,16 +164,16 @@ module ts { // So far so good. Now break up the container for the candidate and check if all // the dotted parts match up correctly. - var totalMatch = candidateMatch; + let totalMatch = candidateMatch; - for (var i = dotSeparatedSegments.length - 2, j = candidateContainers.length - 1; + for (let i = dotSeparatedSegments.length - 2, j = candidateContainers.length - 1; i >= 0; i--, j--) { - var segment = dotSeparatedSegments[i]; - var containerName = candidateContainers[j]; + let segment = dotSeparatedSegments[i]; + let containerName = candidateContainers[j]; - var containerMatch = matchSegment(containerName, segment); + let containerMatch = matchSegment(containerName, segment); if (!containerMatch) { // This container didn't match the pattern piece. So there's no match at all. return undefined; @@ -196,7 +196,7 @@ module ts { } function matchTextChunk(candidate: string, chunk: TextChunk, punctuationStripped: boolean): PatternMatch { - var index = indexOfIgnoringCase(candidate, chunk.textLowerCase); + let 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 @@ -210,7 +210,7 @@ module ts { } } - var isLowercase = chunk.isLowerCase; + let isLowercase = chunk.isLowerCase; if (isLowercase) { if (index > 0) { // c) If the part is entirely lowercase, then check if it is contained anywhere in the @@ -220,9 +220,8 @@ module ts { // 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'). - var wordSpans = getWordSpans(candidate); - for (var i = 0, n = wordSpans.length; i < n; i++) { - var span = wordSpans[i] + let wordSpans = getWordSpans(candidate); + for (let 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,8 +241,8 @@ module ts { if (!isLowercase) { // e) If the part was not entirely lowercase, then attempt a camel cased match as well. if (chunk.characterSpans.length > 0) { - var candidateParts = getWordSpans(candidate); - var camelCaseWeight = tryCamelCaseMatch(candidate, candidateParts, chunk, /*ignoreCase:*/ false); + let candidateParts = getWordSpans(candidate); + let camelCaseWeight = tryCamelCaseMatch(candidate, candidateParts, chunk, /*ignoreCase:*/ false); if (camelCaseWeight !== undefined) { return createPatternMatch(PatternMatchKind.camelCase, punctuationStripped, /*isCaseSensitive:*/ true, /*camelCaseWeight:*/ camelCaseWeight); } @@ -274,8 +273,8 @@ module ts { } function containsSpaceOrAsterisk(text: string): boolean { - for (var i = 0; i < text.length; i++) { - var ch = text.charCodeAt(i); + for (let i = 0; i < text.length; i++) { + let ch = text.charCodeAt(i); if (ch === CharacterCodes.space || ch === CharacterCodes.asterisk) { return true; } @@ -293,7 +292,7 @@ module 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)) { - var match = matchTextChunk(candidate, segment.totalTextChunk, /*punctuationStripped:*/ false); + let match = matchTextChunk(candidate, segment.totalTextChunk, /*punctuationStripped:*/ false); if (match) { return [match]; } @@ -336,14 +335,12 @@ module ts { // // Only if all words have some sort of match is the pattern considered matched. - var subWordTextChunks = segment.subWordTextChunks; - var matches: PatternMatch[] = undefined; - - for (var i = 0, n = subWordTextChunks.length; i < n; i++) { - var subWordTextChunk = subWordTextChunks[i]; + let subWordTextChunks = segment.subWordTextChunks; + let matches: PatternMatch[] = undefined; + for (let subWordTextChunk of subWordTextChunks) { // Try to match the candidate with this word - var result = matchTextChunk(candidate, subWordTextChunk, /*punctuationStripped:*/ true); + let result = matchTextChunk(candidate, subWordTextChunk, /*punctuationStripped:*/ true); if (!result) { return undefined; } @@ -356,8 +353,8 @@ module ts { } function partStartsWith(candidate: string, candidateSpan: TextSpan, pattern: string, ignoreCase: boolean, patternSpan?: TextSpan): boolean { - var patternPartStart = patternSpan ? patternSpan.start : 0; - var patternPartLength = patternSpan ? patternSpan.length : pattern.length; + let patternPartStart = patternSpan ? patternSpan.start : 0; + let patternPartLength = patternSpan ? patternSpan.length : pattern.length; if (patternPartLength > candidateSpan.length) { // Pattern part is longer than the candidate part. There can never be a match. @@ -365,18 +362,18 @@ module ts { } if (ignoreCase) { - for (var i = 0; i < patternPartLength; i++) { - var ch1 = pattern.charCodeAt(patternPartStart + i); - var ch2 = candidate.charCodeAt(candidateSpan.start + i); + for (let i = 0; i < patternPartLength; i++) { + let ch1 = pattern.charCodeAt(patternPartStart + i); + let ch2 = candidate.charCodeAt(candidateSpan.start + i); if (toLowerCase(ch1) !== toLowerCase(ch2)) { return false; } } } else { - for (var i = 0; i < patternPartLength; i++) { - var ch1 = pattern.charCodeAt(patternPartStart + i); - var ch2 = candidate.charCodeAt(candidateSpan.start + i); + for (let i = 0; i < patternPartLength; i++) { + let ch1 = pattern.charCodeAt(patternPartStart + i); + let ch2 = candidate.charCodeAt(candidateSpan.start + i); if (ch1 !== ch2) { return false; } @@ -387,23 +384,23 @@ module ts { } function tryCamelCaseMatch(candidate: string, candidateParts: TextSpan[], chunk: TextChunk, ignoreCase: boolean): number { - var chunkCharacterSpans = chunk.characterSpans; + let 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. - var currentCandidate = 0; - var currentChunkSpan = 0; - var firstMatch: number = undefined; - var contiguous: boolean = undefined; + let currentCandidate = 0; + let currentChunkSpan = 0; + let firstMatch: number = undefined; + let contiguous: boolean = undefined; while (true) { // Let's consider our termination cases if (currentChunkSpan === chunkCharacterSpans.length) { // We did match! We shall assign a weight to this - var weight = 0; + let weight = 0; // Was this contiguous? if (contiguous) { @@ -422,15 +419,15 @@ module ts { return undefined; } - var candidatePart = candidateParts[currentCandidate]; - var gotOneMatchThisCandidate = false; + let candidatePart = candidateParts[currentCandidate]; + let gotOneMatchThisCandidate = false; // 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. for (; currentChunkSpan < chunkCharacterSpans.length; currentChunkSpan++) { - var chunkCharacterSpan = chunkCharacterSpans[currentChunkSpan]; + let chunkCharacterSpan = chunkCharacterSpans[currentChunkSpan]; if (gotOneMatchThisCandidate) { // We've already gotten one pattern part match in this candidate. We will @@ -540,7 +537,7 @@ module ts { // TODO: find a way to determine this for any unicode characters in a // non-allocating manner. - var str = String.fromCharCode(ch); + let str = String.fromCharCode(ch); return str === str.toUpperCase(); } @@ -557,12 +554,12 @@ module ts { // TODO: find a way to determine this for any unicode characters in a // non-allocating manner. - var str = String.fromCharCode(ch); + let str = String.fromCharCode(ch); return str === str.toLowerCase(); } function containsUpperCaseLetter(string: string): boolean { - for (var i = 0, n = string.length; i < n; i++) { + for (let i = 0, n = string.length; i < n; i++) { if (isUpperCaseLetter(string.charCodeAt(i))) { return true; } @@ -572,7 +569,7 @@ module ts { } function startsWith(string: string, search: string) { - for (var i = 0, n = search.length; i < n; i++) { + for (let i = 0, n = search.length; i < n; i++) { if (string.charCodeAt(i) !== search.charCodeAt(i)) { return false; } @@ -583,7 +580,7 @@ module ts { // Assumes 'value' is already lowercase. function indexOfIgnoringCase(string: string, value: string): number { - for (var i = 0, n = string.length - value.length; i <= n; i++) { + for (let i = 0, n = string.length - value.length; i <= n; i++) { if (startsWithIgnoringCase(string, value, i)) { return i; } @@ -594,9 +591,9 @@ module ts { // Assumes 'value' is already lowercase. function startsWithIgnoringCase(string: string, value: string, start: number): boolean { - for (var i = 0, n = value.length; i < n; i++) { - var ch1 = toLowerCase(string.charCodeAt(i + start)); - var ch2 = value.charCodeAt(i); + for (let i = 0, n = value.length; i < n; i++) { + let ch1 = toLowerCase(string.charCodeAt(i + start)); + let ch2 = value.charCodeAt(i); if (ch1 !== ch2) { return false; @@ -631,12 +628,12 @@ module ts { } function breakPatternIntoTextChunks(pattern: string): TextChunk[] { - var result: TextChunk[] = []; - var wordStart = 0; - var wordLength = 0; + let result: TextChunk[] = []; + let wordStart = 0; + let wordLength = 0; - for (var i = 0; i < pattern.length; i++) { - var ch = pattern.charCodeAt(i); + for (let i = 0; i < pattern.length; i++) { + let ch = pattern.charCodeAt(i); if (isWordChar(ch)) { if (wordLength++ === 0) { wordStart = i; @@ -658,7 +655,7 @@ module ts { } function createTextChunk(text: string): TextChunk { - var textLowerCase = text.toLowerCase(); + let textLowerCase = text.toLowerCase(); return { text, textLowerCase, @@ -676,15 +673,15 @@ module ts { } function breakIntoSpans(identifier: string, word: boolean): TextSpan[] { - var result: TextSpan[] = []; + let result: TextSpan[] = []; - var wordStart = 0; - for (var i = 1, n = identifier.length; i < n; i++) { - var lastIsDigit = isDigit(identifier.charCodeAt(i - 1)); - var currentIsDigit = isDigit(identifier.charCodeAt(i)); + 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)); - var hasTransitionFromLowerToUpper = transitionFromLowerToUpper(identifier, word, i); - var hasTransitionFromUpperToLower = transitionFromUpperToLower(identifier, word, i, wordStart); + let hasTransitionFromLowerToUpper = transitionFromLowerToUpper(identifier, word, i); + let hasTransitionFromUpperToLower = transitionFromUpperToLower(identifier, word, i, wordStart); if (charIsPunctuation(identifier.charCodeAt(i - 1)) || charIsPunctuation(identifier.charCodeAt(i)) || @@ -739,8 +736,8 @@ module ts { } function isAllPunctuation(identifier: string, start: number, end: number): boolean { - for (var i = start; i < end; i++) { - var ch = identifier.charCodeAt(i); + for (let i = start; i < end; i++) { + let 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.$) { @@ -761,8 +758,8 @@ module ts { // etc. if (index != wordStart && index + 1 < identifier.length) { - var currentIsUpper = isUpperCaseLetter(identifier.charCodeAt(index)); - var nextIsLower = isLowerCaseLetter(identifier.charCodeAt(index + 1)); + let currentIsUpper = isUpperCaseLetter(identifier.charCodeAt(index)); + let nextIsLower = isLowerCaseLetter(identifier.charCodeAt(index + 1)); if (currentIsUpper && nextIsLower) { // We have a transition from an upper to a lower letter here. But we only @@ -773,7 +770,7 @@ module ts { // that follows. Note: this will make the following not split properly: // "HELLOthere". However, these sorts of names do not show up in .Net // programs. - for (var i = wordStart; i < index; i++) { + for (let i = wordStart; i < index; i++) { if (!isUpperCaseLetter(identifier.charCodeAt(i))) { return false; } @@ -788,8 +785,8 @@ module ts { } function transitionFromLowerToUpper(identifier: string, word: boolean, index: number): boolean { - var lastIsUpper = isUpperCaseLetter(identifier.charCodeAt(index - 1)); - var currentIsUpper = isUpperCaseLetter(identifier.charCodeAt(index)); + let lastIsUpper = isUpperCaseLetter(identifier.charCodeAt(index - 1)); + let 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 @@ -804,7 +801,7 @@ module ts { // on characters would be: A M // // We break the search string on characters. But we break the symbol name on words. - var transition = word + let transition = word ? (currentIsUpper && !lastIsUpper) : currentIsUpper; return transition; diff --git a/src/services/services.ts b/src/services/services.ts index 61d7a0736b0..1bf5f6336d4 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -12,7 +12,7 @@ module ts { /** The version of the language service API */ - export var servicesVersion = "0.4" + export let servicesVersion = "0.4" export interface Node { getSourceFile(): SourceFile; @@ -124,12 +124,12 @@ module ts { isLibFile: boolean } - var scanner: Scanner = createScanner(ScriptTarget.Latest, /*skipTrivia*/ true); + let scanner: Scanner = createScanner(ScriptTarget.Latest, /*skipTrivia*/ true); - var emptyArray: any[] = []; + let emptyArray: any[] = []; function createNode(kind: SyntaxKind, pos: number, end: number, flags: NodeFlags, parent?: Node): NodeObject { - var node = new (getNodeConstructor(kind))(); + let node = new (getNodeConstructor(kind))(); node.pos = pos; node.end = end; node.flags = flags; @@ -184,8 +184,8 @@ module ts { private addSyntheticNodes(nodes: Node[], pos: number, end: number): number { scanner.setTextPos(pos); while (pos < end) { - var token = scanner.scan(); - var textPos = scanner.getTextPos(); + let token = scanner.scan(); + let textPos = scanner.getTextPos(); nodes.push(createNode(token, pos, textPos, NodeFlags.Synthetic, this)); pos = textPos; } @@ -193,11 +193,10 @@ module ts { } private createSyntaxList(nodes: NodeArray): Node { - var list = createNode(SyntaxKind.SyntaxList, nodes.pos, nodes.end, NodeFlags.Synthetic, this); + let list = createNode(SyntaxKind.SyntaxList, nodes.pos, nodes.end, NodeFlags.Synthetic, this); list._children = []; - var pos = nodes.pos; - for (var i = 0, len = nodes.length; i < len; i++) { - var node = nodes[i]; + let pos = nodes.pos; + for (let node of nodes) { if (pos < node.pos) { pos = this.addSyntheticNodes(list._children, pos, node.pos); } @@ -211,18 +210,19 @@ module ts { } private createChildren(sourceFile?: SourceFile) { + let children: Node[]; if (this.kind >= SyntaxKind.FirstNode) { scanner.setText((sourceFile || this.getSourceFile()).text); - var children: Node[] = []; - var pos = this.pos; - var processNode = (node: Node) => { + children = []; + let pos = this.pos; + let processNode = (node: Node) => { if (pos < node.pos) { pos = this.addSyntheticNodes(children, pos, node.pos); } children.push(node); pos = node.end; }; - var processNodes = (nodes: NodeArray) => { + let processNodes = (nodes: NodeArray) => { if (pos < nodes.pos) { pos = this.addSyntheticNodes(children, pos, nodes.pos); } @@ -254,9 +254,8 @@ module ts { } public getFirstToken(sourceFile?: SourceFile): Node { - var children = this.getChildren(); - for (var i = 0; i < children.length; i++) { - var child = children[i]; + let children = this.getChildren(); + for (let child of children) { if (child.kind < SyntaxKind.FirstNode) { return child; } @@ -266,9 +265,9 @@ module ts { } public getLastToken(sourceFile?: SourceFile): Node { - var children = this.getChildren(sourceFile); - for (var i = children.length - 1; i >= 0; i--) { - var child = children[i]; + let children = this.getChildren(sourceFile); + for (let i = children.length - 1; i >= 0; i--) { + let child = children[i]; if (child.kind < SyntaxKind.FirstNode) { return child; } @@ -314,8 +313,8 @@ module ts { } function getJsDocCommentsFromDeclarations(declarations: Declaration[], name: string, canUseParsedParamTagComments: boolean) { - var documentationComment = []; - var docComments = getJsDocCommentsSeparatedByNewLines(); + let documentationComment = []; + let docComments = getJsDocCommentsSeparatedByNewLines(); ts.forEach(docComments, docComment => { if (documentationComment.length) { documentationComment.push(lineBreakPart()); @@ -326,22 +325,22 @@ module ts { return documentationComment; function getJsDocCommentsSeparatedByNewLines() { - var paramTag = "@param"; - var jsDocCommentParts: SymbolDisplayPart[] = []; + let paramTag = "@param"; + let jsDocCommentParts: SymbolDisplayPart[] = []; ts.forEach(declarations, (declaration, indexOfDeclaration) => { // Make sure we are collecting doc comment from declaration once, // In case of union property there might be same declaration multiple times // which only varies in type parameter - // Eg. var a: Array | Array; a.length + // Eg. let a: Array | Array; a.length // The property length will have two declarations of property length coming // from Array - Array and Array if (indexOf(declarations, declaration) === indexOfDeclaration) { - var sourceFileOfDeclaration = getSourceFileOfNode(declaration); + let sourceFileOfDeclaration = getSourceFileOfNode(declaration); // If it is parameter - try and get the jsDoc comment with @param tag from function declaration's jsDoc comments if (canUseParsedParamTagComments && declaration.kind === SyntaxKind.Parameter) { ts.forEach(getJsDocCommentTextRange(declaration.parent, sourceFileOfDeclaration), jsDocCommentTextRange => { - var cleanedParamJsDocComment = getCleanedParamJsDocComment(jsDocCommentTextRange.pos, jsDocCommentTextRange.end, sourceFileOfDeclaration); + let cleanedParamJsDocComment = getCleanedParamJsDocComment(jsDocCommentTextRange.pos, jsDocCommentTextRange.end, sourceFileOfDeclaration); if (cleanedParamJsDocComment) { jsDocCommentParts.push.apply(jsDocCommentParts, cleanedParamJsDocComment); } @@ -361,7 +360,7 @@ module ts { // Get the cleaned js doc comment text from the declaration ts.forEach(getJsDocCommentTextRange( declaration.kind === SyntaxKind.VariableDeclaration ? declaration.parent.parent : declaration, sourceFileOfDeclaration), jsDocCommentTextRange => { - var cleanedJsDocComment = getCleanedJsDocComment(jsDocCommentTextRange.pos, jsDocCommentTextRange.end, sourceFileOfDeclaration); + let cleanedJsDocComment = getCleanedJsDocComment(jsDocCommentTextRange.pos, jsDocCommentTextRange.end, sourceFileOfDeclaration); if (cleanedJsDocComment) { jsDocCommentParts.push.apply(jsDocCommentParts, cleanedJsDocComment); } @@ -387,7 +386,7 @@ module ts { } for (; pos < end; pos++) { - var ch = sourceFile.text.charCodeAt(pos); + let ch = sourceFile.text.charCodeAt(pos); if (!isWhiteSpace(ch) || isLineBreak(ch)) { // Either found lineBreak or non whiteSpace return pos; @@ -424,19 +423,19 @@ module ts { } function getCleanedJsDocComment(pos: number, end: number, sourceFile: SourceFile) { - var spacesToRemoveAfterAsterisk: number; - var docComments: SymbolDisplayPart[] = []; - var blankLineCount = 0; - var isInParamTag = false; + let spacesToRemoveAfterAsterisk: number; + let docComments: SymbolDisplayPart[] = []; + let blankLineCount = 0; + let isInParamTag = false; while (pos < end) { - var docCommentTextOfLine = ""; + let docCommentTextOfLine = ""; // First consume leading white space pos = consumeWhiteSpacesOnTheLine(pos, end, sourceFile); // If the comment starts with '*' consume the spaces on this line if (pos < end && sourceFile.text.charCodeAt(pos) === CharacterCodes.asterisk) { - var lineStartPos = pos + 1; + let lineStartPos = pos + 1; pos = consumeWhiteSpacesOnTheLine(pos + 1, end, sourceFile, spacesToRemoveAfterAsterisk); // Set the spaces to remove after asterisk as margin if not already set @@ -450,7 +449,7 @@ module ts { // Analyse text on this line while (pos < end && !isLineBreak(sourceFile.text.charCodeAt(pos))) { - var ch = sourceFile.text.charAt(pos); + let ch = sourceFile.text.charAt(pos); if (ch === "@") { // If it is @param tag if (isParamTag(pos, end, sourceFile)) { @@ -488,12 +487,12 @@ module ts { } function getCleanedParamJsDocComment(pos: number, end: number, sourceFile: SourceFile) { - var paramHelpStringMargin: number; - var paramDocComments: SymbolDisplayPart[] = []; + let paramHelpStringMargin: number; + let paramDocComments: SymbolDisplayPart[] = []; while (pos < end) { if (isParamTag(pos, end, sourceFile)) { - var blankLineCount = 0; - var recordedParamTag = false; + let blankLineCount = 0; + let recordedParamTag = false; // Consume leading spaces pos = consumeWhiteSpaces(pos + paramTag.length); if (pos >= end) { @@ -503,8 +502,8 @@ module ts { // Ignore type expression if (sourceFile.text.charCodeAt(pos) === CharacterCodes.openBrace) { pos++; - for (var curlies = 1; pos < end; pos++) { - var charCode = sourceFile.text.charCodeAt(pos); + for (let curlies = 1; pos < end; pos++) { + let charCode = sourceFile.text.charCodeAt(pos); // { character means we need to find another } to match the found one if (charCode === CharacterCodes.openBrace) { @@ -547,10 +546,10 @@ module ts { break; } - var paramHelpString = ""; - var firstLineParamHelpStringPos = pos; + let paramHelpString = ""; + let firstLineParamHelpStringPos = pos; while (pos < end) { - var ch = sourceFile.text.charCodeAt(pos); + let ch = sourceFile.text.charCodeAt(pos); // at line break, set this comment line text and go to next line if (isLineBreak(ch)) { @@ -619,15 +618,15 @@ module ts { } // Now consume white spaces max - var startOfLinePos = pos; + let startOfLinePos = pos; pos = consumeWhiteSpacesOnTheLine(pos, end, sourceFile, paramHelpStringMargin); if (pos >= end) { return; } - var consumedSpaces = pos - startOfLinePos; + let consumedSpaces = pos - startOfLinePos; if (consumedSpaces < paramHelpStringMargin) { - var ch = sourceFile.text.charCodeAt(pos); + let ch = sourceFile.text.charCodeAt(pos); if (ch === CharacterCodes.asterisk) { // Consume more spaces after asterisk pos = consumeWhiteSpacesOnTheLine(pos + 1, end, sourceFile, paramHelpStringMargin - consumedSpaces - 1); @@ -767,18 +766,18 @@ module ts { public getNamedDeclarations() { if (!this.namedDeclarations) { - var sourceFile = this; - var namedDeclarations: Declaration[] = []; + let sourceFile = this; + let namedDeclarations: Declaration[] = []; forEachChild(sourceFile, function visit(node: Node): void { switch (node.kind) { case SyntaxKind.FunctionDeclaration: case SyntaxKind.MethodDeclaration: case SyntaxKind.MethodSignature: - var functionDeclaration = node; + let functionDeclaration = node; if (functionDeclaration.name && functionDeclaration.name.getFullWidth() > 0) { - var lastDeclaration = namedDeclarations.length > 0 ? + let lastDeclaration = namedDeclarations.length > 0 ? namedDeclarations[namedDeclarations.length - 1] : undefined; @@ -858,7 +857,7 @@ module ts { break; case SyntaxKind.ImportDeclaration: - var importClause = (node).importClause; + let importClause = (node).importClause; if (importClause) { // Handle default import case e.g.: // import d from "mod"; @@ -1326,7 +1325,7 @@ module ts { static enumElement = "enum"; // Inside module and script only - // var v = .. + // let v = .. static variableElement = "var"; // Inside function @@ -1470,7 +1469,7 @@ module ts { } // If the parent is not sourceFile or module block it is local variable - for (var parent = declaration.parent; !isFunctionBlock(parent); parent = parent.parent) { + for (let parent = declaration.parent; !isFunctionBlock(parent); parent = parent.parent) { // Reached source file or module block if (parent.kind === SyntaxKind.SourceFile || parent.kind === SyntaxKind.ModuleBlock) { return false; @@ -1522,9 +1521,9 @@ module ts { this.fileNameToEntry = {}; // Initialize the list with the root file names - var rootFileNames = host.getScriptFileNames(); - for (var i = 0, n = rootFileNames.length; i < n; i++) { - this.createEntry(rootFileNames[i]); + let rootFileNames = host.getScriptFileNames(); + for (let fileName of rootFileNames) { + this.createEntry(fileName); } // store the compilation settings @@ -1536,8 +1535,8 @@ module ts { } private createEntry(fileName: string) { - var entry: HostFileInformation; - var scriptSnapshot = this.host.getScriptSnapshot(fileName); + let entry: HostFileInformation; + let scriptSnapshot = this.host.getScriptSnapshot(fileName); if (scriptSnapshot) { entry = { hostFileName: fileName, @@ -1566,7 +1565,7 @@ module ts { } public getRootFileNames(): string[] { - var fileNames: string[] = []; + let fileNames: string[] = []; forEachKey(this.fileNameToEntry, key => { if (hasProperty(this.fileNameToEntry, key) && this.fileNameToEntry[key]) @@ -1577,12 +1576,12 @@ module ts { } public getVersion(fileName: string): string { - var file = this.getEntry(fileName); + let file = this.getEntry(fileName); return file && file.version; } public getScriptSnapshot(fileName: string): IScriptSnapshot { - var file = this.getEntry(fileName); + let file = this.getEntry(fileName); return file && file.scriptSnapshot; } } @@ -1599,14 +1598,14 @@ module ts { } public getCurrentSourceFile(fileName: string): SourceFile { - var scriptSnapshot = this.host.getScriptSnapshot(fileName); + let scriptSnapshot = this.host.getScriptSnapshot(fileName); if (!scriptSnapshot) { // The host does not know about this file. throw new Error("Could not find file: '" + fileName + "'."); } - var version = this.host.getScriptVersion(fileName); - var sourceFile: SourceFile; + let version = this.host.getScriptVersion(fileName); + let sourceFile: SourceFile; if (this.currentFileName !== fileName) { // This is a new file, just parse it @@ -1614,7 +1613,7 @@ module ts { } else if (this.currentFileVersion !== version) { // This is the same file, just a newer version. Incrementally parse the file. - var editRange = scriptSnapshot.getChangeRange(this.currentFileScriptSnapshot); + let editRange = scriptSnapshot.getChangeRange(this.currentFileScriptSnapshot); sourceFile = updateLanguageServiceSourceFile(this.currentSourceFile, scriptSnapshot, version, editRange); } @@ -1636,14 +1635,14 @@ module ts { } export function createLanguageServiceSourceFile(fileName: string, scriptSnapshot: IScriptSnapshot, scriptTarget: ScriptTarget, version: string, setNodeParents: boolean): SourceFile { - var sourceFile = createSourceFile(fileName, scriptSnapshot.getText(0, scriptSnapshot.getLength()), scriptTarget, setNodeParents); + let sourceFile = createSourceFile(fileName, scriptSnapshot.getText(0, scriptSnapshot.getLength()), scriptTarget, setNodeParents); setSourceFileFields(sourceFile, scriptSnapshot, version); // after full parsing we can use table with interned strings as name table sourceFile.nameTable = sourceFile.identifiers; return sourceFile; } - export var disableIncrementalParsing = false; + export let disableIncrementalParsing = false; export function updateLanguageServiceSourceFile(sourceFile: SourceFile, scriptSnapshot: IScriptSnapshot, version: string, textChangeRange: TextChangeRange, aggressiveChecks?: boolean): SourceFile { // If we were given a text change range, and our version or open-ness changed, then @@ -1652,7 +1651,7 @@ module ts { if (version !== sourceFile.version) { // Once incremental parsing is ready, then just call into this function. if (!disableIncrementalParsing) { - var newSourceFile = updateSourceFile(sourceFile, scriptSnapshot.getText(0, scriptSnapshot.getLength()), textChangeRange, aggressiveChecks); + let newSourceFile = updateSourceFile(sourceFile, scriptSnapshot.getText(0, scriptSnapshot.getLength()), textChangeRange, aggressiveChecks); setSourceFileFields(newSourceFile, scriptSnapshot, version); // after incremental parsing nameTable might not be up-to-date // drop it so it can be lazily recreated later @@ -1669,15 +1668,15 @@ module ts { export function createDocumentRegistry(): DocumentRegistry { // Maps from compiler setting target (ES3, ES5, etc.) to all the cached documents we have // for those settings. - var buckets: Map> = {}; + let buckets: Map> = {}; function getKeyFromCompilationSettings(settings: CompilerOptions): string { return "_" + settings.target; // + "|" + settings.propagateEnumConstantoString() } function getBucketForCompilationSettings(settings: CompilerOptions, createIfMissing: boolean): Map { - var key = getKeyFromCompilationSettings(settings); - var bucket = lookUp(buckets, key); + let key = getKeyFromCompilationSettings(settings); + let bucket = lookUp(buckets, key); if (!bucket && createIfMissing) { buckets[key] = bucket = {}; } @@ -1685,11 +1684,11 @@ module ts { } function reportStats() { - var bucketInfoArray = Object.keys(buckets).filter(name => name && name.charAt(0) === '_').map(name => { - var entries = lookUp(buckets, name); - var sourceFiles: { name: string; refCount: number; references: string[]; }[] = []; - for (var i in entries) { - var entry = entries[i]; + let bucketInfoArray = Object.keys(buckets).filter(name => name && name.charAt(0) === '_').map(name => { + let entries = lookUp(buckets, name); + let sourceFiles: { name: string; refCount: number; references: string[]; }[] = []; + for (let i in entries) { + let entry = entries[i]; sourceFiles.push({ name: i, refCount: entry.languageServiceRefCount, @@ -1720,13 +1719,13 @@ module ts { version: string, acquiring: boolean): SourceFile { - var bucket = getBucketForCompilationSettings(compilationSettings, /*createIfMissing*/ true); - var entry = lookUp(bucket, fileName); + let bucket = getBucketForCompilationSettings(compilationSettings, /*createIfMissing*/ true); + let entry = lookUp(bucket, fileName); if (!entry) { Debug.assert(acquiring, "How could we be trying to update a document that the registry doesn't have?"); // Have never seen this file with these settings. Create a new source file for it. - var sourceFile = createLanguageServiceSourceFile(fileName, scriptSnapshot, compilationSettings.target, version, /*setNodeParents:*/ false); + let sourceFile = createLanguageServiceSourceFile(fileName, scriptSnapshot, compilationSettings.target, version, /*setNodeParents:*/ false); bucket[fileName] = entry = { sourceFile: sourceFile, @@ -1757,10 +1756,10 @@ module ts { } function releaseDocument(fileName: string, compilationSettings: CompilerOptions): void { - var bucket = getBucketForCompilationSettings(compilationSettings, false); + let bucket = getBucketForCompilationSettings(compilationSettings, false); Debug.assert(bucket !== undefined); - var entry = lookUp(bucket, fileName); + let entry = lookUp(bucket, fileName); entry.languageServiceRefCount--; Debug.assert(entry.languageServiceRefCount >= 0); @@ -1778,18 +1777,18 @@ module ts { } export function preProcessFile(sourceText: string, readImportFiles = true): PreProcessedFileInfo { - var referencedFiles: FileReference[] = []; - var importedFiles: FileReference[] = []; - var isNoDefaultLib = false; + let referencedFiles: FileReference[] = []; + let importedFiles: FileReference[] = []; + let isNoDefaultLib = false; function processTripleSlashDirectives(): void { - var commentRanges = getLeadingCommentRanges(sourceText, 0); + let commentRanges = getLeadingCommentRanges(sourceText, 0); forEach(commentRanges, commentRange => { - var comment = sourceText.substring(commentRange.pos, commentRange.end); - var referencePathMatchResult = getFileReferenceFromReferencePath(comment, commentRange); + let comment = sourceText.substring(commentRange.pos, commentRange.end); + let referencePathMatchResult = getFileReferenceFromReferencePath(comment, commentRange); if (referencePathMatchResult) { isNoDefaultLib = referencePathMatchResult.isNoDefaultLib; - var fileReference = referencePathMatchResult.fileReference; + let fileReference = referencePathMatchResult.fileReference; if (fileReference) { referencedFiles.push(fileReference); } @@ -1798,8 +1797,8 @@ module ts { } function recordModuleName() { - var importPath = scanner.getTokenValue(); - var pos = scanner.getTokenPos(); + let importPath = scanner.getTokenValue(); + let pos = scanner.getTokenPos(); importedFiles.push({ fileName: importPath, pos: pos, @@ -1809,7 +1808,7 @@ module ts { function processImport(): void { scanner.setText(sourceText); - var token = scanner.scan(); + let token = scanner.scan(); // Look for: // import "mod"; // import d from "mod" @@ -1974,7 +1973,7 @@ module ts { * Note: 'node' cannot be a SourceFile. */ function isLabeledBy(node: Node, labelName: string) { - for (var owner = node.parent; owner.kind === SyntaxKind.LabeledStatement; owner = owner.parent) { + for (let owner = node.parent; owner.kind === SyntaxKind.LabeledStatement; owner = owner.parent) { if ((owner).label.text === labelName) { return true; } @@ -2068,8 +2067,8 @@ module ts { return true; } else if (position === comment.end) { - var text = sourceFile.text; - var width = comment.end - comment.pos; + let text = sourceFile.text; + let width = comment.end - comment.pos; // is single line comment or just /* if (width <= 2 || text.charCodeAt(comment.pos + 1) === CharacterCodes.slash) { return true; @@ -2101,8 +2100,8 @@ module ts { } // A cache of completion entries for keywords, these do not change between sessions - var keywordCompletions: CompletionEntry[] = []; - for (var i = SyntaxKind.FirstKeyword; i <= SyntaxKind.LastKeyword; i++) { + let keywordCompletions: CompletionEntry[] = []; + for (let i = SyntaxKind.FirstKeyword; i <= SyntaxKind.LastKeyword; i++) { keywordCompletions.push({ name: tokenToString(i), kind: ScriptElementKind.keyword, @@ -2173,15 +2172,15 @@ module ts { } export function createLanguageService(host: LanguageServiceHost, documentRegistry: DocumentRegistry = createDocumentRegistry()): LanguageService { - var syntaxTreeCache: SyntaxTreeCache = new SyntaxTreeCache(host); - var ruleProvider: formatting.RulesProvider; - var program: Program; + let syntaxTreeCache: SyntaxTreeCache = new SyntaxTreeCache(host); + let ruleProvider: formatting.RulesProvider; + let program: Program; // this checker is used to answer all LS questions except errors - var typeInfoResolver: TypeChecker; - var useCaseSensitivefileNames = false; - var cancellationToken = new CancellationTokenObject(host.getCancellationToken && host.getCancellationToken()); - var activeCompletionSession: CompletionSession; // The current active completion session, used to get the completion entry details + let typeInfoResolver: TypeChecker; + let useCaseSensitivefileNames = false; + let cancellationToken = new CancellationTokenObject(host.getCancellationToken && host.getCancellationToken()); + let activeCompletionSession: CompletionSession; // The current active completion session, used to get the completion entry details // Check if the localized messages json is set, otherwise query the host for it if (!localizedDiagnosticMessages && host.getLocalizedDiagnosticMessages) { @@ -2200,7 +2199,7 @@ module ts { function getValidSourceFile(fileName: string): SourceFile { fileName = normalizeSlashes(fileName); - var sourceFile = program.getSourceFile(getCanonicalFileName(fileName)); + let sourceFile = program.getSourceFile(getCanonicalFileName(fileName)); if (!sourceFile) { throw new Error("Could not find file: '" + fileName + "'."); } @@ -2219,7 +2218,7 @@ module ts { function synchronizeHostData(): void { // Get a fresh cache of the host information - var hostCache = new HostCache(host); + let hostCache = new HostCache(host); // If the program is already up-to-date, we can reuse it if (programUpToDate()) { @@ -2232,12 +2231,12 @@ module ts { // the program points to old source files that have been invalidated because of // incremental parsing. - var oldSettings = program && program.getCompilerOptions(); - var newSettings = hostCache.compilationSettings(); - var changesInCompilationSettingsAffectSyntax = oldSettings && oldSettings.target !== newSettings.target; + let oldSettings = program && program.getCompilerOptions(); + let newSettings = hostCache.compilationSettings(); + let changesInCompilationSettingsAffectSyntax = oldSettings && oldSettings.target !== newSettings.target; // Now create a new compiler - var newProgram = createProgram(hostCache.getRootFileNames(), newSettings, { + let newProgram = createProgram(hostCache.getRootFileNames(), newSettings, { getSourceFile: getOrCreateSourceFile, getCancellationToken: () => cancellationToken, getCanonicalFileName: (fileName) => useCaseSensitivefileNames ? fileName : fileName.toLowerCase(), @@ -2251,9 +2250,9 @@ module ts { // Release any files we have acquired in the old program but are // not part of the new program. if (program) { - var oldSourceFiles = program.getSourceFiles(); - for (var i = 0, n = oldSourceFiles.length; i < n; i++) { - var fileName = oldSourceFiles[i].fileName; + let oldSourceFiles = program.getSourceFiles(); + for (let oldSourceFile of oldSourceFiles) { + let fileName = oldSourceFile.fileName; if (!newProgram.getSourceFile(fileName) || changesInCompilationSettingsAffectSyntax) { documentRegistry.releaseDocument(fileName, oldSettings); } @@ -2269,7 +2268,7 @@ module ts { // The program is asking for this file, check first if the host can locate it. // If the host can not locate the file, then it does not exist. return undefined // to the program to allow reporting of errors for missing files. - var hostFileInformation = hostCache.getOrCreateEntry(fileName); + let hostFileInformation = hostCache.getOrCreateEntry(fileName); if (!hostFileInformation) { return undefined; } @@ -2279,7 +2278,7 @@ module ts { // can not be reused. we have to dump all syntax trees and create new ones. if (!changesInCompilationSettingsAffectSyntax) { // Check if the old program had this file already - var oldSourceFile = program && program.getSourceFile(fileName); + let oldSourceFile = program && program.getSourceFile(fileName); if (oldSourceFile) { // We already had a source file for this file name. Go to the registry to // ensure that we get the right up to date version of it. We need this to @@ -2323,14 +2322,14 @@ module ts { } // If number of files in the program do not match, it is not up-to-date - var rootFileNames = hostCache.getRootFileNames(); + let rootFileNames = hostCache.getRootFileNames(); if (program.getSourceFiles().length !== rootFileNames.length) { return false; } // If any file is not up-to-date, then the whole program is not up-to-date - for (var i = 0, n = rootFileNames.length; i < n; i++) { - if (!sourceFileUpToDate(program.getSourceFile(rootFileNames[i]))) { + for (let fileName of rootFileNames) { + if (!sourceFileUpToDate(program.getSourceFile(fileName))) { return false; } } @@ -2378,18 +2377,18 @@ module ts { function getSemanticDiagnostics(fileName: string) { synchronizeHostData(); - var targetSourceFile = getValidSourceFile(fileName); + let targetSourceFile = getValidSourceFile(fileName); // Only perform the action per file regardless of '-out' flag as LanguageServiceHost is expected to call this function per file. // Therefore only get diagnostics for given file. - var semanticDiagnostics = program.getSemanticDiagnostics(targetSourceFile); + let semanticDiagnostics = program.getSemanticDiagnostics(targetSourceFile); if (!program.getCompilerOptions().declaration) { return semanticDiagnostics; } // If '-d' is enabled, check for emitter error. One example of emitter error is export class implements non-export interface - var declarationDiagnostics = program.getDeclarationDiagnostics(targetSourceFile); + let declarationDiagnostics = program.getDeclarationDiagnostics(targetSourceFile); return semanticDiagnostics.concat(declarationDiagnostics); } @@ -2400,13 +2399,13 @@ module ts { /// Completion function getValidCompletionEntryDisplayName(symbol: Symbol, target: ScriptTarget): string { - var displayName = symbol.getName(); + let displayName = symbol.getName(); if (displayName && displayName.length > 0) { - var firstCharCode = displayName.charCodeAt(0); + let firstCharCode = displayName.charCodeAt(0); // First check of the displayName is not external module; if it is an external module, it is not valid entry if ((symbol.flags & SymbolFlags.Namespace) && (firstCharCode === CharacterCodes.singleQuote || firstCharCode === CharacterCodes.doubleQuote)) { // If the symbol is external module, don't show it in the completion list - // (i.e declare module "http" { var x; } | // <= request completion here, "http" should not be there) + // (i.e declare module "http" { let x; } | // <= request completion here, "http" should not be there) return undefined; } @@ -2417,8 +2416,8 @@ module ts { displayName = displayName.substring(1, displayName.length - 1); } - var isValid = isIdentifierStart(displayName.charCodeAt(0), target); - for (var i = 1, n = displayName.length; isValid && i < n; i++) { + let isValid = isIdentifierStart(displayName.charCodeAt(0), target); + for (let i = 1, n = displayName.length; isValid && i < n; i++) { isValid = isIdentifierPart(displayName.charCodeAt(i), target); } @@ -2435,7 +2434,7 @@ module ts { // Try to get a valid display name for this symbol, if we could not find one, then ignore it. // We would like to only show things that can be added after a dot, so for instance numeric properties can // not be accessed with a dot (a.1 <- invalid) - var displayName = getValidCompletionEntryDisplayName(symbol, program.getCompilerOptions().target); + let displayName = getValidCompletionEntryDisplayName(symbol, program.getCompilerOptions().target); if (!displayName) { return undefined; } @@ -2454,16 +2453,16 @@ module ts { function getCompletionsAtPosition(fileName: string, position: number) { synchronizeHostData(); - var syntacticStart = new Date().getTime(); - var sourceFile = getValidSourceFile(fileName); + let syntacticStart = new Date().getTime(); + let sourceFile = getValidSourceFile(fileName); - var start = new Date().getTime(); - var currentToken = getTokenAtPosition(sourceFile, position); + let start = new Date().getTime(); + let currentToken = getTokenAtPosition(sourceFile, position); log("getCompletionsAtPosition: Get current token: " + (new Date().getTime() - start)); - var start = new Date().getTime(); + start = new Date().getTime(); // Completion not allowed inside comments, bail out if this is the case - var insideComment = isInsideComment(sourceFile, currentToken, position); + let insideComment = isInsideComment(sourceFile, currentToken, position); log("getCompletionsAtPosition: Is inside comment: " + (new Date().getTime() - start)); if (insideComment) { @@ -2473,14 +2472,14 @@ module ts { // The decision to provide completion depends on the previous token, so find it // Note: previousToken can be undefined if we are the beginning of the file - var start = new Date().getTime(); - var previousToken = findPrecedingToken(position, sourceFile); + start = new Date().getTime(); + let previousToken = findPrecedingToken(position, sourceFile); log("getCompletionsAtPosition: Get previous token 1: " + (new Date().getTime() - start)); // The caret is at the end of an identifier; this is a partial identifier that we want to complete: e.g. a.toS| // Skip this partial identifier to the previous token if (previousToken && position <= previousToken.end && previousToken.kind === SyntaxKind.Identifier) { - var start = new Date().getTime(); + let start = new Date().getTime(); previousToken = findPrecedingToken(previousToken.pos, sourceFile); log("getCompletionsAtPosition: Get previous token 2: " + (new Date().getTime() - start)); } @@ -2493,8 +2492,8 @@ module ts { // Find the node where completion is requested on, in the case of a completion after a dot, it is the member access expression // other wise, it is a request for all visible symbols in the scope, and the node is the current location - var node: Node; - var isRightOfDot: boolean; + let node: Node; + let isRightOfDot: boolean; if (previousToken && previousToken.kind === SyntaxKind.DotToken && previousToken.parent.kind === SyntaxKind.PropertyAccessExpression) { node = (previousToken.parent).expression; isRightOfDot = true; @@ -2518,17 +2517,20 @@ module ts { }; log("getCompletionsAtPosition: Syntactic work: " + (new Date().getTime() - syntacticStart)); - var location = getTouchingPropertyName(sourceFile, position); + let location = getTouchingPropertyName(sourceFile, position); // Populate the completion list - var semanticStart = new Date().getTime(); + let semanticStart = new Date().getTime(); + let isMemberCompletion: boolean; + let isNewIdentifierLocation: boolean; + if (isRightOfDot) { // Right of dot member completion list - var symbols: Symbol[] = []; - var isMemberCompletion = true; - var isNewIdentifierLocation = false; + let symbols: Symbol[] = []; + isMemberCompletion = true; + isNewIdentifierLocation = false; if (node.kind === SyntaxKind.Identifier || node.kind === SyntaxKind.QualifiedName || node.kind === SyntaxKind.PropertyAccessExpression) { - var symbol = typeInfoResolver.getSymbolAtLocation(node); + let symbol = typeInfoResolver.getSymbolAtLocation(node); // This is an alias, follow what it aliases if (symbol && symbol.flags & SymbolFlags.Alias) { @@ -2545,7 +2547,7 @@ module ts { } } - var type = typeInfoResolver.getTypeAtLocation(node); + let type = typeInfoResolver.getTypeAtLocation(node); if (type) { // Filter private properties forEach(type.getApparentProperties(), symbol => { @@ -2558,21 +2560,21 @@ module ts { getCompletionEntriesFromSymbols(symbols, activeCompletionSession); } else { - var containingObjectLiteral = getContainingObjectLiteralApplicableForCompletion(previousToken); + let containingObjectLiteral = getContainingObjectLiteralApplicableForCompletion(previousToken); if (containingObjectLiteral) { // Object literal expression, look up possible property names from contextual type isMemberCompletion = true; isNewIdentifierLocation = true; - var contextualType = typeInfoResolver.getContextualType(containingObjectLiteral); + let contextualType = typeInfoResolver.getContextualType(containingObjectLiteral); if (!contextualType) { return undefined; } - var contextualTypeMembers = typeInfoResolver.getPropertiesOfType(contextualType); + let contextualTypeMembers = typeInfoResolver.getPropertiesOfType(contextualType); if (contextualTypeMembers && contextualTypeMembers.length > 0) { // Add filtered items to the completion list - var filteredMembers = filterContextualMembersList(contextualTypeMembers, containingObjectLiteral.properties); + let filteredMembers = filterContextualMembersList(contextualTypeMembers, containingObjectLiteral.properties); getCompletionEntriesFromSymbols(filteredMembers, activeCompletionSession); } } @@ -2582,10 +2584,10 @@ module ts { isMemberCompletion = true; isNewIdentifierLocation = true; if (showCompletionsInImportsClause(previousToken)) { - var importDeclaration = getAncestor(previousToken, SyntaxKind.ImportDeclaration); + let importDeclaration = getAncestor(previousToken, SyntaxKind.ImportDeclaration); Debug.assert(importDeclaration !== undefined); - var exports = typeInfoResolver.getExportsOfExternalModule(importDeclaration); - var filteredExports = filterModuleExports(exports, importDeclaration); + let exports = typeInfoResolver.getExportsOfExternalModule(importDeclaration); + let filteredExports = filterModuleExports(exports, importDeclaration); getCompletionEntriesFromSymbols(filteredExports, activeCompletionSession); } } @@ -2595,8 +2597,8 @@ module ts { isNewIdentifierLocation = isNewIdentifierDefinitionLocation(previousToken); /// TODO filter meaning based on the current context - var symbolMeanings = SymbolFlags.Type | SymbolFlags.Value | SymbolFlags.Namespace | SymbolFlags.Alias; - var symbols = typeInfoResolver.getSymbolsInScope(node, symbolMeanings); + let symbolMeanings = SymbolFlags.Type | SymbolFlags.Value | SymbolFlags.Namespace | SymbolFlags.Alias; + let symbols = typeInfoResolver.getSymbolsInScope(node, symbolMeanings); getCompletionEntriesFromSymbols(symbols, activeCompletionSession); } @@ -2616,11 +2618,11 @@ module ts { }; function getCompletionEntriesFromSymbols(symbols: Symbol[], session: CompletionSession): void { - var start = new Date().getTime(); + let start = new Date().getTime(); forEach(symbols, symbol => { - var entry = createCompletionEntry(symbol, session.typeChecker, location); + let entry = createCompletionEntry(symbol, session.typeChecker, location); if (entry) { - var id = escapeIdentifier(entry.name); + let id = escapeIdentifier(entry.name); if (!lookUp(session.symbols, id)) { session.entries.push(entry); session.symbols[id] = symbol; @@ -2631,8 +2633,8 @@ module ts { } function isCompletionListBlocker(previousToken: Node): boolean { - var start = new Date().getTime(); - var result = isInStringOrRegularExpressionOrTemplateLiteral(previousToken) || + let start = new Date().getTime(); + let result = isInStringOrRegularExpressionOrTemplateLiteral(previousToken) || isIdentifierDefinitionLocation(previousToken) || isRightOfIllegalDot(previousToken); log("getCompletionsAtPosition: isCompletionListBlocker: " + (new Date().getTime() - start)); @@ -2653,21 +2655,21 @@ module ts { function isNewIdentifierDefinitionLocation(previousToken: Node): boolean { if (previousToken) { - var containingNodeKind = previousToken.parent.kind; + let containingNodeKind = previousToken.parent.kind; switch (previousToken.kind) { case SyntaxKind.CommaToken: return containingNodeKind === SyntaxKind.CallExpression // func( a, | || containingNodeKind === SyntaxKind.Constructor // constructor( a, | public, protected, private keywords are allowed here, so show completion || containingNodeKind === SyntaxKind.NewExpression // new C(a, | || containingNodeKind === SyntaxKind.ArrayLiteralExpression // [a, | - || containingNodeKind === SyntaxKind.BinaryExpression; // var x = (a, | + || containingNodeKind === SyntaxKind.BinaryExpression; // let x = (a, | case SyntaxKind.OpenParenToken: return containingNodeKind === SyntaxKind.CallExpression // func( | || containingNodeKind === SyntaxKind.Constructor // constructor( | || containingNodeKind === SyntaxKind.NewExpression // new C(a| - || containingNodeKind === SyntaxKind.ParenthesizedExpression; // var x = (a| + || containingNodeKind === SyntaxKind.ParenthesizedExpression; // let x = (a| case SyntaxKind.OpenBracketToken: return containingNodeKind === SyntaxKind.ArrayLiteralExpression; // [ | @@ -2682,7 +2684,7 @@ module ts { return containingNodeKind === SyntaxKind.ClassDeclaration; // class A{ | case SyntaxKind.EqualsToken: - return containingNodeKind === SyntaxKind.VariableDeclaration // var x = a| + return containingNodeKind === SyntaxKind.VariableDeclaration // let x = a| || containingNodeKind === SyntaxKind.BinaryExpression; // x = a| case SyntaxKind.TemplateHead: @@ -2715,8 +2717,8 @@ module ts { || isTemplateLiteralKind(previousToken.kind)) { // The position has to be either: 1. entirely within the token text, or // 2. at the end position of an unterminated token. - var start = previousToken.getStart(); - var end = previousToken.getEnd(); + let start = previousToken.getStart(); + let end = previousToken.getEnd(); if (start < position && position < end) { return true; @@ -2733,11 +2735,11 @@ module ts { // The locations in an object literal expression that are applicable for completion are property name definition locations. if (previousToken) { - var parent = previousToken.parent; + let parent = previousToken.parent; switch (previousToken.kind) { - case SyntaxKind.OpenBraceToken: // var x = { | - case SyntaxKind.CommaToken: // var x = { a: 0, | + case SyntaxKind.OpenBraceToken: // let x = { | + case SyntaxKind.CommaToken: // let x = { a: 0, | if (parent && parent.kind === SyntaxKind.ObjectLiteralExpression) { return parent; } @@ -2767,7 +2769,7 @@ module ts { function isIdentifierDefinitionLocation(previousToken: Node): boolean { if (previousToken) { - var containingNodeKind = previousToken.parent.kind; + let containingNodeKind = previousToken.parent.kind; switch (previousToken.kind) { case SyntaxKind.CommaToken: return containingNodeKind === SyntaxKind.VariableDeclaration || @@ -2794,13 +2796,13 @@ module ts { case SyntaxKind.OpenBraceToken: return containingNodeKind === SyntaxKind.EnumDeclaration || // enum a { | containingNodeKind === SyntaxKind.InterfaceDeclaration || // interface a { | - containingNodeKind === SyntaxKind.TypeLiteral || // var x : { | + containingNodeKind === SyntaxKind.TypeLiteral || // let x : { | containingNodeKind === SyntaxKind.ObjectBindingPattern; // function func({ x| case SyntaxKind.SemicolonToken: return containingNodeKind === SyntaxKind.PropertySignature && (previousToken.parent.parent.kind === SyntaxKind.InterfaceDeclaration || // interface a { f; | - previousToken.parent.parent.kind === SyntaxKind.TypeLiteral); // var x : { a; | + previousToken.parent.parent.kind === SyntaxKind.TypeLiteral); // let x : { a; | case SyntaxKind.LessThanToken: return containingNodeKind === SyntaxKind.ClassDeclaration || // class A< | @@ -2855,7 +2857,7 @@ module ts { function isRightOfIllegalDot(previousToken: Node): boolean { if (previousToken && previousToken.kind === SyntaxKind.NumericLiteral) { - var text = previousToken.getFullText(); + let text = previousToken.getFullText(); return text.charAt(text.length - 1) === "."; } @@ -2863,7 +2865,7 @@ module ts { } function filterModuleExports(exports: Symbol[], importDeclaration: ImportDeclaration): Symbol[] { - var exisingImports: Map = {}; + let exisingImports: Map = {}; if (!importDeclaration.importClause) { return exports; @@ -2873,7 +2875,7 @@ module ts { importDeclaration.importClause.namedBindings.kind === SyntaxKind.NamedImports) { forEach((importDeclaration.importClause.namedBindings).elements, el => { - var name = el.propertyName || el.name; + let name = el.propertyName || el.name; exisingImports[name.text] = true; }); } @@ -2889,7 +2891,7 @@ module ts { return contextualMemberSymbols; } - var existingMemberNames: Map = {}; + let existingMemberNames: Map = {}; forEach(existingMembers, m => { if (m.kind !== SyntaxKind.PropertyAssignment && m.kind !== SyntaxKind.ShorthandPropertyAssignment) { // Ignore omitted expressions for missing members in the object literal @@ -2905,7 +2907,7 @@ module ts { existingMemberNames[(m.name).text] = true; }); - var filteredMembers: Symbol[] = []; + let filteredMembers: Symbol[] = []; forEach(contextualMemberSymbols, s => { if (!existingMemberNames[s.name]) { filteredMembers.push(s); @@ -2919,25 +2921,25 @@ module ts { function getCompletionEntryDetails(fileName: string, position: number, entryName: string): CompletionEntryDetails { // Note: No need to call synchronizeHostData, as we have captured all the data we need // in the getCompletionsAtPosition earlier - var sourceFile = getValidSourceFile(fileName); + let sourceFile = getValidSourceFile(fileName); - var session = activeCompletionSession; + let session = activeCompletionSession; // Ensure that the current active completion session is still valid for this request if (!session || session.fileName !== fileName || session.position !== position) { return undefined; } - var symbol = lookUp(activeCompletionSession.symbols, escapeIdentifier(entryName)); + let symbol = lookUp(activeCompletionSession.symbols, escapeIdentifier(entryName)); if (symbol) { - var location = getTouchingPropertyName(sourceFile, position); - var completionEntry = createCompletionEntry(symbol, session.typeChecker, location); + let location = getTouchingPropertyName(sourceFile, position); + let completionEntry = createCompletionEntry(symbol, session.typeChecker, location); // TODO(drosen): Right now we just permit *all* semantic meanings when calling 'getSymbolKind' // which is permissible given that it is backwards compatible; but really we should consider // passing the meaning for the node so that we don't report that a suggestion for a value is an interface. // We COULD also just do what 'getSymbolModifiers' does, which is to use the first declaration. Debug.assert(session.typeChecker.getTypeOfSymbolAtLocation(symbol, location) !== undefined, "Could not find type for symbol"); - var displayPartsDocumentationsAndSymbolKind = getSymbolDisplayPartsDocumentationAndSymbolKind(symbol, getValidSourceFile(fileName), location, session.typeChecker, location, SemanticMeaning.All); + let displayPartsDocumentationsAndSymbolKind = getSymbolDisplayPartsDocumentationAndSymbolKind(symbol, getValidSourceFile(fileName), location, session.typeChecker, location, SemanticMeaning.All); return { name: entryName, kind: displayPartsDocumentationsAndSymbolKind.symbolKind, @@ -2960,7 +2962,7 @@ module ts { // TODO(drosen): use contextual SemanticMeaning. function getSymbolKind(symbol: Symbol, typeResolver: TypeChecker, location: Node): string { - var flags = symbol.getFlags(); + let flags = symbol.getFlags(); if (flags & SymbolFlags.Class) return ScriptElementKind.classElement; if (flags & SymbolFlags.Enum) return ScriptElementKind.enumElement; @@ -2968,7 +2970,7 @@ module ts { if (flags & SymbolFlags.Interface) return ScriptElementKind.interfaceElement; if (flags & SymbolFlags.TypeParameter) return ScriptElementKind.typeParameterElement; - var result = getSymbolKindOfConstructorPropertyMethodAccessorFunctionOrVar(symbol, flags, typeResolver, location); + let result = getSymbolKindOfConstructorPropertyMethodAccessorFunctionOrVar(symbol, flags, typeResolver, location); if (result === ScriptElementKind.unknown) { if (flags & SymbolFlags.TypeParameter) return ScriptElementKind.typeParameterElement; if (flags & SymbolFlags.EnumMember) return ScriptElementKind.variableElement; @@ -3007,8 +3009,8 @@ module ts { if (flags & SymbolFlags.Property) { if (flags & SymbolFlags.UnionProperty) { // If union property is result of union of non method (property/accessors/variables), it is labeled as property - var unionPropertyKind = forEach(typeInfoResolver.getRootSymbols(symbol), rootSymbol => { - var rootSymbolFlags = rootSymbol.getFlags(); + let unionPropertyKind = forEach(typeInfoResolver.getRootSymbols(symbol), rootSymbol => { + let rootSymbolFlags = rootSymbol.getFlags(); if (rootSymbolFlags & (SymbolFlags.PropertyOrAccessor | SymbolFlags.Variable)) { return ScriptElementKind.memberVariableElement; } @@ -3017,7 +3019,7 @@ module ts { if (!unionPropertyKind) { // If this was union of all methods, //make sure it has call signatures before we can label it as method - var typeOfUnionProperty = typeInfoResolver.getTypeOfSymbolAtLocation(symbol, location); + let typeOfUnionProperty = typeInfoResolver.getTypeOfSymbolAtLocation(symbol, location); if (typeOfUnionProperty.getCallSignatures().length) { return ScriptElementKind.memberFunctionElement; } @@ -3032,7 +3034,7 @@ module ts { } function getTypeKind(type: Type): string { - var flags = type.getFlags(); + let flags = type.getFlags(); if (flags & TypeFlags.Enum) return ScriptElementKind.enumElement; if (flags & TypeFlags.Class) return ScriptElementKind.classElement; @@ -3054,11 +3056,12 @@ module ts { typeResolver: TypeChecker, location: Node, // TODO(drosen): Currently completion entry details passes the SemanticMeaning.All instead of using semanticMeaning of location semanticMeaning = getMeaningFromLocation(location)) { - var displayParts: SymbolDisplayPart[] = []; - var documentation: SymbolDisplayPart[]; - var symbolFlags = symbol.flags; - var symbolKind = getSymbolKindOfConstructorPropertyMethodAccessorFunctionOrVar(symbol, symbolFlags, typeResolver, location); - var hasAddedSymbolInfo: boolean; + let displayParts: SymbolDisplayPart[] = []; + let documentation: SymbolDisplayPart[]; + let symbolFlags = symbol.flags; + let symbolKind = getSymbolKindOfConstructorPropertyMethodAccessorFunctionOrVar(symbol, symbolFlags, typeResolver, location); + let hasAddedSymbolInfo: boolean; + let type: Type; // Class at constructor site need to be shown as constructor apart from property,method, vars if (symbolKind !== ScriptElementKind.unknown || symbolFlags & SymbolFlags.Class || symbolFlags & SymbolFlags.Alias) { // If it is accessor they are allowed only if location is at name of the accessor @@ -3066,10 +3069,11 @@ module ts { symbolKind = ScriptElementKind.memberVariableElement; } - var type = typeResolver.getTypeOfSymbolAtLocation(symbol, location); + let signature: Signature; + type = typeResolver.getTypeOfSymbolAtLocation(symbol, location); if (type) { if (location.parent && location.parent.kind === SyntaxKind.PropertyAccessExpression) { - var right = (location.parent).name; + let right = (location.parent).name; // Either the location is on the right of a property access, or on the left and the right is missing if (right === location || (right && right.getFullWidth() === 0)) { location = location.parent; @@ -3077,7 +3081,7 @@ module ts { } // try get the call/construct signature from the type if it matches - var callExpression: CallExpression; + let callExpression: CallExpression; if (location.kind === SyntaxKind.CallExpression || location.kind === SyntaxKind.NewExpression) { callExpression = location; } @@ -3086,15 +3090,15 @@ module ts { } if (callExpression) { - var candidateSignatures: Signature[] = []; + let candidateSignatures: Signature[] = []; signature = typeResolver.getResolvedSignature(callExpression, candidateSignatures); if (!signature && candidateSignatures.length) { // Use the first candidate: signature = candidateSignatures[0]; } - var useConstructSignatures = callExpression.kind === SyntaxKind.NewExpression || callExpression.expression.kind === SyntaxKind.SuperKeyword; - var allSignatures = useConstructSignatures ? type.getConstructSignatures() : type.getCallSignatures(); + let useConstructSignatures = callExpression.kind === SyntaxKind.NewExpression || callExpression.expression.kind === SyntaxKind.SuperKeyword; + let allSignatures = useConstructSignatures ? type.getConstructSignatures() : type.getCallSignatures(); if (!contains(allSignatures, signature.target || signature)) { // Get the first signature if there @@ -3153,9 +3157,8 @@ module ts { else if ((isNameOfFunctionDeclaration(location) && !(symbol.flags & SymbolFlags.Accessor)) || // name of function declaration (location.kind === SyntaxKind.ConstructorKeyword && location.parent.kind === SyntaxKind.Constructor)) { // At constructor keyword of constructor declaration // get the signature from the declaration and write it - var signature: Signature; - var functionDeclaration = location.parent; - var allSignatures = functionDeclaration.kind === SyntaxKind.Constructor ? type.getConstructSignatures() : type.getCallSignatures(); + let functionDeclaration = location.parent; + let allSignatures = functionDeclaration.kind === SyntaxKind.Constructor ? type.getConstructSignatures() : type.getCallSignatures(); if (!typeResolver.isImplementationOfOverload(functionDeclaration)) { signature = typeResolver.getSignatureFromDeclaration(functionDeclaration); } @@ -3235,8 +3238,8 @@ module ts { } else { // Method/function type parameter - var signatureDeclaration = getDeclarationOfKind(symbol, SyntaxKind.TypeParameter).parent; - var signature = typeResolver.getSignatureFromDeclaration(signatureDeclaration); + let signatureDeclaration = getDeclarationOfKind(symbol, SyntaxKind.TypeParameter).parent; + let signature = typeResolver.getSignatureFromDeclaration(signatureDeclaration); if (signatureDeclaration.kind === SyntaxKind.ConstructSignature) { displayParts.push(keywordPart(SyntaxKind.NewKeyword)); displayParts.push(spacePart()); @@ -3249,9 +3252,9 @@ module ts { } if (symbolFlags & SymbolFlags.EnumMember) { addPrefixForAnyFunctionOrVar(symbol, "enum member"); - var declaration = symbol.declarations[0]; + let declaration = symbol.declarations[0]; if (declaration.kind === SyntaxKind.EnumMember) { - var constantValue = typeResolver.getConstantValue(declaration); + let constantValue = typeResolver.getConstantValue(declaration); if (constantValue !== undefined) { displayParts.push(spacePart()); displayParts.push(operatorPart(SyntaxKind.EqualsToken)); @@ -3267,7 +3270,7 @@ module ts { addFullSymbolName(symbol); ts.forEach(symbol.declarations, declaration => { if (declaration.kind === SyntaxKind.ImportEqualsDeclaration) { - var importEqualsDeclaration = declaration; + let importEqualsDeclaration = declaration; if (isExternalModuleImportEqualsDeclaration(importEqualsDeclaration)) { displayParts.push(spacePart()); displayParts.push(operatorPart(SyntaxKind.EqualsToken)); @@ -3278,7 +3281,7 @@ module ts { displayParts.push(punctuationPart(SyntaxKind.CloseParenToken)); } else { - var internalAliasSymbol = typeResolver.getSymbolAtLocation(importEqualsDeclaration.moduleReference); + let internalAliasSymbol = typeResolver.getSymbolAtLocation(importEqualsDeclaration.moduleReference); if (internalAliasSymbol) { displayParts.push(spacePart()); displayParts.push(operatorPart(SyntaxKind.EqualsToken)); @@ -3302,7 +3305,7 @@ module ts { displayParts.push(spacePart()); // If the type is type parameter, format it specially if (type.symbol && type.symbol.flags & SymbolFlags.TypeParameter) { - var typeParameterParts = mapToDisplayParts(writer => { + let typeParameterParts = mapToDisplayParts(writer => { typeResolver.getSymbolDisplayBuilder().buildTypeParameterDisplay(type, writer, enclosingDeclaration); }); displayParts.push.apply(displayParts, typeParameterParts); @@ -3317,7 +3320,7 @@ module ts { symbolFlags & SymbolFlags.Signature || symbolFlags & SymbolFlags.Accessor || symbolKind === ScriptElementKind.memberFunctionElement) { - var allSignatures = type.getCallSignatures(); + let allSignatures = type.getCallSignatures(); addSignatureDisplayParts(allSignatures[0], allSignatures); } } @@ -3340,7 +3343,7 @@ module ts { } function addFullSymbolName(symbol: Symbol, enclosingDeclaration?: Node) { - var fullSymbolDisplayParts = symbolToDisplayParts(typeResolver, symbol, enclosingDeclaration || sourceFile, /*meaning*/ undefined, + let fullSymbolDisplayParts = symbolToDisplayParts(typeResolver, symbol, enclosingDeclaration || sourceFile, /*meaning*/ undefined, SymbolFormatFlags.WriteTypeParametersOrArguments | SymbolFormatFlags.UseOnlyExternalAliasing); displayParts.push.apply(displayParts, fullSymbolDisplayParts); } @@ -3371,7 +3374,7 @@ module ts { } function writeTypeParametersOfSymbol(symbol: Symbol, enclosingDeclaration: Node) { - var typeParameterParts = mapToDisplayParts(writer => { + let typeParameterParts = mapToDisplayParts(writer => { typeResolver.getSymbolDisplayBuilder().buildTypeParameterDisplayFromSymbol(symbol, writer, enclosingDeclaration); }); displayParts.push.apply(displayParts, typeParameterParts); @@ -3381,13 +3384,13 @@ module ts { function getQuickInfoAtPosition(fileName: string, position: number): QuickInfo { synchronizeHostData(); - var sourceFile = getValidSourceFile(fileName); - var node = getTouchingPropertyName(sourceFile, position); + let sourceFile = getValidSourceFile(fileName); + let node = getTouchingPropertyName(sourceFile, position); if (!node) { return undefined; } - var symbol = typeInfoResolver.getSymbolAtLocation(node); + let symbol = typeInfoResolver.getSymbolAtLocation(node); if (!symbol) { // Try getting just type at this position and show switch (node.kind) { @@ -3397,7 +3400,7 @@ module ts { case SyntaxKind.ThisKeyword: case SyntaxKind.SuperKeyword: // For the identifiers/this/super etc get the type at position - var type = typeInfoResolver.getTypeAtLocation(node); + let type = typeInfoResolver.getTypeAtLocation(node); if (type) { return { kind: ScriptElementKind.unknown, @@ -3412,7 +3415,7 @@ module ts { return undefined; } - var displayPartsDocumentationsAndKind = getSymbolDisplayPartsDocumentationAndSymbolKind(symbol, sourceFile, getContainerNode(node), typeInfoResolver, node); + let displayPartsDocumentationsAndKind = getSymbolDisplayPartsDocumentationAndSymbolKind(symbol, sourceFile, getContainerNode(node), typeInfoResolver, node); return { kind: displayPartsDocumentationsAndKind.symbolKind, kindModifiers: getSymbolModifiers(symbol), @@ -3426,24 +3429,24 @@ module ts { function getDefinitionAtPosition(fileName: string, position: number): DefinitionInfo[] { synchronizeHostData(); - var sourceFile = getValidSourceFile(fileName); + let sourceFile = getValidSourceFile(fileName); - var node = getTouchingPropertyName(sourceFile, position); + let node = getTouchingPropertyName(sourceFile, position); if (!node) { return undefined; } // Labels if (isJumpStatementTarget(node)) { - var labelName = (node).text; - var label = getTargetLabel((node.parent), (node).text); + let labelName = (node).text; + let label = getTargetLabel((node.parent), (node).text); return label ? [getDefinitionInfo(label, ScriptElementKind.label, labelName, /*containerName*/ undefined)] : undefined; } /// Triple slash reference comments - var comment = forEach(sourceFile.referencedFiles, r => (r.pos <= position && position < r.end) ? r : undefined); + let comment = forEach(sourceFile.referencedFiles, r => (r.pos <= position && position < r.end) ? r : undefined); if (comment) { - var referenceFile = tryResolveScriptReference(program, sourceFile, comment); + let referenceFile = tryResolveScriptReference(program, sourceFile, comment); if (referenceFile) { return [{ fileName: referenceFile.fileName, @@ -3457,7 +3460,7 @@ module ts { return undefined; } - var symbol = typeInfoResolver.getSymbolAtLocation(node); + let symbol = typeInfoResolver.getSymbolAtLocation(node); // Could not find a symbol e.g. node is string or number keyword, // or the symbol was an internal symbol and does not have a declaration e.g. undefined symbol @@ -3470,13 +3473,13 @@ module ts { // import {A, B} from "mod"; // to jump to the implementation directelly. if (symbol.flags & SymbolFlags.Alias) { - var declaration = symbol.declarations[0]; + let declaration = symbol.declarations[0]; if (node.kind === SyntaxKind.Identifier && node.parent === declaration) { symbol = typeInfoResolver.getAliasedSymbol(symbol); } } - var result: DefinitionInfo[] = []; + let result: DefinitionInfo[] = []; // Because name in short-hand property assignment has two different meanings: property name and property value, // using go-to-definition at such position should go to the variable declaration of the property value rather than @@ -3484,22 +3487,22 @@ module ts { // is performed at the location of property access, we would like to go to definition of the property in the short-hand // assignment. This case and others are handled by the following code. if (node.parent.kind === SyntaxKind.ShorthandPropertyAssignment) { - var shorthandSymbol = typeInfoResolver.getShorthandAssignmentValueSymbol(symbol.valueDeclaration); - var shorthandDeclarations = shorthandSymbol.getDeclarations(); - var shorthandSymbolKind = getSymbolKind(shorthandSymbol, typeInfoResolver, node); - var shorthandSymbolName = typeInfoResolver.symbolToString(shorthandSymbol); - var shorthandContainerName = typeInfoResolver.symbolToString(symbol.parent, node); + let shorthandSymbol = typeInfoResolver.getShorthandAssignmentValueSymbol(symbol.valueDeclaration); + let shorthandDeclarations = shorthandSymbol.getDeclarations(); + let shorthandSymbolKind = getSymbolKind(shorthandSymbol, typeInfoResolver, node); + let shorthandSymbolName = typeInfoResolver.symbolToString(shorthandSymbol); + let shorthandContainerName = typeInfoResolver.symbolToString(symbol.parent, node); forEach(shorthandDeclarations, declaration => { result.push(getDefinitionInfo(declaration, shorthandSymbolKind, shorthandSymbolName, shorthandContainerName)); }); return result } - var declarations = symbol.getDeclarations(); - var symbolName = typeInfoResolver.symbolToString(symbol); // Do not get scoped name, just the name of the symbol - var symbolKind = getSymbolKind(symbol, typeInfoResolver, node); - var containerSymbol = symbol.parent; - var containerName = containerSymbol ? typeInfoResolver.symbolToString(containerSymbol, node) : ""; + let declarations = symbol.getDeclarations(); + let symbolName = typeInfoResolver.symbolToString(symbol); // Do not get scoped name, just the name of the symbol + let symbolKind = getSymbolKind(symbol, typeInfoResolver, node); + let containerSymbol = symbol.parent; + let containerName = containerSymbol ? typeInfoResolver.symbolToString(containerSymbol, node) : ""; if (!tryAddConstructSignature(symbol, node, symbolKind, symbolName, containerName, result) && !tryAddCallSignature(symbol, node, symbolKind, symbolName, containerName, result)) { @@ -3523,8 +3526,8 @@ module ts { } function tryAddSignature(signatureDeclarations: Declaration[], selectConstructors: boolean, symbolKind: string, symbolName: string, containerName: string, result: DefinitionInfo[]) { - var declarations: Declaration[] = []; - var definition: Declaration; + let declarations: Declaration[] = []; + let definition: Declaration; forEach(signatureDeclarations, d => { if ((selectConstructors && d.kind === SyntaxKind.Constructor) || @@ -3551,7 +3554,7 @@ module ts { // and in either case the symbol has a construct signature definition, i.e. class if (isNewExpressionTarget(location) || location.kind === SyntaxKind.ConstructorKeyword) { if (symbol.flags & SymbolFlags.Class) { - var classDeclaration = symbol.getDeclarations()[0]; + let classDeclaration = symbol.getDeclarations()[0]; Debug.assert(classDeclaration && classDeclaration.kind === SyntaxKind.ClassDeclaration); return tryAddSignature(classDeclaration.members, /*selectConstructors*/ true, symbolKind, symbolName, containerName, result); @@ -3572,9 +3575,9 @@ module ts { function getOccurrencesAtPosition(fileName: string, position: number): ReferenceEntry[] { synchronizeHostData(); - var sourceFile = getValidSourceFile(fileName); + let sourceFile = getValidSourceFile(fileName); - var node = getTouchingWord(sourceFile, position); + let node = getTouchingWord(sourceFile, position); if (!node) { return undefined; } @@ -3662,7 +3665,7 @@ module ts { return undefined; function getIfElseOccurrences(ifStatement: IfStatement): ReferenceEntry[] { - var keywords: Node[] = []; + let keywords: Node[] = []; // Traverse upwards through all parent if-statements linked by their else-branches. while (hasKind(ifStatement.parent, SyntaxKind.IfStatement) && (ifStatement.parent).elseStatement === ifStatement) { @@ -3671,11 +3674,11 @@ module ts { // Now traverse back down through the else branches, aggregating if/else keywords of if-statements. while (ifStatement) { - var children = ifStatement.getChildren(); + let children = ifStatement.getChildren(); pushKeywordIf(keywords, children[0], SyntaxKind.IfKeyword); // Generally the 'else' keyword is second-to-last, so we traverse backwards. - for (var i = children.length - 1; i >= 0; i--) { + for (let i = children.length - 1; i >= 0; i--) { if (pushKeywordIf(keywords, children[i], SyntaxKind.ElseKeyword)) { break; } @@ -3688,19 +3691,19 @@ module ts { ifStatement = ifStatement.elseStatement; } - var result: ReferenceEntry[] = []; + let result: ReferenceEntry[] = []; // We'd like to highlight else/ifs together if they are only separated by whitespace // (i.e. the keywords are separated by no comments, no newlines). - for (var i = 0; i < keywords.length; i++) { + for (let i = 0; i < keywords.length; i++) { if (keywords[i].kind === SyntaxKind.ElseKeyword && i < keywords.length - 1) { - var elseKeyword = keywords[i]; - var ifKeyword = keywords[i + 1]; // this *should* always be an 'if' keyword. + let elseKeyword = keywords[i]; + let ifKeyword = keywords[i + 1]; // this *should* always be an 'if' keyword. - var shouldHighlightNextKeyword = true; + let shouldHighlightNextKeyword = true; // Avoid recalculating getStart() by iterating backwards. - for (var j = ifKeyword.getStart() - 1; j >= elseKeyword.end; j--) { + for (let j = ifKeyword.getStart() - 1; j >= elseKeyword.end; j--) { if (!isWhiteSpace(sourceFile.text.charCodeAt(j))) { shouldHighlightNextKeyword = false; break; @@ -3726,14 +3729,14 @@ module ts { } function getReturnOccurrences(returnStatement: ReturnStatement): ReferenceEntry[] { - var func = getContainingFunction(returnStatement); + let func = getContainingFunction(returnStatement); // If we didn't find a containing function with a block body, bail out. if (!(func && hasKind(func.body, SyntaxKind.Block))) { return undefined; } - var keywords: Node[] = [] + let keywords: Node[] = [] forEachReturnStatement(func.body, returnStatement => { pushKeywordIf(keywords, returnStatement.getFirstToken(), SyntaxKind.ReturnKeyword); }); @@ -3747,13 +3750,13 @@ module ts { } function getThrowOccurrences(throwStatement: ThrowStatement) { - var owner = getThrowStatementOwner(throwStatement); + let owner = getThrowStatementOwner(throwStatement); if (!owner) { return undefined; } - var keywords: Node[] = []; + let keywords: Node[] = []; forEach(aggregateOwnedThrowStatements(owner), throwStatement => { pushKeywordIf(keywords, throwStatement.getFirstToken(), SyntaxKind.ThrowKeyword); @@ -3775,7 +3778,7 @@ module ts { * into function boundaries and try-blocks with catch-clauses. */ function aggregateOwnedThrowStatements(node: Node): ThrowStatement[] { - var statementAccumulator: ThrowStatement[] = [] + let statementAccumulator: ThrowStatement[] = [] aggregate(node); return statementAccumulator; @@ -3784,7 +3787,7 @@ module ts { statementAccumulator.push(node); } else if (node.kind === SyntaxKind.TryStatement) { - var tryStatement = node; + let tryStatement = node; if (tryStatement.catchClause) { aggregate(tryStatement.catchClause); @@ -3812,10 +3815,10 @@ module ts { * function-block, or source file. */ function getThrowStatementOwner(throwStatement: ThrowStatement): Node { - var child: Node = throwStatement; + let child: Node = throwStatement; while (child.parent) { - var parent = child.parent; + let parent = child.parent; if (isFunctionBlock(parent) || parent.kind === SyntaxKind.SourceFile) { return parent; @@ -3824,7 +3827,7 @@ module ts { // A throw-statement is only owned by a try-statement if the try-statement has // a catch clause, and if the throw-statement occurs within the try block. if (parent.kind === SyntaxKind.TryStatement) { - var tryStatement = parent; + let tryStatement = parent; if (tryStatement.tryBlock === child && tryStatement.catchClause) { return child; @@ -3838,7 +3841,7 @@ module ts { } function getTryCatchFinallyOccurrences(tryStatement: TryStatement): ReferenceEntry[] { - var keywords: Node[] = []; + let keywords: Node[] = []; pushKeywordIf(keywords, tryStatement.getFirstToken(), SyntaxKind.TryKeyword); @@ -3847,7 +3850,7 @@ module ts { } if (tryStatement.finallyBlock) { - var finallyKeyword = findChildOfKind(tryStatement, SyntaxKind.FinallyKeyword, sourceFile); + let finallyKeyword = findChildOfKind(tryStatement, SyntaxKind.FinallyKeyword, sourceFile); pushKeywordIf(keywords, finallyKeyword, SyntaxKind.FinallyKeyword); } @@ -3855,14 +3858,14 @@ module ts { } function getLoopBreakContinueOccurrences(loopNode: IterationStatement): ReferenceEntry[] { - var keywords: Node[] = []; + let keywords: Node[] = []; if (pushKeywordIf(keywords, loopNode.getFirstToken(), SyntaxKind.ForKeyword, SyntaxKind.WhileKeyword, SyntaxKind.DoKeyword)) { // If we succeeded and got a do-while loop, then start looking for a 'while' keyword. if (loopNode.kind === SyntaxKind.DoStatement) { - var loopTokens = loopNode.getChildren(); + let loopTokens = loopNode.getChildren(); - for (var i = loopTokens.length - 1; i >= 0; i--) { + for (let i = loopTokens.length - 1; i >= 0; i--) { if (pushKeywordIf(keywords, loopTokens[i], SyntaxKind.WhileKeyword)) { break; } @@ -3870,7 +3873,7 @@ module ts { } } - var breaksAndContinues = aggregateAllBreakAndContinueStatements(loopNode.statement); + let breaksAndContinues = aggregateAllBreakAndContinueStatements(loopNode.statement); forEach(breaksAndContinues, statement => { if (ownsBreakOrContinueStatement(loopNode, statement)) { @@ -3882,7 +3885,7 @@ module ts { } function getSwitchCaseDefaultOccurrences(switchStatement: SwitchStatement) { - var keywords: Node[] = []; + let keywords: Node[] = []; pushKeywordIf(keywords, switchStatement.getFirstToken(), SyntaxKind.SwitchKeyword); @@ -3890,7 +3893,7 @@ module ts { forEach(switchStatement.caseBlock.clauses, clause => { pushKeywordIf(keywords, clause.getFirstToken(), SyntaxKind.CaseKeyword, SyntaxKind.DefaultKeyword); - var breaksAndContinues = aggregateAllBreakAndContinueStatements(clause); + let breaksAndContinues = aggregateAllBreakAndContinueStatements(clause); forEach(breaksAndContinues, statement => { if (ownsBreakOrContinueStatement(switchStatement, statement)) { @@ -3903,7 +3906,7 @@ module ts { } function getBreakOrContinueStatementOccurences(breakOrContinueStatement: BreakOrContinueStatement): ReferenceEntry[] { - var owner = getBreakOrContinueOwner(breakOrContinueStatement); + let owner = getBreakOrContinueOwner(breakOrContinueStatement); if (owner) { switch (owner.kind) { @@ -3923,7 +3926,7 @@ module ts { } function aggregateAllBreakAndContinueStatements(node: Node): BreakOrContinueStatement[] { - var statementAccumulator: BreakOrContinueStatement[] = [] + let statementAccumulator: BreakOrContinueStatement[] = [] aggregate(node); return statementAccumulator; @@ -3939,13 +3942,13 @@ module ts { } function ownsBreakOrContinueStatement(owner: Node, statement: BreakOrContinueStatement): boolean { - var actualOwner = getBreakOrContinueOwner(statement); + let actualOwner = getBreakOrContinueOwner(statement); return actualOwner && actualOwner === owner; } function getBreakOrContinueOwner(statement: BreakOrContinueStatement): Node { - for (var node = statement.parent; node; node = node.parent) { + for (let node = statement.parent; node; node = node.parent) { switch (node.kind) { case SyntaxKind.SwitchStatement: if (statement.kind === SyntaxKind.ContinueStatement) { @@ -3974,9 +3977,9 @@ module ts { } function getConstructorOccurrences(constructorDeclaration: ConstructorDeclaration): ReferenceEntry[] { - var declarations = constructorDeclaration.symbol.getDeclarations() + let declarations = constructorDeclaration.symbol.getDeclarations() - var keywords: Node[] = []; + let keywords: Node[] = []; forEach(declarations, declaration => { forEach(declaration.getChildren(), token => { @@ -3988,7 +3991,7 @@ module ts { } function getGetAndSetOccurrences(accessorDeclaration: AccessorDeclaration): ReferenceEntry[] { - var keywords: Node[] = []; + let keywords: Node[] = []; tryPushAccessorKeyword(accessorDeclaration.symbol, SyntaxKind.GetAccessor); tryPushAccessorKeyword(accessorDeclaration.symbol, SyntaxKind.SetAccessor); @@ -3996,7 +3999,7 @@ module ts { return map(keywords, getReferenceEntryFromNode); function tryPushAccessorKeyword(accessorSymbol: Symbol, accessorKind: SyntaxKind): void { - var accessor = getDeclarationOfKind(accessorSymbol, accessorKind); + let accessor = getDeclarationOfKind(accessorSymbol, accessorKind); if (accessor) { forEach(accessor.getChildren(), child => pushKeywordIf(keywords, child, SyntaxKind.GetKeyword, SyntaxKind.SetKeyword)); @@ -4005,7 +4008,7 @@ module ts { } function getModifierOccurrences(modifier: SyntaxKind, declaration: Node) { - var container = declaration.parent; + let container = declaration.parent; // Make sure we only highlight the keyword when it makes sense to do so. if (declaration.flags & NodeFlags.AccessibilityModifier) { @@ -4029,10 +4032,10 @@ module ts { return undefined; } - var keywords: Node[] = []; - var modifierFlag: NodeFlags = getFlagFromModifier(modifier); + let keywords: Node[] = []; + let modifierFlag: NodeFlags = getFlagFromModifier(modifier); - var nodes: Node[]; + let nodes: Node[]; switch (container.kind) { case SyntaxKind.ModuleBlock: case SyntaxKind.SourceFile: @@ -4048,7 +4051,7 @@ module ts { // If we're an accessibility modifier, we're in an instance member and should search // the constructor's parameter list for instance members as well. if (modifierFlag & NodeFlags.AccessibilityModifier) { - var constructor = forEach((container).members, member => { + let constructor = forEach((container).members, member => { return member.kind === SyntaxKind.Constructor && member; }); @@ -4120,9 +4123,9 @@ module ts { function findReferences(fileName: string, position: number, findInStrings: boolean, findInComments: boolean): ReferenceEntry[] { synchronizeHostData(); - var sourceFile = getValidSourceFile(fileName); + let sourceFile = getValidSourceFile(fileName); - var node = getTouchingPropertyName(sourceFile, position); + let node = getTouchingPropertyName(sourceFile, position); if (!node) { return undefined; } @@ -4144,7 +4147,7 @@ module ts { // Labels if (isLabelName(node)) { if (isJumpStatementTarget(node)) { - var labelDefinition = getTargetLabel((node.parent), (node).text); + let labelDefinition = getTargetLabel((node.parent), (node).text); // if we have a label definition, look within its statement for references, if not, then // the label is undefined, just return a set of one for the current node. return labelDefinition ? getLabelReferencesInNode(labelDefinition.parent, labelDefinition) : [getReferenceEntryFromNode(node)]; @@ -4163,7 +4166,7 @@ module ts { return getReferencesForSuperKeyword(node); } - var symbol = typeInfoResolver.getSymbolAtLocation(node); + let symbol = typeInfoResolver.getSymbolAtLocation(node); // Could not find a symbol e.g. unknown identifier if (!symbol) { @@ -4172,24 +4175,24 @@ module ts { return [getReferenceEntryFromNode(node)]; } - var declarations = symbol.declarations; + let declarations = symbol.declarations; // The symbol was an internal symbol and does not have a declaration e.g.undefined symbol if (!declarations || !declarations.length) { return undefined; } - var result: ReferenceEntry[]; + let result: ReferenceEntry[]; // Compute the meaning from the location and the symbol it references - var searchMeaning = getIntersectingMeaningFromDeclarations(getMeaningFromLocation(node), declarations); + let searchMeaning = getIntersectingMeaningFromDeclarations(getMeaningFromLocation(node), declarations); // Get the text to search for, we need to normalize it as external module names will have quote - var declaredName = getDeclaredName(symbol, node); + let declaredName = getDeclaredName(symbol, node); // Try to get the smallest valid scope that we can limit our search to; // otherwise we'll need to search globally (i.e. include each file). - var scope = getSymbolScope(symbol); + let scope = getSymbolScope(symbol); if (scope) { result = []; @@ -4202,11 +4205,11 @@ module ts { getReferencesInNode(sourceFiles[0], symbol, declaredName, node, searchMeaning, findInStrings, findInComments, result); } else { - var internedName = getInternedName(symbol, node, declarations) + let internedName = getInternedName(symbol, node, declarations) forEach(sourceFiles, sourceFile => { cancellationToken.throwIfCancellationRequested(); - var nameTable = getNameTable(sourceFile); + let nameTable = getNameTable(sourceFile); if (lookUp(nameTable, internedName)) { result = result || []; @@ -4232,15 +4235,16 @@ module ts { function getDeclaredName(symbol: Symbol, location: Node) { // Special case for function expressions, whose names are solely local to their bodies. - var functionExpression = forEach(symbol.declarations, d => d.kind === SyntaxKind.FunctionExpression ? d : undefined); + let functionExpression = forEach(symbol.declarations, d => d.kind === SyntaxKind.FunctionExpression ? d : undefined); // When a name gets interned into a SourceFile's 'identifiers' Map, // its name is escaped and stored in the same way its symbol name/identifier // name should be stored. Function expressions, however, are a special case, // because despite sometimes having a name, the binder unconditionally binds them // to a symbol with the name "__function". + let name: string; if (functionExpression && functionExpression.name) { - var name = functionExpression.name.text; + name = functionExpression.name.text; } // If this is an export or import specifier it could have been renamed using the as syntax. @@ -4250,7 +4254,7 @@ module ts { return location.getText(); } - var name = typeInfoResolver.symbolToString(symbol); + name = typeInfoResolver.symbolToString(symbol); return stripQuotes(name); } @@ -4264,25 +4268,22 @@ module ts { } // Special case for function expressions, whose names are solely local to their bodies. - var functionExpression = forEach(declarations, d => d.kind === SyntaxKind.FunctionExpression ? d : undefined); + let functionExpression = forEach(declarations, d => d.kind === SyntaxKind.FunctionExpression ? d : undefined); // When a name gets interned into a SourceFile's 'identifiers' Map, // its name is escaped and stored in the same way its symbol name/identifier // name should be stored. Function expressions, however, are a special case, // because despite sometimes having a name, the binder unconditionally binds them // to a symbol with the name "__function". - if (functionExpression && functionExpression.name) { - var name = functionExpression.name.text; - } - else { - var name = symbol.name; - } + let name = functionExpression && functionExpression.name + ? functionExpression.name.text + : symbol.name; return stripQuotes(name); } function stripQuotes(name: string) { - var length = name.length; + let length = name.length; if (length >= 2 && name.charCodeAt(0) === CharacterCodes.doubleQuote && name.charCodeAt(length - 1) === CharacterCodes.doubleQuote) { return name.substring(1, length - 1); }; @@ -4292,7 +4293,7 @@ module ts { function getSymbolScope(symbol: Symbol): Node { // If this is private property or method, the scope is the containing class if (symbol.flags & (SymbolFlags.Property | SymbolFlags.Method)) { - var privateDeclaration = forEach(symbol.getDeclarations(), d => (d.flags & NodeFlags.Private) ? d : undefined); + let privateDeclaration = forEach(symbol.getDeclarations(), d => (d.flags & NodeFlags.Private) ? d : undefined); if (privateDeclaration) { return getAncestor(privateDeclaration, SyntaxKind.ClassDeclaration); } @@ -4310,12 +4311,12 @@ module ts { return undefined; } - var scope: Node = undefined; + let scope: Node = undefined; - var declarations = symbol.getDeclarations(); + let declarations = symbol.getDeclarations(); if (declarations) { - for (var i = 0, n = declarations.length; i < n; i++) { - var container = getContainerNode(declarations[i]); + for (let declaration of declarations) { + let container = getContainerNode(declaration); if (!container) { return undefined; @@ -4341,7 +4342,7 @@ module ts { } function getPossibleSymbolReferencePositions(sourceFile: SourceFile, symbolName: string, start: number, end: number): number[] { - var positions: number[] = []; + let positions: number[] = []; /// TODO: Cache symbol existence for files to save text search // Also, need to make this work for unicode escapes. @@ -4351,11 +4352,11 @@ module ts { return positions; } - var text = sourceFile.text; - var sourceLength = text.length; - var symbolNameLength = symbolName.length; + let text = sourceFile.text; + let sourceLength = text.length; + let symbolNameLength = symbolName.length; - var position = text.indexOf(symbolName, start); + let position = text.indexOf(symbolName, start); while (position >= 0) { cancellationToken.throwIfCancellationRequested(); @@ -4364,7 +4365,7 @@ module ts { // We found a match. Make sure it's not part of a larger word (i.e. the char // before and after it have to be a non-identifier char). - var endPosition = position + symbolNameLength; + let endPosition = position + symbolNameLength; if ((position === 0 || !isIdentifierPart(text.charCodeAt(position - 1), ScriptTarget.Latest)) && (endPosition === sourceLength || !isIdentifierPart(text.charCodeAt(endPosition), ScriptTarget.Latest))) { @@ -4378,14 +4379,14 @@ module ts { } function getLabelReferencesInNode(container: Node, targetLabel: Identifier): ReferenceEntry[] { - var result: ReferenceEntry[] = []; - var sourceFile = container.getSourceFile(); - var labelName = targetLabel.text; - var possiblePositions = getPossibleSymbolReferencePositions(sourceFile, labelName, container.getStart(), container.getEnd()); + let result: ReferenceEntry[] = []; + let sourceFile = container.getSourceFile(); + let labelName = targetLabel.text; + let possiblePositions = getPossibleSymbolReferencePositions(sourceFile, labelName, container.getStart(), container.getEnd()); forEach(possiblePositions, position => { cancellationToken.throwIfCancellationRequested(); - var node = getTouchingWord(sourceFile, position); + let node = getTouchingWord(sourceFile, position); if (!node || node.getWidth() !== labelName.length) { return; } @@ -4437,19 +4438,19 @@ module ts { findInStrings: boolean, findInComments: boolean, result: ReferenceEntry[]): void { - var sourceFile = container.getSourceFile(); - var tripleSlashDirectivePrefixRegex = /^\/\/\/\s* { cancellationToken.throwIfCancellationRequested(); - var referenceLocation = getTouchingPropertyName(sourceFile, position); + let referenceLocation = getTouchingPropertyName(sourceFile, position); if (!isValidReferencePosition(referenceLocation, searchText)) { // This wasn't the start of a token. Check to see if it might be a // match in a comment or string if that's what the caller is asking @@ -4469,10 +4470,10 @@ module ts { return; } - var referenceSymbol = typeInfoResolver.getSymbolAtLocation(referenceLocation); + let referenceSymbol = typeInfoResolver.getSymbolAtLocation(referenceLocation); if (referenceSymbol) { - var referenceSymbolDeclaration = referenceSymbol.valueDeclaration; - var shorthandValueSymbol = typeInfoResolver.getShorthandAssignmentValueSymbol(referenceSymbolDeclaration); + let referenceSymbolDeclaration = referenceSymbol.valueDeclaration; + let shorthandValueSymbol = typeInfoResolver.getShorthandAssignmentValueSymbol(referenceSymbolDeclaration); if (isRelatableToSearchSet(searchSymbols, referenceSymbol, referenceLocation)) { result.push(getReferenceEntryFromNode(referenceLocation)); } @@ -4490,21 +4491,21 @@ module ts { } function isInString(position: number) { - var token = getTokenAtPosition(sourceFile, position); + let token = getTokenAtPosition(sourceFile, position); return token && token.kind === SyntaxKind.StringLiteral && position > token.getStart(); } function isInComment(position: number) { - var token = getTokenAtPosition(sourceFile, position); + let token = getTokenAtPosition(sourceFile, position); if (token && position < token.getStart()) { // First, we have to see if this position actually landed in a comment. - var commentRanges = getLeadingCommentRanges(sourceFile.text, token.pos); + let commentRanges = getLeadingCommentRanges(sourceFile.text, token.pos); // Then we want to make sure that it wasn't in a "///<" directive comment // We don't want to unintentionally update a file name. return forEach(commentRanges, c => { if (c.pos < position && position < c.end) { - var commentText = sourceFile.text.substring(c.pos, c.end); + let commentText = sourceFile.text.substring(c.pos, c.end); if (!tripleSlashDirectivePrefixRegex.test(commentText)) { return true; } @@ -4517,12 +4518,12 @@ module ts { } function getReferencesForSuperKeyword(superKeyword: Node): ReferenceEntry[] { - var searchSpaceNode = getSuperContainer(superKeyword, /*includeFunctions*/ false); + let searchSpaceNode = getSuperContainer(superKeyword, /*includeFunctions*/ false); if (!searchSpaceNode) { return undefined; } // Whether 'super' occurs in a static context within a class. - var staticFlag = NodeFlags.Static; + let staticFlag = NodeFlags.Static; switch (searchSpaceNode.kind) { case SyntaxKind.PropertyDeclaration: @@ -4539,20 +4540,20 @@ module ts { return undefined; } - var result: ReferenceEntry[] = []; + let result: ReferenceEntry[] = []; - var sourceFile = searchSpaceNode.getSourceFile(); - var possiblePositions = getPossibleSymbolReferencePositions(sourceFile, "super", searchSpaceNode.getStart(), searchSpaceNode.getEnd()); + let sourceFile = searchSpaceNode.getSourceFile(); + let possiblePositions = getPossibleSymbolReferencePositions(sourceFile, "super", searchSpaceNode.getStart(), searchSpaceNode.getEnd()); forEach(possiblePositions, position => { cancellationToken.throwIfCancellationRequested(); - var node = getTouchingWord(sourceFile, position); + let node = getTouchingWord(sourceFile, position); if (!node || node.kind !== SyntaxKind.SuperKeyword) { return; } - var container = getSuperContainer(node, /*includeFunctions*/ false); + let container = getSuperContainer(node, /*includeFunctions*/ false); // If we have a 'super' container, we must have an enclosing class. // Now make sure the owning class is the same as the search-space @@ -4566,10 +4567,10 @@ module ts { } function getReferencesForThisKeyword(thisOrSuperKeyword: Node, sourceFiles: SourceFile[]): ReferenceEntry[] { - var searchSpaceNode = getThisContainer(thisOrSuperKeyword, /* includeArrowFunctions */ false); + let searchSpaceNode = getThisContainer(thisOrSuperKeyword, /* includeArrowFunctions */ false); // Whether 'this' occurs in a static context within a class. - var staticFlag = NodeFlags.Static; + let staticFlag = NodeFlags.Static; switch (searchSpaceNode.kind) { case SyntaxKind.MethodDeclaration: @@ -4600,17 +4601,18 @@ module ts { return undefined; } - var result: ReferenceEntry[] = []; + let result: ReferenceEntry[] = []; + let possiblePositions: number[]; if (searchSpaceNode.kind === SyntaxKind.SourceFile) { forEach(sourceFiles, sourceFile => { - var possiblePositions = getPossibleSymbolReferencePositions(sourceFile, "this", sourceFile.getStart(), sourceFile.getEnd()); + possiblePositions = getPossibleSymbolReferencePositions(sourceFile, "this", sourceFile.getStart(), sourceFile.getEnd()); getThisReferencesInFile(sourceFile, sourceFile, possiblePositions, result); }); } else { - var sourceFile = searchSpaceNode.getSourceFile(); - var possiblePositions = getPossibleSymbolReferencePositions(sourceFile, "this", searchSpaceNode.getStart(), searchSpaceNode.getEnd()); + let sourceFile = searchSpaceNode.getSourceFile(); + possiblePositions = getPossibleSymbolReferencePositions(sourceFile, "this", searchSpaceNode.getStart(), searchSpaceNode.getEnd()); getThisReferencesInFile(sourceFile, searchSpaceNode, possiblePositions, result); } @@ -4620,12 +4622,12 @@ module ts { forEach(possiblePositions, position => { cancellationToken.throwIfCancellationRequested(); - var node = getTouchingWord(sourceFile, position); + let node = getTouchingWord(sourceFile, position); if (!node || node.kind !== SyntaxKind.ThisKeyword) { return; } - var container = getThisContainer(node, /* includeArrowFunctions */ false); + let container = getThisContainer(node, /* includeArrowFunctions */ false); switch (searchSpaceNode.kind) { case SyntaxKind.FunctionExpression: @@ -4659,7 +4661,7 @@ module ts { function populateSearchSymbolSet(symbol: Symbol, location: Node): Symbol[] { // The search set contains at least the current symbol - var result = [symbol]; + let result = [symbol]; // If the symbol is an alias, add what it alaises to the list if (isImportOrExportSpecifierImportSymbol(symbol)) { @@ -4679,13 +4681,13 @@ module ts { * property name and variable declaration of the identifier. * Like in below example, when querying for all references for an identifier 'name', of the property assignment, the language service * should show both 'name' in 'obj' and 'name' in variable declaration - * var name = "Foo"; - * var obj = { name }; + * let name = "Foo"; + * let obj = { name }; * In order to do that, we will populate the search set with the value symbol of the identifier as a value of the property assignment * so that when matching with potential reference symbol, both symbols from property declaration and variable declaration * will be included correctly. */ - var shorthandValueSymbol = typeInfoResolver.getShorthandAssignmentValueSymbol(location.parent); + let shorthandValueSymbol = typeInfoResolver.getShorthandAssignmentValueSymbol(location.parent); if (shorthandValueSymbol) { result.push(shorthandValueSymbol); } @@ -4723,9 +4725,9 @@ module ts { function getPropertySymbolFromTypeReference(typeReference: TypeReferenceNode) { if (typeReference) { - var type = typeInfoResolver.getTypeAtLocation(typeReference); + let type = typeInfoResolver.getTypeAtLocation(typeReference); if (type) { - var propertySymbol = typeInfoResolver.getPropertyOfType(type, propertyName); + let propertySymbol = typeInfoResolver.getPropertyOfType(type, propertyName); if (propertySymbol) { result.push(propertySymbol); } @@ -4769,7 +4771,7 @@ module ts { // Finally, try all properties with the same name in any type the containing type extended or implemented, and // see if any is in the list if (rootSymbol.parent && rootSymbol.parent.flags & (SymbolFlags.Class | SymbolFlags.Interface)) { - var result: Symbol[] = []; + let result: Symbol[] = []; getPropertySymbolsFromBaseTypes(rootSymbol.parent, rootSymbol.getName(), result); return forEach(result, s => searchSymbols.indexOf(s) >= 0); } @@ -4780,21 +4782,21 @@ module ts { function getPropertySymbolsFromContextualType(node: Node): Symbol[] { if (isNameOfPropertyAssignment(node)) { - var objectLiteral = node.parent.parent; - var contextualType = typeInfoResolver.getContextualType(objectLiteral); - var name = (node).text; + let objectLiteral = node.parent.parent; + let contextualType = typeInfoResolver.getContextualType(objectLiteral); + let name = (node).text; if (contextualType) { if (contextualType.flags & TypeFlags.Union) { // This is a union type, first see if the property we are looking for is a union property (i.e. exists in all types) // if not, search the constituent types for the property - var unionProperty = contextualType.getProperty(name) + let unionProperty = contextualType.getProperty(name) if (unionProperty) { return [unionProperty]; } else { - var result: Symbol[] = []; + let result: Symbol[] = []; forEach((contextualType).types, t => { - var symbol = t.getProperty(name); + let symbol = t.getProperty(name); if (symbol) { result.push(symbol); } @@ -4803,7 +4805,7 @@ module ts { } } else { - var symbol = contextualType.getProperty(name); + let symbol = contextualType.getProperty(name); if (symbol) { return [symbol]; } @@ -4822,6 +4824,7 @@ module ts { */ function getIntersectingMeaningFromDeclarations(meaning: SemanticMeaning, declarations: Declaration[]): SemanticMeaning { if (declarations) { + let lastIterationMeaning: SemanticMeaning; do { // The result is order-sensitive, for instance if initialMeaning === Namespace, and declarations = [class, instantiated module] // we need to consider both as they initialMeaning intersects with the module in the namespace space, and the module @@ -4829,24 +4832,25 @@ module ts { // To achieve that we will keep iterating until the result stabilizes. // Remember the last meaning - var lastIterationMeaning = meaning; + lastIterationMeaning = meaning; - for (var i = 0, n = declarations.length; i < n; i++) { - var declarationMeaning = getMeaningFromDeclaration(declarations[i]); + for (let declaration of declarations) { + let declarationMeaning = getMeaningFromDeclaration(declaration); if (declarationMeaning & meaning) { meaning |= declarationMeaning; } } - } while (meaning !== lastIterationMeaning); + } + while (meaning !== lastIterationMeaning); } return meaning; } } function getReferenceEntryFromNode(node: Node): ReferenceEntry { - var start = node.getStart(); - var end = node.getEnd(); + let start = node.getStart(); + let end = node.getEnd(); if (node.kind === SyntaxKind.StringLiteral) { start += 1; @@ -4866,13 +4870,13 @@ module ts { return true; } - var parent = node.parent; + let parent = node.parent; if (parent) { if (parent.kind === SyntaxKind.PostfixUnaryExpression || parent.kind === SyntaxKind.PrefixUnaryExpression) { return true; } else if (parent.kind === SyntaxKind.BinaryExpression && (parent).left === node) { - var operator = (parent).operatorToken.kind; + let operator = (parent).operatorToken.kind; return SyntaxKind.FirstAssignment <= operator && operator <= SyntaxKind.LastAssignment; } } @@ -4894,9 +4898,9 @@ module ts { function getEmitOutput(fileName: string): EmitOutput { synchronizeHostData(); - var sourceFile = getValidSourceFile(fileName); + let sourceFile = getValidSourceFile(fileName); - var outputFiles: OutputFile[] = []; + let outputFiles: OutputFile[] = []; function writeFile(fileName: string, data: string, writeByteOrderMark: boolean) { outputFiles.push({ @@ -4906,7 +4910,7 @@ module ts { }); } - var emitOutput = program.emit(sourceFile, writeFile); + let emitOutput = program.emit(sourceFile, writeFile); return { outputFiles, @@ -4983,8 +4987,8 @@ module ts { } function isNamespaceReference(node: Node): boolean { - var root = node; - var isLastClause = true; + let root = node; + let isLastClause = true; if (root.parent.kind === SyntaxKind.QualifiedName) { while (root.parent && root.parent.kind === SyntaxKind.QualifiedName) root = root.parent; @@ -5045,7 +5049,7 @@ module ts { function getSignatureHelpItems(fileName: string, position: number): SignatureHelpItems { synchronizeHostData(); - var sourceFile = getValidSourceFile(fileName); + let sourceFile = getValidSourceFile(fileName); return SignatureHelp.getSignatureHelpItems(sourceFile, position, typeInfoResolver, cancellationToken); } @@ -5056,10 +5060,10 @@ module ts { } function getNameOrDottedNameSpan(fileName: string, startPos: number, endPos: number): TextSpan { - var sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName); + let sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName); // Get node at the location - var node = getTouchingPropertyName(sourceFile, startPos); + let node = getTouchingPropertyName(sourceFile, startPos); if (!node) { return; @@ -5082,7 +5086,7 @@ module ts { return; } - var nodeForStartPos = node; + let nodeForStartPos = node; while (true) { if (isRightSideOfPropertyAccess(nodeForStartPos) || isRightSideOfQualifiedName(nodeForStartPos)) { // If on the span is in right side of the the property or qualified name, return the span from the qualified name pos to end of this node @@ -5113,13 +5117,13 @@ module ts { function getBreakpointStatementAtPosition(fileName: string, position: number) { // doesn't use compiler - no need to synchronize with host - var sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName); + let sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName); return BreakpointResolver.spanInSourceFileAtLocation(sourceFile, position); } function getNavigationBarItems(fileName: string): NavigationBarItem[]{ - var sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName); + let sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName); return NavigationBar.getNavigationBarItems(sourceFile); } @@ -5127,15 +5131,15 @@ module ts { function getSemanticClassifications(fileName: string, span: TextSpan): ClassifiedSpan[] { synchronizeHostData(); - var sourceFile = getValidSourceFile(fileName); + let sourceFile = getValidSourceFile(fileName); - var result: ClassifiedSpan[] = []; + let result: ClassifiedSpan[] = []; processNode(sourceFile); return result; function classifySymbol(symbol: Symbol, meaningAtPosition: SemanticMeaning) { - var flags = symbol.getFlags(); + let flags = symbol.getFlags(); if (flags & SymbolFlags.Class) { return ClassificationTypeNames.className; @@ -5180,9 +5184,9 @@ module ts { // Only walk into nodes that intersect the requested span. if (node && textSpanIntersectsWith(span, node.getStart(), node.getWidth())) { if (node.kind === SyntaxKind.Identifier && node.getWidth() > 0) { - var symbol = typeInfoResolver.getSymbolAtLocation(node); + let symbol = typeInfoResolver.getSymbolAtLocation(node); if (symbol) { - var type = classifySymbol(symbol, getMeaningFromLocation(node)); + let type = classifySymbol(symbol, getMeaningFromLocation(node)); if (type) { result.push({ textSpan: createTextSpan(node.getStart(), node.getWidth()), @@ -5199,19 +5203,19 @@ module ts { function getSyntacticClassifications(fileName: string, span: TextSpan): ClassifiedSpan[] { // doesn't use compiler - no need to synchronize with host - var sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName); + let sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName); // Make a scanner we can get trivia from. - var triviaScanner = createScanner(ScriptTarget.Latest, /*skipTrivia:*/ false, sourceFile.text); - var mergeConflictScanner = createScanner(ScriptTarget.Latest, /*skipTrivia:*/ false, sourceFile.text); + let triviaScanner = createScanner(ScriptTarget.Latest, /*skipTrivia:*/ false, sourceFile.text); + let mergeConflictScanner = createScanner(ScriptTarget.Latest, /*skipTrivia:*/ false, sourceFile.text); - var result: ClassifiedSpan[] = []; + let result: ClassifiedSpan[] = []; processElement(sourceFile); return result; function classifyLeadingTrivia(token: Node): void { - var tokenStart = skipTrivia(sourceFile.text, token.pos, /*stopAfterLineBreak:*/ false); + let tokenStart = skipTrivia(sourceFile.text, token.pos, /*stopAfterLineBreak:*/ false); if (tokenStart === token.pos) { return; } @@ -5219,10 +5223,10 @@ module ts { // token has trivia. Classify them appropriately. triviaScanner.setTextPos(token.pos); while (true) { - var start = triviaScanner.getTextPos(); - var kind = triviaScanner.scan(); - var end = triviaScanner.getTextPos(); - var width = end - start; + let start = triviaScanner.getTextPos(); + let kind = triviaScanner.scan(); + let end = triviaScanner.getTextPos(); + let width = end - start; if (textSpanIntersectsWith(span, start, width)) { if (!isTrivia(kind)) { @@ -5239,8 +5243,8 @@ module ts { } if (kind === SyntaxKind.ConflictMarkerTrivia) { - var text = sourceFile.text; - var ch = text.charCodeAt(start); + let text = sourceFile.text; + let ch = text.charCodeAt(start); // for the <<<<<<< and >>>>>>> markers, we just add them in as comments // in the classification stream. @@ -5282,11 +5286,11 @@ module ts { } function classifyDisabledCodeToken() { - var start = mergeConflictScanner.getTextPos(); - var tokenKind = mergeConflictScanner.scan(); - var end = mergeConflictScanner.getTextPos(); + let start = mergeConflictScanner.getTextPos(); + let tokenKind = mergeConflictScanner.scan(); + let end = mergeConflictScanner.getTextPos(); - var type = classifyTokenType(tokenKind); + let type = classifyTokenType(tokenKind); if (type) { result.push({ textSpan: createTextSpanFromBounds(start, end), @@ -5299,7 +5303,7 @@ module ts { classifyLeadingTrivia(token); if (token.getWidth() > 0) { - var type = classifyTokenType(token.kind, token); + let type = classifyTokenType(token.kind, token); if (type) { result.push({ textSpan: createTextSpan(token.getStart(), token.getWidth()), @@ -5400,9 +5404,8 @@ module ts { function processElement(element: Node) { // Ignore nodes that don't intersect the original span to classify. if (textSpanIntersectsWith(span, element.getFullStart(), element.getFullWidth())) { - var children = element.getChildren(); - for (var i = 0, n = children.length; i < n; i++) { - var child = children[i]; + let children = element.getChildren(); + for (let child of children) { if (isToken(child)) { classifyToken(child); } @@ -5417,30 +5420,28 @@ module ts { function getOutliningSpans(fileName: string): OutliningSpan[] { // doesn't use compiler - no need to synchronize with host - var sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName); + let sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName); return OutliningElementsCollector.collectElements(sourceFile); } function getBraceMatchingAtPosition(fileName: string, position: number) { - var sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName); - var result: TextSpan[] = []; + let sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName); + let result: TextSpan[] = []; - var token = getTouchingToken(sourceFile, position); + let token = getTouchingToken(sourceFile, position); if (token.getStart(sourceFile) === position) { - var matchKind = getMatchingTokenKind(token); + let matchKind = getMatchingTokenKind(token); // Ensure that there is a corresponding token to match ours. if (matchKind) { - var parentElement = token.parent; - - var childNodes = parentElement.getChildren(sourceFile); - for (var i = 0, n = childNodes.length; i < n; i++) { - var current = childNodes[i]; + let parentElement = token.parent; + let childNodes = parentElement.getChildren(sourceFile); + for (let current of childNodes) { if (current.kind === matchKind) { - var range1 = createTextSpan(token.getStart(sourceFile), token.getWidth(sourceFile)); - var range2 = createTextSpan(current.getStart(sourceFile), current.getWidth(sourceFile)); + let range1 = createTextSpan(token.getStart(sourceFile), token.getWidth(sourceFile)); + let range2 = createTextSpan(current.getStart(sourceFile), current.getWidth(sourceFile)); // We want to order the braces when we return the result. if (range1.start < range2.start) { @@ -5475,30 +5476,30 @@ module ts { } function getIndentationAtPosition(fileName: string, position: number, editorOptions: EditorOptions) { - var start = new Date().getTime(); - var sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName); + let start = new Date().getTime(); + let sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName); log("getIndentationAtPosition: getCurrentSourceFile: " + (new Date().getTime() - start)); - var start = new Date().getTime(); + start = new Date().getTime(); - var result = formatting.SmartIndenter.getIndentation(position, sourceFile, editorOptions); + let result = formatting.SmartIndenter.getIndentation(position, sourceFile, editorOptions); log("getIndentationAtPosition: computeIndentation : " + (new Date().getTime() - start)); return result; } function getFormattingEditsForRange(fileName: string, start: number, end: number, options: FormatCodeOptions): TextChange[] { - var sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName); + let sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName); return formatting.formatSelection(start, end, sourceFile, getRuleProvider(options), options); } function getFormattingEditsForDocument(fileName: string, options: FormatCodeOptions): TextChange[] { - var sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName); + let sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName); return formatting.formatDocument(sourceFile, getRuleProvider(options), options); } function getFormattingEditsAfterKeystroke(fileName: string, position: number, key: string, options: FormatCodeOptions): TextChange[] { - var sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName); + let sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName); if (key === "}") { return formatting.formatOnClosingCurly(position, sourceFile, getRuleProvider(options), options); @@ -5522,17 +5523,17 @@ module ts { // anything away. synchronizeHostData(); - var sourceFile = getValidSourceFile(fileName); + let sourceFile = getValidSourceFile(fileName); cancellationToken.throwIfCancellationRequested(); - var fileContents = sourceFile.text; - var result: TodoComment[] = []; + let fileContents = sourceFile.text; + let result: TodoComment[] = []; if (descriptors.length > 0) { - var regExp = getTodoCommentsRegExp(); + let regExp = getTodoCommentsRegExp(); - var matchArray: RegExpExecArray; + let matchArray: RegExpExecArray; while (matchArray = regExp.exec(fileContents)) { cancellationToken.throwIfCancellationRequested(); @@ -5553,21 +5554,21 @@ module ts { // // i.e. 'undefined' in position 3 above means TODO(jason) didn't match. // "hack" in position 4 means HACK did match. - var firstDescriptorCaptureIndex = 3; + let firstDescriptorCaptureIndex = 3; Debug.assert(matchArray.length === descriptors.length + firstDescriptorCaptureIndex); - var preamble = matchArray[1]; - var matchPosition = matchArray.index + preamble.length; + let preamble = matchArray[1]; + let matchPosition = matchArray.index + preamble.length; // OK, we have found a match in the file. This is only an acceptable match if // it is contained within a comment. - var token = getTokenAtPosition(sourceFile, matchPosition); + let token = getTokenAtPosition(sourceFile, matchPosition); if (!isInsideComment(sourceFile, token, matchPosition)) { continue; } - var descriptor: TodoCommentDescriptor = undefined; - for (var i = 0, n = descriptors.length; i < n; i++) { + let descriptor: TodoCommentDescriptor = undefined; + for (let i = 0, n = descriptors.length; i < n; i++) { if (matchArray[i + firstDescriptorCaptureIndex]) { descriptor = descriptors[i]; } @@ -5580,7 +5581,7 @@ module ts { continue; } - var message = matchArray[2]; + let message = matchArray[2]; result.push({ descriptor: descriptor, message: message, @@ -5611,14 +5612,14 @@ module ts { // // The following three regexps are used to match the start of the text up to the TODO // comment portion. - var singleLineCommentStart = /(?:\/\/+\s*)/.source; - var multiLineCommentStart = /(?:\/\*+\s*)/.source; - var anyNumberOfSpacesAndAsterixesAtStartOfLine = /(?:^(?:\s|\*)*)/.source; + let singleLineCommentStart = /(?:\/\/+\s*)/.source; + let multiLineCommentStart = /(?:\/\*+\s*)/.source; + let anyNumberOfSpacesAndAsterixesAtStartOfLine = /(?:^(?:\s|\*)*)/.source; // Match any of the above three TODO comment start regexps. // Note that the outermost group *is* a capture group. We want to capture the preamble // so that we can determine the starting position of the TODO comment match. - var preamble = "(" + anyNumberOfSpacesAndAsterixesAtStartOfLine + "|" + singleLineCommentStart + "|" + multiLineCommentStart + ")"; + let preamble = "(" + anyNumberOfSpacesAndAsterixesAtStartOfLine + "|" + singleLineCommentStart + "|" + multiLineCommentStart + ")"; // Takes the descriptors and forms a regexp that matches them as if they were literals. // For example, if the descriptors are "TODO(jason)" and "HACK", then this will be: @@ -5628,17 +5629,17 @@ module ts { // Note that the outermost group is *not* a capture group, but the innermost groups // *are* capture groups. By capturing the inner literals we can determine after // matching which descriptor we are dealing with. - var literals = "(?:" + map(descriptors, d => "(" + escapeRegExp(d.text) + ")").join("|") + ")"; + let literals = "(?:" + map(descriptors, d => "(" + escapeRegExp(d.text) + ")").join("|") + ")"; // After matching a descriptor literal, the following regexp matches the rest of the // text up to the end of the line (or */). - var endOfLineOrEndOfComment = /(?:$|\*\/)/.source - var messageRemainder = /(?:.*?)/.source + let endOfLineOrEndOfComment = /(?:$|\*\/)/.source + let messageRemainder = /(?:.*?)/.source // This is the portion of the match we'll return as part of the TODO comment result. We // match the literal portion up to the end of the line or end of comment. - var messagePortion = "(" + literals + messageRemainder + ")"; - var regExpString = preamble + messagePortion + endOfLineOrEndOfComment; + let messagePortion = "(" + literals + messageRemainder + ")"; + let regExpString = preamble + messagePortion + endOfLineOrEndOfComment; // The final regexp will look like this: // /((?:\/\/+\s*)|(?:\/\*+\s*)|(?:^(?:\s|\*)*))((?:(TODO\(jason\))|(HACK))(?:.*?))(?:$|\*\/)/gim @@ -5664,30 +5665,30 @@ module ts { function getRenameInfo(fileName: string, position: number): RenameInfo { synchronizeHostData(); - var sourceFile = getValidSourceFile(fileName); + let sourceFile = getValidSourceFile(fileName); - var node = getTouchingWord(sourceFile, position); + let node = getTouchingWord(sourceFile, position); // Can only rename an identifier. if (node && node.kind === SyntaxKind.Identifier) { - var symbol = typeInfoResolver.getSymbolAtLocation(node); + let symbol = typeInfoResolver.getSymbolAtLocation(node); // Only allow a symbol to be renamed if it actually has at least one declaration. if (symbol) { - var declarations = symbol.getDeclarations(); + let declarations = symbol.getDeclarations(); if (declarations && declarations.length > 0) { // Disallow rename for elements that are defined in the standard TypeScript library. - var defaultLibFileName = host.getDefaultLibFileName(host.getCompilationSettings()); + let defaultLibFileName = host.getDefaultLibFileName(host.getCompilationSettings()); if (defaultLibFileName) { - for (var i = 0; i < declarations.length; i++) { - var sourceFile = declarations[i].getSourceFile(); + for (let current of declarations) { + let sourceFile = current.getSourceFile(); if (sourceFile && getCanonicalFileName(ts.normalizePath(sourceFile.fileName)) === getCanonicalFileName(ts.normalizePath(defaultLibFileName))) { return getRenameInfoError(getLocaleSpecificMessage(Diagnostics.You_cannot_rename_elements_that_are_defined_in_the_standard_TypeScript_library.key)); } } } - var kind = getSymbolKind(symbol, typeInfoResolver, node); + let kind = getSymbolKind(symbol, typeInfoResolver, node); if (kind) { return { canRename: true, @@ -5762,7 +5763,7 @@ module ts { } function initializeNameTable(sourceFile: SourceFile): void { - var nameTable: Map = {}; + let nameTable: Map = {}; walk(sourceFile); sourceFile.nameTable = nameTable; @@ -5800,13 +5801,13 @@ module ts { /// Classifier export function createClassifier(): Classifier { - var scanner = createScanner(ScriptTarget.Latest, /*skipTrivia*/ false); + let scanner = createScanner(ScriptTarget.Latest, /*skipTrivia*/ false); /// We do not have a full parser support to know when we should parse a regex or not /// If we consider every slash token to be a regex, we could be missing cases like "1/2/3", where /// we have a series of divide operator. this list allows us to be more accurate by ruling out /// locations where a regexp cannot exist. - var noRegexTable: boolean[] = []; + let noRegexTable: boolean[] = []; noRegexTable[SyntaxKind.Identifier] = true; noRegexTable[SyntaxKind.StringLiteral] = true; noRegexTable[SyntaxKind.NumericLiteral] = true; @@ -5840,7 +5841,7 @@ module ts { // // Where on the second line, you will get the 'return' keyword, // a string literal, and a template end consisting of '} } `'. - var templateStack: SyntaxKind[] = []; + let templateStack: SyntaxKind[] = []; function isAccessibilityModifier(kind: SyntaxKind) { switch (kind) { @@ -5879,9 +5880,9 @@ module ts { // If there is a syntactic classifier ('syntacticClassifierAbsent' is false), // we will be more conservative in order to avoid conflicting with the syntactic classifier. function getClassificationsForLine(text: string, lexState: EndOfLineState, syntacticClassifierAbsent: boolean): ClassificationResult { - var offset = 0; - var token = SyntaxKind.Unknown; - var lastNonTriviaToken = SyntaxKind.Unknown; + let offset = 0; + let token = SyntaxKind.Unknown; + let lastNonTriviaToken = SyntaxKind.Unknown; // Empty out the template stack for reuse. while (templateStack.length > 0) { @@ -5921,7 +5922,7 @@ module ts { scanner.setText(text); - var result: ClassificationResult = { + let result: ClassificationResult = { finalLexState: EndOfLineState.Start, entries: [] }; @@ -5945,7 +5946,7 @@ module ts { // In order to determine if the user is potentially typing something generic, we use a // weak heuristic where we track < and > tokens. It's a weak heuristic, but should // work well enough in practice. - var angleBracketStack = 0; + let angleBracketStack = 0; do { token = scanner.scan(); @@ -6003,7 +6004,7 @@ module ts { // If we don't have anything on the template stack, // then we aren't trying to keep track of a previously scanned template head. if (templateStack.length > 0) { - var lastTemplateStackToken = lastOrUndefined(templateStack); + let lastTemplateStackToken = lastOrUndefined(templateStack); if (lastTemplateStackToken === SyntaxKind.TemplateHead) { token = scanner.reScanTemplateToken(); @@ -6033,26 +6034,26 @@ module ts { return result; function processToken(): void { - var start = scanner.getTokenPos(); - var end = scanner.getTextPos(); + let start = scanner.getTokenPos(); + let end = scanner.getTextPos(); addResult(end - start, classFromKind(token)); if (end >= text.length) { if (token === SyntaxKind.StringLiteral) { // Check to see if we finished up on a multiline string literal. - var tokenText = scanner.getTokenText(); + let tokenText = scanner.getTokenText(); if (scanner.isUnterminated()) { - var lastCharIndex = tokenText.length - 1; + let lastCharIndex = tokenText.length - 1; - var numBackslashes = 0; + let numBackslashes = 0; while (tokenText.charCodeAt(lastCharIndex - numBackslashes) === CharacterCodes.backslash) { numBackslashes++; } // If we have an odd number of backslashes, then the multiline string is unclosed if (numBackslashes & 1) { - var quoteChar = tokenText.charCodeAt(0); + let quoteChar = tokenText.charCodeAt(0); result.finalLexState = quoteChar === CharacterCodes.doubleQuote ? EndOfLineState.InDoubleQuoteStringLiteral : EndOfLineState.InSingleQuoteStringLiteral; @@ -6197,7 +6198,7 @@ module ts { } /// getDefaultLibraryFilePath - declare var __dirname: string; + declare let __dirname: string; /** * Get the path of the default library file (lib.d.ts) as distributed with the typescript @@ -6218,7 +6219,7 @@ module ts { getNodeConstructor: kind => { function Node() { } - var proto = kind === SyntaxKind.SourceFile ? new SourceFileObject() : new NodeObject(); + let proto = kind === SyntaxKind.SourceFile ? new SourceFileObject() : new NodeObject(); proto.kind = kind; proto.pos = 0; proto.end = 0; diff --git a/src/services/signatureHelp.ts b/src/services/signatureHelp.ts index 52a7b41d8a7..419d4819ba6 100644 --- a/src/services/signatureHelp.ts +++ b/src/services/signatureHelp.ts @@ -8,15 +8,15 @@ module ts.SignatureHelp { // will return the generic identifier that started the expression (e.g. "foo" in "foo[]; - var resolvedSignature = typeInfoResolver.getResolvedSignature(call, candidates); + let call = argumentInfo.invocation; + let candidates = []; + let resolvedSignature = typeInfoResolver.getResolvedSignature(call, candidates); cancellationToken.throwIfCancellationRequested(); if (!candidates.length) { @@ -211,7 +211,7 @@ module ts.SignatureHelp { */ function getImmediatelyContainingArgumentInfo(node: Node): ArgumentListInfo { if (node.parent.kind === SyntaxKind.CallExpression || node.parent.kind === SyntaxKind.NewExpression) { - var callExpression = node.parent; + let callExpression = node.parent; // There are 3 cases to handle: // 1. The token introduces a list, and should begin a sig help session // 2. The token is either not associated with a list, or ends a list, so the session should end @@ -230,8 +230,8 @@ module ts.SignatureHelp { node.kind === SyntaxKind.OpenParenToken) { // Find the list that starts right *after* the < or ( token. // If the user has just opened a list, consider this item 0. - var list = getChildListThatStartsWithOpenerToken(callExpression, node, sourceFile); - var isTypeArgList = callExpression.typeArguments && callExpression.typeArguments.pos === list.pos; + let list = getChildListThatStartsWithOpenerToken(callExpression, node, sourceFile); + let isTypeArgList = callExpression.typeArguments && callExpression.typeArguments.pos === list.pos; Debug.assert(list !== undefined); return { kind: isTypeArgList ? ArgumentListKind.TypeArguments : ArgumentListKind.CallArguments, @@ -248,13 +248,13 @@ module ts.SignatureHelp { // - Between the type arguments and the arguments (greater than token) // - On the target of the call (parent.func) // - On the 'new' keyword in a 'new' expression - var listItemInfo = findListItemInfo(node); + let listItemInfo = findListItemInfo(node); if (listItemInfo) { - var list = listItemInfo.list; - var isTypeArgList = callExpression.typeArguments && callExpression.typeArguments.pos === list.pos; + let list = listItemInfo.list; + let isTypeArgList = callExpression.typeArguments && callExpression.typeArguments.pos === list.pos; - var argumentIndex = getArgumentIndex(list, node); - var argumentCount = getArgumentCount(list); + let argumentIndex = getArgumentIndex(list, node); + let argumentCount = getArgumentCount(list); Debug.assert(argumentIndex === 0 || argumentIndex < argumentCount, `argumentCount < argumentIndex, ${argumentCount} < ${argumentIndex}`); @@ -276,18 +276,18 @@ module ts.SignatureHelp { } } else if (node.kind === SyntaxKind.TemplateHead && node.parent.parent.kind === SyntaxKind.TaggedTemplateExpression) { - var templateExpression = node.parent; - var tagExpression = templateExpression.parent; + let templateExpression = node.parent; + let tagExpression = templateExpression.parent; Debug.assert(templateExpression.kind === SyntaxKind.TemplateExpression); - var argumentIndex = isInsideTemplateLiteral(node, position) ? 0 : 1; + let argumentIndex = isInsideTemplateLiteral(node, position) ? 0 : 1; return getArgumentListInfoForTemplate(tagExpression, argumentIndex); } else if (node.parent.kind === SyntaxKind.TemplateSpan && node.parent.parent.parent.kind === SyntaxKind.TaggedTemplateExpression) { - var templateSpan = node.parent; - var templateExpression = templateSpan.parent; - var tagExpression = templateExpression.parent; + let templateSpan = node.parent; + let templateExpression = templateSpan.parent; + let tagExpression = templateExpression.parent; Debug.assert(templateExpression.kind === SyntaxKind.TemplateExpression); // If we're just after a template tail, don't show signature help. @@ -295,8 +295,8 @@ module ts.SignatureHelp { return undefined; } - var spanIndex = templateExpression.templateSpans.indexOf(templateSpan); - var argumentIndex = getArgumentIndexForTemplatePiece(spanIndex, node); + let spanIndex = templateExpression.templateSpans.indexOf(templateSpan); + let argumentIndex = getArgumentIndexForTemplatePiece(spanIndex, node); return getArgumentListInfoForTemplate(tagExpression, argumentIndex); } @@ -316,10 +316,9 @@ module ts.SignatureHelp { // on. In that case, even if we're after the trailing comma, we'll still see // that trailing comma in the list, and we'll have generated the appropriate // arg index. - var argumentIndex = 0; - var listChildren = argumentsList.getChildren(); - for (var i = 0, n = listChildren.length; i < n; i++) { - var child = listChildren[i]; + let argumentIndex = 0; + let listChildren = argumentsList.getChildren(); + for (let child of listChildren) { if (child === node) { break; } @@ -343,9 +342,9 @@ module ts.SignatureHelp { // we'll have: 'a' '' '' // That will give us 2 non-commas. We then add one for the last comma, givin us an // arg count of 3. - var listChildren = argumentsList.getChildren(); + let listChildren = argumentsList.getChildren(); - var argumentCount = countWhere(listChildren, arg => arg.kind !== SyntaxKind.CommaToken); + let argumentCount = countWhere(listChildren, arg => arg.kind !== SyntaxKind.CommaToken); if (listChildren.length > 0 && lastOrUndefined(listChildren).kind === SyntaxKind.CommaToken) { argumentCount++; } @@ -379,7 +378,7 @@ module ts.SignatureHelp { function getArgumentListInfoForTemplate(tagExpression: TaggedTemplateExpression, argumentIndex: number): ArgumentListInfo { // argumentCount is either 1 or (numSpans + 1) to account for the template strings array argument. - var argumentCount = tagExpression.template.kind === SyntaxKind.NoSubstitutionTemplateLiteral + let argumentCount = tagExpression.template.kind === SyntaxKind.NoSubstitutionTemplateLiteral ? 1 : (tagExpression.template).templateSpans.length + 1; @@ -403,15 +402,15 @@ module ts.SignatureHelp { // // The applicable span is from the first bar to the second bar (inclusive, // but not including parentheses) - var applicableSpanStart = argumentsList.getFullStart(); - var applicableSpanEnd = skipTrivia(sourceFile.text, argumentsList.getEnd(), /*stopAfterLineBreak*/ false); + let applicableSpanStart = argumentsList.getFullStart(); + let applicableSpanEnd = skipTrivia(sourceFile.text, argumentsList.getEnd(), /*stopAfterLineBreak*/ false); return createTextSpan(applicableSpanStart, applicableSpanEnd - applicableSpanStart); } function getApplicableSpanForTaggedTemplate(taggedTemplate: TaggedTemplateExpression): TextSpan { - var template = taggedTemplate.template; - var applicableSpanStart = template.getStart(); - var applicableSpanEnd = template.getEnd(); + let template = taggedTemplate.template; + let applicableSpanStart = template.getStart(); + let applicableSpanEnd = template.getEnd(); // We need to adjust the end position for the case where the template does not have a tail. // Otherwise, we will not show signature help past the expression. @@ -423,7 +422,7 @@ module ts.SignatureHelp { // This is because a Missing node has no width. However, what we actually want is to include trivia // leading up to the next token in case the user is about to type in a TemplateMiddle or TemplateTail. if (template.kind === SyntaxKind.TemplateExpression) { - var lastSpan = lastOrUndefined((template).templateSpans); + let lastSpan = lastOrUndefined((template).templateSpans); if (lastSpan.literal.getFullWidth() === 0) { applicableSpanEnd = skipTrivia(sourceFile.text, applicableSpanEnd, /*stopAfterLineBreak*/ false); } @@ -433,7 +432,7 @@ module ts.SignatureHelp { } function getContainingArgumentInfo(node: Node): ArgumentListInfo { - for (var n = node; n.kind !== SyntaxKind.SourceFile; n = n.parent) { + for (let n = node; n.kind !== SyntaxKind.SourceFile; n = n.parent) { if (isFunctionBlock(n)) { return undefined; } @@ -444,7 +443,7 @@ module ts.SignatureHelp { Debug.fail("Node of kind " + n.kind + " is not a subspan of its parent of kind " + n.parent.kind); } - var argumentInfo = getImmediatelyContainingArgumentInfo(n); + let argumentInfo = getImmediatelyContainingArgumentInfo(n); if (argumentInfo) { return argumentInfo; } @@ -456,8 +455,8 @@ module ts.SignatureHelp { } function getChildListThatStartsWithOpenerToken(parent: Node, openerToken: Node, sourceFile: SourceFile): Node { - var children = parent.getChildren(sourceFile); - var indexOfOpenerToken = children.indexOf(openerToken); + let children = parent.getChildren(sourceFile); + let indexOfOpenerToken = children.indexOf(openerToken); Debug.assert(indexOfOpenerToken >= 0 && children.length > indexOfOpenerToken + 1); return children[indexOfOpenerToken + 1]; } @@ -471,10 +470,10 @@ module ts.SignatureHelp { * or the one with the most parameters. */ function selectBestInvalidOverloadIndex(candidates: Signature[], argumentCount: number): number { - var maxParamsSignatureIndex = -1; - var maxParams = -1; - for (var i = 0; i < candidates.length; i++) { - var candidate = candidates[i]; + let maxParamsSignatureIndex = -1; + let maxParams = -1; + for (let i = 0; i < candidates.length; i++) { + let candidate = candidates[i]; if (candidate.hasRestParameter || candidate.parameters.length >= argumentCount) { return i; @@ -490,17 +489,17 @@ module ts.SignatureHelp { } function createSignatureHelpItems(candidates: Signature[], bestSignature: Signature, argumentListInfo: ArgumentListInfo): SignatureHelpItems { - var applicableSpan = argumentListInfo.argumentsSpan; - var isTypeParameterList = argumentListInfo.kind === ArgumentListKind.TypeArguments; + let applicableSpan = argumentListInfo.argumentsSpan; + let isTypeParameterList = argumentListInfo.kind === ArgumentListKind.TypeArguments; - var invocation = argumentListInfo.invocation; - var callTarget = getInvokedExpression(invocation) - var callTargetSymbol = typeInfoResolver.getSymbolAtLocation(callTarget); - var callTargetDisplayParts = callTargetSymbol && symbolToDisplayParts(typeInfoResolver, callTargetSymbol, /*enclosingDeclaration*/ undefined, /*meaning*/ undefined); - var items: SignatureHelpItem[] = map(candidates, candidateSignature => { - var signatureHelpParameters: SignatureHelpParameter[]; - var prefixDisplayParts: SymbolDisplayPart[] = []; - var suffixDisplayParts: SymbolDisplayPart[] = []; + let invocation = argumentListInfo.invocation; + let callTarget = getInvokedExpression(invocation) + let callTargetSymbol = typeInfoResolver.getSymbolAtLocation(callTarget); + let callTargetDisplayParts = callTargetSymbol && symbolToDisplayParts(typeInfoResolver, callTargetSymbol, /*enclosingDeclaration*/ undefined, /*meaning*/ undefined); + let items: SignatureHelpItem[] = map(candidates, candidateSignature => { + let signatureHelpParameters: SignatureHelpParameter[]; + let prefixDisplayParts: SymbolDisplayPart[] = []; + let suffixDisplayParts: SymbolDisplayPart[] = []; if (callTargetDisplayParts) { prefixDisplayParts.push.apply(prefixDisplayParts, callTargetDisplayParts); @@ -508,25 +507,25 @@ module ts.SignatureHelp { if (isTypeParameterList) { prefixDisplayParts.push(punctuationPart(SyntaxKind.LessThanToken)); - var typeParameters = candidateSignature.typeParameters; + let typeParameters = candidateSignature.typeParameters; signatureHelpParameters = typeParameters && typeParameters.length > 0 ? map(typeParameters, createSignatureHelpParameterForTypeParameter) : emptyArray; suffixDisplayParts.push(punctuationPart(SyntaxKind.GreaterThanToken)); - var parameterParts = mapToDisplayParts(writer => + let parameterParts = mapToDisplayParts(writer => typeInfoResolver.getSymbolDisplayBuilder().buildDisplayForParametersAndDelimiters(candidateSignature.parameters, writer, invocation)); suffixDisplayParts.push.apply(suffixDisplayParts, parameterParts); } else { - var typeParameterParts = mapToDisplayParts(writer => + let typeParameterParts = mapToDisplayParts(writer => typeInfoResolver.getSymbolDisplayBuilder().buildDisplayForTypeParametersAndDelimiters(candidateSignature.typeParameters, writer, invocation)); prefixDisplayParts.push.apply(prefixDisplayParts, typeParameterParts); prefixDisplayParts.push(punctuationPart(SyntaxKind.OpenParenToken)); - var parameters = candidateSignature.parameters; + let parameters = candidateSignature.parameters; signatureHelpParameters = parameters.length > 0 ? map(parameters, createSignatureHelpParameterForParameter) : emptyArray; suffixDisplayParts.push(punctuationPart(SyntaxKind.CloseParenToken)); } - var returnTypeParts = mapToDisplayParts(writer => + let returnTypeParts = mapToDisplayParts(writer => typeInfoResolver.getSymbolDisplayBuilder().buildReturnTypeDisplay(candidateSignature, writer, invocation)); suffixDisplayParts.push.apply(suffixDisplayParts, returnTypeParts); @@ -540,12 +539,12 @@ module ts.SignatureHelp { }; }); - var argumentIndex = argumentListInfo.argumentIndex; + let argumentIndex = argumentListInfo.argumentIndex; // argumentCount is the *apparent* number of arguments. - var argumentCount = argumentListInfo.argumentCount; + let argumentCount = argumentListInfo.argumentCount; - var selectedItemIndex = candidates.indexOf(bestSignature); + let selectedItemIndex = candidates.indexOf(bestSignature); if (selectedItemIndex < 0) { selectedItemIndex = selectBestInvalidOverloadIndex(candidates, argumentCount); } @@ -561,10 +560,10 @@ module ts.SignatureHelp { }; function createSignatureHelpParameterForParameter(parameter: Symbol): SignatureHelpParameter { - var displayParts = mapToDisplayParts(writer => + let displayParts = mapToDisplayParts(writer => typeInfoResolver.getSymbolDisplayBuilder().buildParameterDisplay(parameter, writer, invocation)); - var isOptional = hasQuestionToken(parameter.valueDeclaration); + let isOptional = hasQuestionToken(parameter.valueDeclaration); return { name: parameter.name, @@ -575,7 +574,7 @@ module ts.SignatureHelp { } function createSignatureHelpParameterForTypeParameter(typeParameter: TypeParameter): SignatureHelpParameter { - var displayParts = mapToDisplayParts(writer => + let displayParts = mapToDisplayParts(writer => typeInfoResolver.getSymbolDisplayBuilder().buildTypeParameterDisplay(typeParameter, writer, invocation)); return { diff --git a/src/services/utilities.ts b/src/services/utilities.ts index f2403217c24..452395f454a 100644 --- a/src/services/utilities.ts +++ b/src/services/utilities.ts @@ -7,18 +7,18 @@ module ts { export function getEndLinePosition(line: number, sourceFile: SourceFile): number { Debug.assert(line >= 0); - var lineStarts = sourceFile.getLineStarts(); + let lineStarts = sourceFile.getLineStarts(); - var lineIndex = line; + let lineIndex = line; if (lineIndex + 1 === lineStarts.length) { // last line - return EOF return sourceFile.text.length - 1; } else { // current line start - var start = lineStarts[lineIndex]; + let start = lineStarts[lineIndex]; // take the start position of the next line -1 = it should be some line break - var pos = lineStarts[lineIndex + 1] - 1; + let pos = lineStarts[lineIndex + 1] - 1; Debug.assert(isLineBreak(sourceFile.text.charCodeAt(pos))); // walk backwards skipping line breaks, stop the the beginning of current line. // i.e: @@ -32,8 +32,8 @@ module ts { } export function getLineStartPositionForPosition(position: number, sourceFile: SourceFile): number { - var lineStarts = sourceFile.getLineStarts(); - var line = sourceFile.getLineAndCharacterOfPosition(position).line; + let lineStarts = sourceFile.getLineStarts(); + let line = sourceFile.getLineAndCharacterOfPosition(position).line; return lineStarts[line]; } @@ -54,13 +54,13 @@ module ts { } export function startEndOverlapsWithStartEnd(start1: number, end1: number, start2: number, end2: number) { - var start = Math.max(start1, start2); - var end = Math.min(end1, end2); + let start = Math.max(start1, start2); + let end = Math.min(end1, end2); return start < end; } export function findListItemInfo(node: Node): ListItemInfo { - var list = findContainingList(node); + let list = findContainingList(node); // It is possible at this point for syntaxList to be undefined, either if // node.parent had no list child, or if none of its list children contained @@ -70,8 +70,8 @@ module ts { return undefined; } - var children = list.getChildren(); - var listItemIndex = indexOf(children, node); + let children = list.getChildren(); + let listItemIndex = indexOf(children, node); return { listItemIndex, @@ -88,7 +88,7 @@ module ts { // be parented by the container of the SyntaxList, not the SyntaxList itself. // In order to find the list item index, we first need to locate SyntaxList itself and then search // for the position of the relevant node (or comma). - var syntaxList = forEach(node.parent.getChildren(), c => { + let syntaxList = forEach(node.parent.getChildren(), c => { // find syntax list that covers the span of the node if (c.kind === SyntaxKind.SyntaxList && c.pos <= node.pos && c.end >= node.end) { return c; @@ -126,7 +126,7 @@ module ts { /** Get the token whose text contains the position */ function getTokenAtPositionWorker(sourceFile: SourceFile, position: number, allowPositionInLeadingTrivia: boolean, includeItemAtEndPosition: (n: Node) => boolean): Node { - var current: Node = sourceFile; + let current: Node = sourceFile; outer: while (true) { if (isToken(current)) { // exit early @@ -134,17 +134,17 @@ module ts { } // find the child that contains 'position' - for (var i = 0, n = current.getChildCount(sourceFile); i < n; i++) { - var child = current.getChildAt(i); - var start = allowPositionInLeadingTrivia ? child.getFullStart() : child.getStart(sourceFile); + for (let i = 0, n = current.getChildCount(sourceFile); i < n; i++) { + let child = current.getChildAt(i); + let start = allowPositionInLeadingTrivia ? child.getFullStart() : child.getStart(sourceFile); if (start <= position) { - var end = child.getEnd(); + let end = child.getEnd(); if (position < end || (position === end && child.kind === SyntaxKind.EndOfFileToken)) { current = child; continue outer; } else if (includeItemAtEndPosition && end === position) { - var previousToken = findPrecedingToken(position, sourceFile, child); + let previousToken = findPrecedingToken(position, sourceFile, child); if (previousToken && includeItemAtEndPosition(previousToken)) { return previousToken; } @@ -166,7 +166,7 @@ module ts { export function findTokenOnLeftOfPosition(file: SourceFile, position: number): Node { // Ideally, getTokenAtPosition should return a token. However, it is currently // broken, so we do a check to make sure the result was indeed a token. - var tokenAtPosition = getTokenAtPosition(file, position); + let tokenAtPosition = getTokenAtPosition(file, position); if (isToken(tokenAtPosition) && position > tokenAtPosition.getStart(file) && position < tokenAtPosition.getEnd()) { return tokenAtPosition; } @@ -183,10 +183,9 @@ module ts { return n; } - var children = n.getChildren(); - for (var i = 0, len = children.length; i < len; ++i) { - var child = children[i]; - var shouldDiveInChildNode = + let children = n.getChildren(); + for (let child of children) { + let shouldDiveInChildNode = // previous token is enclosed somewhere in the child (child.pos <= previousToken.pos && child.end > previousToken.end) || // previous token ends exactly at the beginning of child @@ -209,8 +208,8 @@ module ts { return n; } - var children = n.getChildren(); - var candidate = findRightmostChildNodeWithTokens(children, /*exclusiveStartPosition*/ children.length); + let children = n.getChildren(); + let candidate = findRightmostChildNodeWithTokens(children, /*exclusiveStartPosition*/ children.length); return candidate && findRightmostToken(candidate); } @@ -220,14 +219,14 @@ module ts { return n; } - var children = n.getChildren(); - for (var i = 0, len = children.length; i < len; ++i) { - var child = children[i]; + let children = n.getChildren(); + for (let i = 0, len = children.length; i < len; i++) { + let child = children[i]; if (nodeHasTokens(child)) { if (position <= child.end) { if (child.getStart(sourceFile) >= position) { // actual start of the node is past the position - previous token should be at the end of previous child - var candidate = findRightmostChildNodeWithTokens(children, /*exclusiveStartPosition*/ i); + let candidate = findRightmostChildNodeWithTokens(children, /*exclusiveStartPosition*/ i); return candidate && findRightmostToken(candidate) } else { @@ -245,14 +244,14 @@ module ts { // Try to find the rightmost token in the file without filtering. // Namely we are skipping the check: 'position < node.end' if (children.length) { - var candidate = findRightmostChildNodeWithTokens(children, /*exclusiveStartPosition*/ children.length); + let candidate = findRightmostChildNodeWithTokens(children, /*exclusiveStartPosition*/ children.length); return candidate && findRightmostToken(candidate); } } /// finds last node that is considered as candidate for search (isCandidate(node) === true) starting from 'exclusiveStartPosition' function findRightmostChildNodeWithTokens(children: Node[], exclusiveStartPosition: number): Node { - for (var i = exclusiveStartPosition - 1; i >= 0; --i) { + for (let i = exclusiveStartPosition - 1; i >= 0; --i) { if (nodeHasTokens(children[i])) { return children[i]; } @@ -267,8 +266,8 @@ module ts { } export function getNodeModifiers(node: Node): string { - var flags = getCombinedNodeFlags(node); - var result: string[] = []; + let flags = getCombinedNodeFlags(node); + let result: string[] = []; if (flags & NodeFlags.Private) result.push(ScriptElementKindModifier.privateMemberModifier); if (flags & NodeFlags.Protected) result.push(ScriptElementKindModifier.protectedMemberModifier); @@ -318,7 +317,7 @@ module ts { } export function compareDataObjects(dst: any, src: any): boolean { - for (var e in dst) { + for (let e in dst) { if (typeof dst[e] === "object") { if (!compareDataObjects(dst[e], src[e])) { return false; @@ -340,11 +339,11 @@ module ts { return symbol.declarations && symbol.declarations.length > 0 && symbol.declarations[0].kind === SyntaxKind.Parameter; } - var displayPartWriter = getDisplayPartWriter(); + let displayPartWriter = getDisplayPartWriter(); function getDisplayPartWriter(): DisplayPartsSymbolWriter { - var displayParts: SymbolDisplayPart[]; - var lineStart: boolean; - var indent: number; + let displayParts: SymbolDisplayPart[]; + let lineStart: boolean; + let indent: number; resetWriter(); return { @@ -365,7 +364,7 @@ module ts { function writeIndent() { if (lineStart) { - var indentString = getIndentString(indent); + let indentString = getIndentString(indent); if (indentString) { displayParts.push(displayPart(indentString, SymbolDisplayPartKind.space)); } @@ -399,7 +398,7 @@ module ts { return displayPart(text, displayPartKind(symbol), symbol); function displayPartKind(symbol: Symbol): SymbolDisplayPartKind { - var flags = symbol.flags; + let flags = symbol.flags; if (flags & SymbolFlags.Variable) { return isFirstDeclarationOfSymbolParameter(symbol) ? SymbolDisplayPartKind.parameterName : SymbolDisplayPartKind.localName; @@ -456,7 +455,7 @@ module ts { export function mapToDisplayParts(writeDisplayParts: (writer: DisplayPartsSymbolWriter) => void): SymbolDisplayPart[] { writeDisplayParts(displayPartWriter); - var result = displayPartWriter.displayParts(); + let result = displayPartWriter.displayParts(); displayPartWriter.clear(); return result; } diff --git a/tests/baselines/reference/APISample_compile.js b/tests/baselines/reference/APISample_compile.js index abe0700f66b..b373a0275b2 100644 --- a/tests/baselines/reference/APISample_compile.js +++ b/tests/baselines/reference/APISample_compile.js @@ -1238,8 +1238,6 @@ declare module "typescript" { target?: ScriptTarget; version?: boolean; watch?: boolean; - stripInternal?: boolean; - preserveNewLines?: boolean; [option: string]: string | number | boolean; } const enum ModuleKind { @@ -1481,7 +1479,7 @@ declare module "typescript" { } declare module "typescript" { /** The version of the TypeScript compiler release */ - var version: string; + let version: string; function createCompilerHost(options: CompilerOptions): CompilerHost; function getPreEmitDiagnostics(program: Program): Diagnostic[]; function flattenDiagnosticMessageText(messageText: string | DiagnosticMessageChain, newLine: string): string; @@ -1489,7 +1487,7 @@ declare module "typescript" { } declare module "typescript" { /** The version of the language service API */ - var servicesVersion: string; + let servicesVersion: string; interface Node { getSourceFile(): SourceFile; getChildCount(sourceFile?: SourceFile): number; @@ -1976,7 +1974,7 @@ declare module "typescript" { throwIfCancellationRequested(): void; } function createLanguageServiceSourceFile(fileName: string, scriptSnapshot: IScriptSnapshot, scriptTarget: ScriptTarget, version: string, setNodeParents: boolean): SourceFile; - var disableIncrementalParsing: boolean; + let disableIncrementalParsing: boolean; function updateLanguageServiceSourceFile(sourceFile: SourceFile, scriptSnapshot: IScriptSnapshot, version: string, textChangeRange: TextChangeRange, aggressiveChecks?: boolean): SourceFile; function createDocumentRegistry(): DocumentRegistry; function preProcessFile(sourceText: string, readImportFiles?: boolean): PreProcessedFileInfo; diff --git a/tests/baselines/reference/APISample_compile.types b/tests/baselines/reference/APISample_compile.types index 088424863e8..12ef0b91154 100644 --- a/tests/baselines/reference/APISample_compile.types +++ b/tests/baselines/reference/APISample_compile.types @@ -3951,12 +3951,6 @@ declare module "typescript" { watch?: boolean; >watch : boolean - stripInternal?: boolean; ->stripInternal : boolean - - preserveNewLines?: boolean; ->preserveNewLines : boolean - [option: string]: string | number | boolean; >option : string } @@ -4740,7 +4734,7 @@ declare module "typescript" { } declare module "typescript" { /** The version of the TypeScript compiler release */ - var version: string; + let version: string; >version : string function createCompilerHost(options: CompilerOptions): CompilerHost; @@ -4772,7 +4766,7 @@ declare module "typescript" { } declare module "typescript" { /** The version of the language service API */ - var servicesVersion: string; + let servicesVersion: string; >servicesVersion : string interface Node { @@ -6122,7 +6116,7 @@ declare module "typescript" { >setNodeParents : boolean >SourceFile : SourceFile - var disableIncrementalParsing: boolean; + let disableIncrementalParsing: boolean; >disableIncrementalParsing : boolean function updateLanguageServiceSourceFile(sourceFile: SourceFile, scriptSnapshot: IScriptSnapshot, version: string, textChangeRange: TextChangeRange, aggressiveChecks?: boolean): SourceFile; diff --git a/tests/baselines/reference/APISample_linter.js b/tests/baselines/reference/APISample_linter.js index f24be65ecb9..1ef36b76474 100644 --- a/tests/baselines/reference/APISample_linter.js +++ b/tests/baselines/reference/APISample_linter.js @@ -1269,8 +1269,6 @@ declare module "typescript" { target?: ScriptTarget; version?: boolean; watch?: boolean; - stripInternal?: boolean; - preserveNewLines?: boolean; [option: string]: string | number | boolean; } const enum ModuleKind { @@ -1512,7 +1510,7 @@ declare module "typescript" { } declare module "typescript" { /** The version of the TypeScript compiler release */ - var version: string; + let version: string; function createCompilerHost(options: CompilerOptions): CompilerHost; function getPreEmitDiagnostics(program: Program): Diagnostic[]; function flattenDiagnosticMessageText(messageText: string | DiagnosticMessageChain, newLine: string): string; @@ -1520,7 +1518,7 @@ declare module "typescript" { } declare module "typescript" { /** The version of the language service API */ - var servicesVersion: string; + let servicesVersion: string; interface Node { getSourceFile(): SourceFile; getChildCount(sourceFile?: SourceFile): number; @@ -2007,7 +2005,7 @@ declare module "typescript" { throwIfCancellationRequested(): void; } function createLanguageServiceSourceFile(fileName: string, scriptSnapshot: IScriptSnapshot, scriptTarget: ScriptTarget, version: string, setNodeParents: boolean): SourceFile; - var disableIncrementalParsing: boolean; + let disableIncrementalParsing: boolean; function updateLanguageServiceSourceFile(sourceFile: SourceFile, scriptSnapshot: IScriptSnapshot, version: string, textChangeRange: TextChangeRange, aggressiveChecks?: boolean): SourceFile; function createDocumentRegistry(): DocumentRegistry; function preProcessFile(sourceText: string, readImportFiles?: boolean): PreProcessedFileInfo; diff --git a/tests/baselines/reference/APISample_linter.types b/tests/baselines/reference/APISample_linter.types index cafe25ed5bc..b7d44b93580 100644 --- a/tests/baselines/reference/APISample_linter.types +++ b/tests/baselines/reference/APISample_linter.types @@ -4097,12 +4097,6 @@ declare module "typescript" { watch?: boolean; >watch : boolean - stripInternal?: boolean; ->stripInternal : boolean - - preserveNewLines?: boolean; ->preserveNewLines : boolean - [option: string]: string | number | boolean; >option : string } @@ -4886,7 +4880,7 @@ declare module "typescript" { } declare module "typescript" { /** The version of the TypeScript compiler release */ - var version: string; + let version: string; >version : string function createCompilerHost(options: CompilerOptions): CompilerHost; @@ -4918,7 +4912,7 @@ declare module "typescript" { } declare module "typescript" { /** The version of the language service API */ - var servicesVersion: string; + let servicesVersion: string; >servicesVersion : string interface Node { @@ -6268,7 +6262,7 @@ declare module "typescript" { >setNodeParents : boolean >SourceFile : SourceFile - var disableIncrementalParsing: boolean; + let disableIncrementalParsing: boolean; >disableIncrementalParsing : boolean function updateLanguageServiceSourceFile(sourceFile: SourceFile, scriptSnapshot: IScriptSnapshot, version: string, textChangeRange: TextChangeRange, aggressiveChecks?: boolean): SourceFile; diff --git a/tests/baselines/reference/APISample_transform.js b/tests/baselines/reference/APISample_transform.js index 2ce87d5c9ef..5db1984f5f7 100644 --- a/tests/baselines/reference/APISample_transform.js +++ b/tests/baselines/reference/APISample_transform.js @@ -1270,8 +1270,6 @@ declare module "typescript" { target?: ScriptTarget; version?: boolean; watch?: boolean; - stripInternal?: boolean; - preserveNewLines?: boolean; [option: string]: string | number | boolean; } const enum ModuleKind { @@ -1513,7 +1511,7 @@ declare module "typescript" { } declare module "typescript" { /** The version of the TypeScript compiler release */ - var version: string; + let version: string; function createCompilerHost(options: CompilerOptions): CompilerHost; function getPreEmitDiagnostics(program: Program): Diagnostic[]; function flattenDiagnosticMessageText(messageText: string | DiagnosticMessageChain, newLine: string): string; @@ -1521,7 +1519,7 @@ declare module "typescript" { } declare module "typescript" { /** The version of the language service API */ - var servicesVersion: string; + let servicesVersion: string; interface Node { getSourceFile(): SourceFile; getChildCount(sourceFile?: SourceFile): number; @@ -2008,7 +2006,7 @@ declare module "typescript" { throwIfCancellationRequested(): void; } function createLanguageServiceSourceFile(fileName: string, scriptSnapshot: IScriptSnapshot, scriptTarget: ScriptTarget, version: string, setNodeParents: boolean): SourceFile; - var disableIncrementalParsing: boolean; + let disableIncrementalParsing: boolean; function updateLanguageServiceSourceFile(sourceFile: SourceFile, scriptSnapshot: IScriptSnapshot, version: string, textChangeRange: TextChangeRange, aggressiveChecks?: boolean): SourceFile; function createDocumentRegistry(): DocumentRegistry; function preProcessFile(sourceText: string, readImportFiles?: boolean): PreProcessedFileInfo; diff --git a/tests/baselines/reference/APISample_transform.types b/tests/baselines/reference/APISample_transform.types index afc61a39fdf..f12fb0d39d3 100644 --- a/tests/baselines/reference/APISample_transform.types +++ b/tests/baselines/reference/APISample_transform.types @@ -4047,12 +4047,6 @@ declare module "typescript" { watch?: boolean; >watch : boolean - stripInternal?: boolean; ->stripInternal : boolean - - preserveNewLines?: boolean; ->preserveNewLines : boolean - [option: string]: string | number | boolean; >option : string } @@ -4836,7 +4830,7 @@ declare module "typescript" { } declare module "typescript" { /** The version of the TypeScript compiler release */ - var version: string; + let version: string; >version : string function createCompilerHost(options: CompilerOptions): CompilerHost; @@ -4868,7 +4862,7 @@ declare module "typescript" { } declare module "typescript" { /** The version of the language service API */ - var servicesVersion: string; + let servicesVersion: string; >servicesVersion : string interface Node { @@ -6218,7 +6212,7 @@ declare module "typescript" { >setNodeParents : boolean >SourceFile : SourceFile - var disableIncrementalParsing: boolean; + let disableIncrementalParsing: boolean; >disableIncrementalParsing : boolean function updateLanguageServiceSourceFile(sourceFile: SourceFile, scriptSnapshot: IScriptSnapshot, version: string, textChangeRange: TextChangeRange, aggressiveChecks?: boolean): SourceFile; diff --git a/tests/baselines/reference/APISample_watcher.js b/tests/baselines/reference/APISample_watcher.js index b1124e6c64f..735bb7ba232 100644 --- a/tests/baselines/reference/APISample_watcher.js +++ b/tests/baselines/reference/APISample_watcher.js @@ -1307,8 +1307,6 @@ declare module "typescript" { target?: ScriptTarget; version?: boolean; watch?: boolean; - stripInternal?: boolean; - preserveNewLines?: boolean; [option: string]: string | number | boolean; } const enum ModuleKind { @@ -1550,7 +1548,7 @@ declare module "typescript" { } declare module "typescript" { /** The version of the TypeScript compiler release */ - var version: string; + let version: string; function createCompilerHost(options: CompilerOptions): CompilerHost; function getPreEmitDiagnostics(program: Program): Diagnostic[]; function flattenDiagnosticMessageText(messageText: string | DiagnosticMessageChain, newLine: string): string; @@ -1558,7 +1556,7 @@ declare module "typescript" { } declare module "typescript" { /** The version of the language service API */ - var servicesVersion: string; + let servicesVersion: string; interface Node { getSourceFile(): SourceFile; getChildCount(sourceFile?: SourceFile): number; @@ -2045,7 +2043,7 @@ declare module "typescript" { throwIfCancellationRequested(): void; } function createLanguageServiceSourceFile(fileName: string, scriptSnapshot: IScriptSnapshot, scriptTarget: ScriptTarget, version: string, setNodeParents: boolean): SourceFile; - var disableIncrementalParsing: boolean; + let disableIncrementalParsing: boolean; function updateLanguageServiceSourceFile(sourceFile: SourceFile, scriptSnapshot: IScriptSnapshot, version: string, textChangeRange: TextChangeRange, aggressiveChecks?: boolean): SourceFile; function createDocumentRegistry(): DocumentRegistry; function preProcessFile(sourceText: string, readImportFiles?: boolean): PreProcessedFileInfo; diff --git a/tests/baselines/reference/APISample_watcher.types b/tests/baselines/reference/APISample_watcher.types index 36958c9320d..bb2fe397c1a 100644 --- a/tests/baselines/reference/APISample_watcher.types +++ b/tests/baselines/reference/APISample_watcher.types @@ -4220,12 +4220,6 @@ declare module "typescript" { watch?: boolean; >watch : boolean - stripInternal?: boolean; ->stripInternal : boolean - - preserveNewLines?: boolean; ->preserveNewLines : boolean - [option: string]: string | number | boolean; >option : string } @@ -5009,7 +5003,7 @@ declare module "typescript" { } declare module "typescript" { /** The version of the TypeScript compiler release */ - var version: string; + let version: string; >version : string function createCompilerHost(options: CompilerOptions): CompilerHost; @@ -5041,7 +5035,7 @@ declare module "typescript" { } declare module "typescript" { /** The version of the language service API */ - var servicesVersion: string; + let servicesVersion: string; >servicesVersion : string interface Node { @@ -6391,7 +6385,7 @@ declare module "typescript" { >setNodeParents : boolean >SourceFile : SourceFile - var disableIncrementalParsing: boolean; + let disableIncrementalParsing: boolean; >disableIncrementalParsing : boolean function updateLanguageServiceSourceFile(sourceFile: SourceFile, scriptSnapshot: IScriptSnapshot, version: string, textChangeRange: TextChangeRange, aggressiveChecks?: boolean): SourceFile; diff --git a/tests/baselines/reference/letConstMatchingParameterNames.js b/tests/baselines/reference/letConstMatchingParameterNames.js new file mode 100644 index 00000000000..a11405b9f83 --- /dev/null +++ b/tests/baselines/reference/letConstMatchingParameterNames.js @@ -0,0 +1,28 @@ +//// [letConstMatchingParameterNames.ts] +let parent = true; +const parent2 = true; +declare function use(a: any); + +function a() { + + let parent = 1; + const parent2 = 2; + + function b(parent: string, parent2: number) { + use(parent); + use(parent2); + } +} + + +//// [letConstMatchingParameterNames.js] +var parent = true; +var parent2 = true; +function a() { + var _parent = 1; + var _parent2 = 2; + function b(parent, parent2) { + use(parent); + use(parent2); + } +} diff --git a/tests/baselines/reference/letConstMatchingParameterNames.types b/tests/baselines/reference/letConstMatchingParameterNames.types new file mode 100644 index 00000000000..66fccc637df --- /dev/null +++ b/tests/baselines/reference/letConstMatchingParameterNames.types @@ -0,0 +1,37 @@ +=== tests/cases/compiler/letConstMatchingParameterNames.ts === +let parent = true; +>parent : boolean + +const parent2 = true; +>parent2 : boolean + +declare function use(a: any); +>use : (a: any) => any +>a : any + +function a() { +>a : () => void + + let parent = 1; +>parent : number + + const parent2 = 2; +>parent2 : number + + function b(parent: string, parent2: number) { +>b : (parent: string, parent2: number) => void +>parent : string +>parent2 : number + + use(parent); +>use(parent) : any +>use : (a: any) => any +>parent : string + + use(parent2); +>use(parent2) : any +>use : (a: any) => any +>parent2 : number + } +} + diff --git a/tests/baselines/reference/letInNonStrictMode.js b/tests/baselines/reference/letInNonStrictMode.js new file mode 100644 index 00000000000..af21ce3281c --- /dev/null +++ b/tests/baselines/reference/letInNonStrictMode.js @@ -0,0 +1,11 @@ +//// [letInNonStrictMode.ts] +let [x] = [1]; +let {a: y} = {a: 1}; + +//// [letInNonStrictMode.js] +var x = ([ + 1 +])[0]; +var y = ({ + a: 1 +}).a; diff --git a/tests/baselines/reference/letInNonStrictMode.types b/tests/baselines/reference/letInNonStrictMode.types new file mode 100644 index 00000000000..4f2cbe4a703 --- /dev/null +++ b/tests/baselines/reference/letInNonStrictMode.types @@ -0,0 +1,11 @@ +=== tests/cases/compiler/letInNonStrictMode.ts === +let [x] = [1]; +>x : number +>[1] : [number] + +let {a: y} = {a: 1}; +>a : unknown +>y : number +>{a: 1} : { a: number; } +>a : number + diff --git a/tests/baselines/reference/shadowingViaLocalValueOrBindingElement.errors.txt b/tests/baselines/reference/shadowingViaLocalValueOrBindingElement.errors.txt new file mode 100644 index 00000000000..4fc1d47c383 --- /dev/null +++ b/tests/baselines/reference/shadowingViaLocalValueOrBindingElement.errors.txt @@ -0,0 +1,28 @@ +tests/cases/compiler/shadowingViaLocalValueOrBindingElement.ts(4,13): error TS2481: Cannot initialize outer scoped variable 'x' in the same scope as block scoped declaration 'x'. +tests/cases/compiler/shadowingViaLocalValueOrBindingElement.ts(5,15): error TS2481: Cannot initialize outer scoped variable 'x' in the same scope as block scoped declaration 'x'. +tests/cases/compiler/shadowingViaLocalValueOrBindingElement.ts(6,18): error TS2481: Cannot initialize outer scoped variable 'x' in the same scope as block scoped declaration 'x'. +tests/cases/compiler/shadowingViaLocalValueOrBindingElement.ts(7,15): error TS2481: Cannot initialize outer scoped variable 'x' in the same scope as block scoped declaration 'x'. +tests/cases/compiler/shadowingViaLocalValueOrBindingElement.ts(8,18): error TS2481: Cannot initialize outer scoped variable 'x' in the same scope as block scoped declaration 'x'. + + +==== tests/cases/compiler/shadowingViaLocalValueOrBindingElement.ts (5 errors) ==== + if (true) { + let x; + if (true) { + var x = 0; // Error + ~ +!!! error TS2481: Cannot initialize outer scoped variable 'x' in the same scope as block scoped declaration 'x'. + var { x = 0 } = { x: 0 }; // Error + ~ +!!! error TS2481: Cannot initialize outer scoped variable 'x' in the same scope as block scoped declaration 'x'. + var { x: x = 0 } = { x: 0 }; // Error + ~ +!!! error TS2481: Cannot initialize outer scoped variable 'x' in the same scope as block scoped declaration 'x'. + var { x } = { x: 0 }; // Error + ~ +!!! error TS2481: Cannot initialize outer scoped variable 'x' in the same scope as block scoped declaration 'x'. + var { x: x } = { x: 0 }; // Error + ~ +!!! error TS2481: Cannot initialize outer scoped variable 'x' in the same scope as block scoped declaration 'x'. + } + } \ No newline at end of file diff --git a/tests/baselines/reference/shadowingViaLocalValueOrBindingElement.js b/tests/baselines/reference/shadowingViaLocalValueOrBindingElement.js new file mode 100644 index 00000000000..76c4a7ac3a6 --- /dev/null +++ b/tests/baselines/reference/shadowingViaLocalValueOrBindingElement.js @@ -0,0 +1,31 @@ +//// [shadowingViaLocalValueOrBindingElement.ts] +if (true) { + let x; + if (true) { + var x = 0; // Error + var { x = 0 } = { x: 0 }; // Error + var { x: x = 0 } = { x: 0 }; // Error + var { x } = { x: 0 }; // Error + var { x: x } = { x: 0 }; // Error + } +} + +//// [shadowingViaLocalValueOrBindingElement.js] +if (true) { + var _x; + if (true) { + var x = 0; // Error + var _a = ({ + _x: 0 + }).x, x = _a === void 0 ? 0 : _a; // Error + var _b = ({ + _x: 0 + }).x, x = _b === void 0 ? 0 : _b; // Error + var x = ({ + _x: 0 + }).x; // Error + var x = ({ + _x: 0 + }).x; // Error + } +} diff --git a/tests/baselines/reference/taggedTemplateStringsTypeArgumentInference.js b/tests/baselines/reference/taggedTemplateStringsTypeArgumentInference.js index 663969caefc..5b128221aa6 100644 --- a/tests/baselines/reference/taggedTemplateStringsTypeArgumentInference.js +++ b/tests/baselines/reference/taggedTemplateStringsTypeArgumentInference.js @@ -145,23 +145,16 @@ function someGenerics4(strs, n, f) { // 2 parameter generic tag with argument 2 of type parameter type and argument 1 of function type whose parameter is of type parameter type function someGenerics5(strs, n, f) { } -(_n = ["", " ", ""], _n.raw = ["", " ", ""], someGenerics5(_n, 4, function () { +(_o = ["", " ", ""], _o.raw = ["", " ", ""], someGenerics5(_o, 4, function () { return null; })); -(_o = ["", "", ""], _o.raw = ["", "", ""], someGenerics5(_o, '', function () { +(_p = ["", "", ""], _p.raw = ["", "", ""], someGenerics5(_p, '', function () { return 3; })); -(_p = ["", "", ""], _p.raw = ["", "", ""], someGenerics5(_p, null, null)); +(_q = ["", "", ""], _q.raw = ["", "", ""], someGenerics5(_q, null, null)); // Generic tag with multiple arguments of function types that each have parameters of the same generic type function someGenerics6(strs, a, b, c) { } -(_q = ["", "", "", ""], _q.raw = ["", "", "", ""], someGenerics6(_q, function (n) { - return n; -}, function (n) { - return n; -}, function (n) { - return n; -})); (_r = ["", "", "", ""], _r.raw = ["", "", "", ""], someGenerics6(_r, function (n) { return n; }, function (n) { @@ -176,16 +169,16 @@ function someGenerics6(strs, a, b, c) { }, function (n) { return n; })); -// Generic tag with multiple arguments of function types that each have parameters of different generic type -function someGenerics7(strs, a, b, c) { -} -(_t = ["", "", "", ""], _t.raw = ["", "", "", ""], someGenerics7(_t, function (n) { +(_t = ["", "", "", ""], _t.raw = ["", "", "", ""], someGenerics6(_t, function (n) { return n; }, function (n) { return n; }, function (n) { return n; })); +// Generic tag with multiple arguments of function types that each have parameters of different generic type +function someGenerics7(strs, a, b, c) { +} (_u = ["", "", "", ""], _u.raw = ["", "", "", ""], someGenerics7(_u, function (n) { return n; }, function (n) { @@ -200,19 +193,26 @@ function someGenerics7(strs, a, b, c) { }, function (n) { return n; })); +(_w = ["", "", "", ""], _w.raw = ["", "", "", ""], someGenerics7(_w, function (n) { + return n; +}, function (n) { + return n; +}, function (n) { + return n; +})); // Generic tag with argument of generic function type function someGenerics8(strs, n) { return n; } -var x = (_w = ["", ""], _w.raw = ["", ""], someGenerics8(_w, someGenerics7)); -(_x = ["", "", "", ""], _x.raw = ["", "", "", ""], x(_x, null, null, null)); +var x = (_x = ["", ""], _x.raw = ["", ""], someGenerics8(_x, someGenerics7)); +(_y = ["", "", "", ""], _y.raw = ["", "", "", ""], x(_y, null, null, null)); // Generic tag with multiple parameters of generic type passed arguments with no best common type function someGenerics9(strs, a, b, c) { return null; } -var a9a = (_y = ["", "", "", ""], _y.raw = ["", "", "", ""], someGenerics9(_y, '', 0, [])); +var a9a = (_z = ["", "", "", ""], _z.raw = ["", "", "", ""], someGenerics9(_z, '', 0, [])); var a9a; -var a9e = (_z = ["", "", "", ""], _z.raw = ["", "", "", ""], someGenerics9(_z, undefined, { +var a9e = (_0 = ["", "", "", ""], _0.raw = ["", "", "", ""], someGenerics9(_0, undefined, { x: 6, z: new Date() }, { @@ -221,7 +221,7 @@ var a9e = (_z = ["", "", "", ""], _z.raw = ["", "", "", ""], someGenerics9(_z, u })); var a9e; // Generic tag with multiple parameters of generic type passed arguments with a single best common type -var a9d = (_0 = ["", "", "", ""], _0.raw = ["", "", "", ""], someGenerics9(_0, { +var a9d = (_1 = ["", "", "", ""], _1.raw = ["", "", "", ""], someGenerics9(_1, { x: 3 }, { x: 6 @@ -231,9 +231,9 @@ var a9d = (_0 = ["", "", "", ""], _0.raw = ["", "", "", ""], someGenerics9(_0, { var a9d; // Generic tag with multiple parameters of generic type where one argument is of type 'any' var anyVar; -var a = (_1 = ["", "", "", ""], _1.raw = ["", "", "", ""], someGenerics9(_1, 7, anyVar, 4)); +var a = (_2 = ["", "", "", ""], _2.raw = ["", "", "", ""], someGenerics9(_2, 7, anyVar, 4)); var a; // Generic tag with multiple parameters of generic type where one argument is [] and the other is not 'any' -var arr = (_2 = ["", "", "", ""], _2.raw = ["", "", "", ""], someGenerics9(_2, [], null, undefined)); +var arr = (_3 = ["", "", "", ""], _3.raw = ["", "", "", ""], someGenerics9(_3, [], null, undefined)); var arr; -var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2; +var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3; diff --git a/tests/baselines/reference/taggedTemplateStringsWithOverloadResolution3.js b/tests/baselines/reference/taggedTemplateStringsWithOverloadResolution3.js index 1840fed234b..24b0b16ea35 100644 --- a/tests/baselines/reference/taggedTemplateStringsWithOverloadResolution3.js +++ b/tests/baselines/reference/taggedTemplateStringsWithOverloadResolution3.js @@ -103,26 +103,26 @@ var s = (_k = ["", ""], _k.raw = ["", ""], fn3(_k, 4)); var s = (_l = ["", "", "", ""], _l.raw = ["", "", "", ""], fn3(_l, '', '', '')); var n = (_m = ["", "", "", ""], _m.raw = ["", "", "", ""], fn3(_m, '', '', 3)); // Generic overloads with differing arity tagging with argument count that doesn't match any overload -(_n = [""], _n.raw = [""], fn3(_n)); // Error +(_o = [""], _o.raw = [""], fn3(_o)); // Error function fn4() { } // Generic overloads with constraints tagged with types that satisfy the constraints -(_o = ["", "", ""], _o.raw = ["", "", ""], fn4(_o, '', 3)); -(_p = ["", "", ""], _p.raw = ["", "", ""], fn4(_p, 3, '')); -(_q = ["", "", ""], _q.raw = ["", "", ""], fn4(_q, 3, undefined)); -(_r = ["", "", ""], _r.raw = ["", "", ""], fn4(_r, '', null)); +(_p = ["", "", ""], _p.raw = ["", "", ""], fn4(_p, '', 3)); +(_q = ["", "", ""], _q.raw = ["", "", ""], fn4(_q, 3, '')); +(_r = ["", "", ""], _r.raw = ["", "", ""], fn4(_r, 3, undefined)); +(_s = ["", "", ""], _s.raw = ["", "", ""], fn4(_s, '', null)); // Generic overloads with constraints called with type arguments that do not satisfy the constraints -(_s = ["", "", ""], _s.raw = ["", "", ""], fn4(_s, null, null)); // Error +(_t = ["", "", ""], _t.raw = ["", "", ""], fn4(_t, null, null)); // Error // Generic overloads with constraints called without type arguments but with types that do not satisfy the constraints -(_t = ["", "", ""], _t.raw = ["", "", ""], fn4(_t, true, null)); -(_u = ["", "", ""], _u.raw = ["", "", ""], fn4(_u, null, true)); +(_u = ["", "", ""], _u.raw = ["", "", ""], fn4(_u, true, null)); +(_v = ["", "", ""], _v.raw = ["", "", ""], fn4(_v, null, true)); function fn5() { return undefined; } -(_v = ["", ""], _v.raw = ["", ""], fn5(_v, function (n) { +(_w = ["", ""], _w.raw = ["", ""], fn5(_w, function (n) { return n.toFixed(); })); // will error; 'n' should have type 'string'. -(_w = ["", ""], _w.raw = ["", ""], fn5(_w, function (n) { +(_x = ["", ""], _x.raw = ["", ""], fn5(_x, function (n) { return n.substr(0); })); -var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w; +var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x; diff --git a/tests/cases/compiler/letConstMatchingParameterNames.ts b/tests/cases/compiler/letConstMatchingParameterNames.ts new file mode 100644 index 00000000000..e749912ad82 --- /dev/null +++ b/tests/cases/compiler/letConstMatchingParameterNames.ts @@ -0,0 +1,15 @@ +// @target: es5 +let parent = true; +const parent2 = true; +declare function use(a: any); + +function a() { + + let parent = 1; + const parent2 = 2; + + function b(parent: string, parent2: number) { + use(parent); + use(parent2); + } +} diff --git a/tests/cases/compiler/letInNonStrictMode.ts b/tests/cases/compiler/letInNonStrictMode.ts new file mode 100644 index 00000000000..576246e76a1 --- /dev/null +++ b/tests/cases/compiler/letInNonStrictMode.ts @@ -0,0 +1,2 @@ +let [x] = [1]; +let {a: y} = {a: 1}; \ No newline at end of file diff --git a/tests/cases/compiler/shadowingViaLocalValueOrBindingElement.ts b/tests/cases/compiler/shadowingViaLocalValueOrBindingElement.ts new file mode 100644 index 00000000000..a5d178e2e47 --- /dev/null +++ b/tests/cases/compiler/shadowingViaLocalValueOrBindingElement.ts @@ -0,0 +1,10 @@ +if (true) { + let x; + if (true) { + var x = 0; // Error + var { x = 0 } = { x: 0 }; // Error + var { x: x = 0 } = { x: 0 }; // Error + var { x } = { x: 0 }; // Error + var { x: x } = { x: 0 }; // Error + } +} \ No newline at end of file diff --git a/tests/cases/fourslash/navbar_exportDefault.ts b/tests/cases/fourslash/navbar_exportDefault.ts new file mode 100644 index 00000000000..a8fe854fa28 --- /dev/null +++ b/tests/cases/fourslash/navbar_exportDefault.ts @@ -0,0 +1,24 @@ +/// + +// @Filename: a.ts +//// {| "itemName": "default", "kind": "class", "parentName": "" |}export default class { } + +// @Filename: b.ts +//// {| "itemName": "C", "kind": "class", "parentName": "" |}export default class C { } + +// @Filename: c.ts +//// {| "itemName": "default", "kind": "function", "parentName": "" |}export default function { } + +// @Filename: d.ts +//// {| "itemName": "Func", "kind": "function", "parentName": "" |}export default function Func { } + +test.markers().forEach(marker => { + goTo.file(marker.fileName); + verify.getScriptLexicalStructureListContains( + marker.data.itemName, + marker.data.kind, + marker.fileName, + marker.data.parentName, + marker.data.isAdditionalRange, + marker.position); +}); \ No newline at end of file