typescript 5.0.0-dev.20230222 → 5.0.0-dev.20230224

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -74,7 +74,7 @@ interface SymbolConstructor {
74
74
  readonly toStringTag: unique symbol;
75
75
 
76
76
  /**
77
- * An Object whose own property names are property names that are excluded from the 'with'
77
+ * An Object whose truthy properties are properties that are excluded from the 'with'
78
78
  * environment bindings of the associated objects.
79
79
  */
80
80
  readonly unscopables: unique symbol;
@@ -91,17 +91,21 @@ interface Symbol {
91
91
 
92
92
  interface Array<T> {
93
93
  /**
94
- * Returns an object whose properties have the value 'true'
94
+ * Is an object whose properties have the value 'true'
95
95
  * when they will be absent when used in a 'with' statement.
96
96
  */
97
- [Symbol.unscopables](): {
98
- copyWithin: boolean;
99
- entries: boolean;
100
- fill: boolean;
101
- find: boolean;
102
- findIndex: boolean;
103
- keys: boolean;
104
- values: boolean;
97
+ readonly [Symbol.unscopables]: {
98
+ [K in keyof any[]]?: boolean;
99
+ };
100
+ }
101
+
102
+ interface ReadonlyArray<T> {
103
+ /**
104
+ * Is an object whose properties have the value 'true'
105
+ * when they will be absent when used in a 'with' statement.
106
+ */
107
+ readonly [Symbol.unscopables]: {
108
+ [K in keyof readonly any[]]?: boolean;
105
109
  };
106
110
  }
107
111
 
package/lib/tsc.js CHANGED
@@ -23,7 +23,7 @@ var __export = (target, all) => {
23
23
 
24
24
  // src/compiler/corePublic.ts
25
25
  var versionMajorMinor = "5.0";
26
- var version = `${versionMajorMinor}.0-dev.20230222`;
26
+ var version = `${versionMajorMinor}.0-dev.20230224`;
27
27
 
28
28
  // src/compiler/core.ts
29
29
  var emptyArray = [];
@@ -11329,7 +11329,7 @@ function isTransientSymbol(symbol) {
11329
11329
  }
11330
11330
  var stringWriter = createSingleLineStringWriter();
11331
11331
  function createSingleLineStringWriter() {
11332
- let str = "";
11332
+ var str = "";
11333
11333
  const writeText = (text) => str += text;
11334
11334
  return {
11335
11335
  getText: () => str,
@@ -14605,12 +14605,12 @@ function isNightly() {
14605
14605
  return stringContains(version, "-dev") || stringContains(version, "-insiders");
14606
14606
  }
14607
14607
  function createTextWriter(newLine) {
14608
- let output;
14609
- let indent2;
14610
- let lineStart;
14611
- let lineCount;
14612
- let linePos;
14613
- let hasTrailingComment = false;
14608
+ var output;
14609
+ var indent2;
14610
+ var lineStart;
14611
+ var lineCount;
14612
+ var linePos;
14613
+ var hasTrailingComment = false;
14614
14614
  function updateLineCountAndPosFor(s) {
14615
14615
  const lineStartsOfS = computeLineStarts(s);
14616
14616
  if (lineStartsOfS.length > 1) {
@@ -19836,24 +19836,7 @@ function createNodeFactory(flags, baseFactory2) {
19836
19836
  return node;
19837
19837
  }
19838
19838
  function propagateAssignmentPatternFlags(node) {
19839
- if (node.transformFlags & 65536 /* ContainsObjectRestOrSpread */)
19840
- return 65536 /* ContainsObjectRestOrSpread */;
19841
- if (node.transformFlags & 128 /* ContainsES2018 */) {
19842
- for (const element of getElementsOfBindingOrAssignmentPattern(node)) {
19843
- const target = getTargetOfBindingOrAssignmentElement(element);
19844
- if (target && isAssignmentPattern(target)) {
19845
- if (target.transformFlags & 65536 /* ContainsObjectRestOrSpread */) {
19846
- return 65536 /* ContainsObjectRestOrSpread */;
19847
- }
19848
- if (target.transformFlags & 128 /* ContainsES2018 */) {
19849
- const flags2 = propagateAssignmentPatternFlags(target);
19850
- if (flags2)
19851
- return flags2;
19852
- }
19853
- }
19854
- }
19855
- }
19856
- return 0 /* None */;
19839
+ return containsObjectRestOrSpread(node) ? 65536 /* ContainsObjectRestOrSpread */ : 0 /* None */;
19857
19840
  }
19858
19841
  function updateBinaryExpression(node, left, operator, right) {
19859
19842
  return node.left !== left || node.operatorToken !== operator || node.right !== right ? update(createBinaryExpression(left, operator, right), node) : node;
@@ -25350,6 +25333,25 @@ function flattenCommaList(node) {
25350
25333
  flattenCommaListWorker(node, expressions);
25351
25334
  return expressions;
25352
25335
  }
25336
+ function containsObjectRestOrSpread(node) {
25337
+ if (node.transformFlags & 65536 /* ContainsObjectRestOrSpread */)
25338
+ return true;
25339
+ if (node.transformFlags & 128 /* ContainsES2018 */) {
25340
+ for (const element of getElementsOfBindingOrAssignmentPattern(node)) {
25341
+ const target = getTargetOfBindingOrAssignmentElement(element);
25342
+ if (target && isAssignmentPattern(target)) {
25343
+ if (target.transformFlags & 65536 /* ContainsObjectRestOrSpread */) {
25344
+ return true;
25345
+ }
25346
+ if (target.transformFlags & 128 /* ContainsES2018 */) {
25347
+ if (containsObjectRestOrSpread(target))
25348
+ return true;
25349
+ }
25350
+ }
25351
+ }
25352
+ }
25353
+ return false;
25354
+ }
25353
25355
 
25354
25356
  // src/compiler/factory/utilitiesPublic.ts
25355
25357
  function setTextRange(range, location) {
@@ -29597,7 +29599,7 @@ var Parser;
29597
29599
  return finishNode(factory2.createJsxJsxClosingFragment(), pos);
29598
29600
  }
29599
29601
  function parseTypeAssertion() {
29600
- Debug.assert(scriptKind === 3 /* TS */, "Type assertions should never be parsed outside of TS; they should either be comparisons or JSX.");
29602
+ Debug.assert(languageVariant !== 1 /* JSX */, "Type assertions should never be parsed in JSX; they should be parsed as comparisons or JSX elements/fragments.");
29601
29603
  const pos = getNodePos();
29602
29604
  parseExpected(29 /* LessThanToken */);
29603
29605
  const type = parseType();
@@ -84076,31 +84078,31 @@ function extractSingleNode(nodes) {
84076
84078
 
84077
84079
  // src/compiler/sourcemap.ts
84078
84080
  function createSourceMapGenerator(host, file, sourceRoot, sourcesDirectoryPath, generatorOptions) {
84079
- const { enter, exit } = generatorOptions.extendedDiagnostics ? createTimer("Source Map", "beforeSourcemap", "afterSourcemap") : nullTimer;
84080
- const rawSources = [];
84081
- const sources = [];
84082
- const sourceToSourceIndexMap = /* @__PURE__ */ new Map();
84083
- let sourcesContent;
84084
- const names = [];
84085
- let nameToNameIndexMap;
84086
- const mappingCharCodes = [];
84087
- let mappings = "";
84088
- let lastGeneratedLine = 0;
84089
- let lastGeneratedCharacter = 0;
84090
- let lastSourceIndex = 0;
84091
- let lastSourceLine = 0;
84092
- let lastSourceCharacter = 0;
84093
- let lastNameIndex = 0;
84094
- let hasLast = false;
84095
- let pendingGeneratedLine = 0;
84096
- let pendingGeneratedCharacter = 0;
84097
- let pendingSourceIndex = 0;
84098
- let pendingSourceLine = 0;
84099
- let pendingSourceCharacter = 0;
84100
- let pendingNameIndex = 0;
84101
- let hasPending = false;
84102
- let hasPendingSource = false;
84103
- let hasPendingName = false;
84081
+ var { enter, exit } = generatorOptions.extendedDiagnostics ? createTimer("Source Map", "beforeSourcemap", "afterSourcemap") : nullTimer;
84082
+ var rawSources = [];
84083
+ var sources = [];
84084
+ var sourceToSourceIndexMap = /* @__PURE__ */ new Map();
84085
+ var sourcesContent;
84086
+ var names = [];
84087
+ var nameToNameIndexMap;
84088
+ var mappingCharCodes = [];
84089
+ var mappings = "";
84090
+ var lastGeneratedLine = 0;
84091
+ var lastGeneratedCharacter = 0;
84092
+ var lastSourceIndex = 0;
84093
+ var lastSourceLine = 0;
84094
+ var lastSourceCharacter = 0;
84095
+ var lastNameIndex = 0;
84096
+ var hasLast = false;
84097
+ var pendingGeneratedLine = 0;
84098
+ var pendingGeneratedCharacter = 0;
84099
+ var pendingSourceIndex = 0;
84100
+ var pendingSourceLine = 0;
84101
+ var pendingSourceCharacter = 0;
84102
+ var pendingNameIndex = 0;
84103
+ var hasPending = false;
84104
+ var hasPendingSource = false;
84105
+ var hasPendingName = false;
84104
84106
  return {
84105
84107
  getSources: () => rawSources,
84106
84108
  addSource,
@@ -93055,7 +93057,7 @@ function transformES2018(context) {
93055
93057
  );
93056
93058
  }
93057
93059
  function visitBinaryExpression(node, expressionResultIsUnused2) {
93058
- if (isDestructuringAssignment(node) && node.left.transformFlags & 65536 /* ContainsObjectRestOrSpread */) {
93060
+ if (isDestructuringAssignment(node) && containsObjectRestOrSpread(node.left)) {
93059
93061
  return flattenDestructuringAssignment(
93060
93062
  node,
93061
93063
  visitor,
@@ -93187,7 +93189,7 @@ function transformES2018(context) {
93187
93189
  }
93188
93190
  function visitForOfStatement(node, outermostLabeledStatement) {
93189
93191
  const ancestorFacts = enterSubtree(0 /* IterationStatementExcludes */, 2 /* IterationStatementIncludes */);
93190
- if (node.initializer.transformFlags & 65536 /* ContainsObjectRestOrSpread */) {
93192
+ if (node.initializer.transformFlags & 65536 /* ContainsObjectRestOrSpread */ || isAssignmentPattern(node.initializer) && containsObjectRestOrSpread(node.initializer)) {
93191
93193
  node = transformForOfStatementWithObjectRest(node);
93192
93194
  }
93193
93195
  const result = node.awaitModifier ? transformForAwaitOfStatement(node, outermostLabeledStatement, ancestorFacts) : factory2.restoreEnclosingLabel(visitEachChild(node, visitor, context), outermostLabeledStatement);
@@ -106424,15 +106426,15 @@ function getFirstProjectOutput(configFile, ignoreCase) {
106424
106426
  return Debug.fail(`project ${configFile.options.configFilePath} expected to have at least one output`);
106425
106427
  }
106426
106428
  function emitFiles(resolver, host, targetSourceFile, { scriptTransformers, declarationTransformers }, emitOnly, onlyBuildInfo, forceDtsEmit) {
106427
- const compilerOptions = host.getCompilerOptions();
106428
- const sourceMapDataList = compilerOptions.sourceMap || compilerOptions.inlineSourceMap || getAreDeclarationMapsEnabled(compilerOptions) ? [] : void 0;
106429
- const emittedFilesList = compilerOptions.listEmittedFiles ? [] : void 0;
106430
- const emitterDiagnostics = createDiagnosticCollection();
106431
- const newLine = getNewLineCharacter(compilerOptions);
106432
- const writer = createTextWriter(newLine);
106433
- const { enter, exit } = createTimer("printTime", "beforePrint", "afterPrint");
106434
- let bundleBuildInfo;
106435
- let emitSkipped = false;
106429
+ var compilerOptions = host.getCompilerOptions();
106430
+ var sourceMapDataList = compilerOptions.sourceMap || compilerOptions.inlineSourceMap || getAreDeclarationMapsEnabled(compilerOptions) ? [] : void 0;
106431
+ var emittedFilesList = compilerOptions.listEmittedFiles ? [] : void 0;
106432
+ var emitterDiagnostics = createDiagnosticCollection();
106433
+ var newLine = getNewLineCharacter(compilerOptions);
106434
+ var writer = createTextWriter(newLine);
106435
+ var { enter, exit } = createTimer("printTime", "beforePrint", "afterPrint");
106436
+ var bundleBuildInfo;
106437
+ var emitSkipped = false;
106436
106438
  enter();
106437
106439
  forEachEmittedFile(
106438
106440
  host,
@@ -106999,7 +107001,7 @@ var createPrinterWithRemoveComments = /* @__PURE__ */ memoize(() => createPrinte
106999
107001
  var createPrinterWithRemoveCommentsNeverAsciiEscape = /* @__PURE__ */ memoize(() => createPrinter({ removeComments: true, neverAsciiEscape: true }));
107000
107002
  var createPrinterWithRemoveCommentsOmitTrailingSemicolon = /* @__PURE__ */ memoize(() => createPrinter({ removeComments: true, omitTrailingSemicolon: true }));
107001
107003
  function createPrinter(printerOptions = {}, handlers = {}) {
107002
- const {
107004
+ var {
107003
107005
  hasGlobalName,
107004
107006
  onEmitNode = noEmitNotification,
107005
107007
  isEmitNotificationEnabled,
@@ -107011,57 +107013,57 @@ function createPrinter(printerOptions = {}, handlers = {}) {
107011
107013
  onBeforeEmitToken,
107012
107014
  onAfterEmitToken
107013
107015
  } = handlers;
107014
- const extendedDiagnostics = !!printerOptions.extendedDiagnostics;
107015
- const newLine = getNewLineCharacter(printerOptions);
107016
- const moduleKind = getEmitModuleKind(printerOptions);
107017
- const bundledHelpers = /* @__PURE__ */ new Map();
107018
- let currentSourceFile;
107019
- let nodeIdToGeneratedName;
107020
- let nodeIdToGeneratedPrivateName;
107021
- let autoGeneratedIdToGeneratedName;
107022
- let generatedNames;
107023
- let formattedNameTempFlagsStack;
107024
- let formattedNameTempFlags;
107025
- let privateNameTempFlagsStack;
107026
- let privateNameTempFlags;
107027
- let tempFlagsStack;
107028
- let tempFlags;
107029
- let reservedNamesStack;
107030
- let reservedNames;
107031
- let reservedPrivateNamesStack;
107032
- let reservedPrivateNames;
107033
- let preserveSourceNewlines = printerOptions.preserveSourceNewlines;
107034
- let nextListElementPos;
107035
- let writer;
107036
- let ownWriter;
107037
- let write = writeBase;
107038
- let isOwnFileEmit;
107039
- const bundleFileInfo = printerOptions.writeBundleFileInfo ? { sections: [] } : void 0;
107040
- const relativeToBuildInfo = bundleFileInfo ? Debug.checkDefined(printerOptions.relativeToBuildInfo) : void 0;
107041
- const recordInternalSection = printerOptions.recordInternalSection;
107042
- let sourceFileTextPos = 0;
107043
- let sourceFileTextKind = "text" /* Text */;
107044
- let sourceMapsDisabled = true;
107045
- let sourceMapGenerator;
107046
- let sourceMapSource;
107047
- let sourceMapSourceIndex = -1;
107048
- let mostRecentlyAddedSourceMapSource;
107049
- let mostRecentlyAddedSourceMapSourceIndex = -1;
107050
- let containerPos = -1;
107051
- let containerEnd = -1;
107052
- let declarationListContainerEnd = -1;
107053
- let currentLineMap;
107054
- let detachedCommentsInfo;
107055
- let hasWrittenComment = false;
107056
- let commentsDisabled = !!printerOptions.removeComments;
107057
- let lastSubstitution;
107058
- let currentParenthesizerRule;
107059
- const { enter: enterComment, exit: exitComment } = createTimerIf(extendedDiagnostics, "commentTime", "beforeComment", "afterComment");
107060
- const parenthesizer = factory.parenthesizer;
107061
- const typeArgumentParenthesizerRuleSelector = {
107016
+ var extendedDiagnostics = !!printerOptions.extendedDiagnostics;
107017
+ var newLine = getNewLineCharacter(printerOptions);
107018
+ var moduleKind = getEmitModuleKind(printerOptions);
107019
+ var bundledHelpers = /* @__PURE__ */ new Map();
107020
+ var currentSourceFile;
107021
+ var nodeIdToGeneratedName;
107022
+ var nodeIdToGeneratedPrivateName;
107023
+ var autoGeneratedIdToGeneratedName;
107024
+ var generatedNames;
107025
+ var formattedNameTempFlagsStack;
107026
+ var formattedNameTempFlags;
107027
+ var privateNameTempFlagsStack;
107028
+ var privateNameTempFlags;
107029
+ var tempFlagsStack;
107030
+ var tempFlags;
107031
+ var reservedNamesStack;
107032
+ var reservedNames;
107033
+ var reservedPrivateNamesStack;
107034
+ var reservedPrivateNames;
107035
+ var preserveSourceNewlines = printerOptions.preserveSourceNewlines;
107036
+ var nextListElementPos;
107037
+ var writer;
107038
+ var ownWriter;
107039
+ var write = writeBase;
107040
+ var isOwnFileEmit;
107041
+ var bundleFileInfo = printerOptions.writeBundleFileInfo ? { sections: [] } : void 0;
107042
+ var relativeToBuildInfo = bundleFileInfo ? Debug.checkDefined(printerOptions.relativeToBuildInfo) : void 0;
107043
+ var recordInternalSection = printerOptions.recordInternalSection;
107044
+ var sourceFileTextPos = 0;
107045
+ var sourceFileTextKind = "text" /* Text */;
107046
+ var sourceMapsDisabled = true;
107047
+ var sourceMapGenerator;
107048
+ var sourceMapSource;
107049
+ var sourceMapSourceIndex = -1;
107050
+ var mostRecentlyAddedSourceMapSource;
107051
+ var mostRecentlyAddedSourceMapSourceIndex = -1;
107052
+ var containerPos = -1;
107053
+ var containerEnd = -1;
107054
+ var declarationListContainerEnd = -1;
107055
+ var currentLineMap;
107056
+ var detachedCommentsInfo;
107057
+ var hasWrittenComment = false;
107058
+ var commentsDisabled = !!printerOptions.removeComments;
107059
+ var lastSubstitution;
107060
+ var currentParenthesizerRule;
107061
+ var { enter: enterComment, exit: exitComment } = createTimerIf(extendedDiagnostics, "commentTime", "beforeComment", "afterComment");
107062
+ var parenthesizer = factory.parenthesizer;
107063
+ var typeArgumentParenthesizerRuleSelector = {
107062
107064
  select: (index) => index === 0 ? parenthesizer.parenthesizeLeadingTypeArgument : void 0
107063
107065
  };
107064
- const emitBinaryExpression = createEmitBinaryExpression();
107066
+ var emitBinaryExpression = createEmitBinaryExpression();
107065
107067
  reset();
107066
107068
  return {
107067
107069
  // public API