diff --git a/cli/dts/lib.esnext.array.d.ts b/cli/dts/lib.esnext.array.d.ts new file mode 100644 index 0000000000..939edf6b85 --- /dev/null +++ b/cli/dts/lib.esnext.array.d.ts @@ -0,0 +1,120 @@ +/*! ***************************************************************************** +Copyright (c) Microsoft Corporation. All rights reserved. +Licensed under the Apache License, Version 2.0 (the "License"); you may not use +this file except in compliance with the License. You may obtain a copy of the +License at http://www.apache.org/licenses/LICENSE-2.0 + +THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED +WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, +MERCHANTABLITY OR NON-INFRINGEMENT. + +See the Apache Version 2.0 License for specific language governing permissions +and limitations under the License. +***************************************************************************** */ + +/// + +interface Array { + /** + * Access item by relative indexing. + * @param index index to access. + */ + at(index: number): T | undefined; +} + +interface ReadonlyArray { + /** + * Access item by relative indexing. + * @param index index to access. + */ + at(index: number): T | undefined; +} + +interface Int8Array { + /** + * Access item by relative indexing. + * @param index index to access. + */ + at(index: number): number | undefined; +} + +interface Uint8Array { + /** + * Access item by relative indexing. + * @param index index to access. + */ + at(index: number): number | undefined; +} + +interface Uint8ClampedArray { + /** + * Access item by relative indexing. + * @param index index to access. + */ + at(index: number): number | undefined; +} + +interface Int16Array { + /** + * Access item by relative indexing. + * @param index index to access. + */ + at(index: number): number | undefined; +} + +interface Uint16Array { + /** + * Access item by relative indexing. + * @param index index to access. + */ + at(index: number): number | undefined; +} + +interface Int32Array { + /** + * Access item by relative indexing. + * @param index index to access. + */ + at(index: number): number | undefined; +} + +interface Uint32Array { + /** + * Access item by relative indexing. + * @param index index to access. + */ + at(index: number): number | undefined; +} + +interface Float32Array { + /** + * Access item by relative indexing. + * @param index index to access. + */ + at(index: number): number | undefined; +} + +interface Float64Array { + /** + * Access item by relative indexing. + * @param index index to access. + */ + at(index: number): number | undefined; +} + +interface BigInt64Array { + /** + * Access item by relative indexing. + * @param index index to access. + */ + at(index: number): bigint | undefined; +} + +interface BigUint64Array { + /** + * Access item by relative indexing. + * @param index index to access. + */ + at(index: number): bigint | undefined; +} diff --git a/cli/dts/lib.esnext.d.ts b/cli/dts/lib.esnext.d.ts index f1a4c7e140..a71ac70e63 100644 --- a/cli/dts/lib.esnext.d.ts +++ b/cli/dts/lib.esnext.d.ts @@ -19,4 +19,6 @@ and limitations under the License. /// +/// /// +/// diff --git a/cli/dts/lib.esnext.string.d.ts b/cli/dts/lib.esnext.string.d.ts index 89b27e2fe9..aa3239dddc 100644 --- a/cli/dts/lib.esnext.string.d.ts +++ b/cli/dts/lib.esnext.string.d.ts @@ -13,23 +13,12 @@ See the Apache Version 2.0 License for specific language governing permissions and limitations under the License. ***************************************************************************** */ - - /// - interface String { - /** - * Replace all instances of a substring in a string, using a regular expression or search string. - * @param searchValue A string to search for. - * @param replaceValue A string containing the text to replace for every successful match of searchValue in this string. - */ - replaceAll(searchValue: string | RegExp, replaceValue: string): string; - - /** - * Replace all instances of a substring in a string, using a regular expression or search string. - * @param searchValue A string to search for. - * @param replacer A function that returns the replacement text. - */ - replaceAll(searchValue: string | RegExp, replacer: (substring: string, ...args: any[]) => string): string; + /** + * Access string by relative indexing. + * @param index index to access. + */ + at(index: number): string | undefined; } diff --git a/cli/dts/typescript.d.ts b/cli/dts/typescript.d.ts index b86a3a2997..0cae15013d 100644 --- a/cli/dts/typescript.d.ts +++ b/cli/dts/typescript.d.ts @@ -5205,6 +5205,7 @@ declare namespace ts { * writeFileCallback */ writeFile?(path: string, data: string, writeByteOrderMark?: boolean): void; + getCustomTransformers?: (project: string) => CustomTransformers | undefined; getModifiedTime(fileName: string): Date | undefined; setModifiedTime(fileName: string, date: Date): void; deleteFile(fileName: string): void; diff --git a/cli/tests/unit/esnext_test.ts b/cli/tests/unit/esnext_test.ts new file mode 100644 index 0000000000..558c678bc5 --- /dev/null +++ b/cli/tests/unit/esnext_test.ts @@ -0,0 +1,12 @@ +// Copyright 2018-2021 the Deno authors. All rights reserved. MIT license. +import { assertEquals, unitTest } from "./test_util.ts"; + +// TODO(@kitsonk) remove when we are no longer patching TypeScript to have +// these types available. + +unitTest(function typeCheckingEsNextArrayString() { + const a = "abcdef"; + assertEquals(a.at(-1), "f"); + const b = ["a", "b", "c", "d", "e", "f"]; + assertEquals(b.at(-1), "f"); +}); diff --git a/cli/tsc/00_typescript.js b/cli/tsc/00_typescript.js index ff2680036c..5b8d64c5f8 100644 --- a/cli/tsc/00_typescript.js +++ b/cli/tsc/00_typescript.js @@ -290,7 +290,7 @@ var ts; // The following is baselined as a literal template type without intervention /** The version of the TypeScript compiler release */ // eslint-disable-next-line @typescript-eslint/no-inferrable-types - ts.version = "4.3.2"; + ts.version = "4.3.5"; /* @internal */ var Comparison; (function (Comparison) { @@ -17515,56 +17515,43 @@ var ts; } return __assign(__assign({}, writer), { writeTrailingSemicolon: function () { pendingTrailingSemicolon = true; - }, - writeLiteral: function (s) { + }, writeLiteral: function (s) { commitPendingTrailingSemicolon(); writer.writeLiteral(s); - }, - writeStringLiteral: function (s) { + }, writeStringLiteral: function (s) { commitPendingTrailingSemicolon(); writer.writeStringLiteral(s); - }, - writeSymbol: function (s, sym) { + }, writeSymbol: function (s, sym) { commitPendingTrailingSemicolon(); writer.writeSymbol(s, sym); - }, - writePunctuation: function (s) { + }, writePunctuation: function (s) { commitPendingTrailingSemicolon(); writer.writePunctuation(s); - }, - writeKeyword: function (s) { + }, writeKeyword: function (s) { commitPendingTrailingSemicolon(); writer.writeKeyword(s); - }, - writeOperator: function (s) { + }, writeOperator: function (s) { commitPendingTrailingSemicolon(); writer.writeOperator(s); - }, - writeParameter: function (s) { + }, writeParameter: function (s) { commitPendingTrailingSemicolon(); writer.writeParameter(s); - }, - writeSpace: function (s) { + }, writeSpace: function (s) { commitPendingTrailingSemicolon(); writer.writeSpace(s); - }, - writeProperty: function (s) { + }, writeProperty: function (s) { commitPendingTrailingSemicolon(); writer.writeProperty(s); - }, - writeComment: function (s) { + }, writeComment: function (s) { commitPendingTrailingSemicolon(); writer.writeComment(s); - }, - writeLine: function () { + }, writeLine: function () { commitPendingTrailingSemicolon(); writer.writeLine(); - }, - increaseIndent: function () { + }, increaseIndent: function () { commitPendingTrailingSemicolon(); writer.increaseIndent(); - }, - decreaseIndent: function () { + }, decreaseIndent: function () { commitPendingTrailingSemicolon(); writer.decreaseIndent(); } }); @@ -29462,8 +29449,8 @@ var ts; visitNode(cbNode, node.typeExpression) || (typeof node.comment === "string" ? undefined : visitNodes(cbNode, cbNodes, node.comment)) : visitNode(cbNode, node.typeExpression) || - visitNode(cbNode, node.name)) || - (typeof node.comment === "string" ? undefined : visitNodes(cbNode, cbNodes, node.comment)); + visitNode(cbNode, node.name) || + (typeof node.comment === "string" ? undefined : visitNodes(cbNode, cbNodes, node.comment))); case 320 /* JSDocAuthorTag */: return visitNode(cbNode, node.tagName) || (typeof node.comment === "string" ? undefined : visitNodes(cbNode, cbNodes, node.comment)); @@ -37093,12 +37080,12 @@ var ts; ["es2021.promise", "lib.es2021.promise.d.ts"], ["es2021.string", "lib.es2021.string.d.ts"], ["es2021.weakref", "lib.es2021.weakref.d.ts"], - ["esnext.array", "lib.es2019.array.d.ts"], + ["esnext.array", "lib.esnext.array.d.ts"], ["esnext.symbol", "lib.es2019.symbol.d.ts"], ["esnext.asynciterable", "lib.es2018.asynciterable.d.ts"], ["esnext.intl", "lib.esnext.intl.d.ts"], ["esnext.bigint", "lib.es2020.bigint.d.ts"], - ["esnext.string", "lib.es2021.string.d.ts"], + ["esnext.string", "lib.esnext.string.d.ts"], ["esnext.promise", "lib.es2021.promise.d.ts"], ["esnext.weakref", "lib.es2021.weakref.d.ts"] ]; @@ -37577,6 +37564,8 @@ var ts; { name: "strict", type: "boolean", + // Though this affects semantic diagnostics, affectsSemanticDiagnostics is not set here + // The value of each strictFlag depends on own strictFlag value or this and never accessed directly. showInSimplifiedHelpView: true, category: ts.Diagnostics.Strict_Type_Checking_Options, description: ts.Diagnostics.Enable_all_strict_type_checking_options @@ -40498,9 +40487,7 @@ var ts; var preDirectoryResolutionCache = createPerDirectoryResolutionCache(currentDirectory, getCanonicalFileName, directoryToModuleNameMap || (directoryToModuleNameMap = createCacheWithRedirects(options))); moduleNameToDirectoryMap || (moduleNameToDirectoryMap = createCacheWithRedirects(options)); var packageJsonInfoCache = createPackageJsonInfoCache(currentDirectory, getCanonicalFileName); - return __assign(__assign(__assign({}, packageJsonInfoCache), preDirectoryResolutionCache), { getOrCreateCacheForModuleName: getOrCreateCacheForModuleName, - clear: clear, - update: update, getPackageJsonInfoCache: function () { return packageJsonInfoCache; } }); + return __assign(__assign(__assign({}, packageJsonInfoCache), preDirectoryResolutionCache), { getOrCreateCacheForModuleName: getOrCreateCacheForModuleName, clear: clear, update: update, getPackageJsonInfoCache: function () { return packageJsonInfoCache; } }); function clear() { preDirectoryResolutionCache.clear(); moduleNameToDirectoryMap.clear(); @@ -59363,8 +59350,7 @@ var ts; return type; } function maybeTypeParameterReference(node) { - return !(node.kind === 158 /* QualifiedName */ || - node.parent.kind === 174 /* TypeReference */ && node.parent.typeArguments && node === node.parent.typeName || + return !(node.parent.kind === 174 /* TypeReference */ && node.parent.typeArguments && node === node.parent.typeName || node.parent.kind === 196 /* ImportType */ && node.parent.typeArguments && node === node.parent.qualifier); } function isTypeParameterPossiblyReferenced(tp, node) { @@ -59392,7 +59378,10 @@ var ts; return true; case 166 /* MethodDeclaration */: case 165 /* MethodSignature */: - return (!node.type && !!node.body) || !!ts.forEachChild(node, containsReference); + return !node.type && !!node.body || + ts.some(node.typeParameters, containsReference) || + ts.some(node.parameters, containsReference) || + !!node.type && containsReference(node.type); } return !!ts.forEachChild(node, containsReference); } @@ -64775,12 +64764,14 @@ var ts; applyToReturnTypes(source, target, inferFromTypes); } function inferFromIndexTypes(source, target) { + // Inferences across mapped type index signatures are pretty much the same a inferences to homomorphic variables + var priority = (ts.getObjectFlags(source) & ts.getObjectFlags(target) & 32 /* Mapped */) ? 8 /* HomomorphicMappedType */ : 0; var targetStringIndexType = getIndexTypeOfType(target, 0 /* String */); if (targetStringIndexType) { var sourceIndexType = getIndexTypeOfType(source, 0 /* String */) || getImplicitIndexTypeOfType(source, 0 /* String */); if (sourceIndexType) { - inferFromTypes(sourceIndexType, targetStringIndexType); + inferWithPriority(sourceIndexType, targetStringIndexType, priority); } } var targetNumberIndexType = getIndexTypeOfType(target, 1 /* Number */); @@ -64789,7 +64780,7 @@ var ts; getIndexTypeOfType(source, 0 /* String */) || getImplicitIndexTypeOfType(source, 1 /* Number */); if (sourceIndexType) { - inferFromTypes(sourceIndexType, targetNumberIndexType); + inferWithPriority(sourceIndexType, targetNumberIndexType, priority); } } } @@ -86105,6 +86096,7 @@ var ts; case 120 /* PrivateKeyword */: case 121 /* ProtectedKeyword */: case 125 /* AbstractKeyword */: + case 156 /* OverrideKeyword */: case 84 /* ConstKeyword */: case 133 /* DeclareKeyword */: case 142 /* ReadonlyKeyword */: @@ -107297,11 +107289,21 @@ var ts; // JsxText will be written with its leading whitespace, so don't add more manually. return 0; } - else if (preserveSourceNewlines && siblingNodePositionsAreComparable(previousNode, nextNode)) { - return getEffectiveLines(function (includeComments) { return ts.getLinesBetweenRangeEndAndRangeStart(previousNode, nextNode, currentSourceFile, includeComments); }); - } - else if (!preserveSourceNewlines && !ts.nodeIsSynthesized(previousNode) && !ts.nodeIsSynthesized(nextNode)) { - return ts.rangeEndIsOnSameLineAsRangeStart(previousNode, nextNode, currentSourceFile) ? 0 : 1; + else if (!ts.nodeIsSynthesized(previousNode) && !ts.nodeIsSynthesized(nextNode)) { + if (preserveSourceNewlines && siblingNodePositionsAreComparable(previousNode, nextNode)) { + return getEffectiveLines(function (includeComments) { return ts.getLinesBetweenRangeEndAndRangeStart(previousNode, nextNode, currentSourceFile, includeComments); }); + } + // If `preserveSourceNewlines` is `false` we do not intend to preserve the effective lines between the + // previous and next node. Instead we naively check whether nodes are on separate lines within the + // same node parent. If so, we intend to preserve a single line terminator. This is less precise and + // expensive than checking with `preserveSourceNewlines` as above, but the goal is not to preserve the + // effective source lines between two sibling nodes. + else if (!preserveSourceNewlines && originalNodesHaveSameParent(previousNode, nextNode)) { + return ts.rangeEndIsOnSameLineAsRangeStart(previousNode, nextNode, currentSourceFile) ? 0 : 1; + } + // If the two nodes are not comparable, add a line terminator based on the format that can indicate + // whether new lines are preferred or not. + return format & 65536 /* PreferNewLine */ ? 1 : 0; } else if (synthesizedNodeStartsOnNewLine(previousNode, format) || synthesizedNodeStartsOnNewLine(nextNode, format)) { return 1; @@ -107941,10 +107943,13 @@ var ts; } exitComment(); } + function originalNodesHaveSameParent(nodeA, nodeB) { + nodeA = ts.getOriginalNode(nodeA); + // For performance, do not call `getOriginalNode` for `nodeB` if `nodeA` doesn't even + // have a parent node. + return nodeA.parent && nodeA.parent === ts.getOriginalNode(nodeB).parent; + } function siblingNodePositionsAreComparable(previousNode, nextNode) { - if (ts.nodeIsSynthesized(previousNode) || ts.nodeIsSynthesized(nextNode)) { - return false; - } if (nextNode.pos < previousNode.end) { return false; } @@ -113317,8 +113322,14 @@ var ts; var optionsNameMap = ts.getOptionsNameMap().optionsNameMap; for (var _i = 0, _a = ts.getOwnKeys(options).sort(ts.compareStringsCaseSensitive); _i < _a.length; _i++) { var name = _a[_i]; - var optionInfo = optionsNameMap.get(name.toLowerCase()); - if ((optionInfo === null || optionInfo === void 0 ? void 0 : optionInfo.affectsEmit) || (optionInfo === null || optionInfo === void 0 ? void 0 : optionInfo.affectsSemanticDiagnostics) || name === "skipLibCheck" || name === "skipDefaultLibCheck") { + var optionKey = name.toLowerCase(); + var optionInfo = optionsNameMap.get(optionKey); + if ((optionInfo === null || optionInfo === void 0 ? void 0 : optionInfo.affectsEmit) || (optionInfo === null || optionInfo === void 0 ? void 0 : optionInfo.affectsSemanticDiagnostics) || + // We need to store `strict`, even though it won't be examined directly, so that the + // flags it controls (e.g. `strictNullChecks`) will be retrieved correctly from the buildinfo + optionKey === "strict" || + // We need to store these to determine whether `lib` files need to be rechecked. + optionKey === "skiplibcheck" || optionKey === "skipdefaultlibcheck") { (result || (result = {}))[name] = convertToReusableCompilerOptionValue(optionInfo, options[name], relativeToBuildInfo); } } @@ -116827,7 +116838,7 @@ var ts; }, emit: function (targetSourceFile, writeFile, cancellationToken, emitOnlyDtsFiles, customTransformers) { if (targetSourceFile || emitOnlyDtsFiles) { - return withProgramOrUndefined(function (program) { return program.emit(targetSourceFile, writeFile, cancellationToken, emitOnlyDtsFiles, customTransformers); }); + return withProgramOrUndefined(function (program) { var _a, _b; return program.emit(targetSourceFile, writeFile, cancellationToken, emitOnlyDtsFiles, customTransformers || ((_b = (_a = state.host).getCustomTransformers) === null || _b === void 0 ? void 0 : _b.call(_a, project))); }); } executeSteps(BuildStep.SemanticDiagnostics, cancellationToken); if (step === BuildStep.EmitBuildInfo) { @@ -116912,6 +116923,7 @@ var ts; } function emit(writeFileCallback, cancellationToken, customTransformers) { var _a; + var _b, _c; ts.Debug.assertIsDefined(program); ts.Debug.assert(step === BuildStep.Emit); // Before emitting lets backup state, so we can revert it back if there are declaration errors to handle emit and declaration errors correctly @@ -116922,7 +116934,7 @@ var ts; var emitResult = ts.emitFilesAndReportErrors(program, reportDeclarationDiagnostics, /*write*/ undefined, /*reportSummary*/ undefined, function (name, text, writeByteOrderMark) { return outputFiles.push({ name: name, text: text, writeByteOrderMark: writeByteOrderMark }); }, cancellationToken, - /*emitOnlyDts*/ false, customTransformers).emitResult; + /*emitOnlyDts*/ false, customTransformers || ((_c = (_b = state.host).getCustomTransformers) === null || _c === void 0 ? void 0 : _c.call(_b, project))).emitResult; // Don't emit .d.ts if there are decl file errors if (declDiagnostics) { program.restoreState(); @@ -117004,6 +117016,7 @@ var ts; return emitDiagnostics; } function emitBundle(writeFileCallback, customTransformers) { + var _a, _b; ts.Debug.assert(kind === InvalidatedProjectKind.UpdateBundle); if (state.options.dry) { reportStatus(state, ts.Diagnostics.A_non_dry_build_would_update_output_of_project_0, project); @@ -117019,7 +117032,7 @@ var ts; var outputFiles = ts.emitUsingBuildInfo(config, compilerHost, function (ref) { var refName = resolveProjectName(state, ref.path); return parseConfigFile(state, refName, toResolvedConfigFilePath(state, refName)); - }, customTransformers); + }, customTransformers || ((_b = (_a = state.host).getCustomTransformers) === null || _b === void 0 ? void 0 : _b.call(_a, project))); if (ts.isString(outputFiles)) { reportStatus(state, ts.Diagnostics.Cannot_update_output_of_project_0_because_there_was_error_reading_file_1, project, relName(state, outputFiles)); step = BuildStep.BuildInvalidatedProjectOfBundle; @@ -121287,9 +121300,7 @@ var ts; [8 /* OptionalDependencies */, info.optionalDependencies], [4 /* PeerDependencies */, info.peerDependencies], ]; - return __assign(__assign({}, info), { parseable: !!content, fileName: fileName, - get: get, - has: function (dependencyName, inGroups) { + return __assign(__assign({}, info), { parseable: !!content, fileName: fileName, get: get, has: function (dependencyName, inGroups) { return !!get(dependencyName, inGroups); } }); function get(dependencyName, inGroups) { @@ -124556,10 +124567,9 @@ var ts; getTypeScriptMemberSymbols(); } else if (isRightOfOpenTag) { - var tagSymbols = typeChecker.getJsxIntrinsicTagNamesAt(location); - ts.Debug.assertEachIsDefined(tagSymbols, "getJsxIntrinsicTagNames() should all be defined"); + symbols = typeChecker.getJsxIntrinsicTagNamesAt(location); + ts.Debug.assertEachIsDefined(symbols, "getJsxIntrinsicTagNames() should all be defined"); tryGetGlobalSymbols(); - symbols = tagSymbols.concat(symbols); completionKind = 1 /* Global */; keywordFilters = 0 /* None */; } @@ -124824,7 +124834,7 @@ var ts; if (!attrsType) return 0 /* Continue */; var completionsType = jsxContainer && typeChecker.getContextualType(jsxContainer.attributes, 4 /* Completions */); - symbols = filterJsxAttributes(getPropertiesForObjectExpression(attrsType, completionsType, jsxContainer.attributes, typeChecker), jsxContainer.attributes.properties); + symbols = ts.concatenate(symbols, filterJsxAttributes(getPropertiesForObjectExpression(attrsType, completionsType, jsxContainer.attributes, typeChecker), jsxContainer.attributes.properties)); setSortTextToOptionalMember(); completionKind = 3 /* MemberLike */; isNewIdentifierLocation = false; @@ -124875,7 +124885,7 @@ var ts; var scopeNode = getScopeNode(contextToken, adjustedPosition, sourceFile) || sourceFile; isInSnippetScope = isSnippetScope(scopeNode); var symbolMeanings = (isTypeOnly ? 0 /* None */ : 111551 /* Value */) | 788968 /* Type */ | 1920 /* Namespace */ | 2097152 /* Alias */; - symbols = typeChecker.getSymbolsInScope(scopeNode, symbolMeanings); + symbols = ts.concatenate(symbols, typeChecker.getSymbolsInScope(scopeNode, symbolMeanings)); ts.Debug.assertEachIsDefined(symbols, "getSymbolsInScope() should all be defined"); for (var _i = 0, symbols_1 = symbols; _i < symbols_1.length; _i++) { var symbol = symbols_1[_i]; @@ -125175,7 +125185,7 @@ var ts; var existingMembers = getPropertiesForCompletion(containerActualType, typeChecker); var existingMemberEscapedNames = new ts.Set(); existingMembers.forEach(function (s) { return existingMemberEscapedNames.add(s.escapedName); }); - symbols = ts.filter(members, function (s) { return !existingMemberEscapedNames.has(s.escapedName); }); + symbols = ts.concatenate(symbols, ts.filter(members, function (s) { return !existingMemberEscapedNames.has(s.escapedName); })); completionKind = 0 /* ObjectPropertyDeclaration */; isNewIdentifierLocation = true; return 1 /* Success */; @@ -125257,7 +125267,7 @@ var ts; } if (typeMembers && typeMembers.length > 0) { // Add filtered items to the completion list - symbols = filterObjectMembersList(typeMembers, ts.Debug.checkDefined(existingMembers)); + symbols = ts.concatenate(symbols, filterObjectMembersList(typeMembers, ts.Debug.checkDefined(existingMembers))); } setSortTextToOptionalMember(); return 1 /* Success */; @@ -125292,7 +125302,7 @@ var ts; isNewIdentifierLocation = false; var exports = typeChecker.getExportsAndPropertiesOfModule(moduleSpecifierSymbol); var existing = new ts.Set(namedImportsOrExports.elements.filter(function (n) { return !isCurrentlyEditingNode(n); }).map(function (n) { return (n.propertyName || n.name).escapedText; })); - symbols = exports.filter(function (e) { return e.escapedName !== "default" /* Default */ && !existing.has(e.escapedName); }); + symbols = ts.concatenate(symbols, exports.filter(function (e) { return e.escapedName !== "default" /* Default */ && !existing.has(e.escapedName); })); return 1 /* Success */; } /** @@ -125367,7 +125377,7 @@ var ts; (type === null || type === void 0 ? void 0 : type.symbol) && typeChecker.getPropertiesOfType(typeChecker.getTypeOfSymbolAtLocation(type.symbol, decl)) : type && typeChecker.getPropertiesOfType(type); }); - symbols = filterClassMembersList(baseSymbols, decl.members, classElementModifierFlags); + symbols = ts.concatenate(symbols, filterClassMembersList(baseSymbols, decl.members, classElementModifierFlags)); } return 1 /* Success */; } @@ -127715,9 +127725,7 @@ var ts; var name_1 = displayParts_1.map(function (p) { return p.text; }).join(""); var declaration = symbol.declarations && ts.firstOrUndefined(symbol.declarations); var node = declaration ? (ts.getNameOfDeclaration(declaration) || declaration) : originalNode; - return __assign(__assign({}, getFileAndTextSpanFromNode(node)), { name: name_1, - kind: kind_1, - displayParts: displayParts_1, context: getContextNode(declaration) }); + return __assign(__assign({}, getFileAndTextSpanFromNode(node)), { name: name_1, kind: kind_1, displayParts: displayParts_1, context: getContextNode(declaration) }); } case 1 /* Label */: { var node = def.node; @@ -127752,10 +127760,7 @@ var ts; } })(); var sourceFile = info.sourceFile, textSpan = info.textSpan, name = info.name, kind = info.kind, displayParts = info.displayParts, context = info.context; - return __assign({ containerKind: "" /* unknown */, containerName: "", fileName: sourceFile.fileName, kind: kind, - name: name, - textSpan: textSpan, - displayParts: displayParts }, toContextSpan(textSpan, sourceFile, context)); + return __assign({ containerKind: "" /* unknown */, containerName: "", fileName: sourceFile.fileName, kind: kind, name: name, textSpan: textSpan, displayParts: displayParts }, toContextSpan(textSpan, sourceFile, context)); } function getFileAndTextSpanFromNode(node) { var sourceFile = node.getSourceFile();