typescript 4.6.0-dev.20211123 → 4.6.0-dev.20211130

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.
package/lib/tsc.js CHANGED
@@ -69,7 +69,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
69
69
  var ts;
70
70
  (function (ts) {
71
71
  ts.versionMajorMinor = "4.6";
72
- ts.version = ts.versionMajorMinor + ".0-dev.20211123";
72
+ ts.version = ts.versionMajorMinor + ".0-dev.20211130";
73
73
  var NativeCollections;
74
74
  (function (NativeCollections) {
75
75
  function tryGetNativeMap() {
@@ -69966,9 +69966,8 @@ var ts;
69966
69966
  var enclosingFile = ts.getSourceFileOfNode(node);
69967
69967
  var links = getNodeLinks(enclosingFile);
69968
69968
  if (!(links.flags & 1)) {
69969
- links.deferredNodes = links.deferredNodes || new ts.Map();
69970
- var id = getNodeId(node);
69971
- links.deferredNodes.set(id, node);
69969
+ links.deferredNodes || (links.deferredNodes = new ts.Set());
69970
+ links.deferredNodes.add(node);
69972
69971
  }
69973
69972
  }
69974
69973
  function checkDeferredNodes(context) {
@@ -76100,9 +76099,6 @@ var ts;
76100
76099
  var innerExpression = ts.skipOuterExpressions(node.expression, ~6);
76101
76100
  if (ts.isAssertionExpression(innerExpression)) {
76102
76101
  var expression = ts.visitNode(node.expression, visitor, ts.isExpression);
76103
- if (ts.length(ts.getLeadingCommentRangesOfNode(expression, currentSourceFile))) {
76104
- return factory.updateParenthesizedExpression(node, expression);
76105
- }
76106
76102
  return factory.createPartiallyEmittedExpression(expression, node);
76107
76103
  }
76108
76104
  return ts.visitEachChild(node, visitor, context);
@@ -79202,11 +79198,11 @@ var ts;
79202
79198
  }
79203
79199
  function visitOptionalExpression(node, captureThisArg, isDelete) {
79204
79200
  var _a = flattenChain(node), expression = _a.expression, chain = _a.chain;
79205
- var left = visitNonOptionalExpression(expression, ts.isCallChain(chain[0]), false);
79201
+ var left = visitNonOptionalExpression(ts.skipPartiallyEmittedExpressions(expression), ts.isCallChain(chain[0]), false);
79206
79202
  var leftThisArg = ts.isSyntheticReference(left) ? left.thisArg : undefined;
79207
- var leftExpression = ts.isSyntheticReference(left) ? left.expression : left;
79208
- var capturedLeft = leftExpression;
79209
- if (!ts.isSimpleCopiableExpression(leftExpression)) {
79203
+ var capturedLeft = ts.isSyntheticReference(left) ? left.expression : left;
79204
+ var leftExpression = factory.restoreOuterExpressions(expression, capturedLeft, 8);
79205
+ if (!ts.isSimpleCopiableExpression(capturedLeft)) {
79210
79206
  capturedLeft = factory.createTempVariable(hoistVariableDeclaration);
79211
79207
  leftExpression = factory.createAssignment(capturedLeft, leftExpression);
79212
79208
  }
@@ -79232,6 +79228,10 @@ var ts;
79232
79228
  break;
79233
79229
  case 207:
79234
79230
  if (i === 0 && leftThisArg) {
79231
+ if (!ts.isGeneratedIdentifier(leftThisArg)) {
79232
+ leftThisArg = factory.cloneNode(leftThisArg);
79233
+ ts.addEmitFlags(leftThisArg, 1536);
79234
+ }
79235
79235
  rightExpression = factory.createFunctionCallCall(rightExpression, leftThisArg.kind === 106 ? factory.createThis() : leftThisArg, ts.visitNodes(segment.arguments, visitor, ts.isExpression));
79236
79236
  }
79237
79237
  else {
@@ -90157,7 +90157,7 @@ var ts;
90157
90157
  function emitYieldExpression(node) {
90158
90158
  emitTokenWithComment(125, node.pos, writeKeyword, node);
90159
90159
  emit(node.asteriskToken);
90160
- emitExpressionWithLeadingSpace(node.expression, parenthesizer.parenthesizeExpressionForDisallowedComma);
90160
+ emitExpressionWithLeadingSpace(node.expression && parenthesizeExpressionForNoAsi(node.expression), parenthesizeExpressionForNoAsiAndDisallowedComma);
90161
90161
  }
90162
90162
  function emitSpreadElement(node) {
90163
90163
  emitTokenWithComment(25, node.pos, writePunctuation, node);
@@ -90344,9 +90344,44 @@ var ts;
90344
90344
  }
90345
90345
  return pos;
90346
90346
  }
90347
+ function commentWillEmitNewLine(node) {
90348
+ return node.kind === 2 || !!node.hasTrailingNewLine;
90349
+ }
90350
+ function willEmitLeadingNewLine(node) {
90351
+ if (!currentSourceFile)
90352
+ return false;
90353
+ if (ts.some(ts.getLeadingCommentRanges(currentSourceFile.text, node.pos), commentWillEmitNewLine))
90354
+ return true;
90355
+ if (ts.some(ts.getSyntheticLeadingComments(node), commentWillEmitNewLine))
90356
+ return true;
90357
+ if (ts.isPartiallyEmittedExpression(node)) {
90358
+ if (node.pos !== node.expression.pos) {
90359
+ if (ts.some(ts.getTrailingCommentRanges(currentSourceFile.text, node.expression.pos), commentWillEmitNewLine))
90360
+ return true;
90361
+ }
90362
+ return willEmitLeadingNewLine(node.expression);
90363
+ }
90364
+ return false;
90365
+ }
90366
+ function parenthesizeExpressionForNoAsi(node) {
90367
+ if (!commentsDisabled && ts.isPartiallyEmittedExpression(node) && willEmitLeadingNewLine(node)) {
90368
+ var parseNode = ts.getParseTreeNode(node);
90369
+ if (parseNode && ts.isParenthesizedExpression(parseNode)) {
90370
+ var parens = ts.factory.createParenthesizedExpression(node.expression);
90371
+ ts.setOriginalNode(parens, node);
90372
+ ts.setTextRange(parens, parseNode);
90373
+ return parens;
90374
+ }
90375
+ return ts.factory.createParenthesizedExpression(node);
90376
+ }
90377
+ return node;
90378
+ }
90379
+ function parenthesizeExpressionForNoAsiAndDisallowedComma(node) {
90380
+ return parenthesizeExpressionForNoAsi(parenthesizer.parenthesizeExpressionForDisallowedComma(node));
90381
+ }
90347
90382
  function emitReturnStatement(node) {
90348
90383
  emitTokenWithComment(105, node.pos, writeKeyword, node);
90349
- emitExpressionWithLeadingSpace(node.expression);
90384
+ emitExpressionWithLeadingSpace(node.expression && parenthesizeExpressionForNoAsi(node.expression), parenthesizeExpressionForNoAsi);
90350
90385
  writeTrailingSemicolon();
90351
90386
  }
90352
90387
  function emitWithStatement(node) {
@@ -90374,7 +90409,7 @@ var ts;
90374
90409
  }
90375
90410
  function emitThrowStatement(node) {
90376
90411
  emitTokenWithComment(109, node.pos, writeKeyword, node);
90377
- emitExpressionWithLeadingSpace(node.expression);
90412
+ emitExpressionWithLeadingSpace(parenthesizeExpressionForNoAsi(node.expression), parenthesizeExpressionForNoAsi);
90378
90413
  writeTrailingSemicolon();
90379
90414
  }
90380
90415
  function emitTryStatement(node) {
@@ -91174,7 +91209,14 @@ var ts;
91174
91209
  popNameGenerationScope(node);
91175
91210
  }
91176
91211
  function emitPartiallyEmittedExpression(node) {
91212
+ var emitFlags = ts.getEmitFlags(node);
91213
+ if (!(emitFlags & 512) && node.pos !== node.expression.pos) {
91214
+ emitTrailingCommentsOfPosition(node.expression.pos);
91215
+ }
91177
91216
  emitExpression(node.expression);
91217
+ if (!(emitFlags & 1024) && node.end !== node.expression.end) {
91218
+ emitLeadingCommentsOfPosition(node.expression.end);
91219
+ }
91178
91220
  }
91179
91221
  function emitCommaList(node) {
91180
91222
  emitExpressionList(node, node.elements, 528, undefined);
@@ -91513,10 +91555,8 @@ var ts;
91513
91555
  }
91514
91556
  previousSourceFileTextKind = recordBundleFileInternalSectionStart(child);
91515
91557
  if (shouldEmitInterveningComments) {
91516
- if (emitTrailingCommentsOfPosition) {
91517
- var commentRange = ts.getCommentRange(child);
91518
- emitTrailingCommentsOfPosition(commentRange.pos);
91519
- }
91558
+ var commentRange = ts.getCommentRange(child);
91559
+ emitTrailingCommentsOfPosition(commentRange.pos);
91520
91560
  }
91521
91561
  else {
91522
91562
  shouldEmitInterveningComments = mayEmitInterveningComments;