diff --git a/testTs/test-case.patch b/testTs/test-case.patch index 4c3e3dd3bcd795319c0dde858df68429dd99151e..712ccdcd61c3be169285420051d53868fbf78097 100644 --- a/testTs/test-case.patch +++ b/testTs/test-case.patch @@ -1,732 +1,732 @@ -From 93dbec5e710a8cb28ca8b7f0c70b9ade4a8fc911 Mon Sep 17 00:00:00 2001 -From: zhangrengao -Date: Sat, 15 Jan 2022 21:39:48 +0800 -Subject: [PATCH] test patch - ---- - .../ambient/ambientDeclarations.ts | 1 + - .../ambientDeclarationsPatterns.ts | 11 + - .../declarations.d.ts | 18 + - .../ambient/ambientInsideNonAmbient.ts | 2 + - .../ambientInsideNonAmbientExternalModule.ts | 4 +- - .../ambientShorthand_merging.ts | 6 + - .../declarations1.d.ts | 2 + - .../declarations2.d.ts | 4 + - .../ambientShorthand_reExport.ts | 5 + - .../declarations.d.ts | 2 + - .../ambientShorthand_reExport/jquery.d.ts | 2 + - .../ambientShorthand_reExport/reExportAll.ts | 2 + - .../ambientShorthand_reExport/reExportX.ts | 2 + - .../async/es5/asyncMethodWithSuper_es5.ts | 1 + - .../asyncOrYieldAsBindingIdentifier1.ts | 49 ++ - .../classAbstractAsIdentifier.ts | 2 +- - .../classBody/classWithEmptyBody.ts | 4 +- - .../classDeclarations/classInsideBlock.ts | 1 + - .../classWithPredefinedTypesAsNames.ts | 4 +- - .../classWithSemicolonClassElement1.ts | 3 +- - .../classWithSemicolonClassElement2.ts | 3 +- - .../classExpressions/classExpression2.ts | 4 +- - .../classStaticBlock/classStaticBlock1.ts | 11 + - .../classStaticBlock/classStaticBlock10.ts | 30 ++ - .../classStaticBlock/classStaticBlock11.ts | 15 + - .../classStaticBlock/classStaticBlock12.ts | 10 + - .../classStaticBlock/classStaticBlock13.ts | 14 + - .../classStaticBlock/classStaticBlock14.ts | 15 + - .../classStaticBlock/classStaticBlock15.ts | 18 + - .../classStaticBlock/classStaticBlock16.ts | 26 + - .../classStaticBlock/classStaticBlock17.ts | 33 ++ - .../classStaticBlock/classStaticBlock18.ts | 15 + - .../classStaticBlock/classStaticBlock19.ts | 6 + - .../classStaticBlock/classStaticBlock2.ts | 20 + - .../classStaticBlock/classStaticBlock20.ts | 13 + - .../classStaticBlock/classStaticBlock21.ts | 7 + - .../classStaticBlock/classStaticBlock22.ts | 72 +++ - .../classStaticBlock/classStaticBlock23.ts | 21 + - .../classStaticBlock/classStaticBlock24.ts | 8 + - .../classStaticBlock/classStaticBlock25.ts | 23 + - .../classStaticBlock/classStaticBlock26.ts | 30 ++ - .../classStaticBlock/classStaticBlock27.ts | 17 + - .../classStaticBlock/classStaticBlock3.ts | 19 + - .../classStaticBlock/classStaticBlock4.ts | 16 + - .../classStaticBlock/classStaticBlock5.ts | 19 + - .../classStaticBlock/classStaticBlock6.ts | 62 +++ - .../classStaticBlock/classStaticBlock7.ts | 43 ++ - .../classStaticBlock/classStaticBlock8.ts | 48 ++ - .../classStaticBlock/classStaticBlock9.ts | 8 + - .../classStaticBlockUseBeforeDef1.ts | 15 + - .../classStaticBlockUseBeforeDef2.ts | 10 + - .../classConstructorAccessibility4.ts | 4 +- - ...structorImplementationWithDefaultValues.ts | 6 +- - .../declarationEmitReadonly.ts | 3 +- - .../quotedConstructors.ts | 4 + - ...idesIndexersWithAssignmentCompatibility.ts | 4 +- - .../superInStaticMembers1.ts | 492 ++++++++++++++++++ - .../thisAndSuperInStaticMembers1.ts | 42 ++ - .../thisAndSuperInStaticMembers2.ts | 42 ++ - .../thisAndSuperInStaticMembers3.ts | 26 + - .../thisAndSuperInStaticMembers4.ts | 26 + - .../typeOfThisInStaticMembers.ts | 3 +- - .../typeOfThisInStaticMembers10.ts | 51 ++ - .../typeOfThisInStaticMembers11.ts | 51 ++ - .../typeOfThisInStaticMembers12.ts | 10 + - .../typeOfThisInStaticMembers13.ts | 10 + - .../typeOfThisInStaticMembers3.ts | 12 + - .../typeOfThisInStaticMembers4.ts | 12 + - .../typeOfThisInStaticMembers5.ts | 9 + - .../typeOfThisInStaticMembers6.ts | 7 + - .../typeOfThisInStaticMembers7.ts | 12 + - .../typeOfThisInStaticMembers8.ts | 19 + - .../typeOfThisInStaticMembers9.ts | 22 + - .../privateNameComputedPropertyName3.ts | 2 + - .../privateNames/privateNameFieldAccess.ts | 1 + - .../privateNames/privateNameHashCharName.ts | 11 + - .../privateNames/privateNameInInExpression.ts | 119 +++++ - .../privateNameInInExpressionTransform.ts | 47 ++ - .../privateNameInInExpressionUnused.ts | 13 + - .../privateNamesIncompatibleModifiersJs.ts | 65 +++ - .../classes/mixinClassesAnnotated.ts | 3 + - .../classes/mixinClassesAnonymous.ts | 2 + - .../classes/mixinClassesMembers.ts | 5 + - .../abstractProperty.ts | 3 + - .../abstractPropertyInitializer.ts | 5 + - .../instanceMemberInitialization.ts | 7 +- - ...instanceMemberWithComputedPropertyName2.ts | 1 + - .../staticFactory1.ts | 3 +- - .../staticAndNonStaticPropertiesSameName.ts | 3 +- - .../staticPropertyAndFunctionWithSameName.ts | 4 +- - ...icPropertyNameConflictsInAmbientContext.ts | 10 + - .../controlFlow/assertionTypePredicates2.ts | 27 + - .../controlFlow/controlFlowAliasing.ts | 285 ++++++++++ - .../controlFlowAliasingCatchVariables.ts | 28 + - .../controlFlow/controlFlowElementAccess2.ts | 2 +- - .../controlFlow/controlFlowForInStatement2.ts | 25 + - .../controlFlow/controlFlowInOperator.ts | 26 + - .../controlFlowInstanceofExtendsFunction.ts | 4 +- - .../controlFlowSuperPropertyAccess.ts | 1 + - .../controlFlow/controlFlowTypeofObject.ts | 71 +++ - .../dependentDestructuredVariables.ts | 161 ++++++ - .../typeGuardsNestedAssignments.ts | 3 +- - .../controlFlow/typeGuardsTypeParameters.ts | 1 + - .../declarationEmitWorkWithInlineComments.ts | 5 +- - .../declarationEmitThisPredicates01.ts | 3 +- - ...tionEmitThisPredicatesWithPrivateName01.ts | 3 +- - .../typeReferenceRelatedFiles/fs.d.ts | 5 + - .../typeReferenceRelatedFiles/main.ts | 2 + - .../typeReferenceRelatedFiles/package.json | 4 + - .../typeReferenceRelatedFiles.ts | 18 + - .../decoratorOnClassConstructorParameter5.ts | 15 + - .../class/decoratedBlockScopedClass1.ts | 16 + - .../class/decoratedBlockScopedClass2.ts | 19 + - .../class/decoratedBlockScopedClass3.ts | 27 + - .../class/method/decoratorOnClassMethod14.ts | 14 + - .../class/method/decoratorOnClassMethod15.ts | 12 + - .../class/method/decoratorOnClassMethod16.ts | 12 + - .../class/method/decoratorOnClassMethod17.ts | 11 + - .../class/method/decoratorOnClassMethod18.ts | 11 + - .../decoratorMetadataWithTypeOnlyImport2.ts | 17 + - ...ter.asyncGenerators.classMethods.es2015.ts | 11 + - .../conformance/es2018/es2018IntlAPIs.ts | 7 + - .../conformance/es2020/es2020IntlAPIs.ts | 45 ++ - ...tionWithPropertyAccessInHeritageClause1.ts | 4 +- - .../superCallBeforeThisAccessing1.ts | 1 + - .../superCallBeforeThisAccessing2.ts | 1 + - .../superCallBeforeThisAccessing5.ts | 1 + - .../superCallBeforeThisAccessing8.ts | 1 + - .../es6/spread/arraySpreadImportHelpers.ts | 16 + - ...mplateStringWithCommentsInArrowFunction.ts | 14 + - .../expressions/asOperator/asOperatorASI.ts | 1 + - .../comparisonOperatorWithIdenticalObjects.ts | 6 +- - .../comparisonOperatorWithIntersectionType.ts | 5 + - ...nshipObjectsOnInstantiatedCallSignature.ts | 4 +- - ...jectsOnInstantiatedConstructorSignature.ts | 4 +- - ...peratorWithSubtypeObjectOnCallSignature.ts | 3 +- - ...WithSubtypeObjectOnConstructorSignature.ts | 3 +- - ...eratorWithSubtypeObjectOnIndexSignature.ts | 3 +- - ...ubtypeObjectOnInstantiatedCallSignature.ts | 3 +- - ...bjectOnInstantiatedConstructorSignature.ts | 3 +- - ...isonOperatorWithSubtypeObjectOnProperty.ts | 6 +- - ...anceofOperatorWithInvalidStaticToString.ts | 3 + - .../instanceofOperatorWithLHSIsObject.ts | 1 + - ...ommaOperatorWithSecondOperandObjectType.ts | 1 + - .../conditionalOperatorWithIdenticalBCT.ts | 3 + - .../superCallParameterContextualTyping1.ts | 2 + - .../superCallParameterContextualTyping3.ts | 3 +- - .../functionCalls/callWithSpread.ts | 1 + - .../functions/arrowFunctionExpressions.ts | 1 + - .../newOperator/newOperatorConformance.ts | 1 + - .../expressions/superCalls/superCalls.ts | 2 + - .../thisKeyword/typeOfThisGeneral.ts | 178 +++++++ - .../typeGuards/TypeGuardWithArrayUnion.ts | 1 + - .../typeGuards/typeGuardFunction.ts | 6 +- - .../typeGuards/typeGuardFunctionGenerics.ts | 4 +- - .../typeGuardOfFormExpr1AndExpr2.ts | 3 +- - .../typeGuards/typeGuardOfFormExpr1OrExpr2.ts | 3 +- - .../typeGuards/typeGuardOfFormInstanceOf.ts | 45 +- - .../typeGuards/typeGuardOfFormIsType.ts | 5 +- - .../typeGuardOfFormTypeOfBoolean.ts | 1 + - .../typeGuards/typeGuardOfFormTypeOfNumber.ts | 1 + - .../typeGuards/typeGuardOfFormTypeOfString.ts | 1 + - .../typeGuardOfFromPropNameInUnionType.ts | 9 + - .../typeGuards/typeGuardsInClassAccessors.ts | 1 + - .../typeGuards/typeGuardsInClassMethods.ts | 1 + - .../typeGuards/typeGuardsInProperties.ts | 3 +- - .../typeGuards/typeGuardsOnClassProperty.ts | 3 +- - .../bitwiseNotOperatorWithNumberType.ts | 3 +- - .../bitwiseNotOperatorWithStringType.ts | 3 +- - .../externalModules/exportNonVisibleType.ts | 1 + - .../moduleResolutionWithoutExtension1.ts | 12 + - .../moduleResolutionWithoutExtension2.ts | 6 + - .../moduleResolutionWithoutExtension3.ts | 12 + - .../moduleResolutionWithoutExtension4.ts | 12 + - .../moduleResolutionWithoutExtension5.ts | 6 + - .../moduleResolutionWithoutExtension6.ts | 8 + - .../moduleResolutionWithoutExtension7.ts | 6 + - .../moduleResolutionWithoutExtension8.ts | 6 + - .../typeOnly/exportSpecifiers.ts | 21 + - .../typeOnly/importDefaultNamedType/a.ts | 2 + - .../importDefaultNamedType.ts | 5 + - .../typeOnly/importSpecifiers1.ts | 46 ++ - .../typeOnly/preserveValueImports.ts | 28 + - .../typeOnly/preserveValueImports_errors.ts | 47 ++ - ...erveValueImports_importsNotUsedAsValues.ts | 14 + - .../preserveValueImports_mixedImports.ts | 13 + - .../typeOnly/preserveValueImports_module.ts | 4 + - .../importAssertion/importAssertion1.ts | 37 ++ - .../importAssertion/importAssertion2.ts | 17 + - .../importAssertion/importAssertion3.ts | 15 + - .../importAssertion/importAssertion4.ts | 1 + - .../importAssertion/importAssertion5.ts | 1 + - .../mergedInterfacesWithMultipleBases3.ts | 6 +- - .../interfaceExtendsObjectIntersection.ts | 12 + - .../interfaceWithPropertyOfEveryType.ts | 3 +- - ...duleAndAmbientWithSameNameAndCommonRoot.ts | 1 - - ...onAmbientClassWithSameNameAndCommonRoot.ts | 1 + - ...ionAndNonExportedFunctionThatShareAName.ts | 4 +- - ...ortedAndNonExportedClassesOfTheSameName.ts | 4 + - ...rgeEachWithExportedModulesOfTheSameName.ts | 2 + - .../codeGeneration/exportCodeGen.ts | 2 + - .../codeGeneration/nameCollision.ts | 1 + - .../jsdoc/constructorTagOnClassConstructor.ts | 4 +- - ...bclassWithExplicitNoArgumentConstructor.ts | 3 +- - .../declarations/jsDeclarationsThisTypes.ts | 4 +- - .../jsdoc/enumTagImported/enumTagImported.ts | 23 + - tests/cases/conformance/jsdoc/extendsTag1.ts | 1 + - .../jsdocAugments_qualifiedName.ts | 10 + - .../jsdoc/jsdocAugments_withTypeParameter.ts | 1 + - .../jsdocImplements_namespacedInterface.ts | 2 + - .../jsdoc/jsdocTemplateTagDefault.ts | 71 +++ - .../jsdoc/jsdocTemplateTagNameResolution.ts | 16 + - .../jsdoc/jsdocTypeReferenceUseBeforeDef.ts | 1 + - .../conformance/jsdoc/jsdocVariadicType.ts | 12 + - tests/cases/conformance/jsdoc/seeTag3.ts | 7 + - tests/cases/conformance/jsdoc/thisTag2.ts | 11 + - .../conformance/jsx/jsxParsingError4.tsx | 18 + - .../jsx/jsxUnclosedParserRecovery.ts | 140 +++++ - .../jsx/tsxReactEmitSpreadAttribute.ts | 32 ++ - .../declarationNotFoundPackageBundlesTypes.ts | 23 + - .../scopedPackages/index.d.ts | 3 + - .../scopedPackages/scopedPackages.ts | 12 + - .../moduleResolution/scopedPackages/z.d.ts | 2 + - .../scopedPackagesClassic/index.d.ts | 2 + - .../scopedPackagesClassic.ts | 9 + - .../untypedModuleImport_allowJs.ts | 12 + - .../declarations.d.ts | 4 + - .../untypedModuleImport_vsAmbient.ts | 12 + - .../allowJs/nodeAllowJsPackageSelfName.ts | 24 + - .../node/allowJs/nodeModulesAllowJs1.ts | 324 ++++++++++++ - .../allowJs/nodeModulesAllowJsCjsFromJs.ts | 8 + - ...ModulesAllowJsConditionalPackageExports.ts | 126 +++++ - .../nodeModulesAllowJsDynamicImport.ts | 27 + - .../nodeModulesAllowJsExportAssignment.ts | 32 ++ - ...deModulesAllowJsGeneratedNameCollisions.ts | 29 ++ - .../nodeModulesAllowJsImportAssignment.ts | 34 ++ - ...eModulesAllowJsImportHelpersCollisions1.ts | 34 ++ - ...eModulesAllowJsImportHelpersCollisions2.ts | 30 ++ - ...eModulesAllowJsImportHelpersCollisions3.ts | 32 ++ - .../allowJs/nodeModulesAllowJsImportMeta.ts | 23 + - .../nodeModulesAllowJsPackageExports.ts | 92 ++++ - .../nodeModulesAllowJsPackageImports.ts | 41 ++ - ...nodeModulesAllowJsPackagePatternExports.ts | 69 +++ - ...lesAllowJsPackagePatternExportsTrailers.ts | 69 +++ - ...nodeModulesAllowJsSynchronousCallErrors.ts | 37 ++ - .../nodeModulesAllowJsTopLevelAwait.ts | 25 + - ...lesExportsSpecifierGenerationConditions.ts | 33 ++ - tests/cases/conformance/node/nodeModules1.ts | 321 ++++++++++++ - ...odeModulesCjsFormatFileAlwaysHasDefault.ts | 19 + - .../nodeModulesConditionalPackageExports.ts | 124 +++++ - ...tionEmitDynamicImportWithPackageExports.ts | 71 +++ - ...odulesDeclarationEmitWithPackageExports.ts | 93 ++++ - .../node/nodeModulesDynamicImport.ts | 24 + - .../node/nodeModulesExportAssignments.ts | 20 + - ...ModulesExportsBlocksSpecifierResolution.ts | 27 + - ...lesExportsSpecifierGenerationConditions.ts | 34 ++ - ...ulesExportsSpecifierGenerationDirectory.ts | 29 ++ - ...odulesExportsSpecifierGenerationPattern.ts | 29 ++ - .../node/nodeModulesForbidenSyntax.ts | 67 +++ - .../nodeModulesGeneratedNameCollisions.ts | 26 + - .../node/nodeModulesImportAssertions.ts | 13 + - .../node/nodeModulesImportAssignments.ts | 31 ++ - .../nodeModulesImportHelpersCollisions.ts | 31 ++ - .../nodeModulesImportHelpersCollisions2.ts | 27 + - .../nodeModulesImportHelpersCollisions3.ts | 25 + - .../conformance/node/nodeModulesImportMeta.ts | 20 + - .../nodeModulesImportResolutionIntoExport.ts | 24 + - .../nodeModulesImportResolutionNoCycle.ts | 24 + - .../node/nodeModulesPackageExports.ts | 90 ++++ - .../node/nodeModulesPackageImports.ts | 38 ++ - .../node/nodeModulesPackagePatternExports.ts | 67 +++ - ...odeModulesPackagePatternExportsTrailers.ts | 67 +++ - .../node/nodeModulesResolveJsonModule.ts | 29 ++ - .../node/nodeModulesSynchronousCallErrors.ts | 34 ++ - .../node/nodeModulesTopLevelAwait.ts | 22 + - .../nodeModulesTypesVersionPackageExports.ts | 53 ++ - .../conformance/node/nodePackageSelfName.ts | 21 + - .../node/nodePackageSelfNameScoped.ts | 21 + - .../cases/conformance/override/override10.ts | 3 +- - .../cases/conformance/override/override12.ts | 1 + - .../cases/conformance/override/override15.ts | 9 + - .../cases/conformance/override/override16.ts | 1 + - .../cases/conformance/override/override17.ts | 1 + - .../cases/conformance/override/override18.ts | 1 + - .../cases/conformance/override/override19.ts | 20 + - .../cases/conformance/override/override20.ts | 34 ++ - .../conformance/override/override_js1.ts | 4 +- - .../conformance/override/override_js4.ts | 14 + - .../parserClassDeclaration16.ts | 3 +- - .../parserClassDeclaration17.ts | 1 + - .../parserClassDeclaration19.ts | 3 +- - .../parserClassDeclaration20.ts | 3 +- - .../parserClassDeclaration23.ts | 3 +- - .../parserClassDeclaration26.ts | 3 +- - .../parserClassDeclarationIndexSignature1.ts | 3 +- - .../parserConstructorDeclaration1.ts | 3 +- - .../parserConstructorDeclaration5.ts | 3 +- - .../parserAccessibilityAfterStatic11.ts | 1 + - .../parserAccessibilityAfterStatic14.ts | 1 + - .../parserAccessibilityAfterStatic2.ts | 1 + - .../parserAccessibilityAfterStatic3.ts | 1 + - .../parserAccessibilityAfterStatic4.ts | 1 + - .../parserAccessibilityAfterStatic5.ts | 1 + - .../Generics/parserGenericClass1.ts | 3 +- - .../Generics/parserGenericClass2.ts | 3 +- - .../Generics/parserGenericConstraint1.ts | 3 +- - .../parserIndexMemberDeclaration1.ts | 3 +- - .../parserIndexMemberDeclaration2.ts | 3 +- - .../parserIndexMemberDeclaration3.ts | 3 +- - .../parserIndexMemberDeclaration4.ts | 3 +- - .../parserIndexMemberDeclaration6.ts | 3 +- - .../parserMemberVariableDeclaration5.ts | 3 +- - .../ecmascript5/Protected/Protected3.ts | 3 +- - .../ecmascript5/Protected/Protected5.ts | 3 +- - .../ecmascript5/Protected/Protected9.ts | 3 +- - .../RegressionTests/parser509546.ts | 1 + - .../RegressionTests/parser509546_1.ts | 1 + - .../RegressionTests/parser509546_2.ts | 1 + - .../parser/ecmascript5/parserUnicode3.ts | 3 +- - .../Iterators/parserForOfStatement22.ts | 4 + - .../Iterators/parserForOfStatement23.ts | 6 + - .../Iterators/parserForOfStatement24.ts | 4 + - .../inferringClassMembersFromAssignments3.ts | 1 + - .../conformance/salsa/plainJSBinderErrors.ts | 44 ++ - .../conformance/salsa/plainJSRedeclare.ts | 6 + - .../conformance/salsa/plainJSRedeclare2.ts | 7 + - .../conformance/salsa/plainJSRedeclare3.ts | 7 + - .../salsa/plainJSReservedStrict.ts | 7 + - .../conformance/salsa/spellingUncheckedJS.ts | 51 ++ - .../salsa/typeFromJSInitializer2.ts | 18 + - .../salsa/typeFromJSInitializer3.ts | 18 + - .../salsa/typeFromJSInitializer4.ts | 29 ++ - .../salsa/typeFromPropertyAssignment23.ts | 3 + - .../for-inStatementsAsyncIdentifier.ts | 4 + - .../returnStatements/returnStatements.ts | 1 + - .../throwInEnclosingStatements.ts | 1 + - .../types/any/anyAsGenericFunctionCall.ts | 4 +- - .../types/any/assignAnyToEveryType.ts | 4 +- - .../types/any/assignEveryTypeToAny.ts | 4 +- - .../conformance/types/conditional/variance.ts | 2 + - ...tatedFunctionInferenceWithTypeParameter.ts | 3 + - .../types/import/importTypeAmbient.ts | 5 +- - .../types/import/importTypeGenericTypes.ts | 5 +- - .../types/import/importTypeLocal.ts | 5 + - .../intersectionOfUnionNarrowing.ts | 16 + - .../types/keyof/keyofAndIndexedAccess.ts | 20 + - .../types/literal/literalTypes2.ts | 3 + - .../types/localTypes/localTypes2.ts | 3 + - .../types/localTypes/localTypes3.ts | 3 + - .../mapped/mappedTypeAsClauseRelationships.ts | 27 + - .../types/mapped/mappedTypeProperties.ts | 42 ++ - .../conformance/types/mapped/mappedTypes3.ts | 4 +- - .../types/mapped/mappedTypesAndObjects.ts | 2 + - .../members/classWithProtectedProperty.ts | 4 +- - .../types/members/indexSignatures1.ts | 325 ++++++++++++ - .../objectTypeHidingMembersOfObject.ts | 4 +- - .../types/members/objectTypePropertyAccess.ts | 2 + - .../members/objectTypeWithNumericProperty.ts | 4 +- - ...hStringNamedPropertyOfIllegalCharacters.ts | 2 + - .../typesWithSpecializedCallSignatures.ts | 5 +- - ...typesWithSpecializedConstructSignatures.ts | 5 +- - .../namedTypes/classWithOptionalParameter.ts | 5 +- - .../types/namedTypes/optionalMethods.ts | 3 + - .../conformance/types/never/neverType.ts | 2 + - ...ureWithoutReturnTypeAnnotationInference.ts | 6 +- - .../callSignaturesWithDuplicateParameters.ts | 4 +- - .../callSignaturesWithOptionalParameters.ts | 2 + - .../callSignaturesWithOptionalParameters2.ts | 4 +- - .../parametersWithNoAnnotationAreAny.ts | 4 +- - ...reIsNotSubtypeOfNonSpecializedSignature.ts | 3 + - ...atureIsSubtypeOfNonSpecializedSignature.ts | 3 + - ...gLiteralTypesInImplementationSignatures.ts | 2 + - .../typeParameterAsTypeArgument.ts | 4 +- - ...WithOverloadsThatDifferOnlyByReturnType.ts | 5 +- - .../indexSignatures/numericIndexingResults.ts | 4 +- - .../indexSignatures/stringIndexingResults.ts | 2 + - .../propertyNameWithoutTypeAnnotation.ts | 4 +- - .../propertyNamesOfReservedWords.ts | 4 +- - .../stringNamedPropertyAccess.ts | 4 +- - .../number/extendNumberInterface.ts | 2 +- - .../undefined/invalidUndefinedValues.ts | 4 +- - .../undefined/validUndefinedAssignments.ts | 4 +- - .../types/rest/objectRestParameter.ts | 1 + - .../typeLiterals/arrayOfFunctionTypes3.ts | 4 +- - .../functionLiteralForOverloads2.ts | 5 +- - .../typeQueries/typeQueryOnClass.ts | 5 +- - .../typeQueries/typeQueryWithReservedWords.ts | 1 + - .../typeQueries/typeofClass2.ts | 5 +- - .../typeQueries/typeofModuleWithoutExports.ts | 3 +- - .../specifyingTypes/typeQueries/typeofThis.ts | 146 ++++++ - .../typeQueries/typeofThisWithImplicitThis.ts | 5 + - .../types/spread/spreadDuplicate.ts | 21 + - .../types/spread/spreadDuplicateExact.ts | 22 + - .../conformance/types/spread/spreadUnion4.ts | 4 + - .../types/thisType/fluentClasses.ts | 2 + - .../types/thisType/thisTypeAndConstraints.ts | 3 + - .../types/thisType/thisTypeInClasses.ts | 6 + - .../types/thisType/thisTypeInFunctions3.ts | 3 + - .../thisType/thisTypeInTaggedTemplateCall.ts | 10 + - .../types/tuple/readonlyArraysAndTuples2.ts | 2 + - .../circularTypeAliasForUnionWithClass.ts | 4 + - .../classDoesNotDependOnBaseTypes.ts | 4 +- - .../types/typeAliases/typeAliases.ts | 4 +- - ...allGenericFunctionWithZeroTypeArguments.ts | 5 +- - .../functionConstraintSatisfaction.ts | 5 +- - .../functionConstraintSatisfaction3.ts | 5 +- - .../innerTypeParameterShadowingOuterOne2.ts | 4 +- - ...rtyAccessOnTypeParameterWithConstraints.ts | 3 +- - ...tyAccessOnTypeParameterWithConstraints2.ts | 7 +- - ...tyAccessOnTypeParameterWithConstraints3.ts | 4 +- - ...AccessOnTypeParameterWithoutConstraints.ts | 4 +- - .../typeParameterUsedAsConstraint.ts | 7 + - .../anyAssignabilityInInheritance.ts | 6 +- - .../anyAssignableToEveryType.ts | 1 + - .../anyAssignableToEveryType2.ts | 3 + - .../assignmentCompatWithObjectMembers.ts | 5 +- - .../assignmentCompatWithObjectMembers2.ts | 2 + - .../assignmentCompatWithObjectMembers3.ts | 2 + - ...mentCompatWithObjectMembersNumericNames.ts | 2 + - ...allSignatureAssignabilityInInheritance2.ts | 6 +- - ...allSignatureAssignabilityInInheritance4.ts | 6 +- - ...allSignatureAssignabilityInInheritance5.ts | 5 +- - ...uctSignatureAssignabilityInInheritance2.ts | 6 +- - ...uctSignatureAssignabilityInInheritance4.ts | 5 +- - ...uctSignatureAssignabilityInInheritance5.ts | 5 +- - .../everyTypeAssignableToAny.ts | 2 + - .../nullAssignableToEveryType.ts | 2 +- - .../undefinedAssignableToEveryType.ts | 1 + - .../bestCommonTypeOfConditionalExpressions.ts | 5 +- - ...bestCommonTypeOfConditionalExpressions2.ts | 4 +- - .../heterogeneousArrayLiterals.ts | 2 + - .../narrowingConstrainedTypeVariable.ts | 3 + - .../arrayLiteralsWithRecursiveGenerics.ts | 6 +- - .../recursiveTypeInGenericConstraint.ts | 5 +- - .../recursiveTypesUsedAsFunctionParameters.ts | 5 +- - .../nullIsSubtypeOfEverythingButUndefined.ts | 4 + - .../stringLiteralTypeIsSubtypeOfString.ts | 4 +- - .../subtypesAndSuperTypes/subtypesOfAny.ts | 5 +- - ...subtypesOfTypeParameterWithConstraints2.ts | 5 +- - .../subtypingWithCallSignatures2.ts | 6 + - .../subtypingWithCallSignatures3.ts | 4 + - .../subtypingWithCallSignatures4.ts | 6 +- - .../subtypingWithConstructSignatures2.ts | 5 + - .../subtypingWithConstructSignatures3.ts | 4 + - .../subtypingWithConstructSignatures4.ts | 6 +- - .../subtypingWithConstructSignatures5.ts | 6 +- - .../subtypingWithObjectMembers4.ts | 6 +- - .../undefinedIsSubtypeOfEverything.ts | 25 + - .../objectTypesIdentity.ts | 6 +- - .../objectTypesIdentity2.ts | 5 +- - .../objectTypesIdentityWithCallSignatures.ts | 5 +- - .../objectTypesIdentityWithCallSignatures2.ts | 5 +- - ...yWithCallSignaturesDifferingParamCounts.ts | 5 +- - ...IdentityWithCallSignaturesWithOverloads.ts | 6 +- - ...ectTypesIdentityWithConstructSignatures.ts | 6 +- - ...ctTypesIdentityWithConstructSignatures2.ts | 4 +- - ...ConstructSignaturesDifferingParamCounts.ts | 4 +- - ...tTypesIdentityWithGenericCallSignatures.ts | 6 +- - ...TypesIdentityWithGenericCallSignatures2.ts | 6 +- - ...ricCallSignaturesDifferingByConstraints.ts | 6 +- - ...icCallSignaturesDifferingByConstraints2.ts | 6 +- - ...icCallSignaturesDifferingByConstraints3.ts | 9 +- - ...ericCallSignaturesDifferingByReturnType.ts | 5 +- - ...ricCallSignaturesDifferingByReturnType2.ts | 6 +- - ...lSignaturesDifferingTypeParameterCounts.ts | 6 +- - ...llSignaturesDifferingTypeParameterNames.ts | 5 +- - ...WithGenericCallSignaturesOptionalParams.ts | 5 +- - ...ithGenericCallSignaturesOptionalParams2.ts | 5 +- - ...ithGenericCallSignaturesOptionalParams3.ts | 6 +- - ...nstructSignaturesDifferingByConstraints.ts | 2 + - ...structSignaturesDifferingByConstraints2.ts | 7 +- - ...structSignaturesDifferingByConstraints3.ts | 7 +- - ...onstructSignaturesDifferingByReturnType.ts | 4 +- - ...nstructSignaturesDifferingByReturnType2.ts | 6 +- - ...tSignaturesDifferingTypeParameterCounts.ts | 4 +- - ...ctSignaturesDifferingTypeParameterNames.ts | 6 +- - ...enericConstructSignaturesOptionalParams.ts | 5 +- - ...nericConstructSignaturesOptionalParams2.ts | 5 +- - ...nericConstructSignaturesOptionalParams3.ts | 4 +- - ...objectTypesIdentityWithNumericIndexers1.ts | 3 + - ...objectTypesIdentityWithNumericIndexers2.ts | 5 + - ...objectTypesIdentityWithNumericIndexers3.ts | 3 + - .../objectTypesIdentityWithOptionality.ts | 6 +- - .../objectTypesIdentityWithPrivates.ts | 4 +- - .../objectTypesIdentityWithPrivates2.ts | 1 + - .../objectTypesIdentityWithPublics.ts | 5 +- - .../objectTypesIdentityWithStringIndexers.ts | 3 + - .../objectTypesIdentityWithStringIndexers2.ts | 5 + - .../typeParametersAreIdenticalToThemselves.ts | 4 +- - ...allWithConstraintsTypeArgumentInference.ts | 3 + - .../genericCallWithFunctionTypedArguments4.ts | 4 +- - .../genericCallWithObjectTypeArgs2.ts | 4 +- - ...ricCallWithObjectTypeArgsAndConstraints.ts | 10 +- - ...icCallWithObjectTypeArgsAndConstraints2.ts | 1 + - ...icClassWithObjectTypeArgsAndConstraints.ts | 7 +- - .../keyofInferenceLowerPriorityThanReturn.ts | 4 + - .../types/union/discriminatedUnionTypes3.ts | 19 + - 497 files changed, 8097 insertions(+), 197 deletions(-) - create mode 100644 tests/cases/conformance/ambient/ambientDeclarationsPatterns/ambientDeclarationsPatterns.ts - create mode 100644 tests/cases/conformance/ambient/ambientDeclarationsPatterns/declarations.d.ts - create mode 100644 tests/cases/conformance/ambient/ambientShorthand_merging/ambientShorthand_merging.ts - create mode 100644 tests/cases/conformance/ambient/ambientShorthand_merging/declarations1.d.ts - create mode 100644 tests/cases/conformance/ambient/ambientShorthand_merging/declarations2.d.ts - create mode 100644 tests/cases/conformance/ambient/ambientShorthand_reExport/ambientShorthand_reExport.ts - create mode 100644 tests/cases/conformance/ambient/ambientShorthand_reExport/declarations.d.ts - create mode 100644 tests/cases/conformance/ambient/ambientShorthand_reExport/jquery.d.ts - create mode 100644 tests/cases/conformance/ambient/ambientShorthand_reExport/reExportAll.ts - create mode 100644 tests/cases/conformance/ambient/ambientShorthand_reExport/reExportX.ts - create mode 100644 tests/cases/conformance/async/es6/functionDeclarations/asyncOrYieldAsBindingIdentifier1.ts - create mode 100644 tests/cases/conformance/classes/classStaticBlock/classStaticBlock1.ts - create mode 100644 tests/cases/conformance/classes/classStaticBlock/classStaticBlock10.ts - create mode 100644 tests/cases/conformance/classes/classStaticBlock/classStaticBlock11.ts - create mode 100644 tests/cases/conformance/classes/classStaticBlock/classStaticBlock12.ts - create mode 100644 tests/cases/conformance/classes/classStaticBlock/classStaticBlock13.ts - create mode 100644 tests/cases/conformance/classes/classStaticBlock/classStaticBlock14.ts - create mode 100644 tests/cases/conformance/classes/classStaticBlock/classStaticBlock15.ts - create mode 100644 tests/cases/conformance/classes/classStaticBlock/classStaticBlock16.ts - create mode 100644 tests/cases/conformance/classes/classStaticBlock/classStaticBlock17.ts - create mode 100644 tests/cases/conformance/classes/classStaticBlock/classStaticBlock18.ts - create mode 100644 tests/cases/conformance/classes/classStaticBlock/classStaticBlock19.ts - create mode 100644 tests/cases/conformance/classes/classStaticBlock/classStaticBlock2.ts - create mode 100644 tests/cases/conformance/classes/classStaticBlock/classStaticBlock20.ts - create mode 100644 tests/cases/conformance/classes/classStaticBlock/classStaticBlock21.ts - create mode 100644 tests/cases/conformance/classes/classStaticBlock/classStaticBlock22.ts - create mode 100644 tests/cases/conformance/classes/classStaticBlock/classStaticBlock23.ts - create mode 100644 tests/cases/conformance/classes/classStaticBlock/classStaticBlock24.ts - create mode 100644 tests/cases/conformance/classes/classStaticBlock/classStaticBlock25.ts - create mode 100644 tests/cases/conformance/classes/classStaticBlock/classStaticBlock26.ts - create mode 100644 tests/cases/conformance/classes/classStaticBlock/classStaticBlock27.ts - create mode 100644 tests/cases/conformance/classes/classStaticBlock/classStaticBlock3.ts - create mode 100644 tests/cases/conformance/classes/classStaticBlock/classStaticBlock4.ts - create mode 100644 tests/cases/conformance/classes/classStaticBlock/classStaticBlock5.ts - create mode 100644 tests/cases/conformance/classes/classStaticBlock/classStaticBlock6.ts - create mode 100644 tests/cases/conformance/classes/classStaticBlock/classStaticBlock7.ts - create mode 100644 tests/cases/conformance/classes/classStaticBlock/classStaticBlock8.ts - create mode 100644 tests/cases/conformance/classes/classStaticBlock/classStaticBlock9.ts - create mode 100644 tests/cases/conformance/classes/classStaticBlock/classStaticBlockUseBeforeDef1.ts - create mode 100644 tests/cases/conformance/classes/classStaticBlock/classStaticBlockUseBeforeDef2.ts - create mode 100644 tests/cases/conformance/classes/members/instanceAndStaticMembers/superInStaticMembers1.ts - create mode 100644 tests/cases/conformance/classes/members/instanceAndStaticMembers/thisAndSuperInStaticMembers1.ts - create mode 100644 tests/cases/conformance/classes/members/instanceAndStaticMembers/thisAndSuperInStaticMembers2.ts - create mode 100644 tests/cases/conformance/classes/members/instanceAndStaticMembers/thisAndSuperInStaticMembers3.ts - create mode 100644 tests/cases/conformance/classes/members/instanceAndStaticMembers/thisAndSuperInStaticMembers4.ts - create mode 100644 tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers10.ts - create mode 100644 tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers11.ts - create mode 100644 tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers12.ts - create mode 100644 tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers13.ts - create mode 100644 tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers3.ts - create mode 100644 tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers4.ts - create mode 100644 tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers5.ts - create mode 100644 tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers6.ts - create mode 100644 tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers7.ts - create mode 100644 tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers8.ts - create mode 100644 tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers9.ts - create mode 100644 tests/cases/conformance/classes/members/privateNames/privateNameHashCharName.ts - create mode 100644 tests/cases/conformance/classes/members/privateNames/privateNameInInExpression.ts - create mode 100644 tests/cases/conformance/classes/members/privateNames/privateNameInInExpressionTransform.ts - create mode 100644 tests/cases/conformance/classes/members/privateNames/privateNameInInExpressionUnused.ts - create mode 100644 tests/cases/conformance/classes/members/privateNames/privateNamesIncompatibleModifiersJs.ts - create mode 100644 tests/cases/conformance/classes/propertyMemberDeclarations/abstractPropertyInitializer.ts - create mode 100644 tests/cases/conformance/controlFlow/assertionTypePredicates2.ts - create mode 100644 tests/cases/conformance/controlFlow/controlFlowAliasing.ts - create mode 100644 tests/cases/conformance/controlFlow/controlFlowAliasingCatchVariables.ts - create mode 100644 tests/cases/conformance/controlFlow/controlFlowForInStatement2.ts - create mode 100644 tests/cases/conformance/controlFlow/controlFlowInOperator.ts - create mode 100644 tests/cases/conformance/controlFlow/controlFlowTypeofObject.ts - create mode 100644 tests/cases/conformance/controlFlow/dependentDestructuredVariables.ts - create mode 100644 tests/cases/conformance/declarationEmit/typeReferenceRelatedFiles/fs.d.ts - create mode 100644 tests/cases/conformance/declarationEmit/typeReferenceRelatedFiles/main.ts - create mode 100644 tests/cases/conformance/declarationEmit/typeReferenceRelatedFiles/package.json - create mode 100644 tests/cases/conformance/declarationEmit/typeReferenceRelatedFiles/typeReferenceRelatedFiles.ts - create mode 100644 tests/cases/conformance/decorators/class/constructor/parameter/decoratorOnClassConstructorParameter5.ts - create mode 100644 tests/cases/conformance/decorators/class/decoratedBlockScopedClass1.ts - create mode 100644 tests/cases/conformance/decorators/class/decoratedBlockScopedClass2.ts - create mode 100644 tests/cases/conformance/decorators/class/decoratedBlockScopedClass3.ts - create mode 100644 tests/cases/conformance/decorators/class/method/decoratorOnClassMethod14.ts - create mode 100644 tests/cases/conformance/decorators/class/method/decoratorOnClassMethod15.ts - create mode 100644 tests/cases/conformance/decorators/class/method/decoratorOnClassMethod16.ts - create mode 100644 tests/cases/conformance/decorators/class/method/decoratorOnClassMethod17.ts - create mode 100644 tests/cases/conformance/decorators/class/method/decoratorOnClassMethod18.ts - create mode 100644 tests/cases/conformance/decorators/decoratorMetadataWithTypeOnlyImport2.ts - create mode 100644 tests/cases/conformance/es2018/es2018IntlAPIs.ts - create mode 100644 tests/cases/conformance/es2020/es2020IntlAPIs.ts - create mode 100644 tests/cases/conformance/es6/spread/arraySpreadImportHelpers.ts - create mode 100644 tests/cases/conformance/es6/templates/templateStringWithCommentsInArrowFunction.ts - create mode 100644 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithIntersectionType.ts - create mode 100644 tests/cases/conformance/expressions/thisKeyword/typeOfThisGeneral.ts - create mode 100644 tests/cases/conformance/externalModules/moduleResolutionWithoutExtension1.ts - create mode 100644 tests/cases/conformance/externalModules/moduleResolutionWithoutExtension2.ts - create mode 100644 tests/cases/conformance/externalModules/moduleResolutionWithoutExtension3.ts - create mode 100644 tests/cases/conformance/externalModules/moduleResolutionWithoutExtension4.ts - create mode 100644 tests/cases/conformance/externalModules/moduleResolutionWithoutExtension5.ts - create mode 100644 tests/cases/conformance/externalModules/moduleResolutionWithoutExtension6.ts - create mode 100644 tests/cases/conformance/externalModules/moduleResolutionWithoutExtension7.ts - create mode 100644 tests/cases/conformance/externalModules/moduleResolutionWithoutExtension8.ts - create mode 100644 tests/cases/conformance/externalModules/typeOnly/exportSpecifiers.ts - create mode 100644 tests/cases/conformance/externalModules/typeOnly/importDefaultNamedType/a.ts - create mode 100644 tests/cases/conformance/externalModules/typeOnly/importDefaultNamedType/importDefaultNamedType.ts - create mode 100644 tests/cases/conformance/externalModules/typeOnly/importSpecifiers1.ts - create mode 100644 tests/cases/conformance/externalModules/typeOnly/preserveValueImports.ts - create mode 100644 tests/cases/conformance/externalModules/typeOnly/preserveValueImports_errors.ts - create mode 100644 tests/cases/conformance/externalModules/typeOnly/preserveValueImports_importsNotUsedAsValues.ts - create mode 100644 tests/cases/conformance/externalModules/typeOnly/preserveValueImports_mixedImports.ts - create mode 100644 tests/cases/conformance/externalModules/typeOnly/preserveValueImports_module.ts - create mode 100644 tests/cases/conformance/importAssertion/importAssertion1.ts - create mode 100644 tests/cases/conformance/importAssertion/importAssertion2.ts - create mode 100644 tests/cases/conformance/importAssertion/importAssertion3.ts - create mode 100644 tests/cases/conformance/importAssertion/importAssertion4.ts - create mode 100644 tests/cases/conformance/importAssertion/importAssertion5.ts - create mode 100644 tests/cases/conformance/jsdoc/enumTagImported/enumTagImported.ts - create mode 100644 tests/cases/conformance/jsdoc/jsdocAugments_qualifiedName/jsdocAugments_qualifiedName.ts - create mode 100644 tests/cases/conformance/jsdoc/jsdocTemplateTagDefault.ts - create mode 100644 tests/cases/conformance/jsdoc/jsdocTemplateTagNameResolution.ts - create mode 100644 tests/cases/conformance/jsdoc/jsdocVariadicType.ts - create mode 100644 tests/cases/conformance/jsdoc/seeTag3.ts - create mode 100644 tests/cases/conformance/jsdoc/thisTag2.ts - create mode 100644 tests/cases/conformance/jsx/jsxParsingError4.tsx - create mode 100644 tests/cases/conformance/jsx/jsxUnclosedParserRecovery.ts - create mode 100644 tests/cases/conformance/jsx/tsxReactEmitSpreadAttribute.ts - create mode 100644 tests/cases/conformance/moduleResolution/declarationNotFoundPackageBundlesTypes.ts - create mode 100644 tests/cases/conformance/moduleResolution/scopedPackages/index.d.ts - create mode 100644 tests/cases/conformance/moduleResolution/scopedPackages/scopedPackages.ts - create mode 100644 tests/cases/conformance/moduleResolution/scopedPackages/z.d.ts - create mode 100644 tests/cases/conformance/moduleResolution/scopedPackagesClassic/index.d.ts - create mode 100644 tests/cases/conformance/moduleResolution/scopedPackagesClassic/scopedPackagesClassic.ts - create mode 100644 tests/cases/conformance/moduleResolution/untypedModuleImport_allowJs/untypedModuleImport_allowJs.ts - create mode 100644 tests/cases/conformance/moduleResolution/untypedModuleImport_vsAmbient/declarations.d.ts - create mode 100644 tests/cases/conformance/moduleResolution/untypedModuleImport_vsAmbient/untypedModuleImport_vsAmbient.ts - create mode 100644 tests/cases/conformance/node/allowJs/nodeAllowJsPackageSelfName.ts - create mode 100644 tests/cases/conformance/node/allowJs/nodeModulesAllowJs1.ts - create mode 100644 tests/cases/conformance/node/allowJs/nodeModulesAllowJsCjsFromJs.ts - create mode 100644 tests/cases/conformance/node/allowJs/nodeModulesAllowJsConditionalPackageExports.ts - create mode 100644 tests/cases/conformance/node/allowJs/nodeModulesAllowJsDynamicImport.ts - create mode 100644 tests/cases/conformance/node/allowJs/nodeModulesAllowJsExportAssignment.ts - create mode 100644 tests/cases/conformance/node/allowJs/nodeModulesAllowJsGeneratedNameCollisions.ts - create mode 100644 tests/cases/conformance/node/allowJs/nodeModulesAllowJsImportAssignment.ts - create mode 100644 tests/cases/conformance/node/allowJs/nodeModulesAllowJsImportHelpersCollisions1.ts - create mode 100644 tests/cases/conformance/node/allowJs/nodeModulesAllowJsImportHelpersCollisions2.ts - create mode 100644 tests/cases/conformance/node/allowJs/nodeModulesAllowJsImportHelpersCollisions3.ts - create mode 100644 tests/cases/conformance/node/allowJs/nodeModulesAllowJsImportMeta.ts - create mode 100644 tests/cases/conformance/node/allowJs/nodeModulesAllowJsPackageExports.ts - create mode 100644 tests/cases/conformance/node/allowJs/nodeModulesAllowJsPackageImports.ts - create mode 100644 tests/cases/conformance/node/allowJs/nodeModulesAllowJsPackagePatternExports.ts - create mode 100644 tests/cases/conformance/node/allowJs/nodeModulesAllowJsPackagePatternExportsTrailers.ts - create mode 100644 tests/cases/conformance/node/allowJs/nodeModulesAllowJsSynchronousCallErrors.ts - create mode 100644 tests/cases/conformance/node/allowJs/nodeModulesAllowJsTopLevelAwait.ts - create mode 100644 tests/cases/conformance/node/legacyNodeModulesExportsSpecifierGenerationConditions.ts - create mode 100644 tests/cases/conformance/node/nodeModules1.ts - create mode 100644 tests/cases/conformance/node/nodeModulesCjsFormatFileAlwaysHasDefault.ts - create mode 100644 tests/cases/conformance/node/nodeModulesConditionalPackageExports.ts - create mode 100644 tests/cases/conformance/node/nodeModulesDeclarationEmitDynamicImportWithPackageExports.ts - create mode 100644 tests/cases/conformance/node/nodeModulesDeclarationEmitWithPackageExports.ts - create mode 100644 tests/cases/conformance/node/nodeModulesDynamicImport.ts - create mode 100644 tests/cases/conformance/node/nodeModulesExportAssignments.ts - create mode 100644 tests/cases/conformance/node/nodeModulesExportsBlocksSpecifierResolution.ts - create mode 100644 tests/cases/conformance/node/nodeModulesExportsSpecifierGenerationConditions.ts - create mode 100644 tests/cases/conformance/node/nodeModulesExportsSpecifierGenerationDirectory.ts - create mode 100644 tests/cases/conformance/node/nodeModulesExportsSpecifierGenerationPattern.ts - create mode 100644 tests/cases/conformance/node/nodeModulesForbidenSyntax.ts - create mode 100644 tests/cases/conformance/node/nodeModulesGeneratedNameCollisions.ts - create mode 100644 tests/cases/conformance/node/nodeModulesImportAssertions.ts - create mode 100644 tests/cases/conformance/node/nodeModulesImportAssignments.ts - create mode 100644 tests/cases/conformance/node/nodeModulesImportHelpersCollisions.ts - create mode 100644 tests/cases/conformance/node/nodeModulesImportHelpersCollisions2.ts - create mode 100644 tests/cases/conformance/node/nodeModulesImportHelpersCollisions3.ts - create mode 100644 tests/cases/conformance/node/nodeModulesImportMeta.ts - create mode 100644 tests/cases/conformance/node/nodeModulesImportResolutionIntoExport.ts - create mode 100644 tests/cases/conformance/node/nodeModulesImportResolutionNoCycle.ts - create mode 100644 tests/cases/conformance/node/nodeModulesPackageExports.ts - create mode 100644 tests/cases/conformance/node/nodeModulesPackageImports.ts - create mode 100644 tests/cases/conformance/node/nodeModulesPackagePatternExports.ts - create mode 100644 tests/cases/conformance/node/nodeModulesPackagePatternExportsTrailers.ts - create mode 100644 tests/cases/conformance/node/nodeModulesResolveJsonModule.ts - create mode 100644 tests/cases/conformance/node/nodeModulesSynchronousCallErrors.ts - create mode 100644 tests/cases/conformance/node/nodeModulesTopLevelAwait.ts - create mode 100644 tests/cases/conformance/node/nodeModulesTypesVersionPackageExports.ts - create mode 100644 tests/cases/conformance/node/nodePackageSelfName.ts - create mode 100644 tests/cases/conformance/node/nodePackageSelfNameScoped.ts - create mode 100644 tests/cases/conformance/override/override15.ts - create mode 100644 tests/cases/conformance/override/override19.ts - create mode 100644 tests/cases/conformance/override/override20.ts - create mode 100644 tests/cases/conformance/override/override_js4.ts - create mode 100644 tests/cases/conformance/parser/ecmascript6/Iterators/parserForOfStatement22.ts - create mode 100644 tests/cases/conformance/parser/ecmascript6/Iterators/parserForOfStatement23.ts - create mode 100644 tests/cases/conformance/parser/ecmascript6/Iterators/parserForOfStatement24.ts - create mode 100644 tests/cases/conformance/salsa/plainJSBinderErrors.ts - create mode 100644 tests/cases/conformance/salsa/plainJSRedeclare.ts - create mode 100644 tests/cases/conformance/salsa/plainJSRedeclare2.ts - create mode 100644 tests/cases/conformance/salsa/plainJSRedeclare3.ts - create mode 100644 tests/cases/conformance/salsa/plainJSReservedStrict.ts - create mode 100644 tests/cases/conformance/salsa/spellingUncheckedJS.ts - create mode 100644 tests/cases/conformance/salsa/typeFromJSInitializer2.ts - create mode 100644 tests/cases/conformance/salsa/typeFromJSInitializer3.ts - create mode 100644 tests/cases/conformance/salsa/typeFromJSInitializer4.ts - create mode 100644 tests/cases/conformance/statements/for-inStatements/for-inStatementsAsyncIdentifier.ts - create mode 100644 tests/cases/conformance/types/intersection/intersectionOfUnionNarrowing.ts - create mode 100644 tests/cases/conformance/types/mapped/mappedTypeAsClauseRelationships.ts - create mode 100644 tests/cases/conformance/types/mapped/mappedTypeProperties.ts - create mode 100644 tests/cases/conformance/types/members/indexSignatures1.ts - create mode 100644 tests/cases/conformance/types/specifyingTypes/typeQueries/typeofThis.ts - create mode 100644 tests/cases/conformance/types/specifyingTypes/typeQueries/typeofThisWithImplicitThis.ts - create mode 100644 tests/cases/conformance/types/spread/spreadDuplicate.ts - create mode 100644 tests/cases/conformance/types/spread/spreadDuplicateExact.ts - create mode 100644 tests/cases/conformance/types/spread/spreadUnion4.ts - create mode 100644 tests/cases/conformance/types/thisType/thisTypeInTaggedTemplateCall.ts - create mode 100644 tests/cases/conformance/types/union/discriminatedUnionTypes3.ts - -diff --git a/tests/cases/conformance/ambient/ambientDeclarations.ts b/tests/cases/conformance/ambient/ambientDeclarations.ts -index 379f5a5440..156ca565af 100644 ---- a/tests/cases/conformance/ambient/ambientDeclarations.ts -+++ b/tests/cases/conformance/ambient/ambientDeclarations.ts -@@ -73,3 +73,4 @@ declare module 'external1' { +From 93dbec5e710a8cb28ca8b7f0c70b9ade4a8fc911 Mon Sep 17 00:00:00 2001 +From: zhangrengao +Date: Sat, 15 Jan 2022 21:39:48 +0800 +Subject: [PATCH] test patch + +--- + .../ambient/ambientDeclarations.ts | 1 + + .../ambientDeclarationsPatterns.ts | 11 + + .../declarations.d.ts | 18 + + .../ambient/ambientInsideNonAmbient.ts | 2 + + .../ambientInsideNonAmbientExternalModule.ts | 4 +- + .../ambientShorthand_merging.ts | 6 + + .../declarations1.d.ts | 2 + + .../declarations2.d.ts | 4 + + .../ambientShorthand_reExport.ts | 5 + + .../declarations.d.ts | 2 + + .../ambientShorthand_reExport/jquery.d.ts | 2 + + .../ambientShorthand_reExport/reExportAll.ts | 2 + + .../ambientShorthand_reExport/reExportX.ts | 2 + + .../async/es5/asyncMethodWithSuper_es5.ts | 1 + + .../asyncOrYieldAsBindingIdentifier1.ts | 49 ++ + .../classAbstractAsIdentifier.ts | 2 +- + .../classBody/classWithEmptyBody.ts | 4 +- + .../classDeclarations/classInsideBlock.ts | 1 + + .../classWithPredefinedTypesAsNames.ts | 4 +- + .../classWithSemicolonClassElement1.ts | 3 +- + .../classWithSemicolonClassElement2.ts | 3 +- + .../classExpressions/classExpression2.ts | 4 +- + .../classStaticBlock/classStaticBlock1.ts | 11 + + .../classStaticBlock/classStaticBlock10.ts | 30 ++ + .../classStaticBlock/classStaticBlock11.ts | 15 + + .../classStaticBlock/classStaticBlock12.ts | 10 + + .../classStaticBlock/classStaticBlock13.ts | 14 + + .../classStaticBlock/classStaticBlock14.ts | 15 + + .../classStaticBlock/classStaticBlock15.ts | 18 + + .../classStaticBlock/classStaticBlock16.ts | 26 + + .../classStaticBlock/classStaticBlock17.ts | 33 ++ + .../classStaticBlock/classStaticBlock18.ts | 15 + + .../classStaticBlock/classStaticBlock19.ts | 6 + + .../classStaticBlock/classStaticBlock2.ts | 20 + + .../classStaticBlock/classStaticBlock20.ts | 13 + + .../classStaticBlock/classStaticBlock21.ts | 7 + + .../classStaticBlock/classStaticBlock22.ts | 72 +++ + .../classStaticBlock/classStaticBlock23.ts | 21 + + .../classStaticBlock/classStaticBlock24.ts | 8 + + .../classStaticBlock/classStaticBlock25.ts | 23 + + .../classStaticBlock/classStaticBlock26.ts | 30 ++ + .../classStaticBlock/classStaticBlock27.ts | 17 + + .../classStaticBlock/classStaticBlock3.ts | 19 + + .../classStaticBlock/classStaticBlock4.ts | 16 + + .../classStaticBlock/classStaticBlock5.ts | 19 + + .../classStaticBlock/classStaticBlock6.ts | 62 +++ + .../classStaticBlock/classStaticBlock7.ts | 43 ++ + .../classStaticBlock/classStaticBlock8.ts | 48 ++ + .../classStaticBlock/classStaticBlock9.ts | 8 + + .../classStaticBlockUseBeforeDef1.ts | 15 + + .../classStaticBlockUseBeforeDef2.ts | 10 + + .../classConstructorAccessibility4.ts | 4 +- + ...structorImplementationWithDefaultValues.ts | 6 +- + .../declarationEmitReadonly.ts | 3 +- + .../quotedConstructors.ts | 4 + + ...idesIndexersWithAssignmentCompatibility.ts | 4 +- + .../superInStaticMembers1.ts | 492 ++++++++++++++++++ + .../thisAndSuperInStaticMembers1.ts | 42 ++ + .../thisAndSuperInStaticMembers2.ts | 42 ++ + .../thisAndSuperInStaticMembers3.ts | 26 + + .../thisAndSuperInStaticMembers4.ts | 26 + + .../typeOfThisInStaticMembers.ts | 3 +- + .../typeOfThisInStaticMembers10.ts | 51 ++ + .../typeOfThisInStaticMembers11.ts | 51 ++ + .../typeOfThisInStaticMembers12.ts | 10 + + .../typeOfThisInStaticMembers13.ts | 10 + + .../typeOfThisInStaticMembers3.ts | 12 + + .../typeOfThisInStaticMembers4.ts | 12 + + .../typeOfThisInStaticMembers5.ts | 9 + + .../typeOfThisInStaticMembers6.ts | 7 + + .../typeOfThisInStaticMembers7.ts | 12 + + .../typeOfThisInStaticMembers8.ts | 19 + + .../typeOfThisInStaticMembers9.ts | 22 + + .../privateNameComputedPropertyName3.ts | 2 + + .../privateNames/privateNameFieldAccess.ts | 1 + + .../privateNames/privateNameHashCharName.ts | 11 + + .../privateNames/privateNameInInExpression.ts | 119 +++++ + .../privateNameInInExpressionTransform.ts | 47 ++ + .../privateNameInInExpressionUnused.ts | 13 + + .../privateNamesIncompatibleModifiersJs.ts | 65 +++ + .../classes/mixinClassesAnnotated.ts | 3 + + .../classes/mixinClassesAnonymous.ts | 2 + + .../classes/mixinClassesMembers.ts | 5 + + .../abstractProperty.ts | 3 + + .../abstractPropertyInitializer.ts | 5 + + .../instanceMemberInitialization.ts | 7 +- + ...instanceMemberWithComputedPropertyName2.ts | 1 + + .../staticFactory1.ts | 3 +- + .../staticAndNonStaticPropertiesSameName.ts | 3 +- + .../staticPropertyAndFunctionWithSameName.ts | 4 +- + ...icPropertyNameConflictsInAmbientContext.ts | 10 + + .../controlFlow/assertionTypePredicates2.ts | 27 + + .../controlFlow/controlFlowAliasing.ts | 285 ++++++++++ + .../controlFlowAliasingCatchVariables.ts | 28 + + .../controlFlow/controlFlowElementAccess2.ts | 2 +- + .../controlFlow/controlFlowForInStatement2.ts | 25 + + .../controlFlow/controlFlowInOperator.ts | 26 + + .../controlFlowInstanceofExtendsFunction.ts | 4 +- + .../controlFlowSuperPropertyAccess.ts | 1 + + .../controlFlow/controlFlowTypeofObject.ts | 71 +++ + .../dependentDestructuredVariables.ts | 161 ++++++ + .../typeGuardsNestedAssignments.ts | 3 +- + .../controlFlow/typeGuardsTypeParameters.ts | 1 + + .../declarationEmitWorkWithInlineComments.ts | 5 +- + .../declarationEmitThisPredicates01.ts | 3 +- + ...tionEmitThisPredicatesWithPrivateName01.ts | 3 +- + .../typeReferenceRelatedFiles/fs.d.ts | 5 + + .../typeReferenceRelatedFiles/main.ts | 2 + + .../typeReferenceRelatedFiles/package.json | 4 + + .../typeReferenceRelatedFiles.ts | 18 + + .../decoratorOnClassConstructorParameter5.ts | 15 + + .../class/decoratedBlockScopedClass1.ts | 16 + + .../class/decoratedBlockScopedClass2.ts | 19 + + .../class/decoratedBlockScopedClass3.ts | 27 + + .../class/method/decoratorOnClassMethod14.ts | 14 + + .../class/method/decoratorOnClassMethod15.ts | 12 + + .../class/method/decoratorOnClassMethod16.ts | 12 + + .../class/method/decoratorOnClassMethod17.ts | 11 + + .../class/method/decoratorOnClassMethod18.ts | 11 + + .../decoratorMetadataWithTypeOnlyImport2.ts | 17 + + ...ter.asyncGenerators.classMethods.es2015.ts | 11 + + .../conformance/es2018/es2018IntlAPIs.ts | 7 + + .../conformance/es2020/es2020IntlAPIs.ts | 45 ++ + ...tionWithPropertyAccessInHeritageClause1.ts | 4 +- + .../superCallBeforeThisAccessing1.ts | 1 + + .../superCallBeforeThisAccessing2.ts | 1 + + .../superCallBeforeThisAccessing5.ts | 1 + + .../superCallBeforeThisAccessing8.ts | 1 + + .../es6/spread/arraySpreadImportHelpers.ts | 16 + + ...mplateStringWithCommentsInArrowFunction.ts | 14 + + .../expressions/asOperator/asOperatorASI.ts | 1 + + .../comparisonOperatorWithIdenticalObjects.ts | 6 +- + .../comparisonOperatorWithIntersectionType.ts | 5 + + ...nshipObjectsOnInstantiatedCallSignature.ts | 4 +- + ...jectsOnInstantiatedConstructorSignature.ts | 4 +- + ...peratorWithSubtypeObjectOnCallSignature.ts | 3 +- + ...WithSubtypeObjectOnConstructorSignature.ts | 3 +- + ...eratorWithSubtypeObjectOnIndexSignature.ts | 3 +- + ...ubtypeObjectOnInstantiatedCallSignature.ts | 3 +- + ...bjectOnInstantiatedConstructorSignature.ts | 3 +- + ...isonOperatorWithSubtypeObjectOnProperty.ts | 6 +- + ...anceofOperatorWithInvalidStaticToString.ts | 3 + + .../instanceofOperatorWithLHSIsObject.ts | 1 + + ...ommaOperatorWithSecondOperandObjectType.ts | 1 + + .../conditionalOperatorWithIdenticalBCT.ts | 3 + + .../superCallParameterContextualTyping1.ts | 2 + + .../superCallParameterContextualTyping3.ts | 3 +- + .../functionCalls/callWithSpread.ts | 1 + + .../functions/arrowFunctionExpressions.ts | 1 + + .../newOperator/newOperatorConformance.ts | 1 + + .../expressions/superCalls/superCalls.ts | 2 + + .../thisKeyword/typeOfThisGeneral.ts | 178 +++++++ + .../typeGuards/TypeGuardWithArrayUnion.ts | 1 + + .../typeGuards/typeGuardFunction.ts | 6 +- + .../typeGuards/typeGuardFunctionGenerics.ts | 4 +- + .../typeGuardOfFormExpr1AndExpr2.ts | 3 +- + .../typeGuards/typeGuardOfFormExpr1OrExpr2.ts | 3 +- + .../typeGuards/typeGuardOfFormInstanceOf.ts | 45 +- + .../typeGuards/typeGuardOfFormIsType.ts | 5 +- + .../typeGuardOfFormTypeOfBoolean.ts | 1 + + .../typeGuards/typeGuardOfFormTypeOfNumber.ts | 1 + + .../typeGuards/typeGuardOfFormTypeOfString.ts | 1 + + .../typeGuardOfFromPropNameInUnionType.ts | 9 + + .../typeGuards/typeGuardsInClassAccessors.ts | 1 + + .../typeGuards/typeGuardsInClassMethods.ts | 1 + + .../typeGuards/typeGuardsInProperties.ts | 3 +- + .../typeGuards/typeGuardsOnClassProperty.ts | 3 +- + .../bitwiseNotOperatorWithNumberType.ts | 3 +- + .../bitwiseNotOperatorWithStringType.ts | 3 +- + .../externalModules/exportNonVisibleType.ts | 1 + + .../moduleResolutionWithoutExtension1.ts | 12 + + .../moduleResolutionWithoutExtension2.ts | 6 + + .../moduleResolutionWithoutExtension3.ts | 12 + + .../moduleResolutionWithoutExtension4.ts | 12 + + .../moduleResolutionWithoutExtension5.ts | 6 + + .../moduleResolutionWithoutExtension6.ts | 8 + + .../moduleResolutionWithoutExtension7.ts | 6 + + .../moduleResolutionWithoutExtension8.ts | 6 + + .../typeOnly/exportSpecifiers.ts | 21 + + .../typeOnly/importDefaultNamedType/a.ts | 2 + + .../importDefaultNamedType.ts | 5 + + .../typeOnly/importSpecifiers1.ts | 46 ++ + .../typeOnly/preserveValueImports.ts | 28 + + .../typeOnly/preserveValueImports_errors.ts | 47 ++ + ...erveValueImports_importsNotUsedAsValues.ts | 14 + + .../preserveValueImports_mixedImports.ts | 13 + + .../typeOnly/preserveValueImports_module.ts | 4 + + .../importAssertion/importAssertion1.ts | 37 ++ + .../importAssertion/importAssertion2.ts | 17 + + .../importAssertion/importAssertion3.ts | 15 + + .../importAssertion/importAssertion4.ts | 1 + + .../importAssertion/importAssertion5.ts | 1 + + .../mergedInterfacesWithMultipleBases3.ts | 6 +- + .../interfaceExtendsObjectIntersection.ts | 12 + + .../interfaceWithPropertyOfEveryType.ts | 3 +- + ...duleAndAmbientWithSameNameAndCommonRoot.ts | 1 - + ...onAmbientClassWithSameNameAndCommonRoot.ts | 1 + + ...ionAndNonExportedFunctionThatShareAName.ts | 4 +- + ...ortedAndNonExportedClassesOfTheSameName.ts | 4 + + ...rgeEachWithExportedModulesOfTheSameName.ts | 2 + + .../codeGeneration/exportCodeGen.ts | 2 + + .../codeGeneration/nameCollision.ts | 1 + + .../jsdoc/constructorTagOnClassConstructor.ts | 4 +- + ...bclassWithExplicitNoArgumentConstructor.ts | 3 +- + .../declarations/jsDeclarationsThisTypes.ts | 4 +- + .../jsdoc/enumTagImported/enumTagImported.ts | 23 + + tests/cases/conformance/jsdoc/extendsTag1.ts | 1 + + .../jsdocAugments_qualifiedName.ts | 10 + + .../jsdoc/jsdocAugments_withTypeParameter.ts | 1 + + .../jsdocImplements_namespacedInterface.ts | 2 + + .../jsdoc/jsdocTemplateTagDefault.ts | 71 +++ + .../jsdoc/jsdocTemplateTagNameResolution.ts | 16 + + .../jsdoc/jsdocTypeReferenceUseBeforeDef.ts | 1 + + .../conformance/jsdoc/jsdocVariadicType.ts | 12 + + tests/cases/conformance/jsdoc/seeTag3.ts | 7 + + tests/cases/conformance/jsdoc/thisTag2.ts | 11 + + .../conformance/jsx/jsxParsingError4.tsx | 18 + + .../jsx/jsxUnclosedParserRecovery.ts | 140 +++++ + .../jsx/tsxReactEmitSpreadAttribute.ts | 32 ++ + .../declarationNotFoundPackageBundlesTypes.ts | 23 + + .../scopedPackages/index.d.ts | 3 + + .../scopedPackages/scopedPackages.ts | 12 + + .../moduleResolution/scopedPackages/z.d.ts | 2 + + .../scopedPackagesClassic/index.d.ts | 2 + + .../scopedPackagesClassic.ts | 9 + + .../untypedModuleImport_allowJs.ts | 12 + + .../declarations.d.ts | 4 + + .../untypedModuleImport_vsAmbient.ts | 12 + + .../allowJs/nodeAllowJsPackageSelfName.ts | 24 + + .../node/allowJs/nodeModulesAllowJs1.ts | 324 ++++++++++++ + .../allowJs/nodeModulesAllowJsCjsFromJs.ts | 8 + + ...ModulesAllowJsConditionalPackageExports.ts | 126 +++++ + .../nodeModulesAllowJsDynamicImport.ts | 27 + + .../nodeModulesAllowJsExportAssignment.ts | 32 ++ + ...deModulesAllowJsGeneratedNameCollisions.ts | 29 ++ + .../nodeModulesAllowJsImportAssignment.ts | 34 ++ + ...eModulesAllowJsImportHelpersCollisions1.ts | 34 ++ + ...eModulesAllowJsImportHelpersCollisions2.ts | 30 ++ + ...eModulesAllowJsImportHelpersCollisions3.ts | 32 ++ + .../allowJs/nodeModulesAllowJsImportMeta.ts | 23 + + .../nodeModulesAllowJsPackageExports.ts | 92 ++++ + .../nodeModulesAllowJsPackageImports.ts | 41 ++ + ...nodeModulesAllowJsPackagePatternExports.ts | 69 +++ + ...lesAllowJsPackagePatternExportsTrailers.ts | 69 +++ + ...nodeModulesAllowJsSynchronousCallErrors.ts | 37 ++ + .../nodeModulesAllowJsTopLevelAwait.ts | 25 + + ...lesExportsSpecifierGenerationConditions.ts | 33 ++ + tests/cases/conformance/node/nodeModules1.ts | 321 ++++++++++++ + ...odeModulesCjsFormatFileAlwaysHasDefault.ts | 19 + + .../nodeModulesConditionalPackageExports.ts | 124 +++++ + ...tionEmitDynamicImportWithPackageExports.ts | 71 +++ + ...odulesDeclarationEmitWithPackageExports.ts | 93 ++++ + .../node/nodeModulesDynamicImport.ts | 24 + + .../node/nodeModulesExportAssignments.ts | 20 + + ...ModulesExportsBlocksSpecifierResolution.ts | 27 + + ...lesExportsSpecifierGenerationConditions.ts | 34 ++ + ...ulesExportsSpecifierGenerationDirectory.ts | 29 ++ + ...odulesExportsSpecifierGenerationPattern.ts | 29 ++ + .../node/nodeModulesForbidenSyntax.ts | 67 +++ + .../nodeModulesGeneratedNameCollisions.ts | 26 + + .../node/nodeModulesImportAssertions.ts | 13 + + .../node/nodeModulesImportAssignments.ts | 31 ++ + .../nodeModulesImportHelpersCollisions.ts | 31 ++ + .../nodeModulesImportHelpersCollisions2.ts | 27 + + .../nodeModulesImportHelpersCollisions3.ts | 25 + + .../conformance/node/nodeModulesImportMeta.ts | 20 + + .../nodeModulesImportResolutionIntoExport.ts | 24 + + .../nodeModulesImportResolutionNoCycle.ts | 24 + + .../node/nodeModulesPackageExports.ts | 90 ++++ + .../node/nodeModulesPackageImports.ts | 38 ++ + .../node/nodeModulesPackagePatternExports.ts | 67 +++ + ...odeModulesPackagePatternExportsTrailers.ts | 67 +++ + .../node/nodeModulesResolveJsonModule.ts | 29 ++ + .../node/nodeModulesSynchronousCallErrors.ts | 34 ++ + .../node/nodeModulesTopLevelAwait.ts | 22 + + .../nodeModulesTypesVersionPackageExports.ts | 53 ++ + .../conformance/node/nodePackageSelfName.ts | 21 + + .../node/nodePackageSelfNameScoped.ts | 21 + + .../cases/conformance/override/override10.ts | 3 +- + .../cases/conformance/override/override12.ts | 1 + + .../cases/conformance/override/override15.ts | 9 + + .../cases/conformance/override/override16.ts | 1 + + .../cases/conformance/override/override17.ts | 1 + + .../cases/conformance/override/override18.ts | 1 + + .../cases/conformance/override/override19.ts | 20 + + .../cases/conformance/override/override20.ts | 34 ++ + .../conformance/override/override_js1.ts | 4 +- + .../conformance/override/override_js4.ts | 14 + + .../parserClassDeclaration16.ts | 3 +- + .../parserClassDeclaration17.ts | 1 + + .../parserClassDeclaration19.ts | 3 +- + .../parserClassDeclaration20.ts | 3 +- + .../parserClassDeclaration23.ts | 3 +- + .../parserClassDeclaration26.ts | 3 +- + .../parserClassDeclarationIndexSignature1.ts | 3 +- + .../parserConstructorDeclaration1.ts | 3 +- + .../parserConstructorDeclaration5.ts | 3 +- + .../parserAccessibilityAfterStatic11.ts | 1 + + .../parserAccessibilityAfterStatic14.ts | 1 + + .../parserAccessibilityAfterStatic2.ts | 1 + + .../parserAccessibilityAfterStatic3.ts | 1 + + .../parserAccessibilityAfterStatic4.ts | 1 + + .../parserAccessibilityAfterStatic5.ts | 1 + + .../Generics/parserGenericClass1.ts | 3 +- + .../Generics/parserGenericClass2.ts | 3 +- + .../Generics/parserGenericConstraint1.ts | 3 +- + .../parserIndexMemberDeclaration1.ts | 3 +- + .../parserIndexMemberDeclaration2.ts | 3 +- + .../parserIndexMemberDeclaration3.ts | 3 +- + .../parserIndexMemberDeclaration4.ts | 3 +- + .../parserIndexMemberDeclaration6.ts | 3 +- + .../parserMemberVariableDeclaration5.ts | 3 +- + .../ecmascript5/Protected/Protected3.ts | 3 +- + .../ecmascript5/Protected/Protected5.ts | 3 +- + .../ecmascript5/Protected/Protected9.ts | 3 +- + .../RegressionTests/parser509546.ts | 1 + + .../RegressionTests/parser509546_1.ts | 1 + + .../RegressionTests/parser509546_2.ts | 1 + + .../parser/ecmascript5/parserUnicode3.ts | 3 +- + .../Iterators/parserForOfStatement22.ts | 4 + + .../Iterators/parserForOfStatement23.ts | 6 + + .../Iterators/parserForOfStatement24.ts | 4 + + .../inferringClassMembersFromAssignments3.ts | 1 + + .../conformance/salsa/plainJSBinderErrors.ts | 44 ++ + .../conformance/salsa/plainJSRedeclare.ts | 6 + + .../conformance/salsa/plainJSRedeclare2.ts | 7 + + .../conformance/salsa/plainJSRedeclare3.ts | 7 + + .../salsa/plainJSReservedStrict.ts | 7 + + .../conformance/salsa/spellingUncheckedJS.ts | 51 ++ + .../salsa/typeFromJSInitializer2.ts | 18 + + .../salsa/typeFromJSInitializer3.ts | 18 + + .../salsa/typeFromJSInitializer4.ts | 29 ++ + .../salsa/typeFromPropertyAssignment23.ts | 3 + + .../for-inStatementsAsyncIdentifier.ts | 4 + + .../returnStatements/returnStatements.ts | 1 + + .../throwInEnclosingStatements.ts | 1 + + .../types/any/anyAsGenericFunctionCall.ts | 4 +- + .../types/any/assignAnyToEveryType.ts | 4 +- + .../types/any/assignEveryTypeToAny.ts | 4 +- + .../conformance/types/conditional/variance.ts | 2 + + ...tatedFunctionInferenceWithTypeParameter.ts | 3 + + .../types/import/importTypeAmbient.ts | 5 +- + .../types/import/importTypeGenericTypes.ts | 5 +- + .../types/import/importTypeLocal.ts | 5 + + .../intersectionOfUnionNarrowing.ts | 16 + + .../types/keyof/keyofAndIndexedAccess.ts | 20 + + .../types/literal/literalTypes2.ts | 3 + + .../types/localTypes/localTypes2.ts | 3 + + .../types/localTypes/localTypes3.ts | 3 + + .../mapped/mappedTypeAsClauseRelationships.ts | 27 + + .../types/mapped/mappedTypeProperties.ts | 42 ++ + .../conformance/types/mapped/mappedTypes3.ts | 4 +- + .../types/mapped/mappedTypesAndObjects.ts | 2 + + .../members/classWithProtectedProperty.ts | 4 +- + .../types/members/indexSignatures1.ts | 325 ++++++++++++ + .../objectTypeHidingMembersOfObject.ts | 4 +- + .../types/members/objectTypePropertyAccess.ts | 2 + + .../members/objectTypeWithNumericProperty.ts | 4 +- + ...hStringNamedPropertyOfIllegalCharacters.ts | 2 + + .../typesWithSpecializedCallSignatures.ts | 5 +- + ...typesWithSpecializedConstructSignatures.ts | 5 +- + .../namedTypes/classWithOptionalParameter.ts | 5 +- + .../types/namedTypes/optionalMethods.ts | 3 + + .../conformance/types/never/neverType.ts | 2 + + ...ureWithoutReturnTypeAnnotationInference.ts | 6 +- + .../callSignaturesWithDuplicateParameters.ts | 4 +- + .../callSignaturesWithOptionalParameters.ts | 2 + + .../callSignaturesWithOptionalParameters2.ts | 4 +- + .../parametersWithNoAnnotationAreAny.ts | 4 +- + ...reIsNotSubtypeOfNonSpecializedSignature.ts | 3 + + ...atureIsSubtypeOfNonSpecializedSignature.ts | 3 + + ...gLiteralTypesInImplementationSignatures.ts | 2 + + .../typeParameterAsTypeArgument.ts | 4 +- + ...WithOverloadsThatDifferOnlyByReturnType.ts | 5 +- + .../indexSignatures/numericIndexingResults.ts | 4 +- + .../indexSignatures/stringIndexingResults.ts | 2 + + .../propertyNameWithoutTypeAnnotation.ts | 4 +- + .../propertyNamesOfReservedWords.ts | 4 +- + .../stringNamedPropertyAccess.ts | 4 +- + .../number/extendNumberInterface.ts | 2 +- + .../undefined/invalidUndefinedValues.ts | 4 +- + .../undefined/validUndefinedAssignments.ts | 4 +- + .../types/rest/objectRestParameter.ts | 1 + + .../typeLiterals/arrayOfFunctionTypes3.ts | 4 +- + .../functionLiteralForOverloads2.ts | 5 +- + .../typeQueries/typeQueryOnClass.ts | 5 +- + .../typeQueries/typeQueryWithReservedWords.ts | 1 + + .../typeQueries/typeofClass2.ts | 5 +- + .../typeQueries/typeofModuleWithoutExports.ts | 3 +- + .../specifyingTypes/typeQueries/typeofThis.ts | 146 ++++++ + .../typeQueries/typeofThisWithImplicitThis.ts | 5 + + .../types/spread/spreadDuplicate.ts | 21 + + .../types/spread/spreadDuplicateExact.ts | 22 + + .../conformance/types/spread/spreadUnion4.ts | 4 + + .../types/thisType/fluentClasses.ts | 2 + + .../types/thisType/thisTypeAndConstraints.ts | 3 + + .../types/thisType/thisTypeInClasses.ts | 6 + + .../types/thisType/thisTypeInFunctions3.ts | 3 + + .../thisType/thisTypeInTaggedTemplateCall.ts | 10 + + .../types/tuple/readonlyArraysAndTuples2.ts | 2 + + .../circularTypeAliasForUnionWithClass.ts | 4 + + .../classDoesNotDependOnBaseTypes.ts | 4 +- + .../types/typeAliases/typeAliases.ts | 4 +- + ...allGenericFunctionWithZeroTypeArguments.ts | 5 +- + .../functionConstraintSatisfaction.ts | 5 +- + .../functionConstraintSatisfaction3.ts | 5 +- + .../innerTypeParameterShadowingOuterOne2.ts | 4 +- + ...rtyAccessOnTypeParameterWithConstraints.ts | 3 +- + ...tyAccessOnTypeParameterWithConstraints2.ts | 7 +- + ...tyAccessOnTypeParameterWithConstraints3.ts | 4 +- + ...AccessOnTypeParameterWithoutConstraints.ts | 4 +- + .../typeParameterUsedAsConstraint.ts | 7 + + .../anyAssignabilityInInheritance.ts | 6 +- + .../anyAssignableToEveryType.ts | 1 + + .../anyAssignableToEveryType2.ts | 3 + + .../assignmentCompatWithObjectMembers.ts | 5 +- + .../assignmentCompatWithObjectMembers2.ts | 2 + + .../assignmentCompatWithObjectMembers3.ts | 2 + + ...mentCompatWithObjectMembersNumericNames.ts | 2 + + ...allSignatureAssignabilityInInheritance2.ts | 6 +- + ...allSignatureAssignabilityInInheritance4.ts | 6 +- + ...allSignatureAssignabilityInInheritance5.ts | 5 +- + ...uctSignatureAssignabilityInInheritance2.ts | 6 +- + ...uctSignatureAssignabilityInInheritance4.ts | 5 +- + ...uctSignatureAssignabilityInInheritance5.ts | 5 +- + .../everyTypeAssignableToAny.ts | 2 + + .../nullAssignableToEveryType.ts | 2 +- + .../undefinedAssignableToEveryType.ts | 1 + + .../bestCommonTypeOfConditionalExpressions.ts | 5 +- + ...bestCommonTypeOfConditionalExpressions2.ts | 4 +- + .../heterogeneousArrayLiterals.ts | 2 + + .../narrowingConstrainedTypeVariable.ts | 3 + + .../arrayLiteralsWithRecursiveGenerics.ts | 6 +- + .../recursiveTypeInGenericConstraint.ts | 5 +- + .../recursiveTypesUsedAsFunctionParameters.ts | 5 +- + .../nullIsSubtypeOfEverythingButUndefined.ts | 4 + + .../stringLiteralTypeIsSubtypeOfString.ts | 4 +- + .../subtypesAndSuperTypes/subtypesOfAny.ts | 5 +- + ...subtypesOfTypeParameterWithConstraints2.ts | 5 +- + .../subtypingWithCallSignatures2.ts | 6 + + .../subtypingWithCallSignatures3.ts | 4 + + .../subtypingWithCallSignatures4.ts | 6 +- + .../subtypingWithConstructSignatures2.ts | 5 + + .../subtypingWithConstructSignatures3.ts | 4 + + .../subtypingWithConstructSignatures4.ts | 6 +- + .../subtypingWithConstructSignatures5.ts | 6 +- + .../subtypingWithObjectMembers4.ts | 6 +- + .../undefinedIsSubtypeOfEverything.ts | 25 + + .../objectTypesIdentity.ts | 6 +- + .../objectTypesIdentity2.ts | 5 +- + .../objectTypesIdentityWithCallSignatures.ts | 5 +- + .../objectTypesIdentityWithCallSignatures2.ts | 5 +- + ...yWithCallSignaturesDifferingParamCounts.ts | 5 +- + ...IdentityWithCallSignaturesWithOverloads.ts | 6 +- + ...ectTypesIdentityWithConstructSignatures.ts | 6 +- + ...ctTypesIdentityWithConstructSignatures2.ts | 4 +- + ...ConstructSignaturesDifferingParamCounts.ts | 4 +- + ...tTypesIdentityWithGenericCallSignatures.ts | 6 +- + ...TypesIdentityWithGenericCallSignatures2.ts | 6 +- + ...ricCallSignaturesDifferingByConstraints.ts | 6 +- + ...icCallSignaturesDifferingByConstraints2.ts | 6 +- + ...icCallSignaturesDifferingByConstraints3.ts | 9 +- + ...ericCallSignaturesDifferingByReturnType.ts | 5 +- + ...ricCallSignaturesDifferingByReturnType2.ts | 6 +- + ...lSignaturesDifferingTypeParameterCounts.ts | 6 +- + ...llSignaturesDifferingTypeParameterNames.ts | 5 +- + ...WithGenericCallSignaturesOptionalParams.ts | 5 +- + ...ithGenericCallSignaturesOptionalParams2.ts | 5 +- + ...ithGenericCallSignaturesOptionalParams3.ts | 6 +- + ...nstructSignaturesDifferingByConstraints.ts | 2 + + ...structSignaturesDifferingByConstraints2.ts | 7 +- + ...structSignaturesDifferingByConstraints3.ts | 7 +- + ...onstructSignaturesDifferingByReturnType.ts | 4 +- + ...nstructSignaturesDifferingByReturnType2.ts | 6 +- + ...tSignaturesDifferingTypeParameterCounts.ts | 4 +- + ...ctSignaturesDifferingTypeParameterNames.ts | 6 +- + ...enericConstructSignaturesOptionalParams.ts | 5 +- + ...nericConstructSignaturesOptionalParams2.ts | 5 +- + ...nericConstructSignaturesOptionalParams3.ts | 4 +- + ...objectTypesIdentityWithNumericIndexers1.ts | 3 + + ...objectTypesIdentityWithNumericIndexers2.ts | 5 + + ...objectTypesIdentityWithNumericIndexers3.ts | 3 + + .../objectTypesIdentityWithOptionality.ts | 6 +- + .../objectTypesIdentityWithPrivates.ts | 4 +- + .../objectTypesIdentityWithPrivates2.ts | 1 + + .../objectTypesIdentityWithPublics.ts | 5 +- + .../objectTypesIdentityWithStringIndexers.ts | 3 + + .../objectTypesIdentityWithStringIndexers2.ts | 5 + + .../typeParametersAreIdenticalToThemselves.ts | 4 +- + ...allWithConstraintsTypeArgumentInference.ts | 3 + + .../genericCallWithFunctionTypedArguments4.ts | 4 +- + .../genericCallWithObjectTypeArgs2.ts | 4 +- + ...ricCallWithObjectTypeArgsAndConstraints.ts | 10 +- + ...icCallWithObjectTypeArgsAndConstraints2.ts | 1 + + ...icClassWithObjectTypeArgsAndConstraints.ts | 7 +- + .../keyofInferenceLowerPriorityThanReturn.ts | 4 + + .../types/union/discriminatedUnionTypes3.ts | 19 + + 497 files changed, 8097 insertions(+), 197 deletions(-) + create mode 100644 tests/cases/conformance/ambient/ambientDeclarationsPatterns/ambientDeclarationsPatterns.ts + create mode 100644 tests/cases/conformance/ambient/ambientDeclarationsPatterns/declarations.d.ts + create mode 100644 tests/cases/conformance/ambient/ambientShorthand_merging/ambientShorthand_merging.ts + create mode 100644 tests/cases/conformance/ambient/ambientShorthand_merging/declarations1.d.ts + create mode 100644 tests/cases/conformance/ambient/ambientShorthand_merging/declarations2.d.ts + create mode 100644 tests/cases/conformance/ambient/ambientShorthand_reExport/ambientShorthand_reExport.ts + create mode 100644 tests/cases/conformance/ambient/ambientShorthand_reExport/declarations.d.ts + create mode 100644 tests/cases/conformance/ambient/ambientShorthand_reExport/jquery.d.ts + create mode 100644 tests/cases/conformance/ambient/ambientShorthand_reExport/reExportAll.ts + create mode 100644 tests/cases/conformance/ambient/ambientShorthand_reExport/reExportX.ts + create mode 100644 tests/cases/conformance/async/es6/functionDeclarations/asyncOrYieldAsBindingIdentifier1.ts + create mode 100644 tests/cases/conformance/classes/classStaticBlock/classStaticBlock1.ts + create mode 100644 tests/cases/conformance/classes/classStaticBlock/classStaticBlock10.ts + create mode 100644 tests/cases/conformance/classes/classStaticBlock/classStaticBlock11.ts + create mode 100644 tests/cases/conformance/classes/classStaticBlock/classStaticBlock12.ts + create mode 100644 tests/cases/conformance/classes/classStaticBlock/classStaticBlock13.ts + create mode 100644 tests/cases/conformance/classes/classStaticBlock/classStaticBlock14.ts + create mode 100644 tests/cases/conformance/classes/classStaticBlock/classStaticBlock15.ts + create mode 100644 tests/cases/conformance/classes/classStaticBlock/classStaticBlock16.ts + create mode 100644 tests/cases/conformance/classes/classStaticBlock/classStaticBlock17.ts + create mode 100644 tests/cases/conformance/classes/classStaticBlock/classStaticBlock18.ts + create mode 100644 tests/cases/conformance/classes/classStaticBlock/classStaticBlock19.ts + create mode 100644 tests/cases/conformance/classes/classStaticBlock/classStaticBlock2.ts + create mode 100644 tests/cases/conformance/classes/classStaticBlock/classStaticBlock20.ts + create mode 100644 tests/cases/conformance/classes/classStaticBlock/classStaticBlock21.ts + create mode 100644 tests/cases/conformance/classes/classStaticBlock/classStaticBlock22.ts + create mode 100644 tests/cases/conformance/classes/classStaticBlock/classStaticBlock23.ts + create mode 100644 tests/cases/conformance/classes/classStaticBlock/classStaticBlock24.ts + create mode 100644 tests/cases/conformance/classes/classStaticBlock/classStaticBlock25.ts + create mode 100644 tests/cases/conformance/classes/classStaticBlock/classStaticBlock26.ts + create mode 100644 tests/cases/conformance/classes/classStaticBlock/classStaticBlock27.ts + create mode 100644 tests/cases/conformance/classes/classStaticBlock/classStaticBlock3.ts + create mode 100644 tests/cases/conformance/classes/classStaticBlock/classStaticBlock4.ts + create mode 100644 tests/cases/conformance/classes/classStaticBlock/classStaticBlock5.ts + create mode 100644 tests/cases/conformance/classes/classStaticBlock/classStaticBlock6.ts + create mode 100644 tests/cases/conformance/classes/classStaticBlock/classStaticBlock7.ts + create mode 100644 tests/cases/conformance/classes/classStaticBlock/classStaticBlock8.ts + create mode 100644 tests/cases/conformance/classes/classStaticBlock/classStaticBlock9.ts + create mode 100644 tests/cases/conformance/classes/classStaticBlock/classStaticBlockUseBeforeDef1.ts + create mode 100644 tests/cases/conformance/classes/classStaticBlock/classStaticBlockUseBeforeDef2.ts + create mode 100644 tests/cases/conformance/classes/members/instanceAndStaticMembers/superInStaticMembers1.ts + create mode 100644 tests/cases/conformance/classes/members/instanceAndStaticMembers/thisAndSuperInStaticMembers1.ts + create mode 100644 tests/cases/conformance/classes/members/instanceAndStaticMembers/thisAndSuperInStaticMembers2.ts + create mode 100644 tests/cases/conformance/classes/members/instanceAndStaticMembers/thisAndSuperInStaticMembers3.ts + create mode 100644 tests/cases/conformance/classes/members/instanceAndStaticMembers/thisAndSuperInStaticMembers4.ts + create mode 100644 tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers10.ts + create mode 100644 tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers11.ts + create mode 100644 tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers12.ts + create mode 100644 tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers13.ts + create mode 100644 tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers3.ts + create mode 100644 tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers4.ts + create mode 100644 tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers5.ts + create mode 100644 tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers6.ts + create mode 100644 tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers7.ts + create mode 100644 tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers8.ts + create mode 100644 tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers9.ts + create mode 100644 tests/cases/conformance/classes/members/privateNames/privateNameHashCharName.ts + create mode 100644 tests/cases/conformance/classes/members/privateNames/privateNameInInExpression.ts + create mode 100644 tests/cases/conformance/classes/members/privateNames/privateNameInInExpressionTransform.ts + create mode 100644 tests/cases/conformance/classes/members/privateNames/privateNameInInExpressionUnused.ts + create mode 100644 tests/cases/conformance/classes/members/privateNames/privateNamesIncompatibleModifiersJs.ts + create mode 100644 tests/cases/conformance/classes/propertyMemberDeclarations/abstractPropertyInitializer.ts + create mode 100644 tests/cases/conformance/controlFlow/assertionTypePredicates2.ts + create mode 100644 tests/cases/conformance/controlFlow/controlFlowAliasing.ts + create mode 100644 tests/cases/conformance/controlFlow/controlFlowAliasingCatchVariables.ts + create mode 100644 tests/cases/conformance/controlFlow/controlFlowForInStatement2.ts + create mode 100644 tests/cases/conformance/controlFlow/controlFlowInOperator.ts + create mode 100644 tests/cases/conformance/controlFlow/controlFlowTypeofObject.ts + create mode 100644 tests/cases/conformance/controlFlow/dependentDestructuredVariables.ts + create mode 100644 tests/cases/conformance/declarationEmit/typeReferenceRelatedFiles/fs.d.ts + create mode 100644 tests/cases/conformance/declarationEmit/typeReferenceRelatedFiles/main.ts + create mode 100644 tests/cases/conformance/declarationEmit/typeReferenceRelatedFiles/package.json + create mode 100644 tests/cases/conformance/declarationEmit/typeReferenceRelatedFiles/typeReferenceRelatedFiles.ts + create mode 100644 tests/cases/conformance/decorators/class/constructor/parameter/decoratorOnClassConstructorParameter5.ts + create mode 100644 tests/cases/conformance/decorators/class/decoratedBlockScopedClass1.ts + create mode 100644 tests/cases/conformance/decorators/class/decoratedBlockScopedClass2.ts + create mode 100644 tests/cases/conformance/decorators/class/decoratedBlockScopedClass3.ts + create mode 100644 tests/cases/conformance/decorators/class/method/decoratorOnClassMethod14.ts + create mode 100644 tests/cases/conformance/decorators/class/method/decoratorOnClassMethod15.ts + create mode 100644 tests/cases/conformance/decorators/class/method/decoratorOnClassMethod16.ts + create mode 100644 tests/cases/conformance/decorators/class/method/decoratorOnClassMethod17.ts + create mode 100644 tests/cases/conformance/decorators/class/method/decoratorOnClassMethod18.ts + create mode 100644 tests/cases/conformance/decorators/decoratorMetadataWithTypeOnlyImport2.ts + create mode 100644 tests/cases/conformance/es2018/es2018IntlAPIs.ts + create mode 100644 tests/cases/conformance/es2020/es2020IntlAPIs.ts + create mode 100644 tests/cases/conformance/es6/spread/arraySpreadImportHelpers.ts + create mode 100644 tests/cases/conformance/es6/templates/templateStringWithCommentsInArrowFunction.ts + create mode 100644 tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithIntersectionType.ts + create mode 100644 tests/cases/conformance/expressions/thisKeyword/typeOfThisGeneral.ts + create mode 100644 tests/cases/conformance/externalModules/moduleResolutionWithoutExtension1.ts + create mode 100644 tests/cases/conformance/externalModules/moduleResolutionWithoutExtension2.ts + create mode 100644 tests/cases/conformance/externalModules/moduleResolutionWithoutExtension3.ts + create mode 100644 tests/cases/conformance/externalModules/moduleResolutionWithoutExtension4.ts + create mode 100644 tests/cases/conformance/externalModules/moduleResolutionWithoutExtension5.ts + create mode 100644 tests/cases/conformance/externalModules/moduleResolutionWithoutExtension6.ts + create mode 100644 tests/cases/conformance/externalModules/moduleResolutionWithoutExtension7.ts + create mode 100644 tests/cases/conformance/externalModules/moduleResolutionWithoutExtension8.ts + create mode 100644 tests/cases/conformance/externalModules/typeOnly/exportSpecifiers.ts + create mode 100644 tests/cases/conformance/externalModules/typeOnly/importDefaultNamedType/a.ts + create mode 100644 tests/cases/conformance/externalModules/typeOnly/importDefaultNamedType/importDefaultNamedType.ts + create mode 100644 tests/cases/conformance/externalModules/typeOnly/importSpecifiers1.ts + create mode 100644 tests/cases/conformance/externalModules/typeOnly/preserveValueImports.ts + create mode 100644 tests/cases/conformance/externalModules/typeOnly/preserveValueImports_errors.ts + create mode 100644 tests/cases/conformance/externalModules/typeOnly/preserveValueImports_importsNotUsedAsValues.ts + create mode 100644 tests/cases/conformance/externalModules/typeOnly/preserveValueImports_mixedImports.ts + create mode 100644 tests/cases/conformance/externalModules/typeOnly/preserveValueImports_module.ts + create mode 100644 tests/cases/conformance/importAssertion/importAssertion1.ts + create mode 100644 tests/cases/conformance/importAssertion/importAssertion2.ts + create mode 100644 tests/cases/conformance/importAssertion/importAssertion3.ts + create mode 100644 tests/cases/conformance/importAssertion/importAssertion4.ts + create mode 100644 tests/cases/conformance/importAssertion/importAssertion5.ts + create mode 100644 tests/cases/conformance/jsdoc/enumTagImported/enumTagImported.ts + create mode 100644 tests/cases/conformance/jsdoc/jsdocAugments_qualifiedName/jsdocAugments_qualifiedName.ts + create mode 100644 tests/cases/conformance/jsdoc/jsdocTemplateTagDefault.ts + create mode 100644 tests/cases/conformance/jsdoc/jsdocTemplateTagNameResolution.ts + create mode 100644 tests/cases/conformance/jsdoc/jsdocVariadicType.ts + create mode 100644 tests/cases/conformance/jsdoc/seeTag3.ts + create mode 100644 tests/cases/conformance/jsdoc/thisTag2.ts + create mode 100644 tests/cases/conformance/jsx/jsxParsingError4.tsx + create mode 100644 tests/cases/conformance/jsx/jsxUnclosedParserRecovery.ts + create mode 100644 tests/cases/conformance/jsx/tsxReactEmitSpreadAttribute.ts + create mode 100644 tests/cases/conformance/moduleResolution/declarationNotFoundPackageBundlesTypes.ts + create mode 100644 tests/cases/conformance/moduleResolution/scopedPackages/index.d.ts + create mode 100644 tests/cases/conformance/moduleResolution/scopedPackages/scopedPackages.ts + create mode 100644 tests/cases/conformance/moduleResolution/scopedPackages/z.d.ts + create mode 100644 tests/cases/conformance/moduleResolution/scopedPackagesClassic/index.d.ts + create mode 100644 tests/cases/conformance/moduleResolution/scopedPackagesClassic/scopedPackagesClassic.ts + create mode 100644 tests/cases/conformance/moduleResolution/untypedModuleImport_allowJs/untypedModuleImport_allowJs.ts + create mode 100644 tests/cases/conformance/moduleResolution/untypedModuleImport_vsAmbient/declarations.d.ts + create mode 100644 tests/cases/conformance/moduleResolution/untypedModuleImport_vsAmbient/untypedModuleImport_vsAmbient.ts + create mode 100644 tests/cases/conformance/node/allowJs/nodeAllowJsPackageSelfName.ts + create mode 100644 tests/cases/conformance/node/allowJs/nodeModulesAllowJs1.ts + create mode 100644 tests/cases/conformance/node/allowJs/nodeModulesAllowJsCjsFromJs.ts + create mode 100644 tests/cases/conformance/node/allowJs/nodeModulesAllowJsConditionalPackageExports.ts + create mode 100644 tests/cases/conformance/node/allowJs/nodeModulesAllowJsDynamicImport.ts + create mode 100644 tests/cases/conformance/node/allowJs/nodeModulesAllowJsExportAssignment.ts + create mode 100644 tests/cases/conformance/node/allowJs/nodeModulesAllowJsGeneratedNameCollisions.ts + create mode 100644 tests/cases/conformance/node/allowJs/nodeModulesAllowJsImportAssignment.ts + create mode 100644 tests/cases/conformance/node/allowJs/nodeModulesAllowJsImportHelpersCollisions1.ts + create mode 100644 tests/cases/conformance/node/allowJs/nodeModulesAllowJsImportHelpersCollisions2.ts + create mode 100644 tests/cases/conformance/node/allowJs/nodeModulesAllowJsImportHelpersCollisions3.ts + create mode 100644 tests/cases/conformance/node/allowJs/nodeModulesAllowJsImportMeta.ts + create mode 100644 tests/cases/conformance/node/allowJs/nodeModulesAllowJsPackageExports.ts + create mode 100644 tests/cases/conformance/node/allowJs/nodeModulesAllowJsPackageImports.ts + create mode 100644 tests/cases/conformance/node/allowJs/nodeModulesAllowJsPackagePatternExports.ts + create mode 100644 tests/cases/conformance/node/allowJs/nodeModulesAllowJsPackagePatternExportsTrailers.ts + create mode 100644 tests/cases/conformance/node/allowJs/nodeModulesAllowJsSynchronousCallErrors.ts + create mode 100644 tests/cases/conformance/node/allowJs/nodeModulesAllowJsTopLevelAwait.ts + create mode 100644 tests/cases/conformance/node/legacyNodeModulesExportsSpecifierGenerationConditions.ts + create mode 100644 tests/cases/conformance/node/nodeModules1.ts + create mode 100644 tests/cases/conformance/node/nodeModulesCjsFormatFileAlwaysHasDefault.ts + create mode 100644 tests/cases/conformance/node/nodeModulesConditionalPackageExports.ts + create mode 100644 tests/cases/conformance/node/nodeModulesDeclarationEmitDynamicImportWithPackageExports.ts + create mode 100644 tests/cases/conformance/node/nodeModulesDeclarationEmitWithPackageExports.ts + create mode 100644 tests/cases/conformance/node/nodeModulesDynamicImport.ts + create mode 100644 tests/cases/conformance/node/nodeModulesExportAssignments.ts + create mode 100644 tests/cases/conformance/node/nodeModulesExportsBlocksSpecifierResolution.ts + create mode 100644 tests/cases/conformance/node/nodeModulesExportsSpecifierGenerationConditions.ts + create mode 100644 tests/cases/conformance/node/nodeModulesExportsSpecifierGenerationDirectory.ts + create mode 100644 tests/cases/conformance/node/nodeModulesExportsSpecifierGenerationPattern.ts + create mode 100644 tests/cases/conformance/node/nodeModulesForbidenSyntax.ts + create mode 100644 tests/cases/conformance/node/nodeModulesGeneratedNameCollisions.ts + create mode 100644 tests/cases/conformance/node/nodeModulesImportAssertions.ts + create mode 100644 tests/cases/conformance/node/nodeModulesImportAssignments.ts + create mode 100644 tests/cases/conformance/node/nodeModulesImportHelpersCollisions.ts + create mode 100644 tests/cases/conformance/node/nodeModulesImportHelpersCollisions2.ts + create mode 100644 tests/cases/conformance/node/nodeModulesImportHelpersCollisions3.ts + create mode 100644 tests/cases/conformance/node/nodeModulesImportMeta.ts + create mode 100644 tests/cases/conformance/node/nodeModulesImportResolutionIntoExport.ts + create mode 100644 tests/cases/conformance/node/nodeModulesImportResolutionNoCycle.ts + create mode 100644 tests/cases/conformance/node/nodeModulesPackageExports.ts + create mode 100644 tests/cases/conformance/node/nodeModulesPackageImports.ts + create mode 100644 tests/cases/conformance/node/nodeModulesPackagePatternExports.ts + create mode 100644 tests/cases/conformance/node/nodeModulesPackagePatternExportsTrailers.ts + create mode 100644 tests/cases/conformance/node/nodeModulesResolveJsonModule.ts + create mode 100644 tests/cases/conformance/node/nodeModulesSynchronousCallErrors.ts + create mode 100644 tests/cases/conformance/node/nodeModulesTopLevelAwait.ts + create mode 100644 tests/cases/conformance/node/nodeModulesTypesVersionPackageExports.ts + create mode 100644 tests/cases/conformance/node/nodePackageSelfName.ts + create mode 100644 tests/cases/conformance/node/nodePackageSelfNameScoped.ts + create mode 100644 tests/cases/conformance/override/override15.ts + create mode 100644 tests/cases/conformance/override/override19.ts + create mode 100644 tests/cases/conformance/override/override20.ts + create mode 100644 tests/cases/conformance/override/override_js4.ts + create mode 100644 tests/cases/conformance/parser/ecmascript6/Iterators/parserForOfStatement22.ts + create mode 100644 tests/cases/conformance/parser/ecmascript6/Iterators/parserForOfStatement23.ts + create mode 100644 tests/cases/conformance/parser/ecmascript6/Iterators/parserForOfStatement24.ts + create mode 100644 tests/cases/conformance/salsa/plainJSBinderErrors.ts + create mode 100644 tests/cases/conformance/salsa/plainJSRedeclare.ts + create mode 100644 tests/cases/conformance/salsa/plainJSRedeclare2.ts + create mode 100644 tests/cases/conformance/salsa/plainJSRedeclare3.ts + create mode 100644 tests/cases/conformance/salsa/plainJSReservedStrict.ts + create mode 100644 tests/cases/conformance/salsa/spellingUncheckedJS.ts + create mode 100644 tests/cases/conformance/salsa/typeFromJSInitializer2.ts + create mode 100644 tests/cases/conformance/salsa/typeFromJSInitializer3.ts + create mode 100644 tests/cases/conformance/salsa/typeFromJSInitializer4.ts + create mode 100644 tests/cases/conformance/statements/for-inStatements/for-inStatementsAsyncIdentifier.ts + create mode 100644 tests/cases/conformance/types/intersection/intersectionOfUnionNarrowing.ts + create mode 100644 tests/cases/conformance/types/mapped/mappedTypeAsClauseRelationships.ts + create mode 100644 tests/cases/conformance/types/mapped/mappedTypeProperties.ts + create mode 100644 tests/cases/conformance/types/members/indexSignatures1.ts + create mode 100644 tests/cases/conformance/types/specifyingTypes/typeQueries/typeofThis.ts + create mode 100644 tests/cases/conformance/types/specifyingTypes/typeQueries/typeofThisWithImplicitThis.ts + create mode 100644 tests/cases/conformance/types/spread/spreadDuplicate.ts + create mode 100644 tests/cases/conformance/types/spread/spreadDuplicateExact.ts + create mode 100644 tests/cases/conformance/types/spread/spreadUnion4.ts + create mode 100644 tests/cases/conformance/types/thisType/thisTypeInTaggedTemplateCall.ts + create mode 100644 tests/cases/conformance/types/union/discriminatedUnionTypes3.ts + +diff --git a/tests/cases/conformance/ambient/ambientDeclarations.ts b/tests/cases/conformance/ambient/ambientDeclarations.ts +index 379f5a5440..156ca565af 100644 +--- a/tests/cases/conformance/ambient/ambientDeclarations.ts ++++ b/tests/cases/conformance/ambient/ambientDeclarations.ts +@@ -73,3 +73,4 @@ declare module 'external1' { var q; } -+let qq2 = new cls(); -\ No newline at end of file -diff --git a/tests/cases/conformance/ambient/ambientDeclarationsPatterns/ambientDeclarationsPatterns.ts b/tests/cases/conformance/ambient/ambientDeclarationsPatterns/ambientDeclarationsPatterns.ts -new file mode 100644 -index 0000000000..8b2be7e0b2 ---- /dev/null -+++ b/tests/cases/conformance/ambient/ambientDeclarationsPatterns/ambientDeclarationsPatterns.ts -@@ -0,0 +1,11 @@ ++let qq2 = new cls(); +\ No newline at end of file +diff --git a/tests/cases/conformance/ambient/ambientDeclarationsPatterns/ambientDeclarationsPatterns.ts b/tests/cases/conformance/ambient/ambientDeclarationsPatterns/ambientDeclarationsPatterns.ts +new file mode 100644 +index 0000000000..8b2be7e0b2 +--- /dev/null ++++ b/tests/cases/conformance/ambient/ambientDeclarationsPatterns/ambientDeclarationsPatterns.ts +@@ -0,0 +1,11 @@ +// @Filename: user.ts +/// +import {foo, baz} from "foobarbaz"; @@ -737,14 +737,14 @@ index 0000000000..8b2be7e0b2 + +// Works with relative file name +import fileText from "./file!text"; -+foo(fileText); -\ No newline at end of file -diff --git a/tests/cases/conformance/ambient/ambientDeclarationsPatterns/declarations.d.ts b/tests/cases/conformance/ambient/ambientDeclarationsPatterns/declarations.d.ts -new file mode 100644 -index 0000000000..725593c54e ---- /dev/null -+++ b/tests/cases/conformance/ambient/ambientDeclarationsPatterns/declarations.d.ts -@@ -0,0 +1,18 @@ ++foo(fileText); +\ No newline at end of file +diff --git a/tests/cases/conformance/ambient/ambientDeclarationsPatterns/declarations.d.ts b/tests/cases/conformance/ambient/ambientDeclarationsPatterns/declarations.d.ts +new file mode 100644 +index 0000000000..725593c54e +--- /dev/null ++++ b/tests/cases/conformance/ambient/ambientDeclarationsPatterns/declarations.d.ts +@@ -0,0 +1,18 @@ +// @Filename: declarations.d.ts +declare module "foo*baz" { + export function foo(s: string): void; @@ -763,11 +763,11 @@ index 0000000000..725593c54e + const x: string; + export default x; +} -diff --git a/tests/cases/conformance/ambient/ambientInsideNonAmbient.ts b/tests/cases/conformance/ambient/ambientInsideNonAmbient.ts -index e2f24113c9..d07ac13995 100644 ---- a/tests/cases/conformance/ambient/ambientInsideNonAmbient.ts -+++ b/tests/cases/conformance/ambient/ambientInsideNonAmbient.ts -@@ -4,6 +4,7 @@ module M { +diff --git a/tests/cases/conformance/ambient/ambientInsideNonAmbient.ts b/tests/cases/conformance/ambient/ambientInsideNonAmbient.ts +index e2f24113c9..d07ac13995 100644 +--- a/tests/cases/conformance/ambient/ambientInsideNonAmbient.ts ++++ b/tests/cases/conformance/ambient/ambientInsideNonAmbient.ts +@@ -4,6 +4,7 @@ module M { export declare class C { } export declare enum E { } export declare module M { } @@ -775,119 +775,119 @@ index e2f24113c9..d07ac13995 100644 } module M2 { -@@ -12,4 +13,5 @@ module M2 { +@@ -12,4 +13,5 @@ module M2 { declare class C { } declare enum E { } declare module M { } + let qq1 = new C(); - } -\ No newline at end of file -diff --git a/tests/cases/conformance/ambient/ambientInsideNonAmbientExternalModule.ts b/tests/cases/conformance/ambient/ambientInsideNonAmbientExternalModule.ts -index dbdc315c74..3e1e4bfa35 100644 ---- a/tests/cases/conformance/ambient/ambientInsideNonAmbientExternalModule.ts -+++ b/tests/cases/conformance/ambient/ambientInsideNonAmbientExternalModule.ts -@@ -3,4 +3,6 @@ export declare var x; + } +\ No newline at end of file +diff --git a/tests/cases/conformance/ambient/ambientInsideNonAmbientExternalModule.ts b/tests/cases/conformance/ambient/ambientInsideNonAmbientExternalModule.ts +index dbdc315c74..3e1e4bfa35 100644 +--- a/tests/cases/conformance/ambient/ambientInsideNonAmbientExternalModule.ts ++++ b/tests/cases/conformance/ambient/ambientInsideNonAmbientExternalModule.ts +@@ -3,4 +3,6 @@ export declare var x; export declare function f(); export declare class C { } export declare enum E { } --export declare module M { } -\ No newline at end of file +-export declare module M { } +\ No newline at end of file +export declare module M { } + +let qq1 = new C(); -diff --git a/tests/cases/conformance/ambient/ambientShorthand_merging/ambientShorthand_merging.ts b/tests/cases/conformance/ambient/ambientShorthand_merging/ambientShorthand_merging.ts -new file mode 100644 -index 0000000000..a52d4c04bf ---- /dev/null -+++ b/tests/cases/conformance/ambient/ambientShorthand_merging/ambientShorthand_merging.ts -@@ -0,0 +1,6 @@ +diff --git a/tests/cases/conformance/ambient/ambientShorthand_merging/ambientShorthand_merging.ts b/tests/cases/conformance/ambient/ambientShorthand_merging/ambientShorthand_merging.ts +new file mode 100644 +index 0000000000..a52d4c04bf +--- /dev/null ++++ b/tests/cases/conformance/ambient/ambientShorthand_merging/ambientShorthand_merging.ts +@@ -0,0 +1,6 @@ +// @Filename: user.ts +/// +/// +import foo, {bar} from "foo"; +foo; +bar; -diff --git a/tests/cases/conformance/ambient/ambientShorthand_merging/declarations1.d.ts b/tests/cases/conformance/ambient/ambientShorthand_merging/declarations1.d.ts -new file mode 100644 -index 0000000000..66bdaa0fc8 ---- /dev/null -+++ b/tests/cases/conformance/ambient/ambientShorthand_merging/declarations1.d.ts -@@ -0,0 +1,2 @@ +diff --git a/tests/cases/conformance/ambient/ambientShorthand_merging/declarations1.d.ts b/tests/cases/conformance/ambient/ambientShorthand_merging/declarations1.d.ts +new file mode 100644 +index 0000000000..66bdaa0fc8 +--- /dev/null ++++ b/tests/cases/conformance/ambient/ambientShorthand_merging/declarations1.d.ts +@@ -0,0 +1,2 @@ +// @Filename: declarations1.d.ts +declare module "foo"; -diff --git a/tests/cases/conformance/ambient/ambientShorthand_merging/declarations2.d.ts b/tests/cases/conformance/ambient/ambientShorthand_merging/declarations2.d.ts -new file mode 100644 -index 0000000000..ff7233979a ---- /dev/null -+++ b/tests/cases/conformance/ambient/ambientShorthand_merging/declarations2.d.ts -@@ -0,0 +1,4 @@ +diff --git a/tests/cases/conformance/ambient/ambientShorthand_merging/declarations2.d.ts b/tests/cases/conformance/ambient/ambientShorthand_merging/declarations2.d.ts +new file mode 100644 +index 0000000000..ff7233979a +--- /dev/null ++++ b/tests/cases/conformance/ambient/ambientShorthand_merging/declarations2.d.ts +@@ -0,0 +1,4 @@ +// @Filename: declarations2.d.ts +declare module "foo" { + export const bar: number; -+} -\ No newline at end of file -diff --git a/tests/cases/conformance/ambient/ambientShorthand_reExport/ambientShorthand_reExport.ts b/tests/cases/conformance/ambient/ambientShorthand_reExport/ambientShorthand_reExport.ts -new file mode 100644 -index 0000000000..45ba9cd111 ---- /dev/null -+++ b/tests/cases/conformance/ambient/ambientShorthand_reExport/ambientShorthand_reExport.ts -@@ -0,0 +1,5 @@ ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/ambient/ambientShorthand_reExport/ambientShorthand_reExport.ts b/tests/cases/conformance/ambient/ambientShorthand_reExport/ambientShorthand_reExport.ts +new file mode 100644 +index 0000000000..45ba9cd111 +--- /dev/null ++++ b/tests/cases/conformance/ambient/ambientShorthand_reExport/ambientShorthand_reExport.ts +@@ -0,0 +1,5 @@ +// @Filename: reExportUser.ts +import {x} from "./reExportX"; +import * as $ from "./reExportAll"; +// '$' is not callable, it is an object. +x($); -diff --git a/tests/cases/conformance/ambient/ambientShorthand_reExport/declarations.d.ts b/tests/cases/conformance/ambient/ambientShorthand_reExport/declarations.d.ts -new file mode 100644 -index 0000000000..58d1d8215b ---- /dev/null -+++ b/tests/cases/conformance/ambient/ambientShorthand_reExport/declarations.d.ts -@@ -0,0 +1,2 @@ +diff --git a/tests/cases/conformance/ambient/ambientShorthand_reExport/declarations.d.ts b/tests/cases/conformance/ambient/ambientShorthand_reExport/declarations.d.ts +new file mode 100644 +index 0000000000..58d1d8215b +--- /dev/null ++++ b/tests/cases/conformance/ambient/ambientShorthand_reExport/declarations.d.ts +@@ -0,0 +1,2 @@ +// @Filename: declarations.d.ts -+declare module "jquery"; -\ No newline at end of file -diff --git a/tests/cases/conformance/ambient/ambientShorthand_reExport/jquery.d.ts b/tests/cases/conformance/ambient/ambientShorthand_reExport/jquery.d.ts -new file mode 100644 -index 0000000000..58d1d8215b ---- /dev/null -+++ b/tests/cases/conformance/ambient/ambientShorthand_reExport/jquery.d.ts -@@ -0,0 +1,2 @@ ++declare module "jquery"; +\ No newline at end of file +diff --git a/tests/cases/conformance/ambient/ambientShorthand_reExport/jquery.d.ts b/tests/cases/conformance/ambient/ambientShorthand_reExport/jquery.d.ts +new file mode 100644 +index 0000000000..58d1d8215b +--- /dev/null ++++ b/tests/cases/conformance/ambient/ambientShorthand_reExport/jquery.d.ts +@@ -0,0 +1,2 @@ +// @Filename: declarations.d.ts -+declare module "jquery"; -\ No newline at end of file -diff --git a/tests/cases/conformance/ambient/ambientShorthand_reExport/reExportAll.ts b/tests/cases/conformance/ambient/ambientShorthand_reExport/reExportAll.ts -new file mode 100644 -index 0000000000..ae6c5d4864 ---- /dev/null -+++ b/tests/cases/conformance/ambient/ambientShorthand_reExport/reExportAll.ts -@@ -0,0 +1,2 @@ ++declare module "jquery"; +\ No newline at end of file +diff --git a/tests/cases/conformance/ambient/ambientShorthand_reExport/reExportAll.ts b/tests/cases/conformance/ambient/ambientShorthand_reExport/reExportAll.ts +new file mode 100644 +index 0000000000..ae6c5d4864 +--- /dev/null ++++ b/tests/cases/conformance/ambient/ambientShorthand_reExport/reExportAll.ts +@@ -0,0 +1,2 @@ +// @Filename: reExportAll.ts -+export * from "jquery"; -\ No newline at end of file -diff --git a/tests/cases/conformance/ambient/ambientShorthand_reExport/reExportX.ts b/tests/cases/conformance/ambient/ambientShorthand_reExport/reExportX.ts -new file mode 100644 -index 0000000000..07420e1616 ---- /dev/null -+++ b/tests/cases/conformance/ambient/ambientShorthand_reExport/reExportX.ts -@@ -0,0 +1,2 @@ ++export * from "jquery"; +\ No newline at end of file +diff --git a/tests/cases/conformance/ambient/ambientShorthand_reExport/reExportX.ts b/tests/cases/conformance/ambient/ambientShorthand_reExport/reExportX.ts +new file mode 100644 +index 0000000000..07420e1616 +--- /dev/null ++++ b/tests/cases/conformance/ambient/ambientShorthand_reExport/reExportX.ts +@@ -0,0 +1,2 @@ +// @Filename: reExportX.ts -+export {x} from "jquery"; -\ No newline at end of file -diff --git a/tests/cases/conformance/async/es5/asyncMethodWithSuper_es5.ts b/tests/cases/conformance/async/es5/asyncMethodWithSuper_es5.ts -index c89369d02b..9f7e496b8a 100644 ---- a/tests/cases/conformance/async/es5/asyncMethodWithSuper_es5.ts -+++ b/tests/cases/conformance/async/es5/asyncMethodWithSuper_es5.ts -@@ -55,3 +55,4 @@ class B extends A { ++export {x} from "jquery"; +\ No newline at end of file +diff --git a/tests/cases/conformance/async/es5/asyncMethodWithSuper_es5.ts b/tests/cases/conformance/async/es5/asyncMethodWithSuper_es5.ts +index c89369d02b..9f7e496b8a 100644 +--- a/tests/cases/conformance/async/es5/asyncMethodWithSuper_es5.ts ++++ b/tests/cases/conformance/async/es5/asyncMethodWithSuper_es5.ts +@@ -55,3 +55,4 @@ class B extends A { ({ f: super["x"] } = { f }); } } +let b1 = new B(); -diff --git a/tests/cases/conformance/async/es6/functionDeclarations/asyncOrYieldAsBindingIdentifier1.ts b/tests/cases/conformance/async/es6/functionDeclarations/asyncOrYieldAsBindingIdentifier1.ts -new file mode 100644 -index 0000000000..31c1c4055c ---- /dev/null -+++ b/tests/cases/conformance/async/es6/functionDeclarations/asyncOrYieldAsBindingIdentifier1.ts -@@ -0,0 +1,49 @@ +diff --git a/tests/cases/conformance/async/es6/functionDeclarations/asyncOrYieldAsBindingIdentifier1.ts b/tests/cases/conformance/async/es6/functionDeclarations/asyncOrYieldAsBindingIdentifier1.ts +new file mode 100644 +index 0000000000..31c1c4055c +--- /dev/null ++++ b/tests/cases/conformance/async/es6/functionDeclarations/asyncOrYieldAsBindingIdentifier1.ts +@@ -0,0 +1,49 @@ +// @target: esnext + +function f_let () { @@ -936,101 +936,101 @@ index 0000000000..31c1c4055c + +function * f4_const () { + const yield = 2; -+} -\ No newline at end of file -diff --git a/tests/cases/conformance/classes/classDeclarations/classAbstractKeyword/classAbstractAsIdentifier.ts b/tests/cases/conformance/classes/classDeclarations/classAbstractKeyword/classAbstractAsIdentifier.ts -index 4c251a03c3..1a1aeedd41 100644 ---- a/tests/cases/conformance/classes/classDeclarations/classAbstractKeyword/classAbstractAsIdentifier.ts -+++ b/tests/cases/conformance/classes/classDeclarations/classAbstractKeyword/classAbstractAsIdentifier.ts -@@ -1,5 +1,5 @@ ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/classes/classDeclarations/classAbstractKeyword/classAbstractAsIdentifier.ts b/tests/cases/conformance/classes/classDeclarations/classAbstractKeyword/classAbstractAsIdentifier.ts +index 4c251a03c3..1a1aeedd41 100644 +--- a/tests/cases/conformance/classes/classDeclarations/classAbstractKeyword/classAbstractAsIdentifier.ts ++++ b/tests/cases/conformance/classes/classDeclarations/classAbstractKeyword/classAbstractAsIdentifier.ts +@@ -1,5 +1,5 @@ class abstract { foo() { return 1; } } - +let a = new abstract() - new abstract; -\ No newline at end of file -diff --git a/tests/cases/conformance/classes/classDeclarations/classBody/classWithEmptyBody.ts b/tests/cases/conformance/classes/classDeclarations/classBody/classWithEmptyBody.ts -index 1a2e456e0f..5437d3a67d 100644 ---- a/tests/cases/conformance/classes/classDeclarations/classBody/classWithEmptyBody.ts -+++ b/tests/cases/conformance/classes/classDeclarations/classBody/classWithEmptyBody.ts -@@ -17,4 +17,6 @@ var d: D; + new abstract; +\ No newline at end of file +diff --git a/tests/cases/conformance/classes/classDeclarations/classBody/classWithEmptyBody.ts b/tests/cases/conformance/classes/classDeclarations/classBody/classWithEmptyBody.ts +index 1a2e456e0f..5437d3a67d 100644 +--- a/tests/cases/conformance/classes/classDeclarations/classBody/classWithEmptyBody.ts ++++ b/tests/cases/conformance/classes/classDeclarations/classBody/classWithEmptyBody.ts +@@ -17,4 +17,6 @@ var d: D; var o: {} = d; d = 1; d = { foo: '' } --d = () => { } -\ No newline at end of file +-d = () => { } +\ No newline at end of file +d = () => { } +let cc = new C(); -+let dd = new D(); -\ No newline at end of file -diff --git a/tests/cases/conformance/classes/classDeclarations/classInsideBlock.ts b/tests/cases/conformance/classes/classDeclarations/classInsideBlock.ts -index efc3ccff9a..3184fc17d5 100644 ---- a/tests/cases/conformance/classes/classDeclarations/classInsideBlock.ts -+++ b/tests/cases/conformance/classes/classDeclarations/classInsideBlock.ts -@@ -1,3 +1,4 @@ ++let dd = new D(); +\ No newline at end of file +diff --git a/tests/cases/conformance/classes/classDeclarations/classInsideBlock.ts b/tests/cases/conformance/classes/classDeclarations/classInsideBlock.ts +index efc3ccff9a..3184fc17d5 100644 +--- a/tests/cases/conformance/classes/classDeclarations/classInsideBlock.ts ++++ b/tests/cases/conformance/classes/classDeclarations/classInsideBlock.ts +@@ -1,3 +1,4 @@ function foo() { class C { } + let a1 = new C() - } -\ No newline at end of file -diff --git a/tests/cases/conformance/classes/classDeclarations/classWithPredefinedTypesAsNames.ts b/tests/cases/conformance/classes/classDeclarations/classWithPredefinedTypesAsNames.ts -index 93daf743f8..1d496f4eaf 100644 ---- a/tests/cases/conformance/classes/classDeclarations/classWithPredefinedTypesAsNames.ts -+++ b/tests/cases/conformance/classes/classDeclarations/classWithPredefinedTypesAsNames.ts -@@ -3,4 +3,6 @@ + } +\ No newline at end of file +diff --git a/tests/cases/conformance/classes/classDeclarations/classWithPredefinedTypesAsNames.ts b/tests/cases/conformance/classes/classDeclarations/classWithPredefinedTypesAsNames.ts +index 93daf743f8..1d496f4eaf 100644 +--- a/tests/cases/conformance/classes/classDeclarations/classWithPredefinedTypesAsNames.ts ++++ b/tests/cases/conformance/classes/classDeclarations/classWithPredefinedTypesAsNames.ts +@@ -3,4 +3,6 @@ class any { } class number { } class boolean { } --class string { } -\ No newline at end of file +-class string { } +\ No newline at end of file +class string { } + -+let aa = new any(); -\ No newline at end of file -diff --git a/tests/cases/conformance/classes/classDeclarations/classWithSemicolonClassElement1.ts b/tests/cases/conformance/classes/classDeclarations/classWithSemicolonClassElement1.ts -index 6571258d9d..5f049c27e3 100644 ---- a/tests/cases/conformance/classes/classDeclarations/classWithSemicolonClassElement1.ts -+++ b/tests/cases/conformance/classes/classDeclarations/classWithSemicolonClassElement1.ts -@@ -1,3 +1,4 @@ ++let aa = new any(); +\ No newline at end of file +diff --git a/tests/cases/conformance/classes/classDeclarations/classWithSemicolonClassElement1.ts b/tests/cases/conformance/classes/classDeclarations/classWithSemicolonClassElement1.ts +index 6571258d9d..5f049c27e3 100644 +--- a/tests/cases/conformance/classes/classDeclarations/classWithSemicolonClassElement1.ts ++++ b/tests/cases/conformance/classes/classDeclarations/classWithSemicolonClassElement1.ts +@@ -1,3 +1,4 @@ class C { ; --} -\ No newline at end of file -+} -+let c9 = new C() -\ No newline at end of file -diff --git a/tests/cases/conformance/classes/classDeclarations/classWithSemicolonClassElement2.ts b/tests/cases/conformance/classes/classDeclarations/classWithSemicolonClassElement2.ts -index 716c8b58ae..511baa19f9 100644 ---- a/tests/cases/conformance/classes/classDeclarations/classWithSemicolonClassElement2.ts -+++ b/tests/cases/conformance/classes/classDeclarations/classWithSemicolonClassElement2.ts -@@ -1,4 +1,5 @@ +-} +\ No newline at end of file ++} ++let c9 = new C() +\ No newline at end of file +diff --git a/tests/cases/conformance/classes/classDeclarations/classWithSemicolonClassElement2.ts b/tests/cases/conformance/classes/classDeclarations/classWithSemicolonClassElement2.ts +index 716c8b58ae..511baa19f9 100644 +--- a/tests/cases/conformance/classes/classDeclarations/classWithSemicolonClassElement2.ts ++++ b/tests/cases/conformance/classes/classDeclarations/classWithSemicolonClassElement2.ts +@@ -1,4 +1,5 @@ class C { ; ; --} -\ No newline at end of file -+} -+let a15 = new C() -\ No newline at end of file -diff --git a/tests/cases/conformance/classes/classExpressions/classExpression2.ts b/tests/cases/conformance/classes/classExpressions/classExpression2.ts -index 6365cd07eb..d39896a361 100644 ---- a/tests/cases/conformance/classes/classExpressions/classExpression2.ts -+++ b/tests/cases/conformance/classes/classExpressions/classExpression2.ts -@@ -1,2 +1,4 @@ +-} +\ No newline at end of file ++} ++let a15 = new C() +\ No newline at end of file +diff --git a/tests/cases/conformance/classes/classExpressions/classExpression2.ts b/tests/cases/conformance/classes/classExpressions/classExpression2.ts +index 6365cd07eb..d39896a361 100644 +--- a/tests/cases/conformance/classes/classExpressions/classExpression2.ts ++++ b/tests/cases/conformance/classes/classExpressions/classExpression2.ts +@@ -1,2 +1,4 @@ class D { } --var v = class C extends D {}; -\ No newline at end of file +-var v = class C extends D {}; +\ No newline at end of file +var v = class C extends D {}; +let dd = new D() -+let vv = new v() -\ No newline at end of file -diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock1.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock1.ts -new file mode 100644 -index 0000000000..dd9455ad8c ---- /dev/null -+++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock1.ts -@@ -0,0 +1,11 @@ ++let vv = new v() +\ No newline at end of file +diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock1.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock1.ts +new file mode 100644 +index 0000000000..dd9455ad8c +--- /dev/null ++++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock1.ts +@@ -0,0 +1,11 @@ +// @target: esnext, es2015, es5 +const a = 2; + @@ -1042,12 +1042,12 @@ index 0000000000..dd9455ad8c + } +} +let a1 = new C() -diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock10.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock10.ts -new file mode 100644 -index 0000000000..aa82e1db13 ---- /dev/null -+++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock10.ts -@@ -0,0 +1,30 @@ +diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock10.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock10.ts +new file mode 100644 +index 0000000000..aa82e1db13 +--- /dev/null ++++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock10.ts +@@ -0,0 +1,30 @@ +// @target: esnext, es2015, es5 +var a1 = 1; +var a2 = 1; @@ -1077,14 +1077,14 @@ index 0000000000..aa82e1db13 + const b2 = 222; + } +} -+let c2 = new C2(); -\ No newline at end of file -diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock11.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock11.ts -new file mode 100644 -index 0000000000..00492ae619 ---- /dev/null -+++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock11.ts -@@ -0,0 +1,15 @@ ++let c2 = new C2(); +\ No newline at end of file +diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock11.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock11.ts +new file mode 100644 +index 0000000000..00492ae619 +--- /dev/null ++++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock11.ts +@@ -0,0 +1,15 @@ +// @target: esnext, es2015 + +let getX; @@ -1100,12 +1100,12 @@ index 0000000000..00492ae619 + } +} +let cc = new C(1); -diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock12.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock12.ts -new file mode 100644 -index 0000000000..436c690665 ---- /dev/null -+++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock12.ts -@@ -0,0 +1,10 @@ +diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock12.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock12.ts +new file mode 100644 +index 0000000000..436c690665 +--- /dev/null ++++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock12.ts +@@ -0,0 +1,10 @@ +// @useDefineForClassFields: false +// @target: es2015 + @@ -1116,12 +1116,12 @@ index 0000000000..436c690665 + C.#x; + } +} -diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock13.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock13.ts -new file mode 100644 -index 0000000000..8120cc3575 ---- /dev/null -+++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock13.ts -@@ -0,0 +1,14 @@ +diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock13.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock13.ts +new file mode 100644 +index 0000000000..8120cc3575 +--- /dev/null ++++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock13.ts +@@ -0,0 +1,14 @@ +// @target: esnext, es2015 +// @useDefineForClassFields: true + @@ -1136,12 +1136,12 @@ index 0000000000..8120cc3575 + return C.#x; + } +} -diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock14.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock14.ts -new file mode 100644 -index 0000000000..ff510c8436 ---- /dev/null -+++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock14.ts -@@ -0,0 +1,15 @@ +diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock14.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock14.ts +new file mode 100644 +index 0000000000..ff510c8436 +--- /dev/null ++++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock14.ts +@@ -0,0 +1,15 @@ +// @useDefineForClassFields: false +// @target: es2015 + @@ -1157,12 +1157,12 @@ index 0000000000..ff510c8436 + static {} + static {} +} -diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock15.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock15.ts -new file mode 100644 -index 0000000000..ec2727660f ---- /dev/null -+++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock15.ts -@@ -0,0 +1,18 @@ +diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock15.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock15.ts +new file mode 100644 +index 0000000000..ec2727660f +--- /dev/null ++++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock15.ts +@@ -0,0 +1,18 @@ +// @target: esnext, es2015 +// @useDefineForClassFields: true +var _C__1; @@ -1181,12 +1181,12 @@ index 0000000000..ec2727660f +} + +console.log(_C__1) -diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock16.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock16.ts -new file mode 100644 -index 0000000000..bc15e5f1ab ---- /dev/null -+++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock16.ts -@@ -0,0 +1,26 @@ +diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock16.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock16.ts +new file mode 100644 +index 0000000000..bc15e5f1ab +--- /dev/null ++++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock16.ts +@@ -0,0 +1,26 @@ +// @target: es2015 + +let getX: (c: C) => number; @@ -1212,14 +1212,14 @@ index 0000000000..bc15e5f1ab + getX = (obj: C) => obj.#x; + getY = (obj: D) => obj.#y; + } -+} -\ No newline at end of file -diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock17.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock17.ts -new file mode 100644 -index 0000000000..8d26cb4a08 ---- /dev/null -+++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock17.ts -@@ -0,0 +1,33 @@ ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock17.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock17.ts +new file mode 100644 +index 0000000000..8d26cb4a08 +--- /dev/null ++++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock17.ts +@@ -0,0 +1,33 @@ +// @target: es2015 + +let friendA: { getX(o: A): number, setX(o: A, v: number): void }; @@ -1252,14 +1252,14 @@ index 0000000000..8d26cb4a08 + +const a = new A(41); +const b = new B(a); -+a.getX(); -\ No newline at end of file -diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock18.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock18.ts -new file mode 100644 -index 0000000000..a36bd50917 ---- /dev/null -+++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock18.ts -@@ -0,0 +1,15 @@ ++a.getX(); +\ No newline at end of file +diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock18.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock18.ts +new file mode 100644 +index 0000000000..a36bd50917 +--- /dev/null ++++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock18.ts +@@ -0,0 +1,15 @@ +// @target: esnext, es2015, es5 + +function foo () { @@ -1275,24 +1275,24 @@ index 0000000000..a36bd50917 + } + } +} -diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock19.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock19.ts -new file mode 100644 -index 0000000000..33bb993be6 ---- /dev/null -+++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock19.ts -@@ -0,0 +1,6 @@ +diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock19.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock19.ts +new file mode 100644 +index 0000000000..33bb993be6 +--- /dev/null ++++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock19.ts +@@ -0,0 +1,6 @@ +class C { + @decorator + static { + // something + } +} -diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock2.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock2.ts -new file mode 100644 -index 0000000000..292d7181bb ---- /dev/null -+++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock2.ts -@@ -0,0 +1,20 @@ +diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock2.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock2.ts +new file mode 100644 +index 0000000000..292d7181bb +--- /dev/null ++++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock2.ts +@@ -0,0 +1,20 @@ +// @target: esnext, es2015, es5 + +const a = 1; @@ -1313,12 +1313,12 @@ index 0000000000..292d7181bb + b; + } +} -diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock20.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock20.ts -new file mode 100644 -index 0000000000..72a9d09161 ---- /dev/null -+++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock20.ts -@@ -0,0 +1,13 @@ +diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock20.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock20.ts +new file mode 100644 +index 0000000000..72a9d09161 +--- /dev/null ++++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock20.ts +@@ -0,0 +1,13 @@ +class C { + async static { + // something @@ -1332,26 +1332,26 @@ index 0000000000..72a9d09161 + // something + } +} -diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock21.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock21.ts -new file mode 100644 -index 0000000000..65422df9cd ---- /dev/null -+++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock21.ts -@@ -0,0 +1,7 @@ +diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock21.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock21.ts +new file mode 100644 +index 0000000000..65422df9cd +--- /dev/null ++++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock21.ts +@@ -0,0 +1,7 @@ +class C { + /* jsdocs */ + static { + // something + } +} -+let cc = new C(); -\ No newline at end of file -diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock22.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock22.ts -new file mode 100644 -index 0000000000..8d3be9861a ---- /dev/null -+++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock22.ts -@@ -0,0 +1,72 @@ ++let cc = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock22.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock22.ts +new file mode 100644 +index 0000000000..8d3be9861a +--- /dev/null ++++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock22.ts +@@ -0,0 +1,72 @@ +// @target: esnext + +let await: "any"; @@ -1423,14 +1423,14 @@ index 0000000000..8d3be9861a + static propFunc = function () { await; } + } + } -+} -\ No newline at end of file -diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock23.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock23.ts -new file mode 100644 -index 0000000000..bb83b27dca ---- /dev/null -+++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock23.ts -@@ -0,0 +1,21 @@ ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock23.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock23.ts +new file mode 100644 +index 0000000000..bb83b27dca +--- /dev/null ++++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock23.ts +@@ -0,0 +1,21 @@ +// @target: esnext + +const nums = [1, 2, 3].map(n => Promise.resolve(n)) @@ -1451,14 +1451,14 @@ index 0000000000..bb83b27dca + } + } + } -+} -\ No newline at end of file -diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock24.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock24.ts -new file mode 100644 -index 0000000000..8132238772 ---- /dev/null -+++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock24.ts -@@ -0,0 +1,8 @@ ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock24.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock24.ts +new file mode 100644 +index 0000000000..8132238772 +--- /dev/null ++++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock24.ts +@@ -0,0 +1,8 @@ +// @module: commonjs, es2015, es2020, UMD, AMD, System, esnext + +export class C { @@ -1467,12 +1467,12 @@ index 0000000000..8132238772 + C.x = 1; + } +} -diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock25.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock25.ts -new file mode 100644 -index 0000000000..56f99a6122 ---- /dev/null -+++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock25.ts -@@ -0,0 +1,23 @@ +diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock25.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock25.ts +new file mode 100644 +index 0000000000..56f99a6122 +--- /dev/null ++++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock25.ts +@@ -0,0 +1,23 @@ +// @target: esnext +// @declaration: true +// @declarationMap: true @@ -1496,12 +1496,12 @@ index 0000000000..56f99a6122 + b; + } +} -diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock26.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock26.ts -new file mode 100644 -index 0000000000..1081729acd ---- /dev/null -+++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock26.ts -@@ -0,0 +1,30 @@ +diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock26.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock26.ts +new file mode 100644 +index 0000000000..1081729acd +--- /dev/null ++++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock26.ts +@@ -0,0 +1,30 @@ +// @target: esnext + +class C { @@ -1532,12 +1532,12 @@ index 0000000000..1081729acd + const fff = await => { } + } +} -diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock27.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock27.ts -new file mode 100644 -index 0000000000..a0429bbb54 ---- /dev/null -+++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock27.ts -@@ -0,0 +1,17 @@ +diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock27.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock27.ts +new file mode 100644 +index 0000000000..a0429bbb54 +--- /dev/null ++++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock27.ts +@@ -0,0 +1,17 @@ +// https://github.com/microsoft/TypeScript/issues/44872 + +void class Foo { @@ -1555,12 +1555,12 @@ index 0000000000..a0429bbb54 + Foo.prop++; + } +} -diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock3.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock3.ts -new file mode 100644 -index 0000000000..84125fdbed ---- /dev/null -+++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock3.ts -@@ -0,0 +1,19 @@ +diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock3.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock3.ts +new file mode 100644 +index 0000000000..84125fdbed +--- /dev/null ++++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock3.ts +@@ -0,0 +1,19 @@ +// @target: esnext + +const a = 1; @@ -1580,12 +1580,12 @@ index 0000000000..84125fdbed + + static f3 = 3; +} -diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock4.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock4.ts -new file mode 100644 -index 0000000000..7a944a4969 ---- /dev/null -+++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock4.ts -@@ -0,0 +1,16 @@ +diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock4.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock4.ts +new file mode 100644 +index 0000000000..7a944a4969 +--- /dev/null ++++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock4.ts +@@ -0,0 +1,16 @@ +// @target: esnext + +class C { @@ -1602,12 +1602,12 @@ index 0000000000..7a944a4969 + static s2 = 2; + static ss2 = this.s1; +} -diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock5.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock5.ts -new file mode 100644 -index 0000000000..2410b532ab ---- /dev/null -+++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock5.ts -@@ -0,0 +1,19 @@ +diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock5.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock5.ts +new file mode 100644 +index 0000000000..2410b532ab +--- /dev/null ++++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock5.ts +@@ -0,0 +1,19 @@ +// @target: esnext, es2015, es5 + +class B { @@ -1627,12 +1627,12 @@ index 0000000000..2410b532ab +} + +let cc = new C(); -diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock6.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock6.ts -new file mode 100644 -index 0000000000..cdd0cda2fe ---- /dev/null -+++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock6.ts -@@ -0,0 +1,62 @@ +diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock6.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock6.ts +new file mode 100644 +index 0000000000..cdd0cda2fe +--- /dev/null ++++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock6.ts +@@ -0,0 +1,62 @@ +class B { + static a = 1; +} @@ -1695,12 +1695,12 @@ index 0000000000..cdd0cda2fe + } + } +} -diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock7.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock7.ts -new file mode 100644 -index 0000000000..727ada0342 ---- /dev/null -+++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock7.ts -@@ -0,0 +1,43 @@ +diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock7.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock7.ts +new file mode 100644 +index 0000000000..727ada0342 +--- /dev/null ++++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock7.ts +@@ -0,0 +1,43 @@ +class C { + static { + await 1; @@ -1744,12 +1744,12 @@ index 0000000000..727ada0342 + } + } +} -diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock8.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock8.ts -new file mode 100644 -index 0000000000..d2e5220b83 ---- /dev/null -+++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock8.ts -@@ -0,0 +1,48 @@ +diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock8.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock8.ts +new file mode 100644 +index 0000000000..d2e5220b83 +--- /dev/null ++++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock8.ts +@@ -0,0 +1,48 @@ +function foo (v: number) { + label: while (v) { + class C { @@ -1798,12 +1798,12 @@ index 0000000000..d2e5220b83 + } + } +} -diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock9.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock9.ts -new file mode 100644 -index 0000000000..d99157b190 ---- /dev/null -+++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock9.ts -@@ -0,0 +1,8 @@ +diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock9.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock9.ts +new file mode 100644 +index 0000000000..d99157b190 +--- /dev/null ++++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock9.ts +@@ -0,0 +1,8 @@ +// @target: esnext, es2015, es5 +class A { + static bar = A.foo + 1 @@ -1812,12 +1812,12 @@ index 0000000000..d99157b190 + } + static foo = 1; +} -diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlockUseBeforeDef1.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlockUseBeforeDef1.ts -new file mode 100644 -index 0000000000..11f8b7f554 ---- /dev/null -+++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlockUseBeforeDef1.ts -@@ -0,0 +1,15 @@ +diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlockUseBeforeDef1.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlockUseBeforeDef1.ts +new file mode 100644 +index 0000000000..11f8b7f554 +--- /dev/null ++++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlockUseBeforeDef1.ts +@@ -0,0 +1,15 @@ +// @target: esnext +// @noEmit: true +// @strict: true @@ -1832,14 +1832,14 @@ index 0000000000..11f8b7f554 + static { + this.z = this.y; + } -+} -\ No newline at end of file -diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlockUseBeforeDef2.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlockUseBeforeDef2.ts -new file mode 100644 -index 0000000000..89658a6ebe ---- /dev/null -+++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlockUseBeforeDef2.ts -@@ -0,0 +1,10 @@ ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlockUseBeforeDef2.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlockUseBeforeDef2.ts +new file mode 100644 +index 0000000000..89658a6ebe +--- /dev/null ++++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlockUseBeforeDef2.ts +@@ -0,0 +1,10 @@ +// @target: esnext +// @noEmit: true +// @strict: true @@ -1849,13 +1849,13 @@ index 0000000000..89658a6ebe + this.x = 1; + } + static x; -+} -\ No newline at end of file -diff --git a/tests/cases/conformance/classes/constructorDeclarations/classConstructorAccessibility4.ts b/tests/cases/conformance/classes/constructorDeclarations/classConstructorAccessibility4.ts -index 3760f2176a..83c7d721b0 100644 ---- a/tests/cases/conformance/classes/constructorDeclarations/classConstructorAccessibility4.ts -+++ b/tests/cases/conformance/classes/constructorDeclarations/classConstructorAccessibility4.ts -@@ -14,6 +14,7 @@ class A { ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/classes/constructorDeclarations/classConstructorAccessibility4.ts b/tests/cases/conformance/classes/constructorDeclarations/classConstructorAccessibility4.ts +index 3760f2176a..83c7d721b0 100644 +--- a/tests/cases/conformance/classes/constructorDeclarations/classConstructorAccessibility4.ts ++++ b/tests/cases/conformance/classes/constructorDeclarations/classConstructorAccessibility4.ts +@@ -14,6 +14,7 @@ class A { } } } @@ -1863,77 +1863,77 @@ index 3760f2176a..83c7d721b0 100644 class D { protected constructor() { } -@@ -28,4 +29,5 @@ class D { +@@ -28,4 +29,5 @@ class D { class F extends D { // OK } } --} -\ No newline at end of file -+} -+let dd = new D(); -\ No newline at end of file -diff --git a/tests/cases/conformance/classes/constructorDeclarations/constructorParameters/constructorImplementationWithDefaultValues.ts b/tests/cases/conformance/classes/constructorDeclarations/constructorParameters/constructorImplementationWithDefaultValues.ts -index bdbcd7f959..c75a4f196b 100644 ---- a/tests/cases/conformance/classes/constructorDeclarations/constructorParameters/constructorImplementationWithDefaultValues.ts -+++ b/tests/cases/conformance/classes/constructorDeclarations/constructorParameters/constructorImplementationWithDefaultValues.ts -@@ -17,4 +17,8 @@ class E { +-} +\ No newline at end of file ++} ++let dd = new D(); +\ No newline at end of file +diff --git a/tests/cases/conformance/classes/constructorDeclarations/constructorParameters/constructorImplementationWithDefaultValues.ts b/tests/cases/conformance/classes/constructorDeclarations/constructorParameters/constructorImplementationWithDefaultValues.ts +index bdbcd7f959..c75a4f196b 100644 +--- a/tests/cases/conformance/classes/constructorDeclarations/constructorParameters/constructorImplementationWithDefaultValues.ts ++++ b/tests/cases/conformance/classes/constructorDeclarations/constructorParameters/constructorImplementationWithDefaultValues.ts +@@ -17,4 +17,8 @@ class E { constructor(x: T = null) { var y = x; } --} -\ No newline at end of file +-} +\ No newline at end of file +} + +let cc = new C(null); +let dd = new D(null); -+let ee = new E(null); -\ No newline at end of file -diff --git a/tests/cases/conformance/classes/constructorDeclarations/constructorParameters/declarationEmitReadonly.ts b/tests/cases/conformance/classes/constructorDeclarations/constructorParameters/declarationEmitReadonly.ts -index 76b41eabba..ffd568ede1 100644 ---- a/tests/cases/conformance/classes/constructorDeclarations/constructorParameters/declarationEmitReadonly.ts -+++ b/tests/cases/conformance/classes/constructorDeclarations/constructorParameters/declarationEmitReadonly.ts -@@ -2,4 +2,5 @@ ++let ee = new E(null); +\ No newline at end of file +diff --git a/tests/cases/conformance/classes/constructorDeclarations/constructorParameters/declarationEmitReadonly.ts b/tests/cases/conformance/classes/constructorDeclarations/constructorParameters/declarationEmitReadonly.ts +index 76b41eabba..ffd568ede1 100644 +--- a/tests/cases/conformance/classes/constructorDeclarations/constructorParameters/declarationEmitReadonly.ts ++++ b/tests/cases/conformance/classes/constructorDeclarations/constructorParameters/declarationEmitReadonly.ts +@@ -2,4 +2,5 @@ class C { constructor(readonly x: number) {} --} -\ No newline at end of file -+} -+let c7 = new C(1) -\ No newline at end of file -diff --git a/tests/cases/conformance/classes/constructorDeclarations/quotedConstructors.ts b/tests/cases/conformance/classes/constructorDeclarations/quotedConstructors.ts -index c03ce26cc2..e22bf5d126 100644 ---- a/tests/cases/conformance/classes/constructorDeclarations/quotedConstructors.ts -+++ b/tests/cases/conformance/classes/constructorDeclarations/quotedConstructors.ts -@@ -29,3 +29,7 @@ class F { - console.log(this); - } - } -+let c3 =new C() -+let c4 =new D() -+let c5 =new E() -+let c6 =new F() -\ No newline at end of file -diff --git a/tests/cases/conformance/classes/members/inheritanceAndOverriding/derivedClassOverridesIndexersWithAssignmentCompatibility.ts b/tests/cases/conformance/classes/members/inheritanceAndOverriding/derivedClassOverridesIndexersWithAssignmentCompatibility.ts -index 20243d55be..7806d4f33e 100644 ---- a/tests/cases/conformance/classes/members/inheritanceAndOverriding/derivedClassOverridesIndexersWithAssignmentCompatibility.ts -+++ b/tests/cases/conformance/classes/members/inheritanceAndOverriding/derivedClassOverridesIndexersWithAssignmentCompatibility.ts -@@ -14,4 +14,6 @@ class Base2 { - // ok, use assignment compatibility - class Derived2 extends Base2 { - [x: number]: any; --} -\ No newline at end of file -+} -+let c1 = new Derived() -+let c2 = new Derived2() -\ No newline at end of file -diff --git a/tests/cases/conformance/classes/members/instanceAndStaticMembers/superInStaticMembers1.ts b/tests/cases/conformance/classes/members/instanceAndStaticMembers/superInStaticMembers1.ts -new file mode 100644 -index 0000000000..fd281b1606 ---- /dev/null -+++ b/tests/cases/conformance/classes/members/instanceAndStaticMembers/superInStaticMembers1.ts -@@ -0,0 +1,492 @@ +-} +\ No newline at end of file ++} ++let c7 = new C(1) +\ No newline at end of file +diff --git a/tests/cases/conformance/classes/constructorDeclarations/quotedConstructors.ts b/tests/cases/conformance/classes/constructorDeclarations/quotedConstructors.ts +index c03ce26cc2..e22bf5d126 100644 +--- a/tests/cases/conformance/classes/constructorDeclarations/quotedConstructors.ts ++++ b/tests/cases/conformance/classes/constructorDeclarations/quotedConstructors.ts +@@ -29,3 +29,7 @@ class F { + console.log(this); + } + } ++let c3 =new C() ++let c4 =new D() ++let c5 =new E() ++let c6 =new F() +\ No newline at end of file +diff --git a/tests/cases/conformance/classes/members/inheritanceAndOverriding/derivedClassOverridesIndexersWithAssignmentCompatibility.ts b/tests/cases/conformance/classes/members/inheritanceAndOverriding/derivedClassOverridesIndexersWithAssignmentCompatibility.ts +index 20243d55be..7806d4f33e 100644 +--- a/tests/cases/conformance/classes/members/inheritanceAndOverriding/derivedClassOverridesIndexersWithAssignmentCompatibility.ts ++++ b/tests/cases/conformance/classes/members/inheritanceAndOverriding/derivedClassOverridesIndexersWithAssignmentCompatibility.ts +@@ -14,4 +14,6 @@ class Base2 { + // ok, use assignment compatibility + class Derived2 extends Base2 { + [x: number]: any; +-} +\ No newline at end of file ++} ++let c1 = new Derived() ++let c2 = new Derived2() +\ No newline at end of file +diff --git a/tests/cases/conformance/classes/members/instanceAndStaticMembers/superInStaticMembers1.ts b/tests/cases/conformance/classes/members/instanceAndStaticMembers/superInStaticMembers1.ts +new file mode 100644 +index 0000000000..fd281b1606 +--- /dev/null ++++ b/tests/cases/conformance/classes/members/instanceAndStaticMembers/superInStaticMembers1.ts +@@ -0,0 +1,492 @@ +// @target: es5, es2015, es2021, esnext +// @noTypesAndSymbols: true + @@ -2426,12 +2426,12 @@ index 0000000000..fd281b1606 + static { super.w(); } + } +}); -diff --git a/tests/cases/conformance/classes/members/instanceAndStaticMembers/thisAndSuperInStaticMembers1.ts b/tests/cases/conformance/classes/members/instanceAndStaticMembers/thisAndSuperInStaticMembers1.ts -new file mode 100644 -index 0000000000..e3bfff9aed ---- /dev/null -+++ b/tests/cases/conformance/classes/members/instanceAndStaticMembers/thisAndSuperInStaticMembers1.ts -@@ -0,0 +1,42 @@ +diff --git a/tests/cases/conformance/classes/members/instanceAndStaticMembers/thisAndSuperInStaticMembers1.ts b/tests/cases/conformance/classes/members/instanceAndStaticMembers/thisAndSuperInStaticMembers1.ts +new file mode 100644 +index 0000000000..e3bfff9aed +--- /dev/null ++++ b/tests/cases/conformance/classes/members/instanceAndStaticMembers/thisAndSuperInStaticMembers1.ts +@@ -0,0 +1,42 @@ +// @target: esnext, es2015 +// @useDefineForClassFields: true +// @noTypesAndSymbols: true @@ -2473,14 +2473,14 @@ index 0000000000..e3bfff9aed + x = 1; + y = this.x; + z = super.f(); -+} -\ No newline at end of file -diff --git a/tests/cases/conformance/classes/members/instanceAndStaticMembers/thisAndSuperInStaticMembers2.ts b/tests/cases/conformance/classes/members/instanceAndStaticMembers/thisAndSuperInStaticMembers2.ts -new file mode 100644 -index 0000000000..7e751c3d67 ---- /dev/null -+++ b/tests/cases/conformance/classes/members/instanceAndStaticMembers/thisAndSuperInStaticMembers2.ts -@@ -0,0 +1,42 @@ ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/classes/members/instanceAndStaticMembers/thisAndSuperInStaticMembers2.ts b/tests/cases/conformance/classes/members/instanceAndStaticMembers/thisAndSuperInStaticMembers2.ts +new file mode 100644 +index 0000000000..7e751c3d67 +--- /dev/null ++++ b/tests/cases/conformance/classes/members/instanceAndStaticMembers/thisAndSuperInStaticMembers2.ts +@@ -0,0 +1,42 @@ +// @target: esnext, es2015 +// @useDefineForClassFields: false +// @noTypesAndSymbols: true @@ -2522,14 +2522,14 @@ index 0000000000..7e751c3d67 + x = 1; + y = this.x; + z = super.f(); -+} -\ No newline at end of file -diff --git a/tests/cases/conformance/classes/members/instanceAndStaticMembers/thisAndSuperInStaticMembers3.ts b/tests/cases/conformance/classes/members/instanceAndStaticMembers/thisAndSuperInStaticMembers3.ts -new file mode 100644 -index 0000000000..413c7c54bc ---- /dev/null -+++ b/tests/cases/conformance/classes/members/instanceAndStaticMembers/thisAndSuperInStaticMembers3.ts -@@ -0,0 +1,26 @@ ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/classes/members/instanceAndStaticMembers/thisAndSuperInStaticMembers3.ts b/tests/cases/conformance/classes/members/instanceAndStaticMembers/thisAndSuperInStaticMembers3.ts +new file mode 100644 +index 0000000000..413c7c54bc +--- /dev/null ++++ b/tests/cases/conformance/classes/members/instanceAndStaticMembers/thisAndSuperInStaticMembers3.ts +@@ -0,0 +1,26 @@ +// @target: es5 +// @useDefineForClassFields: true +// @noTypesAndSymbols: true @@ -2555,14 +2555,14 @@ index 0000000000..413c7c54bc + x = 1; + y = this.x; + z = super.f(); -+} -\ No newline at end of file -diff --git a/tests/cases/conformance/classes/members/instanceAndStaticMembers/thisAndSuperInStaticMembers4.ts b/tests/cases/conformance/classes/members/instanceAndStaticMembers/thisAndSuperInStaticMembers4.ts -new file mode 100644 -index 0000000000..aad82e41dc ---- /dev/null -+++ b/tests/cases/conformance/classes/members/instanceAndStaticMembers/thisAndSuperInStaticMembers4.ts -@@ -0,0 +1,26 @@ ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/classes/members/instanceAndStaticMembers/thisAndSuperInStaticMembers4.ts b/tests/cases/conformance/classes/members/instanceAndStaticMembers/thisAndSuperInStaticMembers4.ts +new file mode 100644 +index 0000000000..aad82e41dc +--- /dev/null ++++ b/tests/cases/conformance/classes/members/instanceAndStaticMembers/thisAndSuperInStaticMembers4.ts +@@ -0,0 +1,26 @@ +// @target: es5 +// @useDefineForClassFields: false +// @noTypesAndSymbols: true @@ -2588,25 +2588,25 @@ index 0000000000..aad82e41dc + x = 1; + y = this.x; + z = super.f(); -+} -\ No newline at end of file -diff --git a/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers.ts b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers.ts -index dcba533725..f05e58dcb5 100644 ---- a/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers.ts -+++ b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers.ts -@@ -30,4 +30,5 @@ var t2 = C2.bar(); ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers.ts b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers.ts +index dcba533725..f05e58dcb5 100644 +--- a/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers.ts ++++ b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers.ts +@@ -30,4 +30,5 @@ var t2 = C2.bar(); var r5 = t2.foo + 1; var r6 = t2.bar(); var r7 = new t2(''); - +let b2 = new C(1) +let b3 = new C2('null') -diff --git a/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers10.ts b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers10.ts -new file mode 100644 -index 0000000000..bb458c87d2 ---- /dev/null -+++ b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers10.ts -@@ -0,0 +1,51 @@ +diff --git a/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers10.ts b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers10.ts +new file mode 100644 +index 0000000000..bb458c87d2 +--- /dev/null ++++ b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers10.ts +@@ -0,0 +1,51 @@ +// @target: esnext, es6, es5 +// @experimentalDecorators: true +// @useDefineForClassFields: false @@ -2658,12 +2658,12 @@ index 0000000000..bb458c87d2 + this.c = v + 1; + } +} -diff --git a/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers11.ts b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers11.ts -new file mode 100644 -index 0000000000..6c4025bc47 ---- /dev/null -+++ b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers11.ts -@@ -0,0 +1,51 @@ +diff --git a/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers11.ts b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers11.ts +new file mode 100644 +index 0000000000..6c4025bc47 +--- /dev/null ++++ b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers11.ts +@@ -0,0 +1,51 @@ +// @target: esnext, es6, es5 +// @experimentalDecorators: true +// @useDefineForClassFields: true @@ -2715,12 +2715,12 @@ index 0000000000..6c4025bc47 + this.c = v + 1; + } +} -diff --git a/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers12.ts b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers12.ts -new file mode 100644 -index 0000000000..041089512b ---- /dev/null -+++ b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers12.ts -@@ -0,0 +1,10 @@ +diff --git a/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers12.ts b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers12.ts +new file mode 100644 +index 0000000000..041089512b +--- /dev/null ++++ b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers12.ts +@@ -0,0 +1,10 @@ +// @target: esnext, es6, es5 +// @useDefineForClassFields: false + @@ -2731,12 +2731,12 @@ index 0000000000..041089512b + [this.c] = 123; + } +} -diff --git a/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers13.ts b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers13.ts -new file mode 100644 -index 0000000000..6c965e0e2d ---- /dev/null -+++ b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers13.ts -@@ -0,0 +1,10 @@ +diff --git a/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers13.ts b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers13.ts +new file mode 100644 +index 0000000000..6c965e0e2d +--- /dev/null ++++ b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers13.ts +@@ -0,0 +1,10 @@ +// @target: esnext, es6, es5 +// @useDefineForClassFields: true + @@ -2747,12 +2747,12 @@ index 0000000000..6c965e0e2d + [this.c] = 123; + } +} -diff --git a/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers3.ts b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers3.ts -new file mode 100644 -index 0000000000..27541ce361 ---- /dev/null -+++ b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers3.ts -@@ -0,0 +1,12 @@ +diff --git a/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers3.ts b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers3.ts +new file mode 100644 +index 0000000000..27541ce361 +--- /dev/null ++++ b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers3.ts +@@ -0,0 +1,12 @@ +// @target: esnext, es6, es5 +// @useDefineForClassFields: false +class C { @@ -2765,12 +2765,12 @@ index 0000000000..27541ce361 + static d = this.c + 1; + static e = super.a + this.c + 1; +} -diff --git a/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers4.ts b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers4.ts -new file mode 100644 -index 0000000000..0d08423bb9 ---- /dev/null -+++ b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers4.ts -@@ -0,0 +1,12 @@ +diff --git a/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers4.ts b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers4.ts +new file mode 100644 +index 0000000000..0d08423bb9 +--- /dev/null ++++ b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers4.ts +@@ -0,0 +1,12 @@ +// @target: esnext, es6, es5 +// @useDefineForClassFields: true +class C { @@ -2783,12 +2783,12 @@ index 0000000000..0d08423bb9 + static d = this.c + 1; + static e = super.a + this.c + 1; +} -diff --git a/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers5.ts b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers5.ts -new file mode 100644 -index 0000000000..db6e8a76c6 ---- /dev/null -+++ b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers5.ts -@@ -0,0 +1,9 @@ +diff --git a/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers5.ts b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers5.ts +new file mode 100644 +index 0000000000..db6e8a76c6 +--- /dev/null ++++ b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers5.ts +@@ -0,0 +1,9 @@ +// @target: esnext, es6, es5 + +class C { @@ -2798,12 +2798,12 @@ index 0000000000..db6e8a76c6 + + } +} -diff --git a/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers6.ts b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers6.ts -new file mode 100644 -index 0000000000..b27d0855a2 ---- /dev/null -+++ b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers6.ts -@@ -0,0 +1,7 @@ +diff --git a/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers6.ts b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers6.ts +new file mode 100644 +index 0000000000..b27d0855a2 +--- /dev/null ++++ b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers6.ts +@@ -0,0 +1,7 @@ +class C { + static f = 1 +} @@ -2811,12 +2811,12 @@ index 0000000000..b27d0855a2 +class D extends C { + static c = super(); +} -diff --git a/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers7.ts b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers7.ts -new file mode 100644 -index 0000000000..1a2d9cd2e2 ---- /dev/null -+++ b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers7.ts -@@ -0,0 +1,12 @@ +diff --git a/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers7.ts b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers7.ts +new file mode 100644 +index 0000000000..1a2d9cd2e2 +--- /dev/null ++++ b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers7.ts +@@ -0,0 +1,12 @@ +// @target: esnext, es6, es5 + +class C { @@ -2829,12 +2829,12 @@ index 0000000000..1a2d9cd2e2 + static d = this.c + 1; + static e = 1 + (super.a) + (this.c + 1) + 1; +} -diff --git a/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers8.ts b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers8.ts -new file mode 100644 -index 0000000000..8b26476f14 ---- /dev/null -+++ b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers8.ts -@@ -0,0 +1,19 @@ +diff --git a/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers8.ts b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers8.ts +new file mode 100644 +index 0000000000..8b26476f14 +--- /dev/null ++++ b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers8.ts +@@ -0,0 +1,19 @@ +// @target: esnext, es6, es5 + +class C { @@ -2854,12 +2854,12 @@ index 0000000000..8b26476f14 + } + })(); +} -diff --git a/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers9.ts b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers9.ts -new file mode 100644 -index 0000000000..0a648d2fa0 ---- /dev/null -+++ b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers9.ts -@@ -0,0 +1,22 @@ +diff --git a/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers9.ts b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers9.ts +new file mode 100644 +index 0000000000..0a648d2fa0 +--- /dev/null ++++ b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers9.ts +@@ -0,0 +1,22 @@ +// @target: esnext, es6, es5 + +class C { @@ -2882,32 +2882,32 @@ index 0000000000..0a648d2fa0 + } + })(); +} -diff --git a/tests/cases/conformance/classes/members/privateNames/privateNameComputedPropertyName3.ts b/tests/cases/conformance/classes/members/privateNames/privateNameComputedPropertyName3.ts -index 09573f98c9..f57d3afc8b 100644 ---- a/tests/cases/conformance/classes/members/privateNames/privateNameComputedPropertyName3.ts -+++ b/tests/cases/conformance/classes/members/privateNames/privateNameComputedPropertyName3.ts -@@ -23,3 +23,5 @@ class Foo { +diff --git a/tests/cases/conformance/classes/members/privateNames/privateNameComputedPropertyName3.ts b/tests/cases/conformance/classes/members/privateNames/privateNameComputedPropertyName3.ts +index 09573f98c9..f57d3afc8b 100644 +--- a/tests/cases/conformance/classes/members/privateNames/privateNameComputedPropertyName3.ts ++++ b/tests/cases/conformance/classes/members/privateNames/privateNameComputedPropertyName3.ts +@@ -23,3 +23,5 @@ class Foo { } console.log(new Foo("NAME").getValue(100)); + -+let ff = new Foo(null) -\ No newline at end of file -diff --git a/tests/cases/conformance/classes/members/privateNames/privateNameFieldAccess.ts b/tests/cases/conformance/classes/members/privateNames/privateNameFieldAccess.ts -index 4c02159bfa..af502334e7 100644 ---- a/tests/cases/conformance/classes/members/privateNames/privateNameFieldAccess.ts -+++ b/tests/cases/conformance/classes/members/privateNames/privateNameFieldAccess.ts -@@ -6,3 +6,4 @@ class A { ++let ff = new Foo(null) +\ No newline at end of file +diff --git a/tests/cases/conformance/classes/members/privateNames/privateNameFieldAccess.ts b/tests/cases/conformance/classes/members/privateNames/privateNameFieldAccess.ts +index 4c02159bfa..af502334e7 100644 +--- a/tests/cases/conformance/classes/members/privateNames/privateNameFieldAccess.ts ++++ b/tests/cases/conformance/classes/members/privateNames/privateNameFieldAccess.ts +@@ -6,3 +6,4 @@ class A { console.log(this.#myField); } } +let aa = new A(); -diff --git a/tests/cases/conformance/classes/members/privateNames/privateNameHashCharName.ts b/tests/cases/conformance/classes/members/privateNames/privateNameHashCharName.ts -new file mode 100644 -index 0000000000..4a076565bf ---- /dev/null -+++ b/tests/cases/conformance/classes/members/privateNames/privateNameHashCharName.ts -@@ -0,0 +1,11 @@ +diff --git a/tests/cases/conformance/classes/members/privateNames/privateNameHashCharName.ts b/tests/cases/conformance/classes/members/privateNames/privateNameHashCharName.ts +new file mode 100644 +index 0000000000..4a076565bf +--- /dev/null ++++ b/tests/cases/conformance/classes/members/privateNames/privateNameHashCharName.ts +@@ -0,0 +1,11 @@ +// @target: es6 + +# @@ -2919,137 +2919,137 @@ index 0000000000..4a076565bf + this.# + } +} -diff --git a/tests/cases/conformance/classes/members/privateNames/privateNameInInExpression.ts b/tests/cases/conformance/classes/members/privateNames/privateNameInInExpression.ts -new file mode 100644 -index 0000000000..e274378150 ---- /dev/null -+++ b/tests/cases/conformance/classes/members/privateNames/privateNameInInExpression.ts -@@ -0,0 +1,119 @@ -+// @strict: true -+// @target: esnext -+// @useDefineForClassFields: true -+ -+class Foo { -+ #field = 1; -+ static #staticField = 2; -+ #method() {} -+ static #staticMethod() {} -+ -+ goodRhs(v: any) { -+ const a = #field in v; -+ -+ const b = #field in v.p1.p2; -+ -+ const c = #field in (v as {}); -+ -+ const d = #field in (v as Foo); -+ -+ const e = #field in (v as never); -+ -+ for (let f in #field in v as any) { /**/ } // unlikely but valid -+ } -+ badRhs(v: any) { -+ const a = #field in (v as unknown); // Bad - RHS of in must be object type or any -+ -+ const b = #fiel in v; // Bad - typo in privateID -+ -+ const c = (#field) in v; // Bad - privateID is not an expression on its own -+ -+ for (#field in v) { /**/ } // Bad - 'in' not allowed -+ -+ for (let d in #field in v) { /**/ } // Bad - rhs of in should be a object/any -+ } -+ whitespace(v: any) { -+ const a = v && /*0*/#field/*1*/ -+ /*2*/in/*3*/ -+ /*4*/v/*5*/ -+ } -+ flow(u: unknown, n: never, fb: Foo | Bar, fs: FooSub, b: Bar, fsb: FooSub | Bar, fsfb: Foo | FooSub | Bar) { -+ -+ if (typeof u === 'object') { -+ if (#field in n) { -+ n; // good n is never -+ } -+ -+ if (#field in u) { -+ u; // good u is Foo -+ } else { -+ u; // good u is object | null -+ } -+ -+ if (u !== null) { -+ if (#field in u) { -+ u; // good u is Foo -+ } else { -+ u; // good u is object -+ } -+ -+ if (#method in u) { -+ u; // good u is Foo -+ } -+ -+ if (#staticField in u) { -+ u; // good u is typeof Foo -+ } -+ -+ if (#staticMethod in u) { -+ u; // good u is typeof Foo -+ } -+ } -+ } -+ -+ if (#field in fb) { -+ fb; // good fb is Foo -+ } else { -+ fb; // good fb is Bar -+ } -+ -+ if (#field in fs) { -+ fs; // good fs is FooSub -+ } else { -+ fs; // good fs is never -+ } -+ -+ if (#field in b) { -+ b; // good b is 'Bar & Foo' -+ } else { -+ b; // good b is Bar -+ } -+ -+ if (#field in fsb) { -+ fsb; // good fsb is FooSub -+ } else { -+ fsb; // good fsb is Bar -+ } -+ -+ if (#field in fsfb) { -+ fsfb; // good fsfb is 'Foo | FooSub' -+ } else { -+ fsfb; // good fsfb is Bar -+ } -+ -+ class Nested { -+ m(v: any) { -+ if (#field in v) { -+ v; // good v is Foo -+ } -+ } -+ } -+ } -+} -+ -+class FooSub extends Foo { subTypeOfFoo = true } -+class Bar { notFoo = true } -+ -+function badSyntax(v: Foo) { -+ return #field in v; // Bad - outside of class -+} -diff --git a/tests/cases/conformance/classes/members/privateNames/privateNameInInExpressionTransform.ts b/tests/cases/conformance/classes/members/privateNames/privateNameInInExpressionTransform.ts -new file mode 100644 -index 0000000000..f7be176373 ---- /dev/null -+++ b/tests/cases/conformance/classes/members/privateNames/privateNameInInExpressionTransform.ts -@@ -0,0 +1,47 @@ +diff --git a/tests/cases/conformance/classes/members/privateNames/privateNameInInExpression.ts b/tests/cases/conformance/classes/members/privateNames/privateNameInInExpression.ts +new file mode 100644 +index 0000000000..e274378150 +--- /dev/null ++++ b/tests/cases/conformance/classes/members/privateNames/privateNameInInExpression.ts +@@ -0,0 +1,119 @@ ++// @strict: true ++// @target: esnext ++// @useDefineForClassFields: true ++ ++class Foo { ++ #field = 1; ++ static #staticField = 2; ++ #method() {} ++ static #staticMethod() {} ++ ++ goodRhs(v: any) { ++ const a = #field in v; ++ ++ const b = #field in v.p1.p2; ++ ++ const c = #field in (v as {}); ++ ++ const d = #field in (v as Foo); ++ ++ const e = #field in (v as never); ++ ++ for (let f in #field in v as any) { /**/ } // unlikely but valid ++ } ++ badRhs(v: any) { ++ const a = #field in (v as unknown); // Bad - RHS of in must be object type or any ++ ++ const b = #fiel in v; // Bad - typo in privateID ++ ++ const c = (#field) in v; // Bad - privateID is not an expression on its own ++ ++ for (#field in v) { /**/ } // Bad - 'in' not allowed ++ ++ for (let d in #field in v) { /**/ } // Bad - rhs of in should be a object/any ++ } ++ whitespace(v: any) { ++ const a = v && /*0*/#field/*1*/ ++ /*2*/in/*3*/ ++ /*4*/v/*5*/ ++ } ++ flow(u: unknown, n: never, fb: Foo | Bar, fs: FooSub, b: Bar, fsb: FooSub | Bar, fsfb: Foo | FooSub | Bar) { ++ ++ if (typeof u === 'object') { ++ if (#field in n) { ++ n; // good n is never ++ } ++ ++ if (#field in u) { ++ u; // good u is Foo ++ } else { ++ u; // good u is object | null ++ } ++ ++ if (u !== null) { ++ if (#field in u) { ++ u; // good u is Foo ++ } else { ++ u; // good u is object ++ } ++ ++ if (#method in u) { ++ u; // good u is Foo ++ } ++ ++ if (#staticField in u) { ++ u; // good u is typeof Foo ++ } ++ ++ if (#staticMethod in u) { ++ u; // good u is typeof Foo ++ } ++ } ++ } ++ ++ if (#field in fb) { ++ fb; // good fb is Foo ++ } else { ++ fb; // good fb is Bar ++ } ++ ++ if (#field in fs) { ++ fs; // good fs is FooSub ++ } else { ++ fs; // good fs is never ++ } ++ ++ if (#field in b) { ++ b; // good b is 'Bar & Foo' ++ } else { ++ b; // good b is Bar ++ } ++ ++ if (#field in fsb) { ++ fsb; // good fsb is FooSub ++ } else { ++ fsb; // good fsb is Bar ++ } ++ ++ if (#field in fsfb) { ++ fsfb; // good fsfb is 'Foo | FooSub' ++ } else { ++ fsfb; // good fsfb is Bar ++ } ++ ++ class Nested { ++ m(v: any) { ++ if (#field in v) { ++ v; // good v is Foo ++ } ++ } ++ } ++ } ++} ++ ++class FooSub extends Foo { subTypeOfFoo = true } ++class Bar { notFoo = true } ++ ++function badSyntax(v: Foo) { ++ return #field in v; // Bad - outside of class ++} +diff --git a/tests/cases/conformance/classes/members/privateNames/privateNameInInExpressionTransform.ts b/tests/cases/conformance/classes/members/privateNames/privateNameInInExpressionTransform.ts +new file mode 100644 +index 0000000000..f7be176373 +--- /dev/null ++++ b/tests/cases/conformance/classes/members/privateNames/privateNameInInExpressionTransform.ts +@@ -0,0 +1,47 @@ +// @target: esnext, es2020 + +class Foo { @@ -3097,31 +3097,31 @@ index 0000000000..f7be176373 +} + +export { } -diff --git a/tests/cases/conformance/classes/members/privateNames/privateNameInInExpressionUnused.ts b/tests/cases/conformance/classes/members/privateNames/privateNameInInExpressionUnused.ts -new file mode 100644 -index 0000000000..4b214a2b9e ---- /dev/null -+++ b/tests/cases/conformance/classes/members/privateNames/privateNameInInExpressionUnused.ts -@@ -0,0 +1,13 @@ -+// @strict: true -+// @noUnusedLocals: true -+// @target: esnext -+ -+class Foo { -+ #unused: undefined; // expect unused error -+ #brand: undefined; // expect no error -+ -+ isFoo(v: any): v is Foo { -+ // This should count as using/reading '#brand' -+ return #brand in v; -+ } -+} -diff --git a/tests/cases/conformance/classes/members/privateNames/privateNamesIncompatibleModifiersJs.ts b/tests/cases/conformance/classes/members/privateNames/privateNamesIncompatibleModifiersJs.ts -new file mode 100644 -index 0000000000..5154b5e439 ---- /dev/null -+++ b/tests/cases/conformance/classes/members/privateNames/privateNamesIncompatibleModifiersJs.ts -@@ -0,0 +1,65 @@ +diff --git a/tests/cases/conformance/classes/members/privateNames/privateNameInInExpressionUnused.ts b/tests/cases/conformance/classes/members/privateNames/privateNameInInExpressionUnused.ts +new file mode 100644 +index 0000000000..4b214a2b9e +--- /dev/null ++++ b/tests/cases/conformance/classes/members/privateNames/privateNameInInExpressionUnused.ts +@@ -0,0 +1,13 @@ ++// @strict: true ++// @noUnusedLocals: true ++// @target: esnext ++ ++class Foo { ++ #unused: undefined; // expect unused error ++ #brand: undefined; // expect no error ++ ++ isFoo(v: any): v is Foo { ++ // This should count as using/reading '#brand' ++ return #brand in v; ++ } ++} +diff --git a/tests/cases/conformance/classes/members/privateNames/privateNamesIncompatibleModifiersJs.ts b/tests/cases/conformance/classes/members/privateNames/privateNamesIncompatibleModifiersJs.ts +new file mode 100644 +index 0000000000..5154b5e439 +--- /dev/null ++++ b/tests/cases/conformance/classes/members/privateNames/privateNamesIncompatibleModifiersJs.ts +@@ -0,0 +1,65 @@ +// @allowJs: true +// @checkJs: true +// @strict: true @@ -3187,77 +3187,77 @@ index 0000000000..5154b5e439 + */ + set #cProp(value) { } +} -diff --git a/tests/cases/conformance/classes/mixinClassesAnnotated.ts b/tests/cases/conformance/classes/mixinClassesAnnotated.ts -index 62f5e30c9a..8bca7d06d1 100644 ---- a/tests/cases/conformance/classes/mixinClassesAnnotated.ts -+++ b/tests/cases/conformance/classes/mixinClassesAnnotated.ts -@@ -36,6 +36,7 @@ function Tagged>(superClass: T): Constructor & - this._tag = "hello"; - } - } -+ let c = new C(); - return C; - } - -@@ -65,3 +66,5 @@ class Thing3 extends Thing2 { - this.print(); - } - } -+let der = new Derived(1,1,1); -+let th3 = new Thing3(''); -\ No newline at end of file -diff --git a/tests/cases/conformance/classes/mixinClassesAnonymous.ts b/tests/cases/conformance/classes/mixinClassesAnonymous.ts -index 0e42288808..aa639e71e3 100644 ---- a/tests/cases/conformance/classes/mixinClassesAnonymous.ts -+++ b/tests/cases/conformance/classes/mixinClassesAnonymous.ts -@@ -62,3 +62,5 @@ const Timestamped = >(Base: CT) => { - timestamp = new Date(); - }; - } -+let aa = new Derived(1,1,1); -+let bb = new Thing3(''); -\ No newline at end of file -diff --git a/tests/cases/conformance/classes/mixinClassesMembers.ts b/tests/cases/conformance/classes/mixinClassesMembers.ts -index 905518c88f..7deb2ac30b 100644 ---- a/tests/cases/conformance/classes/mixinClassesMembers.ts -+++ b/tests/cases/conformance/classes/mixinClassesMembers.ts -@@ -97,3 +97,8 @@ class C3 extends Mixed3 { - } - f() { return super.f(); } - } -+let aa = new C1(''); -+let bb = new M1(); -+let cc = new M2(); -+let dd = new C2(); -+let ee = new C3(); -\ No newline at end of file -diff --git a/tests/cases/conformance/classes/propertyMemberDeclarations/abstractProperty.ts b/tests/cases/conformance/classes/propertyMemberDeclarations/abstractProperty.ts -index 5f7266c0ea..7870b163db 100644 ---- a/tests/cases/conformance/classes/propertyMemberDeclarations/abstractProperty.ts -+++ b/tests/cases/conformance/classes/propertyMemberDeclarations/abstractProperty.ts -@@ -14,3 +14,6 @@ class B extends A { - class C extends A { - protected get x() { return 'C.x' }; - } -+ -+let b = new B(); -+let c = new C(); -diff --git a/tests/cases/conformance/classes/propertyMemberDeclarations/abstractPropertyInitializer.ts b/tests/cases/conformance/classes/propertyMemberDeclarations/abstractPropertyInitializer.ts -new file mode 100644 -index 0000000000..42a0999748 ---- /dev/null -+++ b/tests/cases/conformance/classes/propertyMemberDeclarations/abstractPropertyInitializer.ts -@@ -0,0 +1,5 @@ -+// @strict: true -+// @declaration: true -+abstract class C { -+ abstract prop = 1 -+} -diff --git a/tests/cases/conformance/classes/propertyMemberDeclarations/instanceMemberInitialization.ts b/tests/cases/conformance/classes/propertyMemberDeclarations/instanceMemberInitialization.ts -index 04b44a6835..d7c518964d 100644 ---- a/tests/cases/conformance/classes/propertyMemberDeclarations/instanceMemberInitialization.ts -+++ b/tests/cases/conformance/classes/propertyMemberDeclarations/instanceMemberInitialization.ts -@@ -4,8 +4,8 @@ class C { +diff --git a/tests/cases/conformance/classes/mixinClassesAnnotated.ts b/tests/cases/conformance/classes/mixinClassesAnnotated.ts +index 62f5e30c9a..8bca7d06d1 100644 +--- a/tests/cases/conformance/classes/mixinClassesAnnotated.ts ++++ b/tests/cases/conformance/classes/mixinClassesAnnotated.ts +@@ -36,6 +36,7 @@ function Tagged>(superClass: T): Constructor & + this._tag = "hello"; + } + } ++ let c = new C(); + return C; + } + +@@ -65,3 +66,5 @@ class Thing3 extends Thing2 { + this.print(); + } + } ++let der = new Derived(1,1,1); ++let th3 = new Thing3(''); +\ No newline at end of file +diff --git a/tests/cases/conformance/classes/mixinClassesAnonymous.ts b/tests/cases/conformance/classes/mixinClassesAnonymous.ts +index 0e42288808..aa639e71e3 100644 +--- a/tests/cases/conformance/classes/mixinClassesAnonymous.ts ++++ b/tests/cases/conformance/classes/mixinClassesAnonymous.ts +@@ -62,3 +62,5 @@ const Timestamped = >(Base: CT) => { + timestamp = new Date(); + }; + } ++let aa = new Derived(1,1,1); ++let bb = new Thing3(''); +\ No newline at end of file +diff --git a/tests/cases/conformance/classes/mixinClassesMembers.ts b/tests/cases/conformance/classes/mixinClassesMembers.ts +index 905518c88f..7deb2ac30b 100644 +--- a/tests/cases/conformance/classes/mixinClassesMembers.ts ++++ b/tests/cases/conformance/classes/mixinClassesMembers.ts +@@ -97,3 +97,8 @@ class C3 extends Mixed3 { + } + f() { return super.f(); } + } ++let aa = new C1(''); ++let bb = new M1(); ++let cc = new M2(); ++let dd = new C2(); ++let ee = new C3(); +\ No newline at end of file +diff --git a/tests/cases/conformance/classes/propertyMemberDeclarations/abstractProperty.ts b/tests/cases/conformance/classes/propertyMemberDeclarations/abstractProperty.ts +index 5f7266c0ea..7870b163db 100644 +--- a/tests/cases/conformance/classes/propertyMemberDeclarations/abstractProperty.ts ++++ b/tests/cases/conformance/classes/propertyMemberDeclarations/abstractProperty.ts +@@ -14,3 +14,6 @@ class B extends A { + class C extends A { + protected get x() { return 'C.x' }; + } ++ ++let b = new B(); ++let c = new C(); +diff --git a/tests/cases/conformance/classes/propertyMemberDeclarations/abstractPropertyInitializer.ts b/tests/cases/conformance/classes/propertyMemberDeclarations/abstractPropertyInitializer.ts +new file mode 100644 +index 0000000000..42a0999748 +--- /dev/null ++++ b/tests/cases/conformance/classes/propertyMemberDeclarations/abstractPropertyInitializer.ts +@@ -0,0 +1,5 @@ ++// @strict: true ++// @declaration: true ++abstract class C { ++ abstract prop = 1 ++} +diff --git a/tests/cases/conformance/classes/propertyMemberDeclarations/instanceMemberInitialization.ts b/tests/cases/conformance/classes/propertyMemberDeclarations/instanceMemberInitialization.ts +index 04b44a6835..d7c518964d 100644 +--- a/tests/cases/conformance/classes/propertyMemberDeclarations/instanceMemberInitialization.ts ++++ b/tests/cases/conformance/classes/propertyMemberDeclarations/instanceMemberInitialization.ts +@@ -4,8 +4,8 @@ class C { var c = new C(); c.x = 3; @@ -3268,123 +3268,123 @@ index 04b44a6835..d7c518964d 100644 // #31792 -@@ -14,4 +14,5 @@ var r = c.x === c2.x; +@@ -14,4 +14,5 @@ var r = c.x === c2.x; class MyMap { constructor(private readonly Map_: { new(): any }) {} private readonly store = new this.Map_(); --} -\ No newline at end of file -+} -+let mm = new MyMap(null) -\ No newline at end of file -diff --git a/tests/cases/conformance/classes/propertyMemberDeclarations/instanceMemberWithComputedPropertyName2.ts b/tests/cases/conformance/classes/propertyMemberDeclarations/instanceMemberWithComputedPropertyName2.ts -index e597b6b9d9..ed03d54763 100644 ---- a/tests/cases/conformance/classes/propertyMemberDeclarations/instanceMemberWithComputedPropertyName2.ts -+++ b/tests/cases/conformance/classes/propertyMemberDeclarations/instanceMemberWithComputedPropertyName2.ts -@@ -6,3 +6,4 @@ const x = 1; +-} +\ No newline at end of file ++} ++let mm = new MyMap(null) +\ No newline at end of file +diff --git a/tests/cases/conformance/classes/propertyMemberDeclarations/instanceMemberWithComputedPropertyName2.ts b/tests/cases/conformance/classes/propertyMemberDeclarations/instanceMemberWithComputedPropertyName2.ts +index e597b6b9d9..ed03d54763 100644 +--- a/tests/cases/conformance/classes/propertyMemberDeclarations/instanceMemberWithComputedPropertyName2.ts ++++ b/tests/cases/conformance/classes/propertyMemberDeclarations/instanceMemberWithComputedPropertyName2.ts +@@ -6,3 +6,4 @@ const x = 1; class C { [x]: string; } -+let cc = new C(); -\ No newline at end of file -diff --git a/tests/cases/conformance/classes/propertyMemberDeclarations/memberFunctionDeclarations/staticFactory1.ts b/tests/cases/conformance/classes/propertyMemberDeclarations/memberFunctionDeclarations/staticFactory1.ts -index 5d786cd4cf..0277ffa658 100644 ---- a/tests/cases/conformance/classes/propertyMemberDeclarations/memberFunctionDeclarations/staticFactory1.ts -+++ b/tests/cases/conformance/classes/propertyMemberDeclarations/memberFunctionDeclarations/staticFactory1.ts -@@ -10,4 +10,5 @@ class Derived extends Base { ++let cc = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/classes/propertyMemberDeclarations/memberFunctionDeclarations/staticFactory1.ts b/tests/cases/conformance/classes/propertyMemberDeclarations/memberFunctionDeclarations/staticFactory1.ts +index 5d786cd4cf..0277ffa658 100644 +--- a/tests/cases/conformance/classes/propertyMemberDeclarations/memberFunctionDeclarations/staticFactory1.ts ++++ b/tests/cases/conformance/classes/propertyMemberDeclarations/memberFunctionDeclarations/staticFactory1.ts +@@ -10,4 +10,5 @@ class Derived extends Base { } var d = Derived.create(); --d.foo(); -\ No newline at end of file +-d.foo(); +\ No newline at end of file +d.foo(); -+let b1 =new Derived() -\ No newline at end of file -diff --git a/tests/cases/conformance/classes/propertyMemberDeclarations/staticAndNonStaticPropertiesSameName.ts b/tests/cases/conformance/classes/propertyMemberDeclarations/staticAndNonStaticPropertiesSameName.ts -index 06a784c782..d3b03f9716 100644 ---- a/tests/cases/conformance/classes/propertyMemberDeclarations/staticAndNonStaticPropertiesSameName.ts -+++ b/tests/cases/conformance/classes/propertyMemberDeclarations/staticAndNonStaticPropertiesSameName.ts -@@ -4,4 +4,5 @@ class C { ++let b1 =new Derived() +\ No newline at end of file +diff --git a/tests/cases/conformance/classes/propertyMemberDeclarations/staticAndNonStaticPropertiesSameName.ts b/tests/cases/conformance/classes/propertyMemberDeclarations/staticAndNonStaticPropertiesSameName.ts +index 06a784c782..d3b03f9716 100644 +--- a/tests/cases/conformance/classes/propertyMemberDeclarations/staticAndNonStaticPropertiesSameName.ts ++++ b/tests/cases/conformance/classes/propertyMemberDeclarations/staticAndNonStaticPropertiesSameName.ts +@@ -4,4 +4,5 @@ class C { f() { } static f() { } --} -\ No newline at end of file -+} -+let a4 = new C() -\ No newline at end of file -diff --git a/tests/cases/conformance/classes/propertyMemberDeclarations/staticPropertyAndFunctionWithSameName.ts b/tests/cases/conformance/classes/propertyMemberDeclarations/staticPropertyAndFunctionWithSameName.ts -index 4566ce26f0..4a275f4eef 100644 ---- a/tests/cases/conformance/classes/propertyMemberDeclarations/staticPropertyAndFunctionWithSameName.ts -+++ b/tests/cases/conformance/classes/propertyMemberDeclarations/staticPropertyAndFunctionWithSameName.ts -@@ -6,4 +6,6 @@ class C { +-} +\ No newline at end of file ++} ++let a4 = new C() +\ No newline at end of file +diff --git a/tests/cases/conformance/classes/propertyMemberDeclarations/staticPropertyAndFunctionWithSameName.ts b/tests/cases/conformance/classes/propertyMemberDeclarations/staticPropertyAndFunctionWithSameName.ts +index 4566ce26f0..4a275f4eef 100644 +--- a/tests/cases/conformance/classes/propertyMemberDeclarations/staticPropertyAndFunctionWithSameName.ts ++++ b/tests/cases/conformance/classes/propertyMemberDeclarations/staticPropertyAndFunctionWithSameName.ts +@@ -6,4 +6,6 @@ class C { class D { static f: number; f() { } --} -\ No newline at end of file +-} +\ No newline at end of file +} +let a2 =new C() -+let a3 = new D() -\ No newline at end of file -diff --git a/tests/cases/conformance/classes/propertyMemberDeclarations/staticPropertyNameConflictsInAmbientContext.ts b/tests/cases/conformance/classes/propertyMemberDeclarations/staticPropertyNameConflictsInAmbientContext.ts -index 198c923b0d..d937176b83 100644 ---- a/tests/cases/conformance/classes/propertyMemberDeclarations/staticPropertyNameConflictsInAmbientContext.ts -+++ b/tests/cases/conformance/classes/propertyMemberDeclarations/staticPropertyNameConflictsInAmbientContext.ts -@@ -54,3 +54,13 @@ declare class StaticArgumentsFn { - static arguments(): any; // ok - arguments(): any; // ok - } -+let a5 =new StaticName() -+let a6 =new StaticNameFn() -+let a7 =new StaticLength() -+let a8 =new StaticLengthFn() -+let a9 =new StaticPrototype() -+let a10 =new StaticPrototypeFn() -+let a11 =new StaticCaller() -+let a12 =new StaticCallerFn() -+let a13 =new StaticArguments() -+let a14 =new StaticArgumentsFn() -\ No newline at end of file -diff --git a/tests/cases/conformance/controlFlow/assertionTypePredicates2.ts b/tests/cases/conformance/controlFlow/assertionTypePredicates2.ts -new file mode 100644 -index 0000000000..915c9ae94f ---- /dev/null -+++ b/tests/cases/conformance/controlFlow/assertionTypePredicates2.ts -@@ -0,0 +1,27 @@ -+// @allowJs: true -+// @checkJs: true -+// @outDir: ./out -+// @filename: assertionTypePredicates2.js -+ -+/** -+ * @typedef {{ x: number }} A -+ */ -+ -+/** -+ * @typedef { A & { y: number } } B -+ */ -+ -+/** -+ * @param {A} a -+ * @returns { asserts a is B } -+ */ -+const foo = (a) => { -+ if (/** @type { B } */ (a).y !== 0) throw TypeError(); -+ return undefined; -+}; -+ -+export const main = () => { -+ /** @type { A } */ -+ const a = { x: 1 }; -+ foo(a); -+}; -diff --git a/tests/cases/conformance/controlFlow/controlFlowAliasing.ts b/tests/cases/conformance/controlFlow/controlFlowAliasing.ts -new file mode 100644 -index 0000000000..03b7530921 ---- /dev/null -+++ b/tests/cases/conformance/controlFlow/controlFlowAliasing.ts -@@ -0,0 +1,285 @@ ++let a3 = new D() +\ No newline at end of file +diff --git a/tests/cases/conformance/classes/propertyMemberDeclarations/staticPropertyNameConflictsInAmbientContext.ts b/tests/cases/conformance/classes/propertyMemberDeclarations/staticPropertyNameConflictsInAmbientContext.ts +index 198c923b0d..d937176b83 100644 +--- a/tests/cases/conformance/classes/propertyMemberDeclarations/staticPropertyNameConflictsInAmbientContext.ts ++++ b/tests/cases/conformance/classes/propertyMemberDeclarations/staticPropertyNameConflictsInAmbientContext.ts +@@ -54,3 +54,13 @@ declare class StaticArgumentsFn { + static arguments(): any; // ok + arguments(): any; // ok + } ++let a5 =new StaticName() ++let a6 =new StaticNameFn() ++let a7 =new StaticLength() ++let a8 =new StaticLengthFn() ++let a9 =new StaticPrototype() ++let a10 =new StaticPrototypeFn() ++let a11 =new StaticCaller() ++let a12 =new StaticCallerFn() ++let a13 =new StaticArguments() ++let a14 =new StaticArgumentsFn() +\ No newline at end of file +diff --git a/tests/cases/conformance/controlFlow/assertionTypePredicates2.ts b/tests/cases/conformance/controlFlow/assertionTypePredicates2.ts +new file mode 100644 +index 0000000000..915c9ae94f +--- /dev/null ++++ b/tests/cases/conformance/controlFlow/assertionTypePredicates2.ts +@@ -0,0 +1,27 @@ ++// @allowJs: true ++// @checkJs: true ++// @outDir: ./out ++// @filename: assertionTypePredicates2.js ++ ++/** ++ * @typedef {{ x: number }} A ++ */ ++ ++/** ++ * @typedef { A & { y: number } } B ++ */ ++ ++/** ++ * @param {A} a ++ * @returns { asserts a is B } ++ */ ++const foo = (a) => { ++ if (/** @type { B } */ (a).y !== 0) throw TypeError(); ++ return undefined; ++}; ++ ++export const main = () => { ++ /** @type { A } */ ++ const a = { x: 1 }; ++ foo(a); ++}; +diff --git a/tests/cases/conformance/controlFlow/controlFlowAliasing.ts b/tests/cases/conformance/controlFlow/controlFlowAliasing.ts +new file mode 100644 +index 0000000000..03b7530921 +--- /dev/null ++++ b/tests/cases/conformance/controlFlow/controlFlowAliasing.ts +@@ -0,0 +1,285 @@ +// @strict: true +// @declaration: true + @@ -3670,89 +3670,89 @@ index 0000000000..03b7530921 +if (a) { } + +const a = obj.fn(); -diff --git a/tests/cases/conformance/controlFlow/controlFlowAliasingCatchVariables.ts b/tests/cases/conformance/controlFlow/controlFlowAliasingCatchVariables.ts -new file mode 100644 -index 0000000000..a746fa1cd0 ---- /dev/null -+++ b/tests/cases/conformance/controlFlow/controlFlowAliasingCatchVariables.ts -@@ -0,0 +1,28 @@ -+// @useUnknownInCatchVariables: true,false -+ -+try {} -+catch (e) { -+ const isString = typeof e === 'string'; -+ if (isString) { -+ e.toUpperCase(); // e string -+ } -+ -+ if (typeof e === 'string') { -+ e.toUpperCase(); // e string -+ } -+} -+ -+try {} -+catch (e) { -+ const isString = typeof e === 'string'; -+ -+ e = 1; -+ -+ if (isString) { -+ e.toUpperCase(); // e any/unknown -+ } -+ -+ if (typeof e === 'string') { -+ e.toUpperCase(); // e string -+ } -+} -diff --git a/tests/cases/conformance/controlFlow/controlFlowElementAccess2.ts b/tests/cases/conformance/controlFlow/controlFlowElementAccess2.ts -index fa0592c973..17a2af7895 100644 ---- a/tests/cases/conformance/controlFlow/controlFlowElementAccess2.ts -+++ b/tests/cases/conformance/controlFlow/controlFlowElementAccess2.ts -@@ -10,4 +10,4 @@ if (typeof config['works'] !== 'boolean') { - if (typeof config.works !== 'boolean') { - config['works'].prop = 'test'; // error, config['works']: boolean | { 'prop': string } - config.works.prop = 'test'; // ok --} -+} -\ No newline at end of file -diff --git a/tests/cases/conformance/controlFlow/controlFlowForInStatement2.ts b/tests/cases/conformance/controlFlow/controlFlowForInStatement2.ts -new file mode 100644 -index 0000000000..450e50cadc ---- /dev/null -+++ b/tests/cases/conformance/controlFlow/controlFlowForInStatement2.ts -@@ -0,0 +1,25 @@ -+const keywordA = 'a'; -+const keywordB = 'b'; -+ -+type A = { [keywordA]: number }; -+type B = { [keywordB]: string }; -+ -+declare const c: A | B; -+ -+if ('a' in c) { -+ c; // narrowed to `A` -+} -+ -+if (keywordA in c) { -+ c; // also narrowed to `A` -+} -+ -+let stringB: string = 'b'; -+ -+if ((stringB as 'b') in c) { -+ c; // narrowed to `B` -+} -+ -+if ((stringB as ('a' | 'b')) in c) { -+ c; // not narrowed -+} -\ No newline at end of file -diff --git a/tests/cases/conformance/controlFlow/controlFlowInOperator.ts b/tests/cases/conformance/controlFlow/controlFlowInOperator.ts -new file mode 100644 -index 0000000000..5dc27c45e8 ---- /dev/null -+++ b/tests/cases/conformance/controlFlow/controlFlowInOperator.ts -@@ -0,0 +1,26 @@ +diff --git a/tests/cases/conformance/controlFlow/controlFlowAliasingCatchVariables.ts b/tests/cases/conformance/controlFlow/controlFlowAliasingCatchVariables.ts +new file mode 100644 +index 0000000000..a746fa1cd0 +--- /dev/null ++++ b/tests/cases/conformance/controlFlow/controlFlowAliasingCatchVariables.ts +@@ -0,0 +1,28 @@ ++// @useUnknownInCatchVariables: true,false ++ ++try {} ++catch (e) { ++ const isString = typeof e === 'string'; ++ if (isString) { ++ e.toUpperCase(); // e string ++ } ++ ++ if (typeof e === 'string') { ++ e.toUpperCase(); // e string ++ } ++} ++ ++try {} ++catch (e) { ++ const isString = typeof e === 'string'; ++ ++ e = 1; ++ ++ if (isString) { ++ e.toUpperCase(); // e any/unknown ++ } ++ ++ if (typeof e === 'string') { ++ e.toUpperCase(); // e string ++ } ++} +diff --git a/tests/cases/conformance/controlFlow/controlFlowElementAccess2.ts b/tests/cases/conformance/controlFlow/controlFlowElementAccess2.ts +index fa0592c973..17a2af7895 100644 +--- a/tests/cases/conformance/controlFlow/controlFlowElementAccess2.ts ++++ b/tests/cases/conformance/controlFlow/controlFlowElementAccess2.ts +@@ -10,4 +10,4 @@ if (typeof config['works'] !== 'boolean') { + if (typeof config.works !== 'boolean') { + config['works'].prop = 'test'; // error, config['works']: boolean | { 'prop': string } + config.works.prop = 'test'; // ok +-} ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/controlFlow/controlFlowForInStatement2.ts b/tests/cases/conformance/controlFlow/controlFlowForInStatement2.ts +new file mode 100644 +index 0000000000..450e50cadc +--- /dev/null ++++ b/tests/cases/conformance/controlFlow/controlFlowForInStatement2.ts +@@ -0,0 +1,25 @@ ++const keywordA = 'a'; ++const keywordB = 'b'; ++ ++type A = { [keywordA]: number }; ++type B = { [keywordB]: string }; ++ ++declare const c: A | B; ++ ++if ('a' in c) { ++ c; // narrowed to `A` ++} ++ ++if (keywordA in c) { ++ c; // also narrowed to `A` ++} ++ ++let stringB: string = 'b'; ++ ++if ((stringB as 'b') in c) { ++ c; // narrowed to `B` ++} ++ ++if ((stringB as ('a' | 'b')) in c) { ++ c; // not narrowed ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/controlFlow/controlFlowInOperator.ts b/tests/cases/conformance/controlFlow/controlFlowInOperator.ts +new file mode 100644 +index 0000000000..5dc27c45e8 +--- /dev/null ++++ b/tests/cases/conformance/controlFlow/controlFlowInOperator.ts +@@ -0,0 +1,26 @@ +const a = 'a'; +const b = 'b'; +const d = 'd'; @@ -3779,36 +3779,36 @@ index 0000000000..5dc27c45e8 +if (d in c) { + c; // never +} -diff --git a/tests/cases/conformance/controlFlow/controlFlowInstanceofExtendsFunction.ts b/tests/cases/conformance/controlFlow/controlFlowInstanceofExtendsFunction.ts -index 4a1ff7ff86..8780db0c12 100644 ---- a/tests/cases/conformance/controlFlow/controlFlowInstanceofExtendsFunction.ts -+++ b/tests/cases/conformance/controlFlow/controlFlowInstanceofExtendsFunction.ts -@@ -29,4 +29,6 @@ export const x: X | number = Math.random() > 0.5 ? new X() : 1 +diff --git a/tests/cases/conformance/controlFlow/controlFlowInstanceofExtendsFunction.ts b/tests/cases/conformance/controlFlow/controlFlowInstanceofExtendsFunction.ts +index 4a1ff7ff86..8780db0c12 100644 +--- a/tests/cases/conformance/controlFlow/controlFlowInstanceofExtendsFunction.ts ++++ b/tests/cases/conformance/controlFlow/controlFlowInstanceofExtendsFunction.ts +@@ -29,4 +29,6 @@ export const x: X | number = Math.random() > 0.5 ? new X() : 1 if (x instanceof X) { x.why() // should compile --} -\ No newline at end of file +-} +\ No newline at end of file +} +let xx = new X(); -+let yy = new Y(); -\ No newline at end of file -diff --git a/tests/cases/conformance/controlFlow/controlFlowSuperPropertyAccess.ts b/tests/cases/conformance/controlFlow/controlFlowSuperPropertyAccess.ts -index b42af687c0..b3710bae0d 100644 ---- a/tests/cases/conformance/controlFlow/controlFlowSuperPropertyAccess.ts -+++ b/tests/cases/conformance/controlFlow/controlFlowSuperPropertyAccess.ts -@@ -7,3 +7,4 @@ class C extends B { - super.m && super.m(); - } - } -+let qq3 = new C(); -\ No newline at end of file -diff --git a/tests/cases/conformance/controlFlow/controlFlowTypeofObject.ts b/tests/cases/conformance/controlFlow/controlFlowTypeofObject.ts -new file mode 100644 -index 0000000000..db134447ed ---- /dev/null -+++ b/tests/cases/conformance/controlFlow/controlFlowTypeofObject.ts -@@ -0,0 +1,71 @@ ++let yy = new Y(); +\ No newline at end of file +diff --git a/tests/cases/conformance/controlFlow/controlFlowSuperPropertyAccess.ts b/tests/cases/conformance/controlFlow/controlFlowSuperPropertyAccess.ts +index b42af687c0..b3710bae0d 100644 +--- a/tests/cases/conformance/controlFlow/controlFlowSuperPropertyAccess.ts ++++ b/tests/cases/conformance/controlFlow/controlFlowSuperPropertyAccess.ts +@@ -7,3 +7,4 @@ class C extends B { + super.m && super.m(); + } + } ++let qq3 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/controlFlow/controlFlowTypeofObject.ts b/tests/cases/conformance/controlFlow/controlFlowTypeofObject.ts +new file mode 100644 +index 0000000000..db134447ed +--- /dev/null ++++ b/tests/cases/conformance/controlFlow/controlFlowTypeofObject.ts +@@ -0,0 +1,71 @@ +// @strict: true +// @declaration: true + @@ -3880,12 +3880,12 @@ index 0000000000..db134447ed + obj(x); // Error + } +} -diff --git a/tests/cases/conformance/controlFlow/dependentDestructuredVariables.ts b/tests/cases/conformance/controlFlow/dependentDestructuredVariables.ts -new file mode 100644 -index 0000000000..55e95ddf09 ---- /dev/null -+++ b/tests/cases/conformance/controlFlow/dependentDestructuredVariables.ts -@@ -0,0 +1,161 @@ +diff --git a/tests/cases/conformance/controlFlow/dependentDestructuredVariables.ts b/tests/cases/conformance/controlFlow/dependentDestructuredVariables.ts +new file mode 100644 +index 0000000000..55e95ddf09 +--- /dev/null ++++ b/tests/cases/conformance/controlFlow/dependentDestructuredVariables.ts +@@ -0,0 +1,161 @@ +// @strict: true +// @declaration: true +// @target: es2015 @@ -4047,108 +4047,108 @@ index 0000000000..55e95ddf09 +if (!done) { + value; // number +} -diff --git a/tests/cases/conformance/controlFlow/typeGuardsNestedAssignments.ts b/tests/cases/conformance/controlFlow/typeGuardsNestedAssignments.ts -index 41e3ffe572..1a42e77ae0 100644 ---- a/tests/cases/conformance/controlFlow/typeGuardsNestedAssignments.ts -+++ b/tests/cases/conformance/controlFlow/typeGuardsNestedAssignments.ts -@@ -44,4 +44,5 @@ let match: RegExpExecArray | null +diff --git a/tests/cases/conformance/controlFlow/typeGuardsNestedAssignments.ts b/tests/cases/conformance/controlFlow/typeGuardsNestedAssignments.ts +index 41e3ffe572..1a42e77ae0 100644 +--- a/tests/cases/conformance/controlFlow/typeGuardsNestedAssignments.ts ++++ b/tests/cases/conformance/controlFlow/typeGuardsNestedAssignments.ts +@@ -44,4 +44,5 @@ let match: RegExpExecArray | null while ((match = re.exec("xxx")) != null) { const length = match[1].length + match[2].length --} -\ No newline at end of file -+} -+let qq4 = new Foo(); -\ No newline at end of file -diff --git a/tests/cases/conformance/controlFlow/typeGuardsTypeParameters.ts b/tests/cases/conformance/controlFlow/typeGuardsTypeParameters.ts -index 169dbc7a7c..708fcceab8 100644 ---- a/tests/cases/conformance/controlFlow/typeGuardsTypeParameters.ts -+++ b/tests/cases/conformance/controlFlow/typeGuardsTypeParameters.ts -@@ -33,3 +33,4 @@ function fun(item: { [P in keyof T]: T[P] }) { - } - } - } -+let qq6 = new C(); -\ No newline at end of file -diff --git a/tests/cases/conformance/declarationEmit/declarationEmitWorkWithInlineComments.ts b/tests/cases/conformance/declarationEmit/declarationEmitWorkWithInlineComments.ts -index a5b3074a5c..20e4ef968e 100644 ---- a/tests/cases/conformance/declarationEmit/declarationEmitWorkWithInlineComments.ts -+++ b/tests/cases/conformance/declarationEmit/declarationEmitWorkWithInlineComments.ts -@@ -34,4 +34,7 @@ export class Baz { +-} +\ No newline at end of file ++} ++let qq4 = new Foo(); +\ No newline at end of file +diff --git a/tests/cases/conformance/controlFlow/typeGuardsTypeParameters.ts b/tests/cases/conformance/controlFlow/typeGuardsTypeParameters.ts +index 169dbc7a7c..708fcceab8 100644 +--- a/tests/cases/conformance/controlFlow/typeGuardsTypeParameters.ts ++++ b/tests/cases/conformance/controlFlow/typeGuardsTypeParameters.ts +@@ -33,3 +33,4 @@ function fun(item: { [P in keyof T]: T[P] }) { + } + } + } ++let qq6 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/declarationEmit/declarationEmitWorkWithInlineComments.ts b/tests/cases/conformance/declarationEmit/declarationEmitWorkWithInlineComments.ts +index a5b3074a5c..20e4ef968e 100644 +--- a/tests/cases/conformance/declarationEmit/declarationEmitWorkWithInlineComments.ts ++++ b/tests/cases/conformance/declarationEmit/declarationEmitWorkWithInlineComments.ts +@@ -34,4 +34,7 @@ export class Baz { constructor(/* @internal */ public isInternal: string ) {} --} -\ No newline at end of file +-} +\ No newline at end of file +} +// let ff = new Foo('','','','','','','','','','') +// let bar = new Bar(''); -+// let baz = new Baz(''); -\ No newline at end of file -diff --git a/tests/cases/conformance/declarationEmit/typePredicates/declarationEmitThisPredicates01.ts b/tests/cases/conformance/declarationEmit/typePredicates/declarationEmitThisPredicates01.ts -index 69af9c5b07..1b88b5d2bb 100644 ---- a/tests/cases/conformance/declarationEmit/typePredicates/declarationEmitThisPredicates01.ts -+++ b/tests/cases/conformance/declarationEmit/typePredicates/declarationEmitThisPredicates01.ts -@@ -8,4 +8,5 @@ export class C { ++// let baz = new Baz(''); +\ No newline at end of file +diff --git a/tests/cases/conformance/declarationEmit/typePredicates/declarationEmitThisPredicates01.ts b/tests/cases/conformance/declarationEmit/typePredicates/declarationEmitThisPredicates01.ts +index 69af9c5b07..1b88b5d2bb 100644 +--- a/tests/cases/conformance/declarationEmit/typePredicates/declarationEmitThisPredicates01.ts ++++ b/tests/cases/conformance/declarationEmit/typePredicates/declarationEmitThisPredicates01.ts +@@ -8,4 +8,5 @@ export class C { } export class D extends C { --} -\ No newline at end of file -+} -+let qq6 = new D(); -\ No newline at end of file -diff --git a/tests/cases/conformance/declarationEmit/typePredicates/declarationEmitThisPredicatesWithPrivateName01.ts b/tests/cases/conformance/declarationEmit/typePredicates/declarationEmitThisPredicatesWithPrivateName01.ts -index 461c7d1757..d22941e2f2 100644 ---- a/tests/cases/conformance/declarationEmit/typePredicates/declarationEmitThisPredicatesWithPrivateName01.ts -+++ b/tests/cases/conformance/declarationEmit/typePredicates/declarationEmitThisPredicatesWithPrivateName01.ts -@@ -8,4 +8,5 @@ export class C { +-} +\ No newline at end of file ++} ++let qq6 = new D(); +\ No newline at end of file +diff --git a/tests/cases/conformance/declarationEmit/typePredicates/declarationEmitThisPredicatesWithPrivateName01.ts b/tests/cases/conformance/declarationEmit/typePredicates/declarationEmitThisPredicatesWithPrivateName01.ts +index 461c7d1757..d22941e2f2 100644 +--- a/tests/cases/conformance/declarationEmit/typePredicates/declarationEmitThisPredicatesWithPrivateName01.ts ++++ b/tests/cases/conformance/declarationEmit/typePredicates/declarationEmitThisPredicatesWithPrivateName01.ts +@@ -8,4 +8,5 @@ export class C { } class D extends C { --} -\ No newline at end of file -+} -+let qq7 = new D(); -\ No newline at end of file -diff --git a/tests/cases/conformance/declarationEmit/typeReferenceRelatedFiles/fs.d.ts b/tests/cases/conformance/declarationEmit/typeReferenceRelatedFiles/fs.d.ts -new file mode 100644 -index 0000000000..fe6e6774e2 ---- /dev/null -+++ b/tests/cases/conformance/declarationEmit/typeReferenceRelatedFiles/fs.d.ts -@@ -0,0 +1,5 @@ +-} +\ No newline at end of file ++} ++let qq7 = new D(); +\ No newline at end of file +diff --git a/tests/cases/conformance/declarationEmit/typeReferenceRelatedFiles/fs.d.ts b/tests/cases/conformance/declarationEmit/typeReferenceRelatedFiles/fs.d.ts +new file mode 100644 +index 0000000000..fe6e6774e2 +--- /dev/null ++++ b/tests/cases/conformance/declarationEmit/typeReferenceRelatedFiles/fs.d.ts +@@ -0,0 +1,5 @@ +// @filename: node_modules/@types/node/fs.d.ts +declare module "fs" { + function FSWatcher() + // interface FSWatcher {} -+} -\ No newline at end of file -diff --git a/tests/cases/conformance/declarationEmit/typeReferenceRelatedFiles/main.ts b/tests/cases/conformance/declarationEmit/typeReferenceRelatedFiles/main.ts -new file mode 100644 -index 0000000000..38de3dcf37 ---- /dev/null -+++ b/tests/cases/conformance/declarationEmit/typeReferenceRelatedFiles/main.ts -@@ -0,0 +1,2 @@ -+// @filename: main.ts -+/// -\ No newline at end of file -diff --git a/tests/cases/conformance/declarationEmit/typeReferenceRelatedFiles/package.json b/tests/cases/conformance/declarationEmit/typeReferenceRelatedFiles/package.json -new file mode 100644 -index 0000000000..f93a231130 ---- /dev/null -+++ b/tests/cases/conformance/declarationEmit/typeReferenceRelatedFiles/package.json -@@ -0,0 +1,4 @@ -+{ -+ "name": "@types/node", -+ "version": "1.0.0" -+} -\ No newline at end of file -diff --git a/tests/cases/conformance/declarationEmit/typeReferenceRelatedFiles/typeReferenceRelatedFiles.ts b/tests/cases/conformance/declarationEmit/typeReferenceRelatedFiles/typeReferenceRelatedFiles.ts -new file mode 100644 -index 0000000000..957e4b37af ---- /dev/null -+++ b/tests/cases/conformance/declarationEmit/typeReferenceRelatedFiles/typeReferenceRelatedFiles.ts -@@ -0,0 +1,18 @@ ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/declarationEmit/typeReferenceRelatedFiles/main.ts b/tests/cases/conformance/declarationEmit/typeReferenceRelatedFiles/main.ts +new file mode 100644 +index 0000000000..38de3dcf37 +--- /dev/null ++++ b/tests/cases/conformance/declarationEmit/typeReferenceRelatedFiles/main.ts +@@ -0,0 +1,2 @@ ++// @filename: main.ts ++/// +\ No newline at end of file +diff --git a/tests/cases/conformance/declarationEmit/typeReferenceRelatedFiles/package.json b/tests/cases/conformance/declarationEmit/typeReferenceRelatedFiles/package.json +new file mode 100644 +index 0000000000..f93a231130 +--- /dev/null ++++ b/tests/cases/conformance/declarationEmit/typeReferenceRelatedFiles/package.json +@@ -0,0 +1,4 @@ ++{ ++ "name": "@types/node", ++ "version": "1.0.0" ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/declarationEmit/typeReferenceRelatedFiles/typeReferenceRelatedFiles.ts b/tests/cases/conformance/declarationEmit/typeReferenceRelatedFiles/typeReferenceRelatedFiles.ts +new file mode 100644 +index 0000000000..957e4b37af +--- /dev/null ++++ b/tests/cases/conformance/declarationEmit/typeReferenceRelatedFiles/typeReferenceRelatedFiles.ts +@@ -0,0 +1,18 @@ +// @declaration: true +// @filename: node_modules/@types/node/index.d.ts +/// @@ -4167,12 +4167,12 @@ index 0000000000..957e4b37af +export function f() { + // return {} as FSWatcher; +} -diff --git a/tests/cases/conformance/decorators/class/constructor/parameter/decoratorOnClassConstructorParameter5.ts b/tests/cases/conformance/decorators/class/constructor/parameter/decoratorOnClassConstructorParameter5.ts -new file mode 100644 -index 0000000000..3679047895 ---- /dev/null -+++ b/tests/cases/conformance/decorators/class/constructor/parameter/decoratorOnClassConstructorParameter5.ts -@@ -0,0 +1,15 @@ +diff --git a/tests/cases/conformance/decorators/class/constructor/parameter/decoratorOnClassConstructorParameter5.ts b/tests/cases/conformance/decorators/class/constructor/parameter/decoratorOnClassConstructorParameter5.ts +new file mode 100644 +index 0000000000..3679047895 +--- /dev/null ++++ b/tests/cases/conformance/decorators/class/constructor/parameter/decoratorOnClassConstructorParameter5.ts +@@ -0,0 +1,15 @@ +// @target: es2018 +// @experimentalDecorators: true +// @noEmitHelpers: true @@ -4187,206 +4187,206 @@ index 0000000000..3679047895 + constructor( + @IFoo private readonly _modeService: IFoo, + ) { } -+} -\ No newline at end of file -diff --git a/tests/cases/conformance/decorators/class/decoratedBlockScopedClass1.ts b/tests/cases/conformance/decorators/class/decoratedBlockScopedClass1.ts -new file mode 100644 -index 0000000000..521dd6a31c ---- /dev/null -+++ b/tests/cases/conformance/decorators/class/decoratedBlockScopedClass1.ts -@@ -0,0 +1,16 @@ -+// @target: es5 -+// @experimentaldecorators: true -+// @emitDecoratorMetadata: true -+// @filename: a.ts -+ -+function decorator() { -+ return (target: new (...args: any[]) => any) => {} -+} -+ -+@decorator() -+class Foo { -+ public static func(): Foo { -+ return new Foo(); -+ } -+} -+Foo.func(); -diff --git a/tests/cases/conformance/decorators/class/decoratedBlockScopedClass2.ts b/tests/cases/conformance/decorators/class/decoratedBlockScopedClass2.ts -new file mode 100644 -index 0000000000..7d8de6894f ---- /dev/null -+++ b/tests/cases/conformance/decorators/class/decoratedBlockScopedClass2.ts -@@ -0,0 +1,19 @@ -+// @target: es5 -+// @experimentaldecorators: true -+// @emitDecoratorMetadata: true -+// @filename: a.ts -+ -+function decorator() { -+ return (target: new (...args: any[]) => any) => {} -+} -+ -+try { -+ @decorator() -+ class Foo { -+ public static func(): Foo { -+ return new Foo(); -+ } -+ } -+ Foo.func(); -+} -+catch (e) {} -diff --git a/tests/cases/conformance/decorators/class/decoratedBlockScopedClass3.ts b/tests/cases/conformance/decorators/class/decoratedBlockScopedClass3.ts -new file mode 100644 -index 0000000000..48eebc559f ---- /dev/null -+++ b/tests/cases/conformance/decorators/class/decoratedBlockScopedClass3.ts -@@ -0,0 +1,27 @@ -+// @target: es5 -+// @experimentaldecorators: true -+// @emitDecoratorMetadata: true -+// @filename: a.ts -+ -+function decorator() { -+ return (target: new (...args: any[]) => any) => {} -+} -+ -+@decorator() -+class Foo { -+ public static func(): Foo { -+ return new Foo(); -+ } -+} -+Foo.func(); -+ -+try { -+ @decorator() -+ class Foo { -+ public static func(): Foo { -+ return new Foo(); -+ } -+ } -+ Foo.func(); -+} -+catch (e) {} -diff --git a/tests/cases/conformance/decorators/class/method/decoratorOnClassMethod14.ts b/tests/cases/conformance/decorators/class/method/decoratorOnClassMethod14.ts -new file mode 100644 -index 0000000000..18f3df79bc ---- /dev/null -+++ b/tests/cases/conformance/decorators/class/method/decoratorOnClassMethod14.ts -@@ -0,0 +1,14 @@ -+// @target: esnext -+// @experimentaldecorators: true -+// @emitdecoratormetadata: true -+declare var decorator: any; -+ -+class Foo { -+ private prop = () => { -+ return 0; -+ } -+ @decorator -+ foo() { -+ return 0; -+ } -+} -diff --git a/tests/cases/conformance/decorators/class/method/decoratorOnClassMethod15.ts b/tests/cases/conformance/decorators/class/method/decoratorOnClassMethod15.ts -new file mode 100644 -index 0000000000..70f86b1bbe ---- /dev/null -+++ b/tests/cases/conformance/decorators/class/method/decoratorOnClassMethod15.ts -@@ -0,0 +1,12 @@ -+// @target: esnext -+// @experimentaldecorators: true -+// @emitdecoratormetadata: true -+declare var decorator: any; -+ -+class Foo { -+ private prop = 1 -+ @decorator -+ foo() { -+ return 0; -+ } -+} -diff --git a/tests/cases/conformance/decorators/class/method/decoratorOnClassMethod16.ts b/tests/cases/conformance/decorators/class/method/decoratorOnClassMethod16.ts -new file mode 100644 -index 0000000000..400d4fbe5a ---- /dev/null -+++ b/tests/cases/conformance/decorators/class/method/decoratorOnClassMethod16.ts -@@ -0,0 +1,12 @@ -+// @target: esnext -+// @experimentaldecorators: true -+// @emitdecoratormetadata: true -+declare var decorator: any; -+ -+class Foo { -+ private prop -+ @decorator -+ foo() { -+ return 0; -+ } -+} -diff --git a/tests/cases/conformance/decorators/class/method/decoratorOnClassMethod17.ts b/tests/cases/conformance/decorators/class/method/decoratorOnClassMethod17.ts -new file mode 100644 -index 0000000000..1aa25d7f32 ---- /dev/null -+++ b/tests/cases/conformance/decorators/class/method/decoratorOnClassMethod17.ts -@@ -0,0 +1,11 @@ -+// @target: esnext -+// @experimentaldecorators: true -+// @emitdecoratormetadata: true -+declare var decorator: any; -+ -+class Foo { -+ private prop @decorator -+ foo() { -+ return 0; -+ } -+} -diff --git a/tests/cases/conformance/decorators/class/method/decoratorOnClassMethod18.ts b/tests/cases/conformance/decorators/class/method/decoratorOnClassMethod18.ts -new file mode 100644 -index 0000000000..9417c44c5b ---- /dev/null -+++ b/tests/cases/conformance/decorators/class/method/decoratorOnClassMethod18.ts -@@ -0,0 +1,11 @@ -+// @target: esnext -+// @experimentaldecorators: true -+// @emitdecoratormetadata: true -+declare var decorator: any; -+ -+class Foo { -+ p1 -+ -+ @decorator() -+ p2; -+} -diff --git a/tests/cases/conformance/decorators/decoratorMetadataWithTypeOnlyImport2.ts b/tests/cases/conformance/decorators/decoratorMetadataWithTypeOnlyImport2.ts -new file mode 100644 -index 0000000000..c63fcf1a16 ---- /dev/null -+++ b/tests/cases/conformance/decorators/decoratorMetadataWithTypeOnlyImport2.ts -@@ -0,0 +1,17 @@ -+// @experimentalDecorators: true -+// @emitDecoratorMetadata: true -+ -+ -+// @filename: services.ts -+export namespace Services { -+ export class Service {} -+} -+ -+// @filename: index.ts -+import type { Services } from './services'; -+ -+declare const decorator: any; -+export class Main { -+ @decorator() -+ field: Services.Service; -+} -diff --git a/tests/cases/conformance/emitter/es2015/asyncGenerators/emitter.asyncGenerators.classMethods.es2015.ts b/tests/cases/conformance/emitter/es2015/asyncGenerators/emitter.asyncGenerators.classMethods.es2015.ts -index fe1bc56dd1..20e20e00dc 100644 ---- a/tests/cases/conformance/emitter/es2015/asyncGenerators/emitter.asyncGenerators.classMethods.es2015.ts -+++ b/tests/cases/conformance/emitter/es2015/asyncGenerators/emitter.asyncGenerators.classMethods.es2015.ts -@@ -58,3 +58,14 @@ class C9 extends B9 { ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/decorators/class/decoratedBlockScopedClass1.ts b/tests/cases/conformance/decorators/class/decoratedBlockScopedClass1.ts +new file mode 100644 +index 0000000000..521dd6a31c +--- /dev/null ++++ b/tests/cases/conformance/decorators/class/decoratedBlockScopedClass1.ts +@@ -0,0 +1,16 @@ ++// @target: es5 ++// @experimentaldecorators: true ++// @emitDecoratorMetadata: true ++// @filename: a.ts ++ ++function decorator() { ++ return (target: new (...args: any[]) => any) => {} ++} ++ ++@decorator() ++class Foo { ++ public static func(): Foo { ++ return new Foo(); ++ } ++} ++Foo.func(); +diff --git a/tests/cases/conformance/decorators/class/decoratedBlockScopedClass2.ts b/tests/cases/conformance/decorators/class/decoratedBlockScopedClass2.ts +new file mode 100644 +index 0000000000..7d8de6894f +--- /dev/null ++++ b/tests/cases/conformance/decorators/class/decoratedBlockScopedClass2.ts +@@ -0,0 +1,19 @@ ++// @target: es5 ++// @experimentaldecorators: true ++// @emitDecoratorMetadata: true ++// @filename: a.ts ++ ++function decorator() { ++ return (target: new (...args: any[]) => any) => {} ++} ++ ++try { ++ @decorator() ++ class Foo { ++ public static func(): Foo { ++ return new Foo(); ++ } ++ } ++ Foo.func(); ++} ++catch (e) {} +diff --git a/tests/cases/conformance/decorators/class/decoratedBlockScopedClass3.ts b/tests/cases/conformance/decorators/class/decoratedBlockScopedClass3.ts +new file mode 100644 +index 0000000000..48eebc559f +--- /dev/null ++++ b/tests/cases/conformance/decorators/class/decoratedBlockScopedClass3.ts +@@ -0,0 +1,27 @@ ++// @target: es5 ++// @experimentaldecorators: true ++// @emitDecoratorMetadata: true ++// @filename: a.ts ++ ++function decorator() { ++ return (target: new (...args: any[]) => any) => {} ++} ++ ++@decorator() ++class Foo { ++ public static func(): Foo { ++ return new Foo(); ++ } ++} ++Foo.func(); ++ ++try { ++ @decorator() ++ class Foo { ++ public static func(): Foo { ++ return new Foo(); ++ } ++ } ++ Foo.func(); ++} ++catch (e) {} +diff --git a/tests/cases/conformance/decorators/class/method/decoratorOnClassMethod14.ts b/tests/cases/conformance/decorators/class/method/decoratorOnClassMethod14.ts +new file mode 100644 +index 0000000000..18f3df79bc +--- /dev/null ++++ b/tests/cases/conformance/decorators/class/method/decoratorOnClassMethod14.ts +@@ -0,0 +1,14 @@ ++// @target: esnext ++// @experimentaldecorators: true ++// @emitdecoratormetadata: true ++declare var decorator: any; ++ ++class Foo { ++ private prop = () => { ++ return 0; ++ } ++ @decorator ++ foo() { ++ return 0; ++ } ++} +diff --git a/tests/cases/conformance/decorators/class/method/decoratorOnClassMethod15.ts b/tests/cases/conformance/decorators/class/method/decoratorOnClassMethod15.ts +new file mode 100644 +index 0000000000..70f86b1bbe +--- /dev/null ++++ b/tests/cases/conformance/decorators/class/method/decoratorOnClassMethod15.ts +@@ -0,0 +1,12 @@ ++// @target: esnext ++// @experimentaldecorators: true ++// @emitdecoratormetadata: true ++declare var decorator: any; ++ ++class Foo { ++ private prop = 1 ++ @decorator ++ foo() { ++ return 0; ++ } ++} +diff --git a/tests/cases/conformance/decorators/class/method/decoratorOnClassMethod16.ts b/tests/cases/conformance/decorators/class/method/decoratorOnClassMethod16.ts +new file mode 100644 +index 0000000000..400d4fbe5a +--- /dev/null ++++ b/tests/cases/conformance/decorators/class/method/decoratorOnClassMethod16.ts +@@ -0,0 +1,12 @@ ++// @target: esnext ++// @experimentaldecorators: true ++// @emitdecoratormetadata: true ++declare var decorator: any; ++ ++class Foo { ++ private prop ++ @decorator ++ foo() { ++ return 0; ++ } ++} +diff --git a/tests/cases/conformance/decorators/class/method/decoratorOnClassMethod17.ts b/tests/cases/conformance/decorators/class/method/decoratorOnClassMethod17.ts +new file mode 100644 +index 0000000000..1aa25d7f32 +--- /dev/null ++++ b/tests/cases/conformance/decorators/class/method/decoratorOnClassMethod17.ts +@@ -0,0 +1,11 @@ ++// @target: esnext ++// @experimentaldecorators: true ++// @emitdecoratormetadata: true ++declare var decorator: any; ++ ++class Foo { ++ private prop @decorator ++ foo() { ++ return 0; ++ } ++} +diff --git a/tests/cases/conformance/decorators/class/method/decoratorOnClassMethod18.ts b/tests/cases/conformance/decorators/class/method/decoratorOnClassMethod18.ts +new file mode 100644 +index 0000000000..9417c44c5b +--- /dev/null ++++ b/tests/cases/conformance/decorators/class/method/decoratorOnClassMethod18.ts +@@ -0,0 +1,11 @@ ++// @target: esnext ++// @experimentaldecorators: true ++// @emitdecoratormetadata: true ++declare var decorator: any; ++ ++class Foo { ++ p1 ++ ++ @decorator() ++ p2; ++} +diff --git a/tests/cases/conformance/decorators/decoratorMetadataWithTypeOnlyImport2.ts b/tests/cases/conformance/decorators/decoratorMetadataWithTypeOnlyImport2.ts +new file mode 100644 +index 0000000000..c63fcf1a16 +--- /dev/null ++++ b/tests/cases/conformance/decorators/decoratorMetadataWithTypeOnlyImport2.ts +@@ -0,0 +1,17 @@ ++// @experimentalDecorators: true ++// @emitDecoratorMetadata: true ++ ++ ++// @filename: services.ts ++export namespace Services { ++ export class Service {} ++} ++ ++// @filename: index.ts ++import type { Services } from './services'; ++ ++declare const decorator: any; ++export class Main { ++ @decorator() ++ field: Services.Service; ++} +diff --git a/tests/cases/conformance/emitter/es2015/asyncGenerators/emitter.asyncGenerators.classMethods.es2015.ts b/tests/cases/conformance/emitter/es2015/asyncGenerators/emitter.asyncGenerators.classMethods.es2015.ts +index fe1bc56dd1..20e20e00dc 100644 +--- a/tests/cases/conformance/emitter/es2015/asyncGenerators/emitter.asyncGenerators.classMethods.es2015.ts ++++ b/tests/cases/conformance/emitter/es2015/asyncGenerators/emitter.asyncGenerators.classMethods.es2015.ts +@@ -58,3 +58,14 @@ class C9 extends B9 { super.g(); } } @@ -4401,132 +4401,132 @@ index fe1bc56dd1..20e20e00dc 100644 +let c8 = new C8(); +let c9 = new C9(); + -diff --git a/tests/cases/conformance/es2018/es2018IntlAPIs.ts b/tests/cases/conformance/es2018/es2018IntlAPIs.ts -new file mode 100644 -index 0000000000..c1f6739202 ---- /dev/null -+++ b/tests/cases/conformance/es2018/es2018IntlAPIs.ts -@@ -0,0 +1,7 @@ -+// @target: es2018 -+ -+// Sample from -+// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/PluralRules/supportedLocalesOf -+const locales = ['ban', 'id-u-co-pinyin', 'de-ID']; -+const options = { localeMatcher: 'lookup' } as const; -+console.log(Intl.PluralRules.supportedLocalesOf(locales, options).join(', ')); -\ No newline at end of file -diff --git a/tests/cases/conformance/es2020/es2020IntlAPIs.ts b/tests/cases/conformance/es2020/es2020IntlAPIs.ts -new file mode 100644 -index 0000000000..464ecc01ec ---- /dev/null -+++ b/tests/cases/conformance/es2020/es2020IntlAPIs.ts -@@ -0,0 +1,45 @@ -+// @target: es2020 -+ -+// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#Locale_identification_and_negotiation -+const count = 26254.39; -+const date = new Date("2012-05-24"); -+ -+function log(locale: string) { -+ console.log( -+ `${new Intl.DateTimeFormat(locale).format(date)} ${new Intl.NumberFormat(locale).format(count)}` -+ ); -+} -+ -+log("en-US"); -+// expected output: 5/24/2012 26,254.39 -+ -+log("de-DE"); -+// expected output: 24.5.2012 26.254,39 -+ -+// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat -+const rtf1 = new Intl.RelativeTimeFormat('en', { style: 'narrow' }); -+ -+console.log(rtf1.format(3, 'quarter')); -+//expected output: "in 3 qtrs." -+ -+console.log(rtf1.format(-1, 'day')); -+//expected output: "1 day ago" -+ -+const rtf2 = new Intl.RelativeTimeFormat('es', { numeric: 'auto' }); -+ -+console.log(rtf2.format(2, 'day')); -+//expected output: "pasado mañana" -+ -+// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames -+const regionNamesInEnglish = new Intl.DisplayNames(['en'], { type: 'region' }); -+const regionNamesInTraditionalChinese = new Intl.DisplayNames(['zh-Hant'], { type: 'region' }); -+ -+console.log(regionNamesInEnglish.of('US')); -+// expected output: "United States" -+ -+console.log(regionNamesInTraditionalChinese.of('US')); -+// expected output: "美國" -+ -+const locales1 = ['ban', 'id-u-co-pinyin', 'de-ID']; -+const options1 = { localeMatcher: 'lookup' } as const; -+console.log(Intl.DisplayNames.supportedLocalesOf(locales1, options1).join(', ')); -\ No newline at end of file -diff --git a/tests/cases/conformance/es6/classDeclaration/emitClassDeclarationWithPropertyAccessInHeritageClause1.ts b/tests/cases/conformance/es6/classDeclaration/emitClassDeclarationWithPropertyAccessInHeritageClause1.ts -index 5d18229ea0..de26b4fc10 100644 ---- a/tests/cases/conformance/es6/classDeclaration/emitClassDeclarationWithPropertyAccessInHeritageClause1.ts -+++ b/tests/cases/conformance/es6/classDeclaration/emitClassDeclarationWithPropertyAccessInHeritageClause1.ts -@@ -2,4 +2,6 @@ class B {} +diff --git a/tests/cases/conformance/es2018/es2018IntlAPIs.ts b/tests/cases/conformance/es2018/es2018IntlAPIs.ts +new file mode 100644 +index 0000000000..c1f6739202 +--- /dev/null ++++ b/tests/cases/conformance/es2018/es2018IntlAPIs.ts +@@ -0,0 +1,7 @@ ++// @target: es2018 ++ ++// Sample from ++// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/PluralRules/supportedLocalesOf ++const locales = ['ban', 'id-u-co-pinyin', 'de-ID']; ++const options = { localeMatcher: 'lookup' } as const; ++console.log(Intl.PluralRules.supportedLocalesOf(locales, options).join(', ')); +\ No newline at end of file +diff --git a/tests/cases/conformance/es2020/es2020IntlAPIs.ts b/tests/cases/conformance/es2020/es2020IntlAPIs.ts +new file mode 100644 +index 0000000000..464ecc01ec +--- /dev/null ++++ b/tests/cases/conformance/es2020/es2020IntlAPIs.ts +@@ -0,0 +1,45 @@ ++// @target: es2020 ++ ++// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#Locale_identification_and_negotiation ++const count = 26254.39; ++const date = new Date("2012-05-24"); ++ ++function log(locale: string) { ++ console.log( ++ `${new Intl.DateTimeFormat(locale).format(date)} ${new Intl.NumberFormat(locale).format(count)}` ++ ); ++} ++ ++log("en-US"); ++// expected output: 5/24/2012 26,254.39 ++ ++log("de-DE"); ++// expected output: 24.5.2012 26.254,39 ++ ++// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat ++const rtf1 = new Intl.RelativeTimeFormat('en', { style: 'narrow' }); ++ ++console.log(rtf1.format(3, 'quarter')); ++//expected output: "in 3 qtrs." ++ ++console.log(rtf1.format(-1, 'day')); ++//expected output: "1 day ago" ++ ++const rtf2 = new Intl.RelativeTimeFormat('es', { numeric: 'auto' }); ++ ++console.log(rtf2.format(2, 'day')); ++//expected output: "pasado mañana" ++ ++// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames ++const regionNamesInEnglish = new Intl.DisplayNames(['en'], { type: 'region' }); ++const regionNamesInTraditionalChinese = new Intl.DisplayNames(['zh-Hant'], { type: 'region' }); ++ ++console.log(regionNamesInEnglish.of('US')); ++// expected output: "United States" ++ ++console.log(regionNamesInTraditionalChinese.of('US')); ++// expected output: "美國" ++ ++const locales1 = ['ban', 'id-u-co-pinyin', 'de-ID']; ++const options1 = { localeMatcher: 'lookup' } as const; ++console.log(Intl.DisplayNames.supportedLocalesOf(locales1, options1).join(', ')); +\ No newline at end of file +diff --git a/tests/cases/conformance/es6/classDeclaration/emitClassDeclarationWithPropertyAccessInHeritageClause1.ts b/tests/cases/conformance/es6/classDeclaration/emitClassDeclarationWithPropertyAccessInHeritageClause1.ts +index 5d18229ea0..de26b4fc10 100644 +--- a/tests/cases/conformance/es6/classDeclaration/emitClassDeclarationWithPropertyAccessInHeritageClause1.ts ++++ b/tests/cases/conformance/es6/classDeclaration/emitClassDeclarationWithPropertyAccessInHeritageClause1.ts +@@ -2,4 +2,6 @@ class B {} function foo() { return {B: B}; } --class C extends (foo()).B {} -\ No newline at end of file +-class C extends (foo()).B {} +\ No newline at end of file +class C extends (foo()).B {} +let qt6 = new B(); -+let qt7 = new C(); -\ No newline at end of file -diff --git a/tests/cases/conformance/es6/classDeclaration/superCallBeforeThisAccessing1.ts b/tests/cases/conformance/es6/classDeclaration/superCallBeforeThisAccessing1.ts -index e5d63f2e93..a872204ec7 100644 ---- a/tests/cases/conformance/es6/classDeclaration/superCallBeforeThisAccessing1.ts -+++ b/tests/cases/conformance/es6/classDeclaration/superCallBeforeThisAccessing1.ts -@@ -13,3 +13,4 @@ class D extends Base { ++let qt7 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/es6/classDeclaration/superCallBeforeThisAccessing1.ts b/tests/cases/conformance/es6/classDeclaration/superCallBeforeThisAccessing1.ts +index e5d63f2e93..a872204ec7 100644 +--- a/tests/cases/conformance/es6/classDeclaration/superCallBeforeThisAccessing1.ts ++++ b/tests/cases/conformance/es6/classDeclaration/superCallBeforeThisAccessing1.ts +@@ -13,3 +13,4 @@ class D extends Base { var i = Factory.create(s); } } -+let qt2 = new D(); -\ No newline at end of file -diff --git a/tests/cases/conformance/es6/classDeclaration/superCallBeforeThisAccessing2.ts b/tests/cases/conformance/es6/classDeclaration/superCallBeforeThisAccessing2.ts -index 1b0a0d541e..826baf9d02 100644 ---- a/tests/cases/conformance/es6/classDeclaration/superCallBeforeThisAccessing2.ts -+++ b/tests/cases/conformance/es6/classDeclaration/superCallBeforeThisAccessing2.ts -@@ -7,3 +7,4 @@ class D extends Base { ++let qt2 = new D(); +\ No newline at end of file +diff --git a/tests/cases/conformance/es6/classDeclaration/superCallBeforeThisAccessing2.ts b/tests/cases/conformance/es6/classDeclaration/superCallBeforeThisAccessing2.ts +index 1b0a0d541e..826baf9d02 100644 +--- a/tests/cases/conformance/es6/classDeclaration/superCallBeforeThisAccessing2.ts ++++ b/tests/cases/conformance/es6/classDeclaration/superCallBeforeThisAccessing2.ts +@@ -7,3 +7,4 @@ class D extends Base { super(() => { this._t }); // no error. only check when this is directly accessing in constructor } } -+let qt5 = new D(); -\ No newline at end of file -diff --git a/tests/cases/conformance/es6/classDeclaration/superCallBeforeThisAccessing5.ts b/tests/cases/conformance/es6/classDeclaration/superCallBeforeThisAccessing5.ts -index 1782027758..10e7ca31aa 100644 ---- a/tests/cases/conformance/es6/classDeclaration/superCallBeforeThisAccessing5.ts -+++ b/tests/cases/conformance/es6/classDeclaration/superCallBeforeThisAccessing5.ts -@@ -4,3 +4,4 @@ ++let qt5 = new D(); +\ No newline at end of file +diff --git a/tests/cases/conformance/es6/classDeclaration/superCallBeforeThisAccessing5.ts b/tests/cases/conformance/es6/classDeclaration/superCallBeforeThisAccessing5.ts +index 1782027758..10e7ca31aa 100644 +--- a/tests/cases/conformance/es6/classDeclaration/superCallBeforeThisAccessing5.ts ++++ b/tests/cases/conformance/es6/classDeclaration/superCallBeforeThisAccessing5.ts +@@ -4,3 +4,4 @@ this._t; // No error } } -+let qt4 = new D(); -\ No newline at end of file -diff --git a/tests/cases/conformance/es6/classDeclaration/superCallBeforeThisAccessing8.ts b/tests/cases/conformance/es6/classDeclaration/superCallBeforeThisAccessing8.ts -index 5742cdab84..3b55dbc70f 100644 ---- a/tests/cases/conformance/es6/classDeclaration/superCallBeforeThisAccessing8.ts -+++ b/tests/cases/conformance/es6/classDeclaration/superCallBeforeThisAccessing8.ts -@@ -10,3 +10,4 @@ class D extends Base { ++let qt4 = new D(); +\ No newline at end of file +diff --git a/tests/cases/conformance/es6/classDeclaration/superCallBeforeThisAccessing8.ts b/tests/cases/conformance/es6/classDeclaration/superCallBeforeThisAccessing8.ts +index 5742cdab84..3b55dbc70f 100644 +--- a/tests/cases/conformance/es6/classDeclaration/superCallBeforeThisAccessing8.ts ++++ b/tests/cases/conformance/es6/classDeclaration/superCallBeforeThisAccessing8.ts +@@ -10,3 +10,4 @@ class D extends Base { } } } -+let qt3 = new D(); -\ No newline at end of file -diff --git a/tests/cases/conformance/es6/spread/arraySpreadImportHelpers.ts b/tests/cases/conformance/es6/spread/arraySpreadImportHelpers.ts -new file mode 100644 -index 0000000000..ebeb117ed0 ---- /dev/null -+++ b/tests/cases/conformance/es6/spread/arraySpreadImportHelpers.ts -@@ -0,0 +1,16 @@ ++let qt3 = new D(); +\ No newline at end of file +diff --git a/tests/cases/conformance/es6/spread/arraySpreadImportHelpers.ts b/tests/cases/conformance/es6/spread/arraySpreadImportHelpers.ts +new file mode 100644 +index 0000000000..ebeb117ed0 +--- /dev/null ++++ b/tests/cases/conformance/es6/spread/arraySpreadImportHelpers.ts +@@ -0,0 +1,16 @@ +// @target: es5 +// @importHelpers: true +// @isolatedModules: true @@ -4543,12 +4543,12 @@ index 0000000000..ebeb117ed0 +declare module "tslib" { + function __spreadArray(to: any[], from: any[]): any[]; +} -diff --git a/tests/cases/conformance/es6/templates/templateStringWithCommentsInArrowFunction.ts b/tests/cases/conformance/es6/templates/templateStringWithCommentsInArrowFunction.ts -new file mode 100644 -index 0000000000..c344bea1fb ---- /dev/null -+++ b/tests/cases/conformance/es6/templates/templateStringWithCommentsInArrowFunction.ts -@@ -0,0 +1,14 @@ +diff --git a/tests/cases/conformance/es6/templates/templateStringWithCommentsInArrowFunction.ts b/tests/cases/conformance/es6/templates/templateStringWithCommentsInArrowFunction.ts +new file mode 100644 +index 0000000000..c344bea1fb +--- /dev/null ++++ b/tests/cases/conformance/es6/templates/templateStringWithCommentsInArrowFunction.ts +@@ -0,0 +1,14 @@ +// @removeComments: false + +const a = 1; @@ -4563,264 +4563,264 @@ index 0000000000..c344bea1fb + // a + a + }`; -diff --git a/tests/cases/conformance/expressions/asOperator/asOperatorASI.ts b/tests/cases/conformance/expressions/asOperator/asOperatorASI.ts -index a4dd44a15a..ea325aefaf 100644 ---- a/tests/cases/conformance/expressions/asOperator/asOperatorASI.ts -+++ b/tests/cases/conformance/expressions/asOperator/asOperatorASI.ts -@@ -8,3 +8,4 @@ as `Hello world`; // should not error +diff --git a/tests/cases/conformance/expressions/asOperator/asOperatorASI.ts b/tests/cases/conformance/expressions/asOperator/asOperatorASI.ts +index a4dd44a15a..ea325aefaf 100644 +--- a/tests/cases/conformance/expressions/asOperator/asOperatorASI.ts ++++ b/tests/cases/conformance/expressions/asOperator/asOperatorASI.ts +@@ -8,3 +8,4 @@ as `Hello world`; // should not error // Example 2 var y = 20 as(Foo); // should emit -+let qw11 = new Foo(); -\ No newline at end of file -diff --git a/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithIdenticalObjects.ts b/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithIdenticalObjects.ts -index 05b8e135cb..285f41f742 100644 ---- a/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithIdenticalObjects.ts -+++ b/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithIdenticalObjects.ts -@@ -191,4 +191,8 @@ var r8b3 = b2 !== a2; - var r8b4 = b3 !== a3; - var r8b5 = b4 !== a4; - var r8b6 = b5 !== a5; --var r8b7 = b6 !== a6; -\ No newline at end of file -+var r8b7 = b6 !== a6; -+let qr1 = new A1(); -+let qr2 = new B1(); -+let qr3 = new A2(); -+let qr4 = new B2(); -\ No newline at end of file -diff --git a/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithIntersectionType.ts b/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithIntersectionType.ts -new file mode 100644 -index 0000000000..68900e5f91 ---- /dev/null -+++ b/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithIntersectionType.ts -@@ -0,0 +1,5 @@ -+declare let a: { a: 1 } -+a > 1; -+ -+declare let b: { a: 1 } & { b: number } -+b > 1; -diff --git a/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnInstantiatedCallSignature.ts b/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnInstantiatedCallSignature.ts -index 5670cf8ef1..441748fb1a 100644 ---- a/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnInstantiatedCallSignature.ts -+++ b/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnInstantiatedCallSignature.ts -@@ -146,4 +146,6 @@ var r8b2 = b2 !== a2; - var r8b3 = b3 !== a3; - var r8b4 = b4 !== a4; - var r8b5 = b5 !== a5; --var r8b6 = b6 !== a6; -\ No newline at end of file -+var r8b6 = b6 !== a6; -+let qe5 = new Derived(); -+let qe6 = new C(); -\ No newline at end of file -diff --git a/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnInstantiatedConstructorSignature.ts b/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnInstantiatedConstructorSignature.ts -index 8f3d914934..3f0d1adb65 100644 ---- a/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnInstantiatedConstructorSignature.ts -+++ b/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnInstantiatedConstructorSignature.ts -@@ -146,4 +146,6 @@ var r8b2 = b2 !== a2; - var r8b3 = b3 !== a3; - var r8b4 = b4 !== a4; - var r8b5 = b5 !== a5; --var r8b6 = b6 !== a6; -\ No newline at end of file -+var r8b6 = b6 !== a6; -+let qe7 = new Derived(); -+let qe8 = new C(); -\ No newline at end of file -diff --git a/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnCallSignature.ts b/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnCallSignature.ts -index 6b6ae79015..e60a012739 100644 ---- a/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnCallSignature.ts -+++ b/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnCallSignature.ts -@@ -256,4 +256,5 @@ var r8b8 = b8 !== a8; - var r8b9 = b9 !== a9; - var r8b10 = b10 !== a10; - var r8b11 = b11 !== a11; --//var r8b12 = b12 !== a12; -\ No newline at end of file -+//var r8b12 = b12 !== a12; -+let qw12 = new Derived(); -\ No newline at end of file -diff --git a/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts b/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts -index 363192f49f..e42a1cc1c1 100644 ---- a/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts -+++ b/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts -@@ -218,4 +218,5 @@ var r8b6 = b6 !== a6; - var r8b7 = b7 !== a7; - var r8b8 = b8 !== a8; - var r8b9 = b9 !== a9; --//var r8b10 = b10 !== a10; -\ No newline at end of file -+//var r8b10 = b10 !== a10; -+let qe9 = new Derived(); -\ No newline at end of file -diff --git a/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnIndexSignature.ts b/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnIndexSignature.ts -index 8246c6dd18..9154c7f806 100644 ---- a/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnIndexSignature.ts -+++ b/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnIndexSignature.ts -@@ -104,4 +104,5 @@ var r8a1 = a4 !== b4; - var r8b1 = b1 !== a1; - var r8b1 = b2 !== a2; - var r8b1 = b3 !== a3; --var r8b1 = b4 !== a4; -\ No newline at end of file -+var r8b1 = b4 !== a4; -+let qr5 = new Derived(); -\ No newline at end of file -diff --git a/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts b/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts -index da3d4131c6..59f9a78a38 100644 ---- a/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts -+++ b/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts -@@ -161,4 +161,5 @@ var r8b3 = b3 !== a3; - var r8b4 = b4 !== a4; - var r8b5 = b5 !== a5; - var r8b6 = b6 !== a6; --//var r8b7 = b7 !== a7; -\ No newline at end of file -+//var r8b7 = b7 !== a7; -+let qw14 = new Derived(); -\ No newline at end of file -diff --git a/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts b/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts -index 5a2356eadb..05f49336bf 100644 ---- a/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts -+++ b/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts -@@ -161,4 +161,5 @@ var r8b3 = b3 !== a3; - var r8b4 = b4 !== a4; - var r8b5 = b5 !== a5; - var r8b6 = b6 !== a6; --//var r8b7 = b7 !== a7; -\ No newline at end of file -+//var r8b7 = b7 !== a7; -+let qw13 = new Derived(); -\ No newline at end of file -diff --git a/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnProperty.ts b/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnProperty.ts -index 6401feb11c..fb2cd09f76 100644 ---- a/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnProperty.ts -+++ b/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnProperty.ts -@@ -75,4 +75,8 @@ var rg4 = b2 === a2; - var rh1 = a1 !== b1; - var rh2 = a2 !== b2; - var rh3 = b1 !== a1; --var rh4 = b2 !== a2; -\ No newline at end of file -+var rh4 = b2 !== a2; -+let qe1 = new Derived(); -+let qe2 = new A1(); -+let qe3 = new B1(); -+let qe4 = new B2(); -\ No newline at end of file -diff --git a/tests/cases/conformance/expressions/binaryOperators/instanceofOperator/instanceofOperatorWithInvalidStaticToString.ts b/tests/cases/conformance/expressions/binaryOperators/instanceofOperator/instanceofOperatorWithInvalidStaticToString.ts -index b99f8d7114..1399026e80 100644 ---- a/tests/cases/conformance/expressions/binaryOperators/instanceofOperator/instanceofOperatorWithInvalidStaticToString.ts -+++ b/tests/cases/conformance/expressions/binaryOperators/instanceofOperator/instanceofOperatorWithInvalidStaticToString.ts -@@ -19,3 +19,6 @@ declare class NormalToString { - function baz(normal: NormalToString) { - return normal instanceof NormalToString; - } -+let qr7 = new StaticToString(); -+let qr8 = new StaticToNumber(); -+let qr9 = new NormalToString(); -\ No newline at end of file -diff --git a/tests/cases/conformance/expressions/binaryOperators/instanceofOperator/instanceofOperatorWithLHSIsObject.ts b/tests/cases/conformance/expressions/binaryOperators/instanceofOperator/instanceofOperatorWithLHSIsObject.ts -index 6b88cd39f2..47a60b104b 100644 ---- a/tests/cases/conformance/expressions/binaryOperators/instanceofOperator/instanceofOperatorWithLHSIsObject.ts -+++ b/tests/cases/conformance/expressions/binaryOperators/instanceofOperator/instanceofOperatorWithLHSIsObject.ts -@@ -12,3 +12,4 @@ var r1 = a instanceof x1; - var r2 = b instanceof x2; - var r3 = c instanceof x1; - var r4 = d instanceof x1; -+let qr0 = new C(); -\ No newline at end of file -diff --git a/tests/cases/conformance/expressions/commaOperator/commaOperatorWithSecondOperandObjectType.ts b/tests/cases/conformance/expressions/commaOperator/commaOperatorWithSecondOperandObjectType.ts -index 0a6a47dfbb..4e2e1e494d 100644 ---- a/tests/cases/conformance/expressions/commaOperator/commaOperatorWithSecondOperandObjectType.ts -+++ b/tests/cases/conformance/expressions/commaOperator/commaOperatorWithSecondOperandObjectType.ts -@@ -38,3 +38,4 @@ var resultIsObject8 = (true, {}); - var resultIsObject9 = (!BOOLEAN, { a: 1, b: "s" }); - var resultIsObject10 = ("string", new Date()); - var resultIsObject11 = (STRING.toLowerCase(), new CLASS()); -+let qw10 = new CLASS(); -\ No newline at end of file -diff --git a/tests/cases/conformance/expressions/conditonalOperator/conditionalOperatorWithIdenticalBCT.ts b/tests/cases/conformance/expressions/conditonalOperator/conditionalOperatorWithIdenticalBCT.ts -index 11652b023d..93bdd906c6 100644 ---- a/tests/cases/conformance/expressions/conditonalOperator/conditionalOperatorWithIdenticalBCT.ts -+++ b/tests/cases/conformance/expressions/conditonalOperator/conditionalOperatorWithIdenticalBCT.ts -@@ -44,3 +44,6 @@ var result10: (t: X) => any = true ? (m) => m.propertyX1 : (n) => n.propertyX2; - - //Expr1 and Expr2 are literals - var result11: any = true ? 1 : 'string'; -+ -+let qq1 = new A(); -+let qq0 = new B(); -diff --git a/tests/cases/conformance/expressions/contextualTyping/superCallParameterContextualTyping1.ts b/tests/cases/conformance/expressions/contextualTyping/superCallParameterContextualTyping1.ts -index 7bcde9a695..fc8bde2595 100644 ---- a/tests/cases/conformance/expressions/contextualTyping/superCallParameterContextualTyping1.ts -+++ b/tests/cases/conformance/expressions/contextualTyping/superCallParameterContextualTyping1.ts -@@ -9,3 +9,5 @@ class B extends A { ++let qw11 = new Foo(); +\ No newline at end of file +diff --git a/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithIdenticalObjects.ts b/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithIdenticalObjects.ts +index 05b8e135cb..285f41f742 100644 +--- a/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithIdenticalObjects.ts ++++ b/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithIdenticalObjects.ts +@@ -191,4 +191,8 @@ var r8b3 = b2 !== a2; + var r8b4 = b3 !== a3; + var r8b5 = b4 !== a4; + var r8b6 = b5 !== a5; +-var r8b7 = b6 !== a6; +\ No newline at end of file ++var r8b7 = b6 !== a6; ++let qr1 = new A1(); ++let qr2 = new B1(); ++let qr3 = new A2(); ++let qr4 = new B2(); +\ No newline at end of file +diff --git a/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithIntersectionType.ts b/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithIntersectionType.ts +new file mode 100644 +index 0000000000..68900e5f91 +--- /dev/null ++++ b/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithIntersectionType.ts +@@ -0,0 +1,5 @@ ++declare let a: { a: 1 } ++a > 1; ++ ++declare let b: { a: 1 } & { b: number } ++b > 1; +diff --git a/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnInstantiatedCallSignature.ts b/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnInstantiatedCallSignature.ts +index 5670cf8ef1..441748fb1a 100644 +--- a/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnInstantiatedCallSignature.ts ++++ b/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnInstantiatedCallSignature.ts +@@ -146,4 +146,6 @@ var r8b2 = b2 !== a2; + var r8b3 = b3 !== a3; + var r8b4 = b4 !== a4; + var r8b5 = b5 !== a5; +-var r8b6 = b6 !== a6; +\ No newline at end of file ++var r8b6 = b6 !== a6; ++let qe5 = new Derived(); ++let qe6 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnInstantiatedConstructorSignature.ts b/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnInstantiatedConstructorSignature.ts +index 8f3d914934..3f0d1adb65 100644 +--- a/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnInstantiatedConstructorSignature.ts ++++ b/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnInstantiatedConstructorSignature.ts +@@ -146,4 +146,6 @@ var r8b2 = b2 !== a2; + var r8b3 = b3 !== a3; + var r8b4 = b4 !== a4; + var r8b5 = b5 !== a5; +-var r8b6 = b6 !== a6; +\ No newline at end of file ++var r8b6 = b6 !== a6; ++let qe7 = new Derived(); ++let qe8 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnCallSignature.ts b/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnCallSignature.ts +index 6b6ae79015..e60a012739 100644 +--- a/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnCallSignature.ts ++++ b/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnCallSignature.ts +@@ -256,4 +256,5 @@ var r8b8 = b8 !== a8; + var r8b9 = b9 !== a9; + var r8b10 = b10 !== a10; + var r8b11 = b11 !== a11; +-//var r8b12 = b12 !== a12; +\ No newline at end of file ++//var r8b12 = b12 !== a12; ++let qw12 = new Derived(); +\ No newline at end of file +diff --git a/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts b/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts +index 363192f49f..e42a1cc1c1 100644 +--- a/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts ++++ b/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts +@@ -218,4 +218,5 @@ var r8b6 = b6 !== a6; + var r8b7 = b7 !== a7; + var r8b8 = b8 !== a8; + var r8b9 = b9 !== a9; +-//var r8b10 = b10 !== a10; +\ No newline at end of file ++//var r8b10 = b10 !== a10; ++let qe9 = new Derived(); +\ No newline at end of file +diff --git a/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnIndexSignature.ts b/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnIndexSignature.ts +index 8246c6dd18..9154c7f806 100644 +--- a/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnIndexSignature.ts ++++ b/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnIndexSignature.ts +@@ -104,4 +104,5 @@ var r8a1 = a4 !== b4; + var r8b1 = b1 !== a1; + var r8b1 = b2 !== a2; + var r8b1 = b3 !== a3; +-var r8b1 = b4 !== a4; +\ No newline at end of file ++var r8b1 = b4 !== a4; ++let qr5 = new Derived(); +\ No newline at end of file +diff --git a/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts b/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts +index da3d4131c6..59f9a78a38 100644 +--- a/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts ++++ b/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts +@@ -161,4 +161,5 @@ var r8b3 = b3 !== a3; + var r8b4 = b4 !== a4; + var r8b5 = b5 !== a5; + var r8b6 = b6 !== a6; +-//var r8b7 = b7 !== a7; +\ No newline at end of file ++//var r8b7 = b7 !== a7; ++let qw14 = new Derived(); +\ No newline at end of file +diff --git a/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts b/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts +index 5a2356eadb..05f49336bf 100644 +--- a/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts ++++ b/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts +@@ -161,4 +161,5 @@ var r8b3 = b3 !== a3; + var r8b4 = b4 !== a4; + var r8b5 = b5 !== a5; + var r8b6 = b6 !== a6; +-//var r8b7 = b7 !== a7; +\ No newline at end of file ++//var r8b7 = b7 !== a7; ++let qw13 = new Derived(); +\ No newline at end of file +diff --git a/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnProperty.ts b/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnProperty.ts +index 6401feb11c..fb2cd09f76 100644 +--- a/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnProperty.ts ++++ b/tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnProperty.ts +@@ -75,4 +75,8 @@ var rg4 = b2 === a2; + var rh1 = a1 !== b1; + var rh2 = a2 !== b2; + var rh3 = b1 !== a1; +-var rh4 = b2 !== a2; +\ No newline at end of file ++var rh4 = b2 !== a2; ++let qe1 = new Derived(); ++let qe2 = new A1(); ++let qe3 = new B1(); ++let qe4 = new B2(); +\ No newline at end of file +diff --git a/tests/cases/conformance/expressions/binaryOperators/instanceofOperator/instanceofOperatorWithInvalidStaticToString.ts b/tests/cases/conformance/expressions/binaryOperators/instanceofOperator/instanceofOperatorWithInvalidStaticToString.ts +index b99f8d7114..1399026e80 100644 +--- a/tests/cases/conformance/expressions/binaryOperators/instanceofOperator/instanceofOperatorWithInvalidStaticToString.ts ++++ b/tests/cases/conformance/expressions/binaryOperators/instanceofOperator/instanceofOperatorWithInvalidStaticToString.ts +@@ -19,3 +19,6 @@ declare class NormalToString { + function baz(normal: NormalToString) { + return normal instanceof NormalToString; + } ++let qr7 = new StaticToString(); ++let qr8 = new StaticToNumber(); ++let qr9 = new NormalToString(); +\ No newline at end of file +diff --git a/tests/cases/conformance/expressions/binaryOperators/instanceofOperator/instanceofOperatorWithLHSIsObject.ts b/tests/cases/conformance/expressions/binaryOperators/instanceofOperator/instanceofOperatorWithLHSIsObject.ts +index 6b88cd39f2..47a60b104b 100644 +--- a/tests/cases/conformance/expressions/binaryOperators/instanceofOperator/instanceofOperatorWithLHSIsObject.ts ++++ b/tests/cases/conformance/expressions/binaryOperators/instanceofOperator/instanceofOperatorWithLHSIsObject.ts +@@ -12,3 +12,4 @@ var r1 = a instanceof x1; + var r2 = b instanceof x2; + var r3 = c instanceof x1; + var r4 = d instanceof x1; ++let qr0 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/expressions/commaOperator/commaOperatorWithSecondOperandObjectType.ts b/tests/cases/conformance/expressions/commaOperator/commaOperatorWithSecondOperandObjectType.ts +index 0a6a47dfbb..4e2e1e494d 100644 +--- a/tests/cases/conformance/expressions/commaOperator/commaOperatorWithSecondOperandObjectType.ts ++++ b/tests/cases/conformance/expressions/commaOperator/commaOperatorWithSecondOperandObjectType.ts +@@ -38,3 +38,4 @@ var resultIsObject8 = (true, {}); + var resultIsObject9 = (!BOOLEAN, { a: 1, b: "s" }); + var resultIsObject10 = ("string", new Date()); + var resultIsObject11 = (STRING.toLowerCase(), new CLASS()); ++let qw10 = new CLASS(); +\ No newline at end of file +diff --git a/tests/cases/conformance/expressions/conditonalOperator/conditionalOperatorWithIdenticalBCT.ts b/tests/cases/conformance/expressions/conditonalOperator/conditionalOperatorWithIdenticalBCT.ts +index 11652b023d..93bdd906c6 100644 +--- a/tests/cases/conformance/expressions/conditonalOperator/conditionalOperatorWithIdenticalBCT.ts ++++ b/tests/cases/conformance/expressions/conditonalOperator/conditionalOperatorWithIdenticalBCT.ts +@@ -44,3 +44,6 @@ var result10: (t: X) => any = true ? (m) => m.propertyX1 : (n) => n.propertyX2; + + //Expr1 and Expr2 are literals + var result11: any = true ? 1 : 'string'; ++ ++let qq1 = new A(); ++let qq0 = new B(); +diff --git a/tests/cases/conformance/expressions/contextualTyping/superCallParameterContextualTyping1.ts b/tests/cases/conformance/expressions/contextualTyping/superCallParameterContextualTyping1.ts +index 7bcde9a695..fc8bde2595 100644 +--- a/tests/cases/conformance/expressions/contextualTyping/superCallParameterContextualTyping1.ts ++++ b/tests/cases/conformance/expressions/contextualTyping/superCallParameterContextualTyping1.ts +@@ -9,3 +9,5 @@ class B extends A { // Ensure 'value' is of type 'number (and not '{}') by using its 'toExponential()' method. constructor() { super(value => String(value.toExponential())); } } + +let qr17 = new B(); -diff --git a/tests/cases/conformance/expressions/contextualTyping/superCallParameterContextualTyping3.ts b/tests/cases/conformance/expressions/contextualTyping/superCallParameterContextualTyping3.ts -index 760337f3ef..6eac51e440 100644 ---- a/tests/cases/conformance/expressions/contextualTyping/superCallParameterContextualTyping3.ts -+++ b/tests/cases/conformance/expressions/contextualTyping/superCallParameterContextualTyping3.ts -@@ -28,4 +28,5 @@ class C extends CBase { +diff --git a/tests/cases/conformance/expressions/contextualTyping/superCallParameterContextualTyping3.ts b/tests/cases/conformance/expressions/contextualTyping/superCallParameterContextualTyping3.ts +index 760337f3ef..6eac51e440 100644 +--- a/tests/cases/conformance/expressions/contextualTyping/superCallParameterContextualTyping3.ts ++++ b/tests/cases/conformance/expressions/contextualTyping/superCallParameterContextualTyping3.ts +@@ -28,4 +28,5 @@ class C extends CBase { } }); } --} -\ No newline at end of file -+} -+let qt1 = new C(); -\ No newline at end of file -diff --git a/tests/cases/conformance/expressions/functionCalls/callWithSpread.ts b/tests/cases/conformance/expressions/functionCalls/callWithSpread.ts -index b1e2ee7578..3ba8aa488a 100644 ---- a/tests/cases/conformance/expressions/functionCalls/callWithSpread.ts -+++ b/tests/cases/conformance/expressions/functionCalls/callWithSpread.ts -@@ -55,3 +55,4 @@ class D extends C { +-} +\ No newline at end of file ++} ++let qt1 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/expressions/functionCalls/callWithSpread.ts b/tests/cases/conformance/expressions/functionCalls/callWithSpread.ts +index b1e2ee7578..3ba8aa488a 100644 +--- a/tests/cases/conformance/expressions/functionCalls/callWithSpread.ts ++++ b/tests/cases/conformance/expressions/functionCalls/callWithSpread.ts +@@ -55,3 +55,4 @@ class D extends C { super.foo(1, 2, ...a); } } -+let qr13 = new D(); -\ No newline at end of file -diff --git a/tests/cases/conformance/expressions/functions/arrowFunctionExpressions.ts b/tests/cases/conformance/expressions/functions/arrowFunctionExpressions.ts -index 707ef02de8..304d6792dc 100644 ---- a/tests/cases/conformance/expressions/functions/arrowFunctionExpressions.ts -+++ b/tests/cases/conformance/expressions/functions/arrowFunctionExpressions.ts -@@ -96,3 +96,4 @@ function tryCatchFn() { ++let qr13 = new D(); +\ No newline at end of file +diff --git a/tests/cases/conformance/expressions/functions/arrowFunctionExpressions.ts b/tests/cases/conformance/expressions/functions/arrowFunctionExpressions.ts +index 707ef02de8..304d6792dc 100644 +--- a/tests/cases/conformance/expressions/functions/arrowFunctionExpressions.ts ++++ b/tests/cases/conformance/expressions/functions/arrowFunctionExpressions.ts +@@ -96,3 +96,4 @@ function tryCatchFn() { var m = () => this + ''; } } +let qr14 = new MyClass(); -diff --git a/tests/cases/conformance/expressions/newOperator/newOperatorConformance.ts b/tests/cases/conformance/expressions/newOperator/newOperatorConformance.ts -index b50751c7ae..051e4e3c3e 100644 ---- a/tests/cases/conformance/expressions/newOperator/newOperatorConformance.ts -+++ b/tests/cases/conformance/expressions/newOperator/newOperatorConformance.ts -@@ -60,3 +60,4 @@ var t: any; +diff --git a/tests/cases/conformance/expressions/newOperator/newOperatorConformance.ts b/tests/cases/conformance/expressions/newOperator/newOperatorConformance.ts +index b50751c7ae..051e4e3c3e 100644 +--- a/tests/cases/conformance/expressions/newOperator/newOperatorConformance.ts ++++ b/tests/cases/conformance/expressions/newOperator/newOperatorConformance.ts +@@ -60,3 +60,4 @@ var t: any; var nested = new (new (new nestedCtor())())(); var n = new nested(); var n = new nested(); -+let aa1 = new C1(null,null); -\ No newline at end of file -diff --git a/tests/cases/conformance/expressions/superCalls/superCalls.ts b/tests/cases/conformance/expressions/superCalls/superCalls.ts -index fdebc85906..da0fe9656b 100644 ---- a/tests/cases/conformance/expressions/superCalls/superCalls.ts -+++ b/tests/cases/conformance/expressions/superCalls/superCalls.ts -@@ -27,3 +27,5 @@ class OtherDerived extends OtherBase { ++let aa1 = new C1(null,null); +\ No newline at end of file +diff --git a/tests/cases/conformance/expressions/superCalls/superCalls.ts b/tests/cases/conformance/expressions/superCalls/superCalls.ts +index fdebc85906..da0fe9656b 100644 +--- a/tests/cases/conformance/expressions/superCalls/superCalls.ts ++++ b/tests/cases/conformance/expressions/superCalls/superCalls.ts +@@ -27,3 +27,5 @@ class OtherDerived extends OtherBase { super(); } } +let qr15 = new Derived(null); -+let qr16 = new OtherDerived(); -\ No newline at end of file -diff --git a/tests/cases/conformance/expressions/thisKeyword/typeOfThisGeneral.ts b/tests/cases/conformance/expressions/thisKeyword/typeOfThisGeneral.ts -new file mode 100644 -index 0000000000..99d6a50b00 ---- /dev/null -+++ b/tests/cases/conformance/expressions/thisKeyword/typeOfThisGeneral.ts -@@ -0,0 +1,178 @@ ++let qr16 = new OtherDerived(); +\ No newline at end of file +diff --git a/tests/cases/conformance/expressions/thisKeyword/typeOfThisGeneral.ts b/tests/cases/conformance/expressions/thisKeyword/typeOfThisGeneral.ts +new file mode 100644 +index 0000000000..99d6a50b00 +--- /dev/null ++++ b/tests/cases/conformance/expressions/thisKeyword/typeOfThisGeneral.ts +@@ -0,0 +1,178 @@ +// @target: esnext +// @useDefineForClassFields: false +class MyTestClass { @@ -4999,77 +4999,77 @@ index 0000000000..99d6a50b00 +var t = this; +this.spaaaaace = 4; + -diff --git a/tests/cases/conformance/expressions/typeGuards/TypeGuardWithArrayUnion.ts b/tests/cases/conformance/expressions/typeGuards/TypeGuardWithArrayUnion.ts -index 8884754b48..c6378e0dc3 100644 ---- a/tests/cases/conformance/expressions/typeGuards/TypeGuardWithArrayUnion.ts -+++ b/tests/cases/conformance/expressions/typeGuards/TypeGuardWithArrayUnion.ts -@@ -7,3 +7,4 @@ function saySize(message: Message | Message[]) { +diff --git a/tests/cases/conformance/expressions/typeGuards/TypeGuardWithArrayUnion.ts b/tests/cases/conformance/expressions/typeGuards/TypeGuardWithArrayUnion.ts +index 8884754b48..c6378e0dc3 100644 +--- a/tests/cases/conformance/expressions/typeGuards/TypeGuardWithArrayUnion.ts ++++ b/tests/cases/conformance/expressions/typeGuards/TypeGuardWithArrayUnion.ts +@@ -7,3 +7,4 @@ function saySize(message: Message | Message[]) { return message.length; // Should have type Message[] here } } -+let rr5 = new Message(); -\ No newline at end of file -diff --git a/tests/cases/conformance/expressions/typeGuards/typeGuardFunction.ts b/tests/cases/conformance/expressions/typeGuards/typeGuardFunction.ts -index 57d56ccc3b..0f531ea811 100644 ---- a/tests/cases/conformance/expressions/typeGuards/typeGuardFunction.ts -+++ b/tests/cases/conformance/expressions/typeGuards/typeGuardFunction.ts -@@ -80,4 +80,8 @@ acceptingTypeGuardFunction(isA); ++let rr5 = new Message(); +\ No newline at end of file +diff --git a/tests/cases/conformance/expressions/typeGuards/typeGuardFunction.ts b/tests/cases/conformance/expressions/typeGuards/typeGuardFunction.ts +index 57d56ccc3b..0f531ea811 100644 +--- a/tests/cases/conformance/expressions/typeGuards/typeGuardFunction.ts ++++ b/tests/cases/conformance/expressions/typeGuards/typeGuardFunction.ts +@@ -80,4 +80,8 @@ acceptingTypeGuardFunction(isA); // Binary expressions let union2: C | B; --let union3: boolean | B = isA(union2) || union2; -\ No newline at end of file +-let union3: boolean | B = isA(union2) || union2; +\ No newline at end of file +let union3: boolean | B = isA(union2) || union2; + +let ee2 = new B(); +let ee3 = new C(); -+let ee4 = new D(); -\ No newline at end of file -diff --git a/tests/cases/conformance/expressions/typeGuards/typeGuardFunctionGenerics.ts b/tests/cases/conformance/expressions/typeGuards/typeGuardFunctionGenerics.ts -index d0e108b573..3511cc54b1 100644 ---- a/tests/cases/conformance/expressions/typeGuards/typeGuardFunctionGenerics.ts -+++ b/tests/cases/conformance/expressions/typeGuards/typeGuardFunctionGenerics.ts -@@ -30,4 +30,6 @@ let test2: B = funC(isB); - if (funD(isC, a)) { - a.propC; - } --let test3: B = funE(isB, 1); -\ No newline at end of file -+let test3: B = funE(isB, 1); -+let qw7 = new B(); -+let qw8 = new C(); -\ No newline at end of file -diff --git a/tests/cases/conformance/expressions/typeGuards/typeGuardOfFormExpr1AndExpr2.ts b/tests/cases/conformance/expressions/typeGuards/typeGuardOfFormExpr1AndExpr2.ts -index 1ed8e6ebb0..e14dd79116 100644 ---- a/tests/cases/conformance/expressions/typeGuards/typeGuardOfFormExpr1AndExpr2.ts -+++ b/tests/cases/conformance/expressions/typeGuards/typeGuardOfFormExpr1AndExpr2.ts -@@ -43,4 +43,5 @@ if (typeof strOrNumOrBool !== "string" && numOrBool !== strOrNumOrBool) { ++let ee4 = new D(); +\ No newline at end of file +diff --git a/tests/cases/conformance/expressions/typeGuards/typeGuardFunctionGenerics.ts b/tests/cases/conformance/expressions/typeGuards/typeGuardFunctionGenerics.ts +index d0e108b573..3511cc54b1 100644 +--- a/tests/cases/conformance/expressions/typeGuards/typeGuardFunctionGenerics.ts ++++ b/tests/cases/conformance/expressions/typeGuards/typeGuardFunctionGenerics.ts +@@ -30,4 +30,6 @@ let test2: B = funC(isB); + if (funD(isC, a)) { + a.propC; + } +-let test3: B = funE(isB, 1); +\ No newline at end of file ++let test3: B = funE(isB, 1); ++let qw7 = new B(); ++let qw8 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/expressions/typeGuards/typeGuardOfFormExpr1AndExpr2.ts b/tests/cases/conformance/expressions/typeGuards/typeGuardOfFormExpr1AndExpr2.ts +index 1ed8e6ebb0..e14dd79116 100644 +--- a/tests/cases/conformance/expressions/typeGuards/typeGuardOfFormExpr1AndExpr2.ts ++++ b/tests/cases/conformance/expressions/typeGuards/typeGuardOfFormExpr1AndExpr2.ts +@@ -43,4 +43,5 @@ if (typeof strOrNumOrBool !== "string" && numOrBool !== strOrNumOrBool) { } else { var r3: string | number | boolean = strOrNumOrBool; // string | number | boolean --} -\ No newline at end of file -+} -+let rr1 = new C(); -\ No newline at end of file -diff --git a/tests/cases/conformance/expressions/typeGuards/typeGuardOfFormExpr1OrExpr2.ts b/tests/cases/conformance/expressions/typeGuards/typeGuardOfFormExpr1OrExpr2.ts -index 1d72f35828..3411e32bcf 100644 ---- a/tests/cases/conformance/expressions/typeGuards/typeGuardOfFormExpr1OrExpr2.ts -+++ b/tests/cases/conformance/expressions/typeGuards/typeGuardOfFormExpr1OrExpr2.ts -@@ -43,4 +43,5 @@ if (typeof strOrNumOrBool === "string" || numOrBool !== strOrNumOrBool) { +-} +\ No newline at end of file ++} ++let rr1 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/expressions/typeGuards/typeGuardOfFormExpr1OrExpr2.ts b/tests/cases/conformance/expressions/typeGuards/typeGuardOfFormExpr1OrExpr2.ts +index 1d72f35828..3411e32bcf 100644 +--- a/tests/cases/conformance/expressions/typeGuards/typeGuardOfFormExpr1OrExpr2.ts ++++ b/tests/cases/conformance/expressions/typeGuards/typeGuardOfFormExpr1OrExpr2.ts +@@ -43,4 +43,5 @@ if (typeof strOrNumOrBool === "string" || numOrBool !== strOrNumOrBool) { } else { numOrBool = strOrNumOrBool; // number | boolean --} -\ No newline at end of file -+} -+let qw2 = new C(); -\ No newline at end of file -diff --git a/tests/cases/conformance/expressions/typeGuards/typeGuardOfFormInstanceOf.ts b/tests/cases/conformance/expressions/typeGuards/typeGuardOfFormInstanceOf.ts -index 31514fca74..db3d488209 100644 ---- a/tests/cases/conformance/expressions/typeGuards/typeGuardOfFormInstanceOf.ts -+++ b/tests/cases/conformance/expressions/typeGuards/typeGuardOfFormInstanceOf.ts -@@ -1,25 +1,25 @@ +-} +\ No newline at end of file ++} ++let qw2 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/expressions/typeGuards/typeGuardOfFormInstanceOf.ts b/tests/cases/conformance/expressions/typeGuards/typeGuardOfFormInstanceOf.ts +index 31514fca74..db3d488209 100644 +--- a/tests/cases/conformance/expressions/typeGuards/typeGuardOfFormInstanceOf.ts ++++ b/tests/cases/conformance/expressions/typeGuards/typeGuardOfFormInstanceOf.ts +@@ -1,25 +1,25 @@ -// A type guard of the form x instanceof C, where C is of a subtype of the global type 'Function' -// and C has a property named 'prototype' -// - when true, narrows the type of x to the type of the 'prototype' property in C provided @@ -5085,105 +5085,105 @@ index 31514fca74..db3d488209 100644 -class D1 extends C1 { - p3: number; -} -+// A type guard of the form x instanceof C, where C is of a subtype of the global type 'Function' -+// and C has a property named 'prototype' -+// - when true, narrows the type of x to the type of the 'prototype' property in C provided -+// it is a subtype of the type of x, or -+// - when false, has no effect on the type of x. -+ -+class C1 { -+ p1: string; -+} -+class C2 { -+ p2: number; -+} -+class D1 extends C1 { -+ p3: number; -+} - class C3 { - p4: number; - } ++// A type guard of the form x instanceof C, where C is of a subtype of the global type 'Function' ++// and C has a property named 'prototype' ++// - when true, narrows the type of x to the type of the 'prototype' property in C provided ++// it is a subtype of the type of x, or ++// - when false, has no effect on the type of x. ++ ++class C1 { ++ p1: string; ++} ++class C2 { ++ p2: number; ++} ++class D1 extends C1 { ++ p3: number; ++} + class C3 { + p4: number; + } -var str: string; -var num: number; -var strOrNum: string | number; - -+var str: string; -+var num: number; -+var strOrNum: string | number; -+ - var ctor1: C1 | C2; - str = ctor1 instanceof C1 && ctor1.p1; // C1 - num = ctor1 instanceof C2 && ctor1.p2; // C2 -@@ -31,7 +31,7 @@ num = ctor2 instanceof C2 && ctor2.p2; // C2 - num = ctor2 instanceof D1 && ctor2.p3; // D1 - str = ctor2 instanceof D1 && ctor2.p1; // D1 - var r2: D1 | C2 = ctor2 instanceof C1 && ctor2; // C2 | D1 ++var str: string; ++var num: number; ++var strOrNum: string | number; ++ + var ctor1: C1 | C2; + str = ctor1 instanceof C1 && ctor1.p1; // C1 + num = ctor1 instanceof C2 && ctor1.p2; // C2 +@@ -31,7 +31,7 @@ num = ctor2 instanceof C2 && ctor2.p2; // C2 + num = ctor2 instanceof D1 && ctor2.p3; // D1 + str = ctor2 instanceof D1 && ctor2.p1; // D1 + var r2: D1 | C2 = ctor2 instanceof C1 && ctor2; // C2 | D1 - -+ - var ctor3: C1 | C2; - if (ctor3 instanceof C1) { - ctor3.p1; // C1 -@@ -64,4 +64,7 @@ if (ctor6 instanceof C1 || ctor6 instanceof C2) { - } - else { - ctor6.p4; // C3 --} -\ No newline at end of file -+} -+let qw4 = new C2(); -+let qw3 = new D1(); -+let qw5 = new C3(); -\ No newline at end of file -diff --git a/tests/cases/conformance/expressions/typeGuards/typeGuardOfFormIsType.ts b/tests/cases/conformance/expressions/typeGuards/typeGuardOfFormIsType.ts -index 9f5ca611ee..e0953773d5 100644 ---- a/tests/cases/conformance/expressions/typeGuards/typeGuardOfFormIsType.ts -+++ b/tests/cases/conformance/expressions/typeGuards/typeGuardOfFormIsType.ts -@@ -34,4 +34,7 @@ var c2Ord1: C2 | D1; ++ + var ctor3: C1 | C2; + if (ctor3 instanceof C1) { + ctor3.p1; // C1 +@@ -64,4 +64,7 @@ if (ctor6 instanceof C1 || ctor6 instanceof C2) { + } + else { + ctor6.p4; // C3 +-} +\ No newline at end of file ++} ++let qw4 = new C2(); ++let qw3 = new D1(); ++let qw5 = new C3(); +\ No newline at end of file +diff --git a/tests/cases/conformance/expressions/typeGuards/typeGuardOfFormIsType.ts b/tests/cases/conformance/expressions/typeGuards/typeGuardOfFormIsType.ts +index 9f5ca611ee..e0953773d5 100644 +--- a/tests/cases/conformance/expressions/typeGuards/typeGuardOfFormIsType.ts ++++ b/tests/cases/conformance/expressions/typeGuards/typeGuardOfFormIsType.ts +@@ -34,4 +34,7 @@ var c2Ord1: C2 | D1; num = isC2(c2Ord1) && c2Ord1.p2; // C2 num = isD1(c2Ord1) && c2Ord1.p3; // D1 str = isD1(c2Ord1) && c2Ord1.p1; // D1 --var r2: C2 | D1 = isC1(c2Ord1) && c2Ord1; // C2 | D1 -\ No newline at end of file +-var r2: C2 | D1 = isC1(c2Ord1) && c2Ord1; // C2 | D1 +\ No newline at end of file +var r2: C2 | D1 = isC1(c2Ord1) && c2Ord1; // C2 | D1 + +let rr2 = new C2(); -+let rr3 = new D1(); -\ No newline at end of file -diff --git a/tests/cases/conformance/expressions/typeGuards/typeGuardOfFormTypeOfBoolean.ts b/tests/cases/conformance/expressions/typeGuards/typeGuardOfFormTypeOfBoolean.ts -index 37651071b7..610f0da2c8 100644 ---- a/tests/cases/conformance/expressions/typeGuards/typeGuardOfFormTypeOfBoolean.ts -+++ b/tests/cases/conformance/expressions/typeGuards/typeGuardOfFormTypeOfBoolean.ts -@@ -83,3 +83,4 @@ if (typeof strOrNum !== "boolean") { ++let rr3 = new D1(); +\ No newline at end of file +diff --git a/tests/cases/conformance/expressions/typeGuards/typeGuardOfFormTypeOfBoolean.ts b/tests/cases/conformance/expressions/typeGuards/typeGuardOfFormTypeOfBoolean.ts +index 37651071b7..610f0da2c8 100644 +--- a/tests/cases/conformance/expressions/typeGuards/typeGuardOfFormTypeOfBoolean.ts ++++ b/tests/cases/conformance/expressions/typeGuards/typeGuardOfFormTypeOfBoolean.ts +@@ -83,3 +83,4 @@ if (typeof strOrNum !== "boolean") { else { let z2: {} = strOrNum; // {} } -+let qw9 = new C(); -\ No newline at end of file -diff --git a/tests/cases/conformance/expressions/typeGuards/typeGuardOfFormTypeOfNumber.ts b/tests/cases/conformance/expressions/typeGuards/typeGuardOfFormTypeOfNumber.ts -index b4cdf81660..f00736781f 100644 ---- a/tests/cases/conformance/expressions/typeGuards/typeGuardOfFormTypeOfNumber.ts -+++ b/tests/cases/conformance/expressions/typeGuards/typeGuardOfFormTypeOfNumber.ts -@@ -82,3 +82,4 @@ if (typeof strOrBool !== "number") { ++let qw9 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/expressions/typeGuards/typeGuardOfFormTypeOfNumber.ts b/tests/cases/conformance/expressions/typeGuards/typeGuardOfFormTypeOfNumber.ts +index b4cdf81660..f00736781f 100644 +--- a/tests/cases/conformance/expressions/typeGuards/typeGuardOfFormTypeOfNumber.ts ++++ b/tests/cases/conformance/expressions/typeGuards/typeGuardOfFormTypeOfNumber.ts +@@ -82,3 +82,4 @@ if (typeof strOrBool !== "number") { else { let y2: {} = strOrBool; // {} } -+let ee6 = new C(); -\ No newline at end of file -diff --git a/tests/cases/conformance/expressions/typeGuards/typeGuardOfFormTypeOfString.ts b/tests/cases/conformance/expressions/typeGuards/typeGuardOfFormTypeOfString.ts -index f742124708..a20093f868 100644 ---- a/tests/cases/conformance/expressions/typeGuards/typeGuardOfFormTypeOfString.ts -+++ b/tests/cases/conformance/expressions/typeGuards/typeGuardOfFormTypeOfString.ts -@@ -82,3 +82,4 @@ if (typeof numOrBool !== "string") { ++let ee6 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/expressions/typeGuards/typeGuardOfFormTypeOfString.ts b/tests/cases/conformance/expressions/typeGuards/typeGuardOfFormTypeOfString.ts +index f742124708..a20093f868 100644 +--- a/tests/cases/conformance/expressions/typeGuards/typeGuardOfFormTypeOfString.ts ++++ b/tests/cases/conformance/expressions/typeGuards/typeGuardOfFormTypeOfString.ts +@@ -82,3 +82,4 @@ if (typeof numOrBool !== "string") { else { let x2: {} = numOrBool; // {} } -+let rr4 = new C(); -\ No newline at end of file -diff --git a/tests/cases/conformance/expressions/typeGuards/typeGuardOfFromPropNameInUnionType.ts b/tests/cases/conformance/expressions/typeGuards/typeGuardOfFromPropNameInUnionType.ts -index e1256e4288..ceee99f7e2 100644 ---- a/tests/cases/conformance/expressions/typeGuards/typeGuardOfFromPropNameInUnionType.ts -+++ b/tests/cases/conformance/expressions/typeGuards/typeGuardOfFromPropNameInUnionType.ts -@@ -103,3 +103,12 @@ function f(i: Indexed) { ++let rr4 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/expressions/typeGuards/typeGuardOfFromPropNameInUnionType.ts b/tests/cases/conformance/expressions/typeGuards/typeGuardOfFromPropNameInUnionType.ts +index e1256e4288..ceee99f7e2 100644 +--- a/tests/cases/conformance/expressions/typeGuards/typeGuardOfFromPropNameInUnionType.ts ++++ b/tests/cases/conformance/expressions/typeGuards/typeGuardOfFromPropNameInUnionType.ts +@@ -103,3 +103,12 @@ function f(i: Indexed) { } return "c" in i && i.c; } @@ -5195,96 +5195,96 @@ index e1256e4288..ceee99f7e2 100644 +let tt6 = new BWithOptionalProp(); +let tt7 = new ClassWithUnionProp(); +let tt8 = new InMemberOfClass(); -+let tt9 = new SelfAssert(); -\ No newline at end of file -diff --git a/tests/cases/conformance/expressions/typeGuards/typeGuardsInClassAccessors.ts b/tests/cases/conformance/expressions/typeGuards/typeGuardsInClassAccessors.ts -index 04b9a6a394..044131068a 100644 ---- a/tests/cases/conformance/expressions/typeGuards/typeGuardsInClassAccessors.ts -+++ b/tests/cases/conformance/expressions/typeGuards/typeGuardsInClassAccessors.ts -@@ -101,3 +101,4 @@ class ClassWithAccessors { ++let tt9 = new SelfAssert(); +\ No newline at end of file +diff --git a/tests/cases/conformance/expressions/typeGuards/typeGuardsInClassAccessors.ts b/tests/cases/conformance/expressions/typeGuards/typeGuardsInClassAccessors.ts +index 04b9a6a394..044131068a 100644 +--- a/tests/cases/conformance/expressions/typeGuards/typeGuardsInClassAccessors.ts ++++ b/tests/cases/conformance/expressions/typeGuards/typeGuardsInClassAccessors.ts +@@ -101,3 +101,4 @@ class ClassWithAccessors { num = typeof var2 === "string" && var2.length; // string } } -+let ee1 = new ClassWithAccessors(); -\ No newline at end of file -diff --git a/tests/cases/conformance/expressions/typeGuards/typeGuardsInClassMethods.ts b/tests/cases/conformance/expressions/typeGuards/typeGuardsInClassMethods.ts -index cb1327027c..7bb36dfefe 100644 ---- a/tests/cases/conformance/expressions/typeGuards/typeGuardsInClassMethods.ts -+++ b/tests/cases/conformance/expressions/typeGuards/typeGuardsInClassMethods.ts -@@ -65,3 +65,4 @@ class C1 { ++let ee1 = new ClassWithAccessors(); +\ No newline at end of file +diff --git a/tests/cases/conformance/expressions/typeGuards/typeGuardsInClassMethods.ts b/tests/cases/conformance/expressions/typeGuards/typeGuardsInClassMethods.ts +index cb1327027c..7bb36dfefe 100644 +--- a/tests/cases/conformance/expressions/typeGuards/typeGuardsInClassMethods.ts ++++ b/tests/cases/conformance/expressions/typeGuards/typeGuardsInClassMethods.ts +@@ -65,3 +65,4 @@ class C1 { num = typeof param === "string" && param.length; // string } } -+let qw1 = new C1(null); -\ No newline at end of file -diff --git a/tests/cases/conformance/expressions/typeGuards/typeGuardsInProperties.ts b/tests/cases/conformance/expressions/typeGuards/typeGuardsInProperties.ts -index bffe8d3d1b..b7fd3f9c34 100644 ---- a/tests/cases/conformance/expressions/typeGuards/typeGuardsInProperties.ts -+++ b/tests/cases/conformance/expressions/typeGuards/typeGuardsInProperties.ts -@@ -24,4 +24,5 @@ strOrNum = typeof c1.pp3 === "string" && c1.pp3; // string | number ++let qw1 = new C1(null); +\ No newline at end of file +diff --git a/tests/cases/conformance/expressions/typeGuards/typeGuardsInProperties.ts b/tests/cases/conformance/expressions/typeGuards/typeGuardsInProperties.ts +index bffe8d3d1b..b7fd3f9c34 100644 +--- a/tests/cases/conformance/expressions/typeGuards/typeGuardsInProperties.ts ++++ b/tests/cases/conformance/expressions/typeGuards/typeGuardsInProperties.ts +@@ -24,4 +24,5 @@ strOrNum = typeof c1.pp3 === "string" && c1.pp3; // string | number var obj1: { x: string | number; }; --strOrNum = typeof obj1.x === "string" && obj1.x; // string | number -\ No newline at end of file +-strOrNum = typeof obj1.x === "string" && obj1.x; // string | number +\ No newline at end of file +strOrNum = typeof obj1.x === "string" && obj1.x; // string | number -+let ee5 = new C1(); -\ No newline at end of file -diff --git a/tests/cases/conformance/expressions/typeGuards/typeGuardsOnClassProperty.ts b/tests/cases/conformance/expressions/typeGuards/typeGuardsOnClassProperty.ts -index 2c26b10c6a..574f2af39c 100644 ---- a/tests/cases/conformance/expressions/typeGuards/typeGuardsOnClassProperty.ts -+++ b/tests/cases/conformance/expressions/typeGuards/typeGuardsOnClassProperty.ts -@@ -25,4 +25,5 @@ var o: { ++let ee5 = new C1(); +\ No newline at end of file +diff --git a/tests/cases/conformance/expressions/typeGuards/typeGuardsOnClassProperty.ts b/tests/cases/conformance/expressions/typeGuards/typeGuardsOnClassProperty.ts +index 2c26b10c6a..574f2af39c 100644 +--- a/tests/cases/conformance/expressions/typeGuards/typeGuardsOnClassProperty.ts ++++ b/tests/cases/conformance/expressions/typeGuards/typeGuardsOnClassProperty.ts +@@ -25,4 +25,5 @@ var o: { if (typeof o.prop1 === "string" && o.prop1.toLowerCase()) {} var prop1 = o.prop1; --if (typeof prop1 === "string" && prop1.toLocaleLowerCase()) { } -\ No newline at end of file +-if (typeof prop1 === "string" && prop1.toLocaleLowerCase()) { } +\ No newline at end of file +if (typeof prop1 === "string" && prop1.toLocaleLowerCase()) { } -+let qw6 = new D(); -\ No newline at end of file -diff --git a/tests/cases/conformance/expressions/unaryOperators/bitwiseNotOperator/bitwiseNotOperatorWithNumberType.ts b/tests/cases/conformance/expressions/unaryOperators/bitwiseNotOperator/bitwiseNotOperatorWithNumberType.ts -index b41a114503..87e1d09bea 100644 ---- a/tests/cases/conformance/expressions/unaryOperators/bitwiseNotOperator/bitwiseNotOperatorWithNumberType.ts -+++ b/tests/cases/conformance/expressions/unaryOperators/bitwiseNotOperator/bitwiseNotOperatorWithNumberType.ts -@@ -43,4 +43,5 @@ var ResultIsNumber13 = ~~~(NUMBER + NUMBER); - ~foo(); - ~objA.a; - ~M.n; --~objA.a, M.n; -\ No newline at end of file -+~objA.a, M.n; -+let qr11 = new A(); -\ No newline at end of file -diff --git a/tests/cases/conformance/expressions/unaryOperators/bitwiseNotOperator/bitwiseNotOperatorWithStringType.ts b/tests/cases/conformance/expressions/unaryOperators/bitwiseNotOperator/bitwiseNotOperatorWithStringType.ts -index 0b60c73ef9..4495309b10 100644 ---- a/tests/cases/conformance/expressions/unaryOperators/bitwiseNotOperator/bitwiseNotOperatorWithStringType.ts -+++ b/tests/cases/conformance/expressions/unaryOperators/bitwiseNotOperator/bitwiseNotOperatorWithStringType.ts -@@ -42,4 +42,5 @@ var ResultIsNumber14 = ~~~(STRING + STRING); - ~STRING; - ~STRING1; - ~foo(); --~objA.a,M.n; -\ No newline at end of file -+~objA.a,M.n; -+let qr12 = new A(); -\ No newline at end of file -diff --git a/tests/cases/conformance/externalModules/exportNonVisibleType.ts b/tests/cases/conformance/externalModules/exportNonVisibleType.ts -index 4f4722fd86..cc56bd2f0b 100644 ---- a/tests/cases/conformance/externalModules/exportNonVisibleType.ts -+++ b/tests/cases/conformance/externalModules/exportNonVisibleType.ts -@@ -31,3 +31,4 @@ class C1 { ++let qw6 = new D(); +\ No newline at end of file +diff --git a/tests/cases/conformance/expressions/unaryOperators/bitwiseNotOperator/bitwiseNotOperatorWithNumberType.ts b/tests/cases/conformance/expressions/unaryOperators/bitwiseNotOperator/bitwiseNotOperatorWithNumberType.ts +index b41a114503..87e1d09bea 100644 +--- a/tests/cases/conformance/expressions/unaryOperators/bitwiseNotOperator/bitwiseNotOperatorWithNumberType.ts ++++ b/tests/cases/conformance/expressions/unaryOperators/bitwiseNotOperator/bitwiseNotOperatorWithNumberType.ts +@@ -43,4 +43,5 @@ var ResultIsNumber13 = ~~~(NUMBER + NUMBER); + ~foo(); + ~objA.a; + ~M.n; +-~objA.a, M.n; +\ No newline at end of file ++~objA.a, M.n; ++let qr11 = new A(); +\ No newline at end of file +diff --git a/tests/cases/conformance/expressions/unaryOperators/bitwiseNotOperator/bitwiseNotOperatorWithStringType.ts b/tests/cases/conformance/expressions/unaryOperators/bitwiseNotOperator/bitwiseNotOperatorWithStringType.ts +index 0b60c73ef9..4495309b10 100644 +--- a/tests/cases/conformance/expressions/unaryOperators/bitwiseNotOperator/bitwiseNotOperatorWithStringType.ts ++++ b/tests/cases/conformance/expressions/unaryOperators/bitwiseNotOperator/bitwiseNotOperatorWithStringType.ts +@@ -42,4 +42,5 @@ var ResultIsNumber14 = ~~~(STRING + STRING); + ~STRING; + ~STRING1; + ~foo(); +-~objA.a,M.n; +\ No newline at end of file ++~objA.a,M.n; ++let qr12 = new A(); +\ No newline at end of file +diff --git a/tests/cases/conformance/externalModules/exportNonVisibleType.ts b/tests/cases/conformance/externalModules/exportNonVisibleType.ts +index 4f4722fd86..cc56bd2f0b 100644 +--- a/tests/cases/conformance/externalModules/exportNonVisibleType.ts ++++ b/tests/cases/conformance/externalModules/exportNonVisibleType.ts +@@ -31,3 +31,4 @@ class C1 { } export = C1; // Should work, private type I1 of visible class C1 only used in private member m1. -+let qt8 = new C1(); -\ No newline at end of file -diff --git a/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension1.ts b/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension1.ts -new file mode 100644 -index 0000000000..83e86fc6c6 ---- /dev/null -+++ b/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension1.ts -@@ -0,0 +1,12 @@ ++let qt8 = new C1(); +\ No newline at end of file +diff --git a/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension1.ts b/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension1.ts +new file mode 100644 +index 0000000000..83e86fc6c6 +--- /dev/null ++++ b/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension1.ts +@@ -0,0 +1,12 @@ +// @moduleResolution: node12 +// @module: node12 + @@ -5297,25 +5297,25 @@ index 0000000000..83e86fc6c6 +// Extensionless relative path ES import in an ES module +import { foo } from "./foo"; // should error, suggest adding ".mjs" +import { baz } from "./baz"; // should error, ask for extension, no extension suggestion -diff --git a/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension2.ts b/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension2.ts -new file mode 100644 -index 0000000000..0051e17401 ---- /dev/null -+++ b/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension2.ts -@@ -0,0 +1,6 @@ +diff --git a/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension2.ts b/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension2.ts +new file mode 100644 +index 0000000000..0051e17401 +--- /dev/null ++++ b/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension2.ts +@@ -0,0 +1,6 @@ +// @moduleResolution: node12 +// @module: node12 + +// @filename: /src/buzz.mts +// Extensionless relative path cjs import in an ES module -+import foo = require("./foo"); // should error, should not ask for extension -\ No newline at end of file -diff --git a/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension3.ts b/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension3.ts -new file mode 100644 -index 0000000000..2ec3ff1ad0 ---- /dev/null -+++ b/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension3.ts -@@ -0,0 +1,12 @@ ++import foo = require("./foo"); // should error, should not ask for extension +\ No newline at end of file +diff --git a/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension3.ts b/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension3.ts +new file mode 100644 +index 0000000000..2ec3ff1ad0 +--- /dev/null ++++ b/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension3.ts +@@ -0,0 +1,12 @@ +// @moduleResolution: nodenext +// @module: nodenext +// @jsx: preserve @@ -5328,12 +5328,12 @@ index 0000000000..2ec3ff1ad0 +// @filename: /src/bar.mts +// Extensionless relative path ES import in an ES module +import { foo } from "./foo"; // should error, suggest adding ".jsx" -diff --git a/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension4.ts b/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension4.ts -new file mode 100644 -index 0000000000..c1eab70f92 ---- /dev/null -+++ b/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension4.ts -@@ -0,0 +1,12 @@ +diff --git a/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension4.ts b/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension4.ts +new file mode 100644 +index 0000000000..c1eab70f92 +--- /dev/null ++++ b/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension4.ts +@@ -0,0 +1,12 @@ +// @moduleResolution: nodenext +// @module: nodenext +// @jsx: react @@ -5346,25 +5346,25 @@ index 0000000000..c1eab70f92 +// @filename: /src/bar.mts +// Extensionless relative path ES import in an ES module +import { foo } from "./foo"; // should error, suggest adding ".js" -diff --git a/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension5.ts b/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension5.ts -new file mode 100644 -index 0000000000..5053a242cd ---- /dev/null -+++ b/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension5.ts -@@ -0,0 +1,6 @@ +diff --git a/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension5.ts b/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension5.ts +new file mode 100644 +index 0000000000..5053a242cd +--- /dev/null ++++ b/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension5.ts +@@ -0,0 +1,6 @@ +// @moduleResolution: node12 +// @module: node12 + +// @filename: /src/buzz.mts +// Extensionless relative path dynamic import in an ES module -+import("./foo").then(x => x); // should error, ask for extension -\ No newline at end of file -diff --git a/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension6.ts b/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension6.ts -new file mode 100644 -index 0000000000..2a6ef2645d ---- /dev/null -+++ b/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension6.ts -@@ -0,0 +1,8 @@ ++import("./foo").then(x => x); // should error, ask for extension +\ No newline at end of file +diff --git a/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension6.ts b/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension6.ts +new file mode 100644 +index 0000000000..2a6ef2645d +--- /dev/null ++++ b/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension6.ts +@@ -0,0 +1,8 @@ +// @moduleResolution: node12 +// @module: node12 + @@ -5372,289 +5372,289 @@ index 0000000000..2a6ef2645d +// Extensionless relative path import statement in a cjs module +// Import statements are not allowed in cjs files, +// but other errors should not assume that they are allowed -+import { foo } from "./foo"; // should error, should not ask for extension -\ No newline at end of file -diff --git a/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension7.ts b/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension7.ts -new file mode 100644 -index 0000000000..3b10dd6e48 ---- /dev/null -+++ b/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension7.ts -@@ -0,0 +1,6 @@ ++import { foo } from "./foo"; // should error, should not ask for extension +\ No newline at end of file +diff --git a/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension7.ts b/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension7.ts +new file mode 100644 +index 0000000000..3b10dd6e48 +--- /dev/null ++++ b/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension7.ts +@@ -0,0 +1,6 @@ +// @moduleResolution: node12 +// @module: node12 + +// @filename: /src/bar.cts +// Extensionless relative path cjs import in a cjs module -+import foo = require("./foo"); // should error, should not ask for extension -\ No newline at end of file -diff --git a/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension8.ts b/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension8.ts -new file mode 100644 -index 0000000000..fef17b3aa1 ---- /dev/null -+++ b/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension8.ts -@@ -0,0 +1,6 @@ ++import foo = require("./foo"); // should error, should not ask for extension +\ No newline at end of file +diff --git a/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension8.ts b/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension8.ts +new file mode 100644 +index 0000000000..fef17b3aa1 +--- /dev/null ++++ b/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension8.ts +@@ -0,0 +1,6 @@ +// @moduleResolution: node12 +// @module: node12 + +// @filename: /src/bar.cts +// Extensionless relative path dynamic import in a cjs module -+import("./foo").then(x => x); // should error, ask for extension -\ No newline at end of file -diff --git a/tests/cases/conformance/externalModules/typeOnly/exportSpecifiers.ts b/tests/cases/conformance/externalModules/typeOnly/exportSpecifiers.ts -new file mode 100644 -index 0000000000..c8c584f66d ---- /dev/null -+++ b/tests/cases/conformance/externalModules/typeOnly/exportSpecifiers.ts -@@ -0,0 +1,21 @@ -+// @module: esnext -+// @declaration: true -+ -+// @Filename: /imports.ts -+import { type, as, something, foo, bar } from "./exports.js"; -+type; -+as; // Error (used in emitting position) -+something; // Error (used in emitting position) -+foo; // Error (used in emitting position) -+bar; // Error (used in emitting position) -+ -+// @Filename: /exports.ts -+const type = 0; -+const as = 0; -+const something = 0; -+export { type }; -+export { type as }; -+export { type something }; -+export { type type as foo }; -+export { type as as bar }; -+export type { type something as whatever }; // Error -diff --git a/tests/cases/conformance/externalModules/typeOnly/importDefaultNamedType/a.ts b/tests/cases/conformance/externalModules/typeOnly/importDefaultNamedType/a.ts -new file mode 100644 -index 0000000000..3e949a0611 ---- /dev/null -+++ b/tests/cases/conformance/externalModules/typeOnly/importDefaultNamedType/a.ts -@@ -0,0 +1,2 @@ ++import("./foo").then(x => x); // should error, ask for extension +\ No newline at end of file +diff --git a/tests/cases/conformance/externalModules/typeOnly/exportSpecifiers.ts b/tests/cases/conformance/externalModules/typeOnly/exportSpecifiers.ts +new file mode 100644 +index 0000000000..c8c584f66d +--- /dev/null ++++ b/tests/cases/conformance/externalModules/typeOnly/exportSpecifiers.ts +@@ -0,0 +1,21 @@ ++// @module: esnext ++// @declaration: true ++ ++// @Filename: /imports.ts ++import { type, as, something, foo, bar } from "./exports.js"; ++type; ++as; // Error (used in emitting position) ++something; // Error (used in emitting position) ++foo; // Error (used in emitting position) ++bar; // Error (used in emitting position) ++ ++// @Filename: /exports.ts ++const type = 0; ++const as = 0; ++const something = 0; ++export { type }; ++export { type as }; ++export { type something }; ++export { type type as foo }; ++export { type as as bar }; ++export type { type something as whatever }; // Error +diff --git a/tests/cases/conformance/externalModules/typeOnly/importDefaultNamedType/a.ts b/tests/cases/conformance/externalModules/typeOnly/importDefaultNamedType/a.ts +new file mode 100644 +index 0000000000..3e949a0611 +--- /dev/null ++++ b/tests/cases/conformance/externalModules/typeOnly/importDefaultNamedType/a.ts +@@ -0,0 +1,2 @@ +// @Filename: /a.ts -+export default class A {} -\ No newline at end of file -diff --git a/tests/cases/conformance/externalModules/typeOnly/importDefaultNamedType/importDefaultNamedType.ts b/tests/cases/conformance/externalModules/typeOnly/importDefaultNamedType/importDefaultNamedType.ts -new file mode 100644 -index 0000000000..3bb8cdfce2 ---- /dev/null -+++ b/tests/cases/conformance/externalModules/typeOnly/importDefaultNamedType/importDefaultNamedType.ts -@@ -0,0 +1,5 @@ -+ -+ -+// @Filename: /b.ts -+import type from './a'; -+type; -\ No newline at end of file -diff --git a/tests/cases/conformance/externalModules/typeOnly/importSpecifiers1.ts b/tests/cases/conformance/externalModules/typeOnly/importSpecifiers1.ts -new file mode 100644 -index 0000000000..348784befd ---- /dev/null -+++ b/tests/cases/conformance/externalModules/typeOnly/importSpecifiers1.ts -@@ -0,0 +1,46 @@ -+// @module: esnext -+// @declaration: true -+ -+// @Filename: /mod.ts -+export const as = 0; -+export const type = 0; -+export const something = 0; -+ -+// @Filename: /a.ts -+import { type } from "./mod.js"; -+import { type as } from "./mod.js"; -+type; -+as; // Error (used in emitting position) -+ -+// @Filename: /b.ts -+import { type as as } from "./mod.js"; -+type; // Error (cannot resolve name) -+as; -+ -+// @Filename: /c.ts -+import { type as as as } from "./mod.js"; -+type; // Error (cannot resolve name) -+as; // Error (used in emitting position) -+ -+// @Filename: /d.ts -+import { type as as as as } from "./mod.js"; // Error -+ -+// @Filename: /e.ts -+import { type type as as } from "./mod.js"; -+import { type as type } from "./mod.js"; -+type; -+as; // Error (used in emitting position) -+ -+// @Filename: /f.ts -+import { type import } from "./mod.js"; // Error -+import { type as export } from "./mod.js"; // Error -+import { type as as export } from "./mod.js"; // Error -+import { type something } from "./mod.js"; -+import { type something as s } from "./mod.js"; -+type; // Error (cannot resolve name) -+as; // Error (cannot resolve name) -+something; // Error (used in emitting position) -+s; // Error (used in emitting position) -+ -+// @Filename: /g.ts -+import type { type something } from "./mod.js"; // Error -diff --git a/tests/cases/conformance/externalModules/typeOnly/preserveValueImports.ts b/tests/cases/conformance/externalModules/typeOnly/preserveValueImports.ts -new file mode 100644 -index 0000000000..66326cb98b ---- /dev/null -+++ b/tests/cases/conformance/externalModules/typeOnly/preserveValueImports.ts -@@ -0,0 +1,28 @@ -+// @preserveValueImports: true -+// @isolatedModules: true,false -+// @module: esnext -+ -+// @Filename: a.ts -+export default {}; -+export const b = 0; -+export const c = 1; -+export interface D {} -+ -+// @Filename: b.ts -+import a, { b, c, D } from "./a"; -+ -+// @Filename: c.ts -+import * as a from "./a"; -+ -+// @Filename: d.ts -+export = {}; -+ -+// @Filename: e.ts -+import D = require("./d"); -+import DD = require("./d"); -+DD; -+ -+// @Filename: f.ts -+import type a from "./a"; -+import { b, c } from "./a"; -+b; -diff --git a/tests/cases/conformance/externalModules/typeOnly/preserveValueImports_errors.ts b/tests/cases/conformance/externalModules/typeOnly/preserveValueImports_errors.ts -new file mode 100644 -index 0000000000..fc2a3612e7 ---- /dev/null -+++ b/tests/cases/conformance/externalModules/typeOnly/preserveValueImports_errors.ts -@@ -0,0 +1,47 @@ -+// @preserveValueImports: true -+// @isolatedModules: true,false -+// @module: esnext -+ -+// @Filename: a.ts -+export type A = {}; -+export type { A as default }; -+ -+// @Filename: b.ts -+class B {}; -+export type { B, B as default }; -+ -+// @Filename: c.ts -+import DefaultA from "./a"; -+import { A } from "./a"; -+import DefaultB from "./b"; -+import { B } from "./b"; -+ -+// @Filename: c.fixed.ts -+import type DefaultA from "./a"; -+import type { A } from "./a"; -+import type DefaultB from "./b"; -+import type { B } from "./b"; -+ -+// @Filename: d.ts -+export { A as AA } from "./a"; -+export { B as BB } from "./b"; -+ -+// @Filename: d.fixed.ts -+export type { A as AA } from "./a"; -+export type { B as BB } from "./b"; -+ -+// @Filename: e.ts -+import { AA, BB } from "./d"; -+ -+// @Filename: e.fixed.ts -+import type { AA, BB } from "./d"; -+ -+// @Filename: f.ts -+import type { A } from "./a"; -+import type { B } from "./b"; -+export { A, B as BB }; -+ -+// @Filename: f.fixed.ts -+import type { A } from "./a"; -+import type { B } from "./b"; -+export type { A, B as BB }; -diff --git a/tests/cases/conformance/externalModules/typeOnly/preserveValueImports_importsNotUsedAsValues.ts b/tests/cases/conformance/externalModules/typeOnly/preserveValueImports_importsNotUsedAsValues.ts -new file mode 100644 -index 0000000000..4797a30727 ---- /dev/null -+++ b/tests/cases/conformance/externalModules/typeOnly/preserveValueImports_importsNotUsedAsValues.ts -@@ -0,0 +1,14 @@ -+// @preserveValueImports: true -+// @importsNotUsedAsValues: preserve -+// @module: esnext -+ -+// @Filename: /mod.ts -+export type A = unknown; -+export type B = never; -+export type C = any; -+ -+// @Filename: /index.ts -+import { type A, type B, type C } from "./mod.js"; -+ -+// @Filename: /reexport.ts -+export { type A, type B, type C } from "./mod.js"; -diff --git a/tests/cases/conformance/externalModules/typeOnly/preserveValueImports_mixedImports.ts b/tests/cases/conformance/externalModules/typeOnly/preserveValueImports_mixedImports.ts -new file mode 100644 -index 0000000000..85cbae30f7 ---- /dev/null -+++ b/tests/cases/conformance/externalModules/typeOnly/preserveValueImports_mixedImports.ts -@@ -0,0 +1,13 @@ -+// @preserveValueImports: true -+// @isolatedModules: true -+// @module: es2015 -+ -+// @Filename: /exports.ts -+export function Component() {} -+export interface ComponentProps {} -+ -+// @Filename: /index.ts -+import { Component, ComponentProps } from "./exports.js"; -+ -+// @Filename: /index.fixed.ts -+import { Component, type ComponentProps } from "./exports.js"; -diff --git a/tests/cases/conformance/externalModules/typeOnly/preserveValueImports_module.ts b/tests/cases/conformance/externalModules/typeOnly/preserveValueImports_module.ts -new file mode 100644 -index 0000000000..27f78f707c ---- /dev/null -+++ b/tests/cases/conformance/externalModules/typeOnly/preserveValueImports_module.ts -@@ -0,0 +1,4 @@ -+// @preserveValueImports: true -+// @module: amd,system,commonjs,es2015 -+// @noTypesAndSymbols: true -+export {}; -diff --git a/tests/cases/conformance/importAssertion/importAssertion1.ts b/tests/cases/conformance/importAssertion/importAssertion1.ts -new file mode 100644 -index 0000000000..b547158cf1 ---- /dev/null -+++ b/tests/cases/conformance/importAssertion/importAssertion1.ts -@@ -0,0 +1,37 @@ ++export default class A {} +\ No newline at end of file +diff --git a/tests/cases/conformance/externalModules/typeOnly/importDefaultNamedType/importDefaultNamedType.ts b/tests/cases/conformance/externalModules/typeOnly/importDefaultNamedType/importDefaultNamedType.ts +new file mode 100644 +index 0000000000..3bb8cdfce2 +--- /dev/null ++++ b/tests/cases/conformance/externalModules/typeOnly/importDefaultNamedType/importDefaultNamedType.ts +@@ -0,0 +1,5 @@ ++ ++ ++// @Filename: /b.ts ++import type from './a'; ++type; +\ No newline at end of file +diff --git a/tests/cases/conformance/externalModules/typeOnly/importSpecifiers1.ts b/tests/cases/conformance/externalModules/typeOnly/importSpecifiers1.ts +new file mode 100644 +index 0000000000..348784befd +--- /dev/null ++++ b/tests/cases/conformance/externalModules/typeOnly/importSpecifiers1.ts +@@ -0,0 +1,46 @@ ++// @module: esnext +// @declaration: true -+// @target: es2015 -+// @module: es2015, commonjs, esnext + -+// @filename: 0.ts -+export const a = 1; -+export const b = 2; ++// @Filename: /mod.ts ++export const as = 0; ++export const type = 0; ++export const something = 0; + -+// @filename: 1.ts -+import './0' assert { type: "json" } -+import { a, b } from './0' assert { "type": "json" } -+import * as foo from './0' assert { type: "json" } -+a; ++// @Filename: /a.ts ++import { type } from "./mod.js"; ++import { type as } from "./mod.js"; ++type; ++as; // Error (used in emitting position) ++ ++// @Filename: /b.ts ++import { type as as } from "./mod.js"; ++type; // Error (cannot resolve name) ++as; ++ ++// @Filename: /c.ts ++import { type as as as } from "./mod.js"; ++type; // Error (cannot resolve name) ++as; // Error (used in emitting position) ++ ++// @Filename: /d.ts ++import { type as as as as } from "./mod.js"; // Error ++ ++// @Filename: /e.ts ++import { type type as as } from "./mod.js"; ++import { type as type } from "./mod.js"; ++type; ++as; // Error (used in emitting position) ++ ++// @Filename: /f.ts ++import { type import } from "./mod.js"; // Error ++import { type as export } from "./mod.js"; // Error ++import { type as as export } from "./mod.js"; // Error ++import { type something } from "./mod.js"; ++import { type something as s } from "./mod.js"; ++type; // Error (cannot resolve name) ++as; // Error (cannot resolve name) ++something; // Error (used in emitting position) ++s; // Error (used in emitting position) ++ ++// @Filename: /g.ts ++import type { type something } from "./mod.js"; // Error +diff --git a/tests/cases/conformance/externalModules/typeOnly/preserveValueImports.ts b/tests/cases/conformance/externalModules/typeOnly/preserveValueImports.ts +new file mode 100644 +index 0000000000..66326cb98b +--- /dev/null ++++ b/tests/cases/conformance/externalModules/typeOnly/preserveValueImports.ts +@@ -0,0 +1,28 @@ ++// @preserveValueImports: true ++// @isolatedModules: true,false ++// @module: esnext ++ ++// @Filename: a.ts ++export default {}; ++export const b = 0; ++export const c = 1; ++export interface D {} ++ ++// @Filename: b.ts ++import a, { b, c, D } from "./a"; ++ ++// @Filename: c.ts ++import * as a from "./a"; ++ ++// @Filename: d.ts ++export = {}; ++ ++// @Filename: e.ts ++import D = require("./d"); ++import DD = require("./d"); ++DD; ++ ++// @Filename: f.ts ++import type a from "./a"; ++import { b, c } from "./a"; ++b; +diff --git a/tests/cases/conformance/externalModules/typeOnly/preserveValueImports_errors.ts b/tests/cases/conformance/externalModules/typeOnly/preserveValueImports_errors.ts +new file mode 100644 +index 0000000000..fc2a3612e7 +--- /dev/null ++++ b/tests/cases/conformance/externalModules/typeOnly/preserveValueImports_errors.ts +@@ -0,0 +1,47 @@ ++// @preserveValueImports: true ++// @isolatedModules: true,false ++// @module: esnext ++ ++// @Filename: a.ts ++export type A = {}; ++export type { A as default }; ++ ++// @Filename: b.ts ++class B {}; ++export type { B, B as default }; ++ ++// @Filename: c.ts ++import DefaultA from "./a"; ++import { A } from "./a"; ++import DefaultB from "./b"; ++import { B } from "./b"; ++ ++// @Filename: c.fixed.ts ++import type DefaultA from "./a"; ++import type { A } from "./a"; ++import type DefaultB from "./b"; ++import type { B } from "./b"; ++ ++// @Filename: d.ts ++export { A as AA } from "./a"; ++export { B as BB } from "./b"; ++ ++// @Filename: d.fixed.ts ++export type { A as AA } from "./a"; ++export type { B as BB } from "./b"; ++ ++// @Filename: e.ts ++import { AA, BB } from "./d"; ++ ++// @Filename: e.fixed.ts ++import type { AA, BB } from "./d"; ++ ++// @Filename: f.ts ++import type { A } from "./a"; ++import type { B } from "./b"; ++export { A, B as BB }; ++ ++// @Filename: f.fixed.ts ++import type { A } from "./a"; ++import type { B } from "./b"; ++export type { A, B as BB }; +diff --git a/tests/cases/conformance/externalModules/typeOnly/preserveValueImports_importsNotUsedAsValues.ts b/tests/cases/conformance/externalModules/typeOnly/preserveValueImports_importsNotUsedAsValues.ts +new file mode 100644 +index 0000000000..4797a30727 +--- /dev/null ++++ b/tests/cases/conformance/externalModules/typeOnly/preserveValueImports_importsNotUsedAsValues.ts +@@ -0,0 +1,14 @@ ++// @preserveValueImports: true ++// @importsNotUsedAsValues: preserve ++// @module: esnext ++ ++// @Filename: /mod.ts ++export type A = unknown; ++export type B = never; ++export type C = any; ++ ++// @Filename: /index.ts ++import { type A, type B, type C } from "./mod.js"; ++ ++// @Filename: /reexport.ts ++export { type A, type B, type C } from "./mod.js"; +diff --git a/tests/cases/conformance/externalModules/typeOnly/preserveValueImports_mixedImports.ts b/tests/cases/conformance/externalModules/typeOnly/preserveValueImports_mixedImports.ts +new file mode 100644 +index 0000000000..85cbae30f7 +--- /dev/null ++++ b/tests/cases/conformance/externalModules/typeOnly/preserveValueImports_mixedImports.ts +@@ -0,0 +1,13 @@ ++// @preserveValueImports: true ++// @isolatedModules: true ++// @module: es2015 ++ ++// @Filename: /exports.ts ++export function Component() {} ++export interface ComponentProps {} ++ ++// @Filename: /index.ts ++import { Component, ComponentProps } from "./exports.js"; ++ ++// @Filename: /index.fixed.ts ++import { Component, type ComponentProps } from "./exports.js"; +diff --git a/tests/cases/conformance/externalModules/typeOnly/preserveValueImports_module.ts b/tests/cases/conformance/externalModules/typeOnly/preserveValueImports_module.ts +new file mode 100644 +index 0000000000..27f78f707c +--- /dev/null ++++ b/tests/cases/conformance/externalModules/typeOnly/preserveValueImports_module.ts +@@ -0,0 +1,4 @@ ++// @preserveValueImports: true ++// @module: amd,system,commonjs,es2015 ++// @noTypesAndSymbols: true ++export {}; +diff --git a/tests/cases/conformance/importAssertion/importAssertion1.ts b/tests/cases/conformance/importAssertion/importAssertion1.ts +new file mode 100644 +index 0000000000..b547158cf1 +--- /dev/null ++++ b/tests/cases/conformance/importAssertion/importAssertion1.ts +@@ -0,0 +1,37 @@ ++// @declaration: true ++// @target: es2015 ++// @module: es2015, commonjs, esnext ++ ++// @filename: 0.ts ++export const a = 1; ++export const b = 2; ++ ++// @filename: 1.ts ++import './0' assert { type: "json" } ++import { a, b } from './0' assert { "type": "json" } ++import * as foo from './0' assert { type: "json" } ++a; +b; +foo.a; +foo.b; @@ -5679,12 +5679,12 @@ index 0000000000..b547158cf1 +const g = import('./0', {}, {}) +const h = import('./0', { assert: { type: "json" }},) + -diff --git a/tests/cases/conformance/importAssertion/importAssertion2.ts b/tests/cases/conformance/importAssertion/importAssertion2.ts -new file mode 100644 -index 0000000000..42a26af43e ---- /dev/null -+++ b/tests/cases/conformance/importAssertion/importAssertion2.ts -@@ -0,0 +1,17 @@ +diff --git a/tests/cases/conformance/importAssertion/importAssertion2.ts b/tests/cases/conformance/importAssertion/importAssertion2.ts +new file mode 100644 +index 0000000000..42a26af43e +--- /dev/null ++++ b/tests/cases/conformance/importAssertion/importAssertion2.ts +@@ -0,0 +1,17 @@ +// @declaration: true +// @target: es2015 +// @module: es2015, commonjs, esnext @@ -5702,12 +5702,12 @@ index 0000000000..42a26af43e +// @filename: 2.ts +export { a, b } from './0' assert {} +export { a as c, b as d } from './0' assert { a: "a", b: "b", c: "c" } -diff --git a/tests/cases/conformance/importAssertion/importAssertion3.ts b/tests/cases/conformance/importAssertion/importAssertion3.ts -new file mode 100644 -index 0000000000..28479378b1 ---- /dev/null -+++ b/tests/cases/conformance/importAssertion/importAssertion3.ts -@@ -0,0 +1,15 @@ +diff --git a/tests/cases/conformance/importAssertion/importAssertion3.ts b/tests/cases/conformance/importAssertion/importAssertion3.ts +new file mode 100644 +index 0000000000..28479378b1 +--- /dev/null ++++ b/tests/cases/conformance/importAssertion/importAssertion3.ts +@@ -0,0 +1,15 @@ +// @declaration: true +// @target: es2015 +// @module: es2015, esnext @@ -5723,84 +5723,84 @@ index 0000000000..28479378b1 +import type { I } from './0' assert { type: "json" } +import type * as foo from './0' assert { type: "json" } + -diff --git a/tests/cases/conformance/importAssertion/importAssertion4.ts b/tests/cases/conformance/importAssertion/importAssertion4.ts -new file mode 100644 -index 0000000000..242d7dd375 ---- /dev/null -+++ b/tests/cases/conformance/importAssertion/importAssertion4.ts -@@ -0,0 +1 @@ -+import * as f from "./first" assert -diff --git a/tests/cases/conformance/importAssertion/importAssertion5.ts b/tests/cases/conformance/importAssertion/importAssertion5.ts -new file mode 100644 -index 0000000000..ef09d84e66 ---- /dev/null -+++ b/tests/cases/conformance/importAssertion/importAssertion5.ts -@@ -0,0 +1 @@ -+import * as f from "./first" assert { -diff --git a/tests/cases/conformance/interfaces/declarationMerging/mergedInterfacesWithMultipleBases3.ts b/tests/cases/conformance/interfaces/declarationMerging/mergedInterfacesWithMultipleBases3.ts -index e3d076707b..8b95f5e240 100644 ---- a/tests/cases/conformance/interfaces/declarationMerging/mergedInterfacesWithMultipleBases3.ts -+++ b/tests/cases/conformance/interfaces/declarationMerging/mergedInterfacesWithMultipleBases3.ts -@@ -32,4 +32,8 @@ class D implements A { +diff --git a/tests/cases/conformance/importAssertion/importAssertion4.ts b/tests/cases/conformance/importAssertion/importAssertion4.ts +new file mode 100644 +index 0000000000..242d7dd375 +--- /dev/null ++++ b/tests/cases/conformance/importAssertion/importAssertion4.ts +@@ -0,0 +1 @@ ++import * as f from "./first" assert +diff --git a/tests/cases/conformance/importAssertion/importAssertion5.ts b/tests/cases/conformance/importAssertion/importAssertion5.ts +new file mode 100644 +index 0000000000..ef09d84e66 +--- /dev/null ++++ b/tests/cases/conformance/importAssertion/importAssertion5.ts +@@ -0,0 +1 @@ ++import * as f from "./first" assert { +diff --git a/tests/cases/conformance/interfaces/declarationMerging/mergedInterfacesWithMultipleBases3.ts b/tests/cases/conformance/interfaces/declarationMerging/mergedInterfacesWithMultipleBases3.ts +index e3d076707b..8b95f5e240 100644 +--- a/tests/cases/conformance/interfaces/declarationMerging/mergedInterfacesWithMultipleBases3.ts ++++ b/tests/cases/conformance/interfaces/declarationMerging/mergedInterfacesWithMultipleBases3.ts +@@ -32,4 +32,8 @@ class D implements A { d: string; y: boolean; z: boolean; --} -\ No newline at end of file +-} +\ No newline at end of file +} +let ww1 = new C(); +let ww2 = new C2(); +let ww3 = new C3(); +let ww4 = new C4(); -diff --git a/tests/cases/conformance/interfaces/interfaceDeclarations/interfaceExtendsObjectIntersection.ts b/tests/cases/conformance/interfaces/interfaceDeclarations/interfaceExtendsObjectIntersection.ts -index 003976a2b2..1ab2942311 100644 ---- a/tests/cases/conformance/interfaces/interfaceDeclarations/interfaceExtendsObjectIntersection.ts -+++ b/tests/cases/conformance/interfaces/interfaceDeclarations/interfaceExtendsObjectIntersection.ts -@@ -53,3 +53,15 @@ class C20 extends Constructor>() { x: string } - class C21 extends Constructor>() { x: string } - class C22 extends Constructor>() { x: string } - class C23 extends Constructor>() { x: string } -+let c1 = new C1(); -+let c2 = new C2(); -+let c3 = new C3(); -+let c4 = new C4(); -+let c5 = new C5(); -+let c6 = new C6(); -+let c7 = new C7(); -+let cx = new CX(); -+let c20 = new C20(); -+let c21 = new C21(); -+let c22 = new C22(); -+let c23 = new C23(); -\ No newline at end of file -diff --git a/tests/cases/conformance/interfaces/interfaceDeclarations/interfaceWithPropertyOfEveryType.ts b/tests/cases/conformance/interfaces/interfaceDeclarations/interfaceWithPropertyOfEveryType.ts -index 6979b40579..20d877f7a2 100644 ---- a/tests/cases/conformance/interfaces/interfaceDeclarations/interfaceWithPropertyOfEveryType.ts -+++ b/tests/cases/conformance/interfaces/interfaceDeclarations/interfaceWithPropertyOfEveryType.ts -@@ -39,4 +39,5 @@ var a: Foo = { +diff --git a/tests/cases/conformance/interfaces/interfaceDeclarations/interfaceExtendsObjectIntersection.ts b/tests/cases/conformance/interfaces/interfaceDeclarations/interfaceExtendsObjectIntersection.ts +index 003976a2b2..1ab2942311 100644 +--- a/tests/cases/conformance/interfaces/interfaceDeclarations/interfaceExtendsObjectIntersection.ts ++++ b/tests/cases/conformance/interfaces/interfaceDeclarations/interfaceExtendsObjectIntersection.ts +@@ -53,3 +53,15 @@ class C20 extends Constructor>() { x: string } + class C21 extends Constructor>() { x: string } + class C22 extends Constructor>() { x: string } + class C23 extends Constructor>() { x: string } ++let c1 = new C1(); ++let c2 = new C2(); ++let c3 = new C3(); ++let c4 = new C4(); ++let c5 = new C5(); ++let c6 = new C6(); ++let c7 = new C7(); ++let cx = new CX(); ++let c20 = new C20(); ++let c21 = new C21(); ++let c22 = new C22(); ++let c23 = new C23(); +\ No newline at end of file +diff --git a/tests/cases/conformance/interfaces/interfaceDeclarations/interfaceWithPropertyOfEveryType.ts b/tests/cases/conformance/interfaces/interfaceDeclarations/interfaceWithPropertyOfEveryType.ts +index 6979b40579..20d877f7a2 100644 +--- a/tests/cases/conformance/interfaces/interfaceDeclarations/interfaceWithPropertyOfEveryType.ts ++++ b/tests/cases/conformance/interfaces/interfaceDeclarations/interfaceWithPropertyOfEveryType.ts +@@ -39,4 +39,5 @@ var a: Foo = { m: M, n: {}, o: E.A --} -\ No newline at end of file -+} -+let cc = new C(); -\ No newline at end of file -diff --git a/tests/cases/conformance/internalModules/DeclarationMerging/AmbientModuleAndAmbientWithSameNameAndCommonRoot.ts b/tests/cases/conformance/internalModules/DeclarationMerging/AmbientModuleAndAmbientWithSameNameAndCommonRoot.ts -index 12f51f90a7..e1af2f0ac6 100644 ---- a/tests/cases/conformance/internalModules/DeclarationMerging/AmbientModuleAndAmbientWithSameNameAndCommonRoot.ts -+++ b/tests/cases/conformance/internalModules/DeclarationMerging/AmbientModuleAndAmbientWithSameNameAndCommonRoot.ts -@@ -21,4 +21,3 @@ declare module A { +-} +\ No newline at end of file ++} ++let cc = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/internalModules/DeclarationMerging/AmbientModuleAndAmbientWithSameNameAndCommonRoot.ts b/tests/cases/conformance/internalModules/DeclarationMerging/AmbientModuleAndAmbientWithSameNameAndCommonRoot.ts +index 12f51f90a7..e1af2f0ac6 100644 +--- a/tests/cases/conformance/internalModules/DeclarationMerging/AmbientModuleAndAmbientWithSameNameAndCommonRoot.ts ++++ b/tests/cases/conformance/internalModules/DeclarationMerging/AmbientModuleAndAmbientWithSameNameAndCommonRoot.ts +@@ -21,4 +21,3 @@ declare module A { var p: { x: number; y: number; } var p = A.Point.Origin; var p = new A.Point(0, 0); // unexpected error here, bug 840000 -- -\ No newline at end of file -diff --git a/tests/cases/conformance/internalModules/DeclarationMerging/AmbientModuleAndNonAmbientClassWithSameNameAndCommonRoot.ts b/tests/cases/conformance/internalModules/DeclarationMerging/AmbientModuleAndNonAmbientClassWithSameNameAndCommonRoot.ts -index e923f1f002..b9bb58e89e 100644 ---- a/tests/cases/conformance/internalModules/DeclarationMerging/AmbientModuleAndNonAmbientClassWithSameNameAndCommonRoot.ts -+++ b/tests/cases/conformance/internalModules/DeclarationMerging/AmbientModuleAndNonAmbientClassWithSameNameAndCommonRoot.ts -@@ -13,6 +13,7 @@ module A { +- +\ No newline at end of file +diff --git a/tests/cases/conformance/internalModules/DeclarationMerging/AmbientModuleAndNonAmbientClassWithSameNameAndCommonRoot.ts b/tests/cases/conformance/internalModules/DeclarationMerging/AmbientModuleAndNonAmbientClassWithSameNameAndCommonRoot.ts +index e923f1f002..b9bb58e89e 100644 +--- a/tests/cases/conformance/internalModules/DeclarationMerging/AmbientModuleAndNonAmbientClassWithSameNameAndCommonRoot.ts ++++ b/tests/cases/conformance/internalModules/DeclarationMerging/AmbientModuleAndNonAmbientClassWithSameNameAndCommonRoot.ts +@@ -13,6 +13,7 @@ module A { export class Point { constructor(public x: number, public y: number) { } } @@ -5808,25 +5808,25 @@ index e923f1f002..b9bb58e89e 100644 } // @filename: test.ts -diff --git a/tests/cases/conformance/internalModules/DeclarationMerging/ClassAndModuleThatMergeWithStaticFunctionAndNonExportedFunctionThatShareAName.ts b/tests/cases/conformance/internalModules/DeclarationMerging/ClassAndModuleThatMergeWithStaticFunctionAndNonExportedFunctionThatShareAName.ts -index d285d9b422..9dca12bc2e 100644 ---- a/tests/cases/conformance/internalModules/DeclarationMerging/ClassAndModuleThatMergeWithStaticFunctionAndNonExportedFunctionThatShareAName.ts -+++ b/tests/cases/conformance/internalModules/DeclarationMerging/ClassAndModuleThatMergeWithStaticFunctionAndNonExportedFunctionThatShareAName.ts -@@ -19,4 +19,6 @@ module A { +diff --git a/tests/cases/conformance/internalModules/DeclarationMerging/ClassAndModuleThatMergeWithStaticFunctionAndNonExportedFunctionThatShareAName.ts b/tests/cases/conformance/internalModules/DeclarationMerging/ClassAndModuleThatMergeWithStaticFunctionAndNonExportedFunctionThatShareAName.ts +index d285d9b422..9dca12bc2e 100644 +--- a/tests/cases/conformance/internalModules/DeclarationMerging/ClassAndModuleThatMergeWithStaticFunctionAndNonExportedFunctionThatShareAName.ts ++++ b/tests/cases/conformance/internalModules/DeclarationMerging/ClassAndModuleThatMergeWithStaticFunctionAndNonExportedFunctionThatShareAName.ts +@@ -19,4 +19,6 @@ module A { export module Point { function Origin() { return ""; }// not an error since not exported } --} -\ No newline at end of file +-} +\ No newline at end of file + let pp = new Point(1,1); +} -+let pp1 = new Point(1,1); -\ No newline at end of file -diff --git a/tests/cases/conformance/internalModules/DeclarationMerging/TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts b/tests/cases/conformance/internalModules/DeclarationMerging/TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts -index 7d88bf6292..71433fbef5 100644 ---- a/tests/cases/conformance/internalModules/DeclarationMerging/TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts -+++ b/tests/cases/conformance/internalModules/DeclarationMerging/TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts -@@ -3,6 +3,7 @@ module A { ++let pp1 = new Point(1,1); +\ No newline at end of file +diff --git a/tests/cases/conformance/internalModules/DeclarationMerging/TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts b/tests/cases/conformance/internalModules/DeclarationMerging/TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts +index 7d88bf6292..71433fbef5 100644 +--- a/tests/cases/conformance/internalModules/DeclarationMerging/TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts ++++ b/tests/cases/conformance/internalModules/DeclarationMerging/TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts +@@ -3,6 +3,7 @@ module A { x: number; y: number; } @@ -5834,7 +5834,7 @@ index 7d88bf6292..71433fbef5 100644 } module A { -@@ -11,6 +12,7 @@ module A { +@@ -11,6 +12,7 @@ module A { return { x: p.x, y: p.y }; } } @@ -5842,7 +5842,7 @@ index 7d88bf6292..71433fbef5 100644 } // ensure merges as expected -@@ -21,6 +23,7 @@ module X.Y.Z { +@@ -21,6 +23,7 @@ module X.Y.Z { export class Line { length: number; } @@ -5850,7 +5850,7 @@ index 7d88bf6292..71433fbef5 100644 } module X { -@@ -29,6 +32,7 @@ module X { +@@ -29,6 +32,7 @@ module X { class Line { name: string; } @@ -5858,11 +5858,11 @@ index 7d88bf6292..71433fbef5 100644 } } } -diff --git a/tests/cases/conformance/internalModules/DeclarationMerging/TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts b/tests/cases/conformance/internalModules/DeclarationMerging/TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts -index 449e6e76a2..a0c9072675 100644 ---- a/tests/cases/conformance/internalModules/DeclarationMerging/TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts -+++ b/tests/cases/conformance/internalModules/DeclarationMerging/TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts -@@ -16,6 +16,7 @@ module X.Y.Z { +diff --git a/tests/cases/conformance/internalModules/DeclarationMerging/TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts b/tests/cases/conformance/internalModules/DeclarationMerging/TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts +index 449e6e76a2..a0c9072675 100644 +--- a/tests/cases/conformance/internalModules/DeclarationMerging/TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts ++++ b/tests/cases/conformance/internalModules/DeclarationMerging/TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts +@@ -16,6 +16,7 @@ module X.Y.Z { export class Line { length: number; } @@ -5870,7 +5870,7 @@ index 449e6e76a2..a0c9072675 100644 } module X { -@@ -24,6 +25,7 @@ module X { +@@ -24,6 +25,7 @@ module X { export class Line { name: string; } @@ -5878,11 +5878,11 @@ index 449e6e76a2..a0c9072675 100644 } } } -diff --git a/tests/cases/conformance/internalModules/codeGeneration/exportCodeGen.ts b/tests/cases/conformance/internalModules/codeGeneration/exportCodeGen.ts -index 02398acbbb..321d84cd56 100644 ---- a/tests/cases/conformance/internalModules/codeGeneration/exportCodeGen.ts -+++ b/tests/cases/conformance/internalModules/codeGeneration/exportCodeGen.ts -@@ -39,6 +39,7 @@ module E { +diff --git a/tests/cases/conformance/internalModules/codeGeneration/exportCodeGen.ts b/tests/cases/conformance/internalModules/codeGeneration/exportCodeGen.ts +index 02398acbbb..321d84cd56 100644 +--- a/tests/cases/conformance/internalModules/codeGeneration/exportCodeGen.ts ++++ b/tests/cases/conformance/internalModules/codeGeneration/exportCodeGen.ts +@@ -39,6 +39,7 @@ module E { export module M { export var x = 42; } @@ -5890,18 +5890,18 @@ index 02398acbbb..321d84cd56 100644 } // validate all exportable statements, -@@ -51,4 +52,5 @@ module F { +@@ -51,4 +52,5 @@ module F { module M { var x = 42; } + let c2 = new C(); - } -\ No newline at end of file -diff --git a/tests/cases/conformance/internalModules/codeGeneration/nameCollision.ts b/tests/cases/conformance/internalModules/codeGeneration/nameCollision.ts -index aef48103cd..14d12af759 100644 ---- a/tests/cases/conformance/internalModules/codeGeneration/nameCollision.ts -+++ b/tests/cases/conformance/internalModules/codeGeneration/nameCollision.ts -@@ -15,6 +15,7 @@ module B { + } +\ No newline at end of file +diff --git a/tests/cases/conformance/internalModules/codeGeneration/nameCollision.ts b/tests/cases/conformance/internalModules/codeGeneration/nameCollision.ts +index aef48103cd..14d12af759 100644 +--- a/tests/cases/conformance/internalModules/codeGeneration/nameCollision.ts ++++ b/tests/cases/conformance/internalModules/codeGeneration/nameCollision.ts +@@ -15,6 +15,7 @@ module B { class B { name: string; } @@ -5909,236 +5909,236 @@ index aef48103cd..14d12af759 100644 } module X { -diff --git a/tests/cases/conformance/jsdoc/constructorTagOnClassConstructor.ts b/tests/cases/conformance/jsdoc/constructorTagOnClassConstructor.ts -index 6d2f3780ee..72a97ff055 100644 ---- a/tests/cases/conformance/jsdoc/constructorTagOnClassConstructor.ts -+++ b/tests/cases/conformance/jsdoc/constructorTagOnClassConstructor.ts -@@ -11,4 +11,6 @@ export class Beta { - } - } - --const arr = [Alpha, Beta]; -+// const arr = [Alpha, Beta]; -+let aa = new Alpha(); -+let be = new Beta(); -\ No newline at end of file -diff --git a/tests/cases/conformance/jsdoc/declarations/jsDeclarationsSubclassWithExplicitNoArgumentConstructor.ts b/tests/cases/conformance/jsdoc/declarations/jsDeclarationsSubclassWithExplicitNoArgumentConstructor.ts -index eb609720d7..b0bf85be74 100644 ---- a/tests/cases/conformance/jsdoc/declarations/jsDeclarationsSubclassWithExplicitNoArgumentConstructor.ts -+++ b/tests/cases/conformance/jsdoc/declarations/jsDeclarationsSubclassWithExplicitNoArgumentConstructor.ts -@@ -16,4 +16,5 @@ export class Sub extends Super { +diff --git a/tests/cases/conformance/jsdoc/constructorTagOnClassConstructor.ts b/tests/cases/conformance/jsdoc/constructorTagOnClassConstructor.ts +index 6d2f3780ee..72a97ff055 100644 +--- a/tests/cases/conformance/jsdoc/constructorTagOnClassConstructor.ts ++++ b/tests/cases/conformance/jsdoc/constructorTagOnClassConstructor.ts +@@ -11,4 +11,6 @@ export class Beta { + } + } + +-const arr = [Alpha, Beta]; ++// const arr = [Alpha, Beta]; ++let aa = new Alpha(); ++let be = new Beta(); +\ No newline at end of file +diff --git a/tests/cases/conformance/jsdoc/declarations/jsDeclarationsSubclassWithExplicitNoArgumentConstructor.ts b/tests/cases/conformance/jsdoc/declarations/jsDeclarationsSubclassWithExplicitNoArgumentConstructor.ts +index eb609720d7..b0bf85be74 100644 +--- a/tests/cases/conformance/jsdoc/declarations/jsDeclarationsSubclassWithExplicitNoArgumentConstructor.ts ++++ b/tests/cases/conformance/jsdoc/declarations/jsDeclarationsSubclassWithExplicitNoArgumentConstructor.ts +@@ -16,4 +16,5 @@ export class Sub extends Super { constructor() { super('first', 'second'); } --} -\ No newline at end of file -+} -+let ss = new Sub(); -\ No newline at end of file -diff --git a/tests/cases/conformance/jsdoc/declarations/jsDeclarationsThisTypes.ts b/tests/cases/conformance/jsdoc/declarations/jsDeclarationsThisTypes.ts -index bc2eae7dac..29ba837ef9 100644 ---- a/tests/cases/conformance/jsdoc/declarations/jsDeclarationsThisTypes.ts -+++ b/tests/cases/conformance/jsdoc/declarations/jsDeclarationsThisTypes.ts -@@ -14,4 +14,6 @@ export class A { +-} +\ No newline at end of file ++} ++let ss = new Sub(); +\ No newline at end of file +diff --git a/tests/cases/conformance/jsdoc/declarations/jsDeclarationsThisTypes.ts b/tests/cases/conformance/jsdoc/declarations/jsDeclarationsThisTypes.ts +index bc2eae7dac..29ba837ef9 100644 +--- a/tests/cases/conformance/jsdoc/declarations/jsDeclarationsThisTypes.ts ++++ b/tests/cases/conformance/jsdoc/declarations/jsDeclarationsThisTypes.ts +@@ -14,4 +14,6 @@ export class A { export default class Base extends A { // This method is required to reproduce #35932 verify() { } --} -\ No newline at end of file -+} -+ -+let b = new Base(); -\ No newline at end of file -diff --git a/tests/cases/conformance/jsdoc/enumTagImported/enumTagImported.ts b/tests/cases/conformance/jsdoc/enumTagImported/enumTagImported.ts -new file mode 100644 -index 0000000000..859c60103b ---- /dev/null -+++ b/tests/cases/conformance/jsdoc/enumTagImported/enumTagImported.ts -@@ -0,0 +1,23 @@ -+// @allowJs: true -+// @checkJs: true -+// @noEmit: true -+// @Filename: type.js -+/** @typedef {import("./mod1").TestEnum} TE */ -+/** @type {TE} */ -+const test = 'add' -+/** @type {import("./mod1").TestEnum} */ -+const tost = 'remove' -+ -+// @Filename: value.js -+import { TestEnum } from "./mod1" -+/** @type {TestEnum} */ -+const tist = TestEnum.ADD -+ -+ -+// @Filename: mod1.js -+ -+/** @enum {string} */ -+// export const TestEnum = { -+// ADD: 'add', -+// REMOVE: 'remove' -+// } -diff --git a/tests/cases/conformance/jsdoc/extendsTag1.ts b/tests/cases/conformance/jsdoc/extendsTag1.ts -index 194982760e..79b3bc7079 100644 ---- a/tests/cases/conformance/jsdoc/extendsTag1.ts -+++ b/tests/cases/conformance/jsdoc/extendsTag1.ts -@@ -8,3 +8,4 @@ - * @extends {Set} Should prefer this Set, not the Set in the heritage clause - */ - class My extends Set {} -+let q4 = new My(); -diff --git a/tests/cases/conformance/jsdoc/jsdocAugments_qualifiedName/jsdocAugments_qualifiedName.ts b/tests/cases/conformance/jsdoc/jsdocAugments_qualifiedName/jsdocAugments_qualifiedName.ts -new file mode 100644 -index 0000000000..ce4fb95ff2 ---- /dev/null -+++ b/tests/cases/conformance/jsdoc/jsdocAugments_qualifiedName/jsdocAugments_qualifiedName.ts -@@ -0,0 +1,10 @@ -+// @allowJs: true -+// @checkJs: true -+// @noEmit: true -+ -+ -+// @Filename: /b.js -+import * as a from "./a"; -+let b = a.A; -+/** @augments a.A */ -+class B {} -diff --git a/tests/cases/conformance/jsdoc/jsdocAugments_withTypeParameter.ts b/tests/cases/conformance/jsdoc/jsdocAugments_withTypeParameter.ts -index e94df03fbc..aba2b989e7 100644 ---- a/tests/cases/conformance/jsdoc/jsdocAugments_withTypeParameter.ts -+++ b/tests/cases/conformance/jsdoc/jsdocAugments_withTypeParameter.ts -@@ -12,3 +12,4 @@ class B extends A { - return this.x; - } - } -+let q7 = new B(); -\ No newline at end of file -diff --git a/tests/cases/conformance/jsdoc/jsdocImplements_namespacedInterface.ts b/tests/cases/conformance/jsdoc/jsdocImplements_namespacedInterface.ts -index c298e6685a..9af8207ba4 100644 ---- a/tests/cases/conformance/jsdoc/jsdocImplements_namespacedInterface.ts -+++ b/tests/cases/conformance/jsdoc/jsdocImplements_namespacedInterface.ts -@@ -26,3 +26,5 @@ class BAT { - return ""; - } - } -+let q1 = new B(); -+let q2 = new BAT(); -diff --git a/tests/cases/conformance/jsdoc/jsdocTemplateTagDefault.ts b/tests/cases/conformance/jsdoc/jsdocTemplateTagDefault.ts -new file mode 100644 -index 0000000000..c93359a7a6 ---- /dev/null -+++ b/tests/cases/conformance/jsdoc/jsdocTemplateTagDefault.ts -@@ -0,0 +1,71 @@ -+// @allowJs: true -+// @checkJs: true -+// @declaration: true -+// @outDir: out -+// @Filename: file.js -+ -+/** -+ * @template {string | number} [T=string] - ok: defaults are permitted -+ * @typedef {[T]} A -+ */ -+ -+/** @type {A} */ // ok, default for `T` in `A` is `string` -+const aDefault1 = [""]; -+/** @type {A} */ // error: `number` is not assignable to string` -+const aDefault2 = [0]; -+/** @type {A} */ // ok, `T` is provided for `A` -+const aString = [""]; -+/** @type {A} */ // ok, `T` is provided for `A` -+const aNumber = [0]; -+ -+/** -+ * @template T -+ * @template [U=T] - ok: default can reference earlier type parameter -+ * @typedef {[T, U]} B -+ */ -+ -+/** -+ * @template {string | number} [T] - error: default requires an `=type` -+ * @typedef {[T]} C -+ */ -+ -+/** -+ * @template {string | number} [T=] - error: default requires a `type` -+ * @typedef {[T]} D -+ */ -+ -+/** -+ * @template {string | number} [T=string] -+ * @template U - error: Required type parameters cannot follow optional type parameters -+ * @typedef {[T, U]} E -+ */ -+ -+/** -+ * @template [T=U] - error: Type parameter defaults can only reference previously declared type parameters. -+ * @template [U=T] -+ * @typedef {[T, U]} G -+ */ -+ -+/** -+ * @template T -+ * @template [U=T] - ok: default can reference earlier type parameter -+ * @param {T} a -+ * @param {U} b -+ */ -+function f1(a, b) {} -+ -+ /** -+ * @template {string | number} [T=string] -+ * @template U - error: Required type parameters cannot follow optional type parameters -+ * @param {T} a -+ * @param {U} b -+ */ -+function f2(a, b) {} -+ -+/** -+ * @template [T=U] - error: Type parameter defaults can only reference previously declared type parameters. -+ * @template [U=T] -+ * @param {T} a -+ * @param {U} b -+ */ -+function f3(a, b) {} -diff --git a/tests/cases/conformance/jsdoc/jsdocTemplateTagNameResolution.ts b/tests/cases/conformance/jsdoc/jsdocTemplateTagNameResolution.ts -new file mode 100644 -index 0000000000..a5b4d052ad ---- /dev/null -+++ b/tests/cases/conformance/jsdoc/jsdocTemplateTagNameResolution.ts -@@ -0,0 +1,16 @@ -+// @allowJs: true -+// @checkJs: true -+// @outDir: out -+// @declaration: true -+// @Filename: file.js -+ -+/** -+ * @template T -+ * @template {keyof T} K -+ * @typedef {T[K]} Foo -+ */ -+ -+const x = { a: 1 }; -+ -+/** @type {Foo} */ -+const y = "a"; -\ No newline at end of file -diff --git a/tests/cases/conformance/jsdoc/jsdocTypeReferenceUseBeforeDef.ts b/tests/cases/conformance/jsdoc/jsdocTypeReferenceUseBeforeDef.ts -index 93e735e1fa..b38836e7e7 100644 ---- a/tests/cases/conformance/jsdoc/jsdocTypeReferenceUseBeforeDef.ts -+++ b/tests/cases/conformance/jsdoc/jsdocTypeReferenceUseBeforeDef.ts -@@ -6,3 +6,4 @@ - const c = null - class C { - } -+let q3 = new C(); -\ No newline at end of file -diff --git a/tests/cases/conformance/jsdoc/jsdocVariadicType.ts b/tests/cases/conformance/jsdoc/jsdocVariadicType.ts -new file mode 100644 -index 0000000000..cd4e75a54a ---- /dev/null -+++ b/tests/cases/conformance/jsdoc/jsdocVariadicType.ts -@@ -0,0 +1,12 @@ +-} +\ No newline at end of file ++} ++ ++let b = new Base(); +\ No newline at end of file +diff --git a/tests/cases/conformance/jsdoc/enumTagImported/enumTagImported.ts b/tests/cases/conformance/jsdoc/enumTagImported/enumTagImported.ts +new file mode 100644 +index 0000000000..859c60103b +--- /dev/null ++++ b/tests/cases/conformance/jsdoc/enumTagImported/enumTagImported.ts +@@ -0,0 +1,23 @@ ++// @allowJs: true ++// @checkJs: true ++// @noEmit: true ++// @Filename: type.js ++/** @typedef {import("./mod1").TestEnum} TE */ ++/** @type {TE} */ ++const test = 'add' ++/** @type {import("./mod1").TestEnum} */ ++const tost = 'remove' ++ ++// @Filename: value.js ++import { TestEnum } from "./mod1" ++/** @type {TestEnum} */ ++const tist = TestEnum.ADD ++ ++ ++// @Filename: mod1.js ++ ++/** @enum {string} */ ++// export const TestEnum = { ++// ADD: 'add', ++// REMOVE: 'remove' ++// } +diff --git a/tests/cases/conformance/jsdoc/extendsTag1.ts b/tests/cases/conformance/jsdoc/extendsTag1.ts +index 194982760e..79b3bc7079 100644 +--- a/tests/cases/conformance/jsdoc/extendsTag1.ts ++++ b/tests/cases/conformance/jsdoc/extendsTag1.ts +@@ -8,3 +8,4 @@ + * @extends {Set} Should prefer this Set, not the Set in the heritage clause + */ + class My extends Set {} ++let q4 = new My(); +diff --git a/tests/cases/conformance/jsdoc/jsdocAugments_qualifiedName/jsdocAugments_qualifiedName.ts b/tests/cases/conformance/jsdoc/jsdocAugments_qualifiedName/jsdocAugments_qualifiedName.ts +new file mode 100644 +index 0000000000..ce4fb95ff2 +--- /dev/null ++++ b/tests/cases/conformance/jsdoc/jsdocAugments_qualifiedName/jsdocAugments_qualifiedName.ts +@@ -0,0 +1,10 @@ ++// @allowJs: true ++// @checkJs: true ++// @noEmit: true ++ ++ ++// @Filename: /b.js ++import * as a from "./a"; ++let b = a.A; ++/** @augments a.A */ ++class B {} +diff --git a/tests/cases/conformance/jsdoc/jsdocAugments_withTypeParameter.ts b/tests/cases/conformance/jsdoc/jsdocAugments_withTypeParameter.ts +index e94df03fbc..aba2b989e7 100644 +--- a/tests/cases/conformance/jsdoc/jsdocAugments_withTypeParameter.ts ++++ b/tests/cases/conformance/jsdoc/jsdocAugments_withTypeParameter.ts +@@ -12,3 +12,4 @@ class B extends A { + return this.x; + } + } ++let q7 = new B(); +\ No newline at end of file +diff --git a/tests/cases/conformance/jsdoc/jsdocImplements_namespacedInterface.ts b/tests/cases/conformance/jsdoc/jsdocImplements_namespacedInterface.ts +index c298e6685a..9af8207ba4 100644 +--- a/tests/cases/conformance/jsdoc/jsdocImplements_namespacedInterface.ts ++++ b/tests/cases/conformance/jsdoc/jsdocImplements_namespacedInterface.ts +@@ -26,3 +26,5 @@ class BAT { + return ""; + } + } ++let q1 = new B(); ++let q2 = new BAT(); +diff --git a/tests/cases/conformance/jsdoc/jsdocTemplateTagDefault.ts b/tests/cases/conformance/jsdoc/jsdocTemplateTagDefault.ts +new file mode 100644 +index 0000000000..c93359a7a6 +--- /dev/null ++++ b/tests/cases/conformance/jsdoc/jsdocTemplateTagDefault.ts +@@ -0,0 +1,71 @@ ++// @allowJs: true ++// @checkJs: true ++// @declaration: true ++// @outDir: out ++// @Filename: file.js ++ ++/** ++ * @template {string | number} [T=string] - ok: defaults are permitted ++ * @typedef {[T]} A ++ */ ++ ++/** @type {A} */ // ok, default for `T` in `A` is `string` ++const aDefault1 = [""]; ++/** @type {A} */ // error: `number` is not assignable to string` ++const aDefault2 = [0]; ++/** @type {A} */ // ok, `T` is provided for `A` ++const aString = [""]; ++/** @type {A} */ // ok, `T` is provided for `A` ++const aNumber = [0]; ++ ++/** ++ * @template T ++ * @template [U=T] - ok: default can reference earlier type parameter ++ * @typedef {[T, U]} B ++ */ ++ ++/** ++ * @template {string | number} [T] - error: default requires an `=type` ++ * @typedef {[T]} C ++ */ ++ ++/** ++ * @template {string | number} [T=] - error: default requires a `type` ++ * @typedef {[T]} D ++ */ ++ ++/** ++ * @template {string | number} [T=string] ++ * @template U - error: Required type parameters cannot follow optional type parameters ++ * @typedef {[T, U]} E ++ */ ++ ++/** ++ * @template [T=U] - error: Type parameter defaults can only reference previously declared type parameters. ++ * @template [U=T] ++ * @typedef {[T, U]} G ++ */ ++ ++/** ++ * @template T ++ * @template [U=T] - ok: default can reference earlier type parameter ++ * @param {T} a ++ * @param {U} b ++ */ ++function f1(a, b) {} ++ ++ /** ++ * @template {string | number} [T=string] ++ * @template U - error: Required type parameters cannot follow optional type parameters ++ * @param {T} a ++ * @param {U} b ++ */ ++function f2(a, b) {} ++ ++/** ++ * @template [T=U] - error: Type parameter defaults can only reference previously declared type parameters. ++ * @template [U=T] ++ * @param {T} a ++ * @param {U} b ++ */ ++function f3(a, b) {} +diff --git a/tests/cases/conformance/jsdoc/jsdocTemplateTagNameResolution.ts b/tests/cases/conformance/jsdoc/jsdocTemplateTagNameResolution.ts +new file mode 100644 +index 0000000000..a5b4d052ad +--- /dev/null ++++ b/tests/cases/conformance/jsdoc/jsdocTemplateTagNameResolution.ts +@@ -0,0 +1,16 @@ ++// @allowJs: true ++// @checkJs: true ++// @outDir: out ++// @declaration: true ++// @Filename: file.js ++ ++/** ++ * @template T ++ * @template {keyof T} K ++ * @typedef {T[K]} Foo ++ */ ++ ++const x = { a: 1 }; ++ ++/** @type {Foo} */ ++const y = "a"; +\ No newline at end of file +diff --git a/tests/cases/conformance/jsdoc/jsdocTypeReferenceUseBeforeDef.ts b/tests/cases/conformance/jsdoc/jsdocTypeReferenceUseBeforeDef.ts +index 93e735e1fa..b38836e7e7 100644 +--- a/tests/cases/conformance/jsdoc/jsdocTypeReferenceUseBeforeDef.ts ++++ b/tests/cases/conformance/jsdoc/jsdocTypeReferenceUseBeforeDef.ts +@@ -6,3 +6,4 @@ + const c = null + class C { + } ++let q3 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/jsdoc/jsdocVariadicType.ts b/tests/cases/conformance/jsdoc/jsdocVariadicType.ts +new file mode 100644 +index 0000000000..cd4e75a54a +--- /dev/null ++++ b/tests/cases/conformance/jsdoc/jsdocVariadicType.ts +@@ -0,0 +1,12 @@ +// @allowJS: true +// @checkJs: true +// @noEmit: true @@ -6151,42 +6151,42 @@ index 0000000000..cd4e75a54a + +// @filename: b.ts +foo(false, ''); -diff --git a/tests/cases/conformance/jsdoc/seeTag3.ts b/tests/cases/conformance/jsdoc/seeTag3.ts -new file mode 100644 -index 0000000000..abd16226fe ---- /dev/null -+++ b/tests/cases/conformance/jsdoc/seeTag3.ts -@@ -0,0 +1,7 @@ -+// @outdir: out/ -+// @checkJs: true -+// @filename: seeTag3.js -+ -+/** @see [The typescript web site](https://typescriptlang.org) */ -+function theWholeThing() { -+} -diff --git a/tests/cases/conformance/jsdoc/thisTag2.ts b/tests/cases/conformance/jsdoc/thisTag2.ts -new file mode 100644 -index 0000000000..187ac9b932 ---- /dev/null -+++ b/tests/cases/conformance/jsdoc/thisTag2.ts -@@ -0,0 +1,11 @@ -+// @target: esnext -+// @allowJs: true -+// @declaration: true -+// @emitDeclarationOnly: true -+// @filename: a.js -+ -+/** @this {string} */ -+export function f1() {} -+ -+/** @this */ -+export function f2() {} -diff --git a/tests/cases/conformance/jsx/jsxParsingError4.tsx b/tests/cases/conformance/jsx/jsxParsingError4.tsx -new file mode 100644 -index 0000000000..c4db4fe7ab ---- /dev/null -+++ b/tests/cases/conformance/jsx/jsxParsingError4.tsx -@@ -0,0 +1,18 @@ +diff --git a/tests/cases/conformance/jsdoc/seeTag3.ts b/tests/cases/conformance/jsdoc/seeTag3.ts +new file mode 100644 +index 0000000000..abd16226fe +--- /dev/null ++++ b/tests/cases/conformance/jsdoc/seeTag3.ts +@@ -0,0 +1,7 @@ ++// @outdir: out/ ++// @checkJs: true ++// @filename: seeTag3.js ++ ++/** @see [The typescript web site](https://typescriptlang.org) */ ++function theWholeThing() { ++} +diff --git a/tests/cases/conformance/jsdoc/thisTag2.ts b/tests/cases/conformance/jsdoc/thisTag2.ts +new file mode 100644 +index 0000000000..187ac9b932 +--- /dev/null ++++ b/tests/cases/conformance/jsdoc/thisTag2.ts +@@ -0,0 +1,11 @@ ++// @target: esnext ++// @allowJs: true ++// @declaration: true ++// @emitDeclarationOnly: true ++// @filename: a.js ++ ++/** @this {string} */ ++export function f1() {} ++ ++/** @this */ ++export function f2() {} +diff --git a/tests/cases/conformance/jsx/jsxParsingError4.tsx b/tests/cases/conformance/jsx/jsxParsingError4.tsx +new file mode 100644 +index 0000000000..c4db4fe7ab +--- /dev/null ++++ b/tests/cases/conformance/jsx/jsxParsingError4.tsx +@@ -0,0 +1,18 @@ +// @strict: true, false +// @jsx: react +// @filename: a.tsx @@ -6205,196 +6205,196 @@ index 0000000000..c4db4fe7ab +const b = ( + +); -diff --git a/tests/cases/conformance/jsx/jsxUnclosedParserRecovery.ts b/tests/cases/conformance/jsx/jsxUnclosedParserRecovery.ts -new file mode 100644 -index 0000000000..08b6149d37 ---- /dev/null -+++ b/tests/cases/conformance/jsx/jsxUnclosedParserRecovery.ts -@@ -0,0 +1,140 @@ -+// @Filename: jsxParserRecovery.tsx -+// @jsx: preserve -+ -+// should have no errors here; all these functions should parse and resolve -+noName(); noClose(); noCloseTypeArg(); noCloseAttrs(); noCloseTypeArgAttrs(); noCloseBracket(); noCloseBracketTypeArgAttrs(); noSelfclose(); noSelfcloseTypeArgAttrs(); -+noNameTrailingTag(); noCloseTrailingTag(); noCloseTypeArgTrailingTag(); noCloseAttrsTrailingTag(); noCloseTypeArgAttrsTrailingTag(); noCloseBracketTrailingTag(); noCloseBracketTypeArgAttrsTrailingTag(); // noSelfcloseTrailingTag(); noSelfcloseTypeArgAttrsTrailingTag(); -+noNameTrailingText(); noCloseTrailingText(); noCloseTypeArgTrailingText(); noCloseAttrsTrailingText(); noCloseTypeArgAttrsTrailingText(); noCloseBracketTrailingText(); noCloseBracketTypeArgAttrsTrailingText(); // noSelfcloseTrailingText(); noSelfcloseTypeArgAttrsTrailingText(); -+ -+function diddy() { -+ return null; -+} -+ -+var donkey =
-+ < -+
; -+function noName() { } -+var donkey =
-+ ; -+function noClose() { } -+var donkey =
-+ -+
; -+function noCloseTypeArg() { } -+var donkey =
-+ ; -+function noCloseAttrs() { } -+var donkey =
-+ bananas="please" -+
; -+function noCloseTypeArgAttrs() { } -+var donkey =
-+ ; -+function noCloseBracket() { } -+var donkey =
-+ bananas="please"/ -+
; -+function noCloseBracketTypeArgAttrs() { } -+var donkey =
-+ -+
; -+function noSelfclose() { } -+var donkey =
-+ bananas="please"> -+
; -+function noSelfcloseTypeArgAttrs() { } -+ -+var donkey =
-+ < -+ -+
; -+function noNameTrailingTag() { } -+var donkey =
-+ -+
; -+function noCloseTrailingTag() { } -+var donkey =
-+ -+ -+
; -+function noCloseTypeArgTrailingTag() { } -+var donkey =
-+ -+
; -+function noCloseAttrsTrailingTag() { } -+var donkey =
-+ bananas="please" -+ -+
; -+function noCloseTypeArgAttrsTrailingTag() { } -+var donkey =
-+ -+
; -+function noCloseBracketTrailingTag() { } -+var donkey =
-+ bananas="please"/ -+ -+
; -+function noCloseBracketTypeArgAttrsTrailingTag() { } -+var donkey =
-+ -+ -+
; -+function noSelfcloseTrailingTag() { } -+var donkey =
-+ bananas="please"> -+ -+
; -+function noSelfcloseTypeArgAttrsTrailingTag() { } -+ -+var donkey =
-+ < -+ Cranky Wrinkly Funky -+
; -+function noNameTrailingText() { } -+var donkey =
-+ ; -+function noCloseTrailingText() { } -+var donkey =
-+ -+ Cranky Wrinkly Funky -+
; -+function noCloseTypeArgTrailingText() { } -+var donkey =
-+ ; -+function noCloseAttrsTrailingText() { } -+var donkey =
-+ bananas="please" -+ Cranky Wrinkly Funky -+
; -+function noCloseTypeArgAttrsTrailingText() { } -+var donkey =
-+ ; -+function noCloseBracketTrailingText() { } -+var donkey =
-+ bananas="please"/ -+ Cranky Wrinkly Funky -+
; -+function noCloseBracketTypeArgAttrsTrailingText() { } -+var donkey =
-+ -+ Cranky Wrinkly Funky -+
; -+function noSelfcloseTrailingText() { } -+var donkey =
-+ bananas="please"> -+ Cranky Wrinkly Funky -+
; -+function noSelfcloseTypeArgAttrsTrailingText() { } -diff --git a/tests/cases/conformance/jsx/tsxReactEmitSpreadAttribute.ts b/tests/cases/conformance/jsx/tsxReactEmitSpreadAttribute.ts -new file mode 100644 -index 0000000000..2ddc20ae39 ---- /dev/null -+++ b/tests/cases/conformance/jsx/tsxReactEmitSpreadAttribute.ts -@@ -0,0 +1,32 @@ -+// @jsx: react-jsx -+// @target: es2015,es2018,esnext -+// @filename: test.tsx -+/// -+ -+export function T1(a: any) { -+ return
T1
; -+} -+ -+export function T2(a: any, b: any) { -+ return
T2
; -+} -+ -+export function T3(a: any, b: any) { -+ return
T3
; -+} -+ -+export function T4(a: any, b: any) { -+ return
T4
; -+} -+ -+export function T5(a: any, b: any, c: any, d: any) { -+ return
T5
; -+} -+ -+export function T6(a: any, b: any, c: any, d: any) { -+ return
T6
; -+} -+ -+export function T7(a: any, b: any, c: any, d: any) { -+ return
T7
; -+} -diff --git a/tests/cases/conformance/moduleResolution/declarationNotFoundPackageBundlesTypes.ts b/tests/cases/conformance/moduleResolution/declarationNotFoundPackageBundlesTypes.ts -new file mode 100644 -index 0000000000..75c681daf0 ---- /dev/null -+++ b/tests/cases/conformance/moduleResolution/declarationNotFoundPackageBundlesTypes.ts -@@ -0,0 +1,23 @@ +diff --git a/tests/cases/conformance/jsx/jsxUnclosedParserRecovery.ts b/tests/cases/conformance/jsx/jsxUnclosedParserRecovery.ts +new file mode 100644 +index 0000000000..08b6149d37 +--- /dev/null ++++ b/tests/cases/conformance/jsx/jsxUnclosedParserRecovery.ts +@@ -0,0 +1,140 @@ ++// @Filename: jsxParserRecovery.tsx ++// @jsx: preserve ++ ++// should have no errors here; all these functions should parse and resolve ++noName(); noClose(); noCloseTypeArg(); noCloseAttrs(); noCloseTypeArgAttrs(); noCloseBracket(); noCloseBracketTypeArgAttrs(); noSelfclose(); noSelfcloseTypeArgAttrs(); ++noNameTrailingTag(); noCloseTrailingTag(); noCloseTypeArgTrailingTag(); noCloseAttrsTrailingTag(); noCloseTypeArgAttrsTrailingTag(); noCloseBracketTrailingTag(); noCloseBracketTypeArgAttrsTrailingTag(); // noSelfcloseTrailingTag(); noSelfcloseTypeArgAttrsTrailingTag(); ++noNameTrailingText(); noCloseTrailingText(); noCloseTypeArgTrailingText(); noCloseAttrsTrailingText(); noCloseTypeArgAttrsTrailingText(); noCloseBracketTrailingText(); noCloseBracketTypeArgAttrsTrailingText(); // noSelfcloseTrailingText(); noSelfcloseTypeArgAttrsTrailingText(); ++ ++function diddy() { ++ return null; ++} ++ ++var donkey =
++ < ++
; ++function noName() { } ++var donkey =
++ ; ++function noClose() { } ++var donkey =
++ ++
; ++function noCloseTypeArg() { } ++var donkey =
++ ; ++function noCloseAttrs() { } ++var donkey =
++ bananas="please" ++
; ++function noCloseTypeArgAttrs() { } ++var donkey =
++ ; ++function noCloseBracket() { } ++var donkey =
++ bananas="please"/ ++
; ++function noCloseBracketTypeArgAttrs() { } ++var donkey =
++ ++
; ++function noSelfclose() { } ++var donkey =
++ bananas="please"> ++
; ++function noSelfcloseTypeArgAttrs() { } ++ ++var donkey =
++ < ++ ++
; ++function noNameTrailingTag() { } ++var donkey =
++ ++
; ++function noCloseTrailingTag() { } ++var donkey =
++ ++ ++
; ++function noCloseTypeArgTrailingTag() { } ++var donkey =
++ ++
; ++function noCloseAttrsTrailingTag() { } ++var donkey =
++ bananas="please" ++ ++
; ++function noCloseTypeArgAttrsTrailingTag() { } ++var donkey =
++ ++
; ++function noCloseBracketTrailingTag() { } ++var donkey =
++ bananas="please"/ ++ ++
; ++function noCloseBracketTypeArgAttrsTrailingTag() { } ++var donkey =
++ ++ ++
; ++function noSelfcloseTrailingTag() { } ++var donkey =
++ bananas="please"> ++ ++
; ++function noSelfcloseTypeArgAttrsTrailingTag() { } ++ ++var donkey =
++ < ++ Cranky Wrinkly Funky ++
; ++function noNameTrailingText() { } ++var donkey =
++ ; ++function noCloseTrailingText() { } ++var donkey =
++ ++ Cranky Wrinkly Funky ++
; ++function noCloseTypeArgTrailingText() { } ++var donkey =
++ ; ++function noCloseAttrsTrailingText() { } ++var donkey =
++ bananas="please" ++ Cranky Wrinkly Funky ++
; ++function noCloseTypeArgAttrsTrailingText() { } ++var donkey =
++ ; ++function noCloseBracketTrailingText() { } ++var donkey =
++ bananas="please"/ ++ Cranky Wrinkly Funky ++
; ++function noCloseBracketTypeArgAttrsTrailingText() { } ++var donkey =
++ ++ Cranky Wrinkly Funky ++
; ++function noSelfcloseTrailingText() { } ++var donkey =
++ bananas="please"> ++ Cranky Wrinkly Funky ++
; ++function noSelfcloseTypeArgAttrsTrailingText() { } +diff --git a/tests/cases/conformance/jsx/tsxReactEmitSpreadAttribute.ts b/tests/cases/conformance/jsx/tsxReactEmitSpreadAttribute.ts +new file mode 100644 +index 0000000000..2ddc20ae39 +--- /dev/null ++++ b/tests/cases/conformance/jsx/tsxReactEmitSpreadAttribute.ts +@@ -0,0 +1,32 @@ ++// @jsx: react-jsx ++// @target: es2015,es2018,esnext ++// @filename: test.tsx ++/// ++ ++export function T1(a: any) { ++ return
T1
; ++} ++ ++export function T2(a: any, b: any) { ++ return
T2
; ++} ++ ++export function T3(a: any, b: any) { ++ return
T3
; ++} ++ ++export function T4(a: any, b: any) { ++ return
T4
; ++} ++ ++export function T5(a: any, b: any, c: any, d: any) { ++ return
T5
; ++} ++ ++export function T6(a: any, b: any, c: any, d: any) { ++ return
T6
; ++} ++ ++export function T7(a: any, b: any, c: any, d: any) { ++ return
T7
; ++} +diff --git a/tests/cases/conformance/moduleResolution/declarationNotFoundPackageBundlesTypes.ts b/tests/cases/conformance/moduleResolution/declarationNotFoundPackageBundlesTypes.ts +new file mode 100644 +index 0000000000..75c681daf0 +--- /dev/null ++++ b/tests/cases/conformance/moduleResolution/declarationNotFoundPackageBundlesTypes.ts +@@ -0,0 +1,23 @@ +// @noImplicitAny: true +// @noImplicitReferences: true + @@ -6417,24 +6417,24 @@ index 0000000000..75c681daf0 + +// @filename: index.ts +import * as Foo from "foo"; -+import * as Other from "foo/other"/*1*/; -\ No newline at end of file -diff --git a/tests/cases/conformance/moduleResolution/scopedPackages/index.d.ts b/tests/cases/conformance/moduleResolution/scopedPackages/index.d.ts -new file mode 100644 -index 0000000000..04d4f15421 ---- /dev/null -+++ b/tests/cases/conformance/moduleResolution/scopedPackages/index.d.ts -@@ -0,0 +1,3 @@ ++import * as Other from "foo/other"/*1*/; +\ No newline at end of file +diff --git a/tests/cases/conformance/moduleResolution/scopedPackages/index.d.ts b/tests/cases/conformance/moduleResolution/scopedPackages/index.d.ts +new file mode 100644 +index 0000000000..04d4f15421 +--- /dev/null ++++ b/tests/cases/conformance/moduleResolution/scopedPackages/index.d.ts +@@ -0,0 +1,3 @@ +// @filename: /node_modules/@cow/boy/index.d.ts +export const x: number; -+export const y: number; -\ No newline at end of file -diff --git a/tests/cases/conformance/moduleResolution/scopedPackages/scopedPackages.ts b/tests/cases/conformance/moduleResolution/scopedPackages/scopedPackages.ts -new file mode 100644 -index 0000000000..80db9778d1 ---- /dev/null -+++ b/tests/cases/conformance/moduleResolution/scopedPackages/scopedPackages.ts -@@ -0,0 +1,12 @@ ++export const y: number; +\ No newline at end of file +diff --git a/tests/cases/conformance/moduleResolution/scopedPackages/scopedPackages.ts b/tests/cases/conformance/moduleResolution/scopedPackages/scopedPackages.ts +new file mode 100644 +index 0000000000..80db9778d1 +--- /dev/null ++++ b/tests/cases/conformance/moduleResolution/scopedPackages/scopedPackages.ts +@@ -0,0 +1,12 @@ +// @noImplicitReferences: true +// @traceResolution: true +// @typeRoots: types @@ -6446,31 +6446,31 @@ index 0000000000..80db9778d1 +import { z } from "./z"; +x; +y; -+z; -\ No newline at end of file -diff --git a/tests/cases/conformance/moduleResolution/scopedPackages/z.d.ts b/tests/cases/conformance/moduleResolution/scopedPackages/z.d.ts -new file mode 100644 -index 0000000000..8af8c4b248 ---- /dev/null -+++ b/tests/cases/conformance/moduleResolution/scopedPackages/z.d.ts -@@ -0,0 +1,2 @@ ++z; +\ No newline at end of file +diff --git a/tests/cases/conformance/moduleResolution/scopedPackages/z.d.ts b/tests/cases/conformance/moduleResolution/scopedPackages/z.d.ts +new file mode 100644 +index 0000000000..8af8c4b248 +--- /dev/null ++++ b/tests/cases/conformance/moduleResolution/scopedPackages/z.d.ts +@@ -0,0 +1,2 @@ +// @filename: /node_modules/@types/be__bop/e/z.d.ts -+export const z: number; -\ No newline at end of file -diff --git a/tests/cases/conformance/moduleResolution/scopedPackagesClassic/index.d.ts b/tests/cases/conformance/moduleResolution/scopedPackagesClassic/index.d.ts -new file mode 100644 -index 0000000000..7cfe77597d ---- /dev/null -+++ b/tests/cases/conformance/moduleResolution/scopedPackagesClassic/index.d.ts -@@ -0,0 +1,2 @@ ++export const z: number; +\ No newline at end of file +diff --git a/tests/cases/conformance/moduleResolution/scopedPackagesClassic/index.d.ts b/tests/cases/conformance/moduleResolution/scopedPackagesClassic/index.d.ts +new file mode 100644 +index 0000000000..7cfe77597d +--- /dev/null ++++ b/tests/cases/conformance/moduleResolution/scopedPackagesClassic/index.d.ts +@@ -0,0 +1,2 @@ +// @filename: /node_modules/@types/see__saw/index.d.ts +export const x = 0; -diff --git a/tests/cases/conformance/moduleResolution/scopedPackagesClassic/scopedPackagesClassic.ts b/tests/cases/conformance/moduleResolution/scopedPackagesClassic/scopedPackagesClassic.ts -new file mode 100644 -index 0000000000..4f491b9532 ---- /dev/null -+++ b/tests/cases/conformance/moduleResolution/scopedPackagesClassic/scopedPackagesClassic.ts -@@ -0,0 +1,9 @@ +diff --git a/tests/cases/conformance/moduleResolution/scopedPackagesClassic/scopedPackagesClassic.ts b/tests/cases/conformance/moduleResolution/scopedPackagesClassic/scopedPackagesClassic.ts +new file mode 100644 +index 0000000000..4f491b9532 +--- /dev/null ++++ b/tests/cases/conformance/moduleResolution/scopedPackagesClassic/scopedPackagesClassic.ts +@@ -0,0 +1,9 @@ +// @noImplicitReferences: true +// @traceResolution: true +// @typeRoots: types @@ -6479,14 +6479,14 @@ index 0000000000..4f491b9532 + +// @filename: /a.ts +import { x } from "./index"; -+x; -\ No newline at end of file -diff --git a/tests/cases/conformance/moduleResolution/untypedModuleImport_allowJs/untypedModuleImport_allowJs.ts b/tests/cases/conformance/moduleResolution/untypedModuleImport_allowJs/untypedModuleImport_allowJs.ts -new file mode 100644 -index 0000000000..b2c0c1f81c ---- /dev/null -+++ b/tests/cases/conformance/moduleResolution/untypedModuleImport_allowJs/untypedModuleImport_allowJs.ts -@@ -0,0 +1,12 @@ ++x; +\ No newline at end of file +diff --git a/tests/cases/conformance/moduleResolution/untypedModuleImport_allowJs/untypedModuleImport_allowJs.ts b/tests/cases/conformance/moduleResolution/untypedModuleImport_allowJs/untypedModuleImport_allowJs.ts +new file mode 100644 +index 0000000000..b2c0c1f81c +--- /dev/null ++++ b/tests/cases/conformance/moduleResolution/untypedModuleImport_allowJs/untypedModuleImport_allowJs.ts +@@ -0,0 +1,12 @@ +// @noImplicitReferences: true +// @currentDirectory: / +// @allowJs: true @@ -6499,22 +6499,22 @@ index 0000000000..b2c0c1f81c +// @filename: /a.ts +import foo from "foo"; +foo.bar(); -diff --git a/tests/cases/conformance/moduleResolution/untypedModuleImport_vsAmbient/declarations.d.ts b/tests/cases/conformance/moduleResolution/untypedModuleImport_vsAmbient/declarations.d.ts -new file mode 100644 -index 0000000000..c54d01514d ---- /dev/null -+++ b/tests/cases/conformance/moduleResolution/untypedModuleImport_vsAmbient/declarations.d.ts -@@ -0,0 +1,4 @@ +diff --git a/tests/cases/conformance/moduleResolution/untypedModuleImport_vsAmbient/declarations.d.ts b/tests/cases/conformance/moduleResolution/untypedModuleImport_vsAmbient/declarations.d.ts +new file mode 100644 +index 0000000000..c54d01514d +--- /dev/null ++++ b/tests/cases/conformance/moduleResolution/untypedModuleImport_vsAmbient/declarations.d.ts +@@ -0,0 +1,4 @@ +// @filename: /declarations.d.ts +declare module "foo" { + export const x: number; +} -diff --git a/tests/cases/conformance/moduleResolution/untypedModuleImport_vsAmbient/untypedModuleImport_vsAmbient.ts b/tests/cases/conformance/moduleResolution/untypedModuleImport_vsAmbient/untypedModuleImport_vsAmbient.ts -new file mode 100644 -index 0000000000..577d258b72 ---- /dev/null -+++ b/tests/cases/conformance/moduleResolution/untypedModuleImport_vsAmbient/untypedModuleImport_vsAmbient.ts -@@ -0,0 +1,12 @@ +diff --git a/tests/cases/conformance/moduleResolution/untypedModuleImport_vsAmbient/untypedModuleImport_vsAmbient.ts b/tests/cases/conformance/moduleResolution/untypedModuleImport_vsAmbient/untypedModuleImport_vsAmbient.ts +new file mode 100644 +index 0000000000..577d258b72 +--- /dev/null ++++ b/tests/cases/conformance/moduleResolution/untypedModuleImport_vsAmbient/untypedModuleImport_vsAmbient.ts +@@ -0,0 +1,12 @@ +// @noImplicitReferences: true +// @currentDirectory: / +// This tests that an ambient module declaration overrides an untyped import. @@ -6527,12 +6527,12 @@ index 0000000000..577d258b72 +/// +import { x } from "foo"; +x; -diff --git a/tests/cases/conformance/node/allowJs/nodeAllowJsPackageSelfName.ts b/tests/cases/conformance/node/allowJs/nodeAllowJsPackageSelfName.ts -new file mode 100644 -index 0000000000..a19a7104ae ---- /dev/null -+++ b/tests/cases/conformance/node/allowJs/nodeAllowJsPackageSelfName.ts -@@ -0,0 +1,24 @@ +diff --git a/tests/cases/conformance/node/allowJs/nodeAllowJsPackageSelfName.ts b/tests/cases/conformance/node/allowJs/nodeAllowJsPackageSelfName.ts +new file mode 100644 +index 0000000000..a19a7104ae +--- /dev/null ++++ b/tests/cases/conformance/node/allowJs/nodeAllowJsPackageSelfName.ts +@@ -0,0 +1,24 @@ +// @module: node12,nodenext +// @declaration: true +// @allowJs: true @@ -6556,14 +6556,14 @@ index 0000000000..a19a7104ae + "private": true, + "type": "module", + "exports": "./index.js" -+} -\ No newline at end of file -diff --git a/tests/cases/conformance/node/allowJs/nodeModulesAllowJs1.ts b/tests/cases/conformance/node/allowJs/nodeModulesAllowJs1.ts -new file mode 100644 -index 0000000000..113c1fdeb8 ---- /dev/null -+++ b/tests/cases/conformance/node/allowJs/nodeModulesAllowJs1.ts -@@ -0,0 +1,324 @@ ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/node/allowJs/nodeModulesAllowJs1.ts b/tests/cases/conformance/node/allowJs/nodeModulesAllowJs1.ts +new file mode 100644 +index 0000000000..113c1fdeb8 +--- /dev/null ++++ b/tests/cases/conformance/node/allowJs/nodeModulesAllowJs1.ts +@@ -0,0 +1,324 @@ +// @module: node12,nodenext +// @declaration: true +// @allowJs: true @@ -6887,14 +6887,14 @@ index 0000000000..113c1fdeb8 +// @filename: subfolder2/another/package.json +{ + "type": "module" -+} -\ No newline at end of file -diff --git a/tests/cases/conformance/node/allowJs/nodeModulesAllowJsCjsFromJs.ts b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsCjsFromJs.ts -new file mode 100644 -index 0000000000..ea0821742f ---- /dev/null -+++ b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsCjsFromJs.ts -@@ -0,0 +1,8 @@ ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/node/allowJs/nodeModulesAllowJsCjsFromJs.ts b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsCjsFromJs.ts +new file mode 100644 +index 0000000000..ea0821742f +--- /dev/null ++++ b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsCjsFromJs.ts +@@ -0,0 +1,8 @@ +// @module: node12,nodenext +// @allowJs: true +// @noEmit: true @@ -6902,14 +6902,14 @@ index 0000000000..ea0821742f +exports.foo = "foo" +// @filename: bar.ts +import foo from "./foo.cjs" -+foo.foo; -\ No newline at end of file -diff --git a/tests/cases/conformance/node/allowJs/nodeModulesAllowJsConditionalPackageExports.ts b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsConditionalPackageExports.ts -new file mode 100644 -index 0000000000..1020812d5a ---- /dev/null -+++ b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsConditionalPackageExports.ts -@@ -0,0 +1,126 @@ ++foo.foo; +\ No newline at end of file +diff --git a/tests/cases/conformance/node/allowJs/nodeModulesAllowJsConditionalPackageExports.ts b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsConditionalPackageExports.ts +new file mode 100644 +index 0000000000..1020812d5a +--- /dev/null ++++ b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsConditionalPackageExports.ts +@@ -0,0 +1,126 @@ +// @module: node12,nodenext +// @declaration: true +// @allowJs: true @@ -7035,14 +7035,14 @@ index 0000000000..1020812d5a + } + } + } -+} -\ No newline at end of file -diff --git a/tests/cases/conformance/node/allowJs/nodeModulesAllowJsDynamicImport.ts b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsDynamicImport.ts -new file mode 100644 -index 0000000000..d7032c648b ---- /dev/null -+++ b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsDynamicImport.ts -@@ -0,0 +1,27 @@ ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/node/allowJs/nodeModulesAllowJsDynamicImport.ts b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsDynamicImport.ts +new file mode 100644 +index 0000000000..d7032c648b +--- /dev/null ++++ b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsDynamicImport.ts +@@ -0,0 +1,27 @@ +// @module: node12,nodenext +// @declaration: true +// @allowJs: true @@ -7069,14 +7069,14 @@ index 0000000000..d7032c648b + "type": "commonjs" +} +// @filename: types.d.ts -+declare module "fs"; -\ No newline at end of file -diff --git a/tests/cases/conformance/node/allowJs/nodeModulesAllowJsExportAssignment.ts b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsExportAssignment.ts -new file mode 100644 -index 0000000000..f7d5aaf822 ---- /dev/null -+++ b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsExportAssignment.ts -@@ -0,0 +1,32 @@ ++declare module "fs"; +\ No newline at end of file +diff --git a/tests/cases/conformance/node/allowJs/nodeModulesAllowJsExportAssignment.ts b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsExportAssignment.ts +new file mode 100644 +index 0000000000..f7d5aaf822 +--- /dev/null ++++ b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsExportAssignment.ts +@@ -0,0 +1,32 @@ +// @module: node12,nodenext +// @declaration: true +// @allowJs: true @@ -7108,14 +7108,14 @@ index 0000000000..f7d5aaf822 +// @filename: subfolder/package.json +{ + "type": "commonjs" -+} -\ No newline at end of file -diff --git a/tests/cases/conformance/node/allowJs/nodeModulesAllowJsGeneratedNameCollisions.ts b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsGeneratedNameCollisions.ts -new file mode 100644 -index 0000000000..14783731bf ---- /dev/null -+++ b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsGeneratedNameCollisions.ts -@@ -0,0 +1,29 @@ ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/node/allowJs/nodeModulesAllowJsGeneratedNameCollisions.ts b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsGeneratedNameCollisions.ts +new file mode 100644 +index 0000000000..14783731bf +--- /dev/null ++++ b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsGeneratedNameCollisions.ts +@@ -0,0 +1,29 @@ +// @module: node12,nodenext +// @declaration: true +// @allowJs: true @@ -7144,14 +7144,14 @@ index 0000000000..14783731bf +// @filename: subfolder/package.json +{ + "type": "commonjs" -+} -\ No newline at end of file -diff --git a/tests/cases/conformance/node/allowJs/nodeModulesAllowJsImportAssignment.ts b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsImportAssignment.ts -new file mode 100644 -index 0000000000..53e6b94450 ---- /dev/null -+++ b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsImportAssignment.ts -@@ -0,0 +1,34 @@ ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/node/allowJs/nodeModulesAllowJsImportAssignment.ts b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsImportAssignment.ts +new file mode 100644 +index 0000000000..53e6b94450 +--- /dev/null ++++ b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsImportAssignment.ts +@@ -0,0 +1,34 @@ +// @module: node12,nodenext +// @declaration: true +// @allowJs: true @@ -7185,14 +7185,14 @@ index 0000000000..53e6b94450 + "type": "commonjs" +} +// @filename: types.d.ts -+declare module "fs"; -\ No newline at end of file -diff --git a/tests/cases/conformance/node/allowJs/nodeModulesAllowJsImportHelpersCollisions1.ts b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsImportHelpersCollisions1.ts -new file mode 100644 -index 0000000000..d5727a3dc7 ---- /dev/null -+++ b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsImportHelpersCollisions1.ts -@@ -0,0 +1,34 @@ ++declare module "fs"; +\ No newline at end of file +diff --git a/tests/cases/conformance/node/allowJs/nodeModulesAllowJsImportHelpersCollisions1.ts b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsImportHelpersCollisions1.ts +new file mode 100644 +index 0000000000..d5727a3dc7 +--- /dev/null ++++ b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsImportHelpersCollisions1.ts +@@ -0,0 +1,34 @@ +// @module: node12,nodenext +// @declaration: true +// @importHelpers: true @@ -7226,14 +7226,14 @@ index 0000000000..d5727a3dc7 +declare module "tslib" { + export {}; + // intentionally missing all helpers -+} -\ No newline at end of file -diff --git a/tests/cases/conformance/node/allowJs/nodeModulesAllowJsImportHelpersCollisions2.ts b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsImportHelpersCollisions2.ts -new file mode 100644 -index 0000000000..032290f78b ---- /dev/null -+++ b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsImportHelpersCollisions2.ts -@@ -0,0 +1,30 @@ ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/node/allowJs/nodeModulesAllowJsImportHelpersCollisions2.ts b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsImportHelpersCollisions2.ts +new file mode 100644 +index 0000000000..032290f78b +--- /dev/null ++++ b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsImportHelpersCollisions2.ts +@@ -0,0 +1,30 @@ +// @module: node12,nodenext +// @declaration: true +// @importHelpers: true @@ -7263,14 +7263,14 @@ index 0000000000..032290f78b +declare module "tslib" { + export {}; + // intentionally missing all helpers -+} -\ No newline at end of file -diff --git a/tests/cases/conformance/node/allowJs/nodeModulesAllowJsImportHelpersCollisions3.ts b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsImportHelpersCollisions3.ts -new file mode 100644 -index 0000000000..9452e2003a ---- /dev/null -+++ b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsImportHelpersCollisions3.ts -@@ -0,0 +1,32 @@ ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/node/allowJs/nodeModulesAllowJsImportHelpersCollisions3.ts b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsImportHelpersCollisions3.ts +new file mode 100644 +index 0000000000..9452e2003a +--- /dev/null ++++ b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsImportHelpersCollisions3.ts +@@ -0,0 +1,32 @@ +// @module: node12,nodenext +// @declaration: true +// @importHelpers: true @@ -7302,14 +7302,14 @@ index 0000000000..9452e2003a +declare module "tslib" { + export {}; + // intentionally missing all helpers -+} -\ No newline at end of file -diff --git a/tests/cases/conformance/node/allowJs/nodeModulesAllowJsImportMeta.ts b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsImportMeta.ts -new file mode 100644 -index 0000000000..a8708434b9 ---- /dev/null -+++ b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsImportMeta.ts -@@ -0,0 +1,23 @@ ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/node/allowJs/nodeModulesAllowJsImportMeta.ts b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsImportMeta.ts +new file mode 100644 +index 0000000000..a8708434b9 +--- /dev/null ++++ b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsImportMeta.ts +@@ -0,0 +1,23 @@ +// @module: node12,nodenext +// @declaration: true +// @allowJs: true @@ -7332,14 +7332,14 @@ index 0000000000..a8708434b9 +// @filename: subfolder/package.json +{ + "type": "commonjs" -+} -\ No newline at end of file -diff --git a/tests/cases/conformance/node/allowJs/nodeModulesAllowJsPackageExports.ts b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsPackageExports.ts -new file mode 100644 -index 0000000000..65e5721b0b ---- /dev/null -+++ b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsPackageExports.ts -@@ -0,0 +1,92 @@ ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/node/allowJs/nodeModulesAllowJsPackageExports.ts b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsPackageExports.ts +new file mode 100644 +index 0000000000..65e5721b0b +--- /dev/null ++++ b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsPackageExports.ts +@@ -0,0 +1,92 @@ +// @module: node12,nodenext +// @declaration: true +// @allowJs: true @@ -7431,14 +7431,14 @@ index 0000000000..65e5721b0b + "./mjs": "./index.mjs", + ".": "./index.js" + } -+} -\ No newline at end of file -diff --git a/tests/cases/conformance/node/allowJs/nodeModulesAllowJsPackageImports.ts b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsPackageImports.ts -new file mode 100644 -index 0000000000..b9d6027f5d ---- /dev/null -+++ b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsPackageImports.ts -@@ -0,0 +1,41 @@ ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/node/allowJs/nodeModulesAllowJsPackageImports.ts b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsPackageImports.ts +new file mode 100644 +index 0000000000..b9d6027f5d +--- /dev/null ++++ b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsPackageImports.ts +@@ -0,0 +1,41 @@ +// @module: node12,nodenext +// @declaration: true +// @allowJs: true @@ -7479,14 +7479,14 @@ index 0000000000..b9d6027f5d + "#mjs": "./index.mjs", + "#type": "./index.js" + } -+} -\ No newline at end of file -diff --git a/tests/cases/conformance/node/allowJs/nodeModulesAllowJsPackagePatternExports.ts b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsPackagePatternExports.ts -new file mode 100644 -index 0000000000..2691885690 ---- /dev/null -+++ b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsPackagePatternExports.ts -@@ -0,0 +1,69 @@ ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/node/allowJs/nodeModulesAllowJsPackagePatternExports.ts b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsPackagePatternExports.ts +new file mode 100644 +index 0000000000..2691885690 +--- /dev/null ++++ b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsPackagePatternExports.ts +@@ -0,0 +1,69 @@ +// @module: node12,nodenext +// @declaration: true +// @allowJs: true @@ -7555,14 +7555,14 @@ index 0000000000..2691885690 + "./mjs/*": "./*.mjs", + "./js/*": "./*.js" + } -+} -\ No newline at end of file -diff --git a/tests/cases/conformance/node/allowJs/nodeModulesAllowJsPackagePatternExportsTrailers.ts b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsPackagePatternExportsTrailers.ts -new file mode 100644 -index 0000000000..6b96f34758 ---- /dev/null -+++ b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsPackagePatternExportsTrailers.ts -@@ -0,0 +1,69 @@ ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/node/allowJs/nodeModulesAllowJsPackagePatternExportsTrailers.ts b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsPackagePatternExportsTrailers.ts +new file mode 100644 +index 0000000000..6b96f34758 +--- /dev/null ++++ b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsPackagePatternExportsTrailers.ts +@@ -0,0 +1,69 @@ +// @module: node12,nodenext +// @declaration: true +// @allowJs: true @@ -7631,14 +7631,14 @@ index 0000000000..6b96f34758 + "./mjs/*.mjs": "./*.mjs", + "./js/*.js": "./*.js" + } -+} -\ No newline at end of file -diff --git a/tests/cases/conformance/node/allowJs/nodeModulesAllowJsSynchronousCallErrors.ts b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsSynchronousCallErrors.ts -new file mode 100644 -index 0000000000..15892edbe3 ---- /dev/null -+++ b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsSynchronousCallErrors.ts -@@ -0,0 +1,37 @@ ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/node/allowJs/nodeModulesAllowJsSynchronousCallErrors.ts b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsSynchronousCallErrors.ts +new file mode 100644 +index 0000000000..15892edbe3 +--- /dev/null ++++ b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsSynchronousCallErrors.ts +@@ -0,0 +1,37 @@ +// @module: node12,nodenext +// @declaration: true +// @allowJs: true @@ -7675,14 +7675,14 @@ index 0000000000..15892edbe3 +// @filename: subfolder/package.json +{ + "type": "commonjs" -+} -\ No newline at end of file -diff --git a/tests/cases/conformance/node/allowJs/nodeModulesAllowJsTopLevelAwait.ts b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsTopLevelAwait.ts -new file mode 100644 -index 0000000000..872cad71c9 ---- /dev/null -+++ b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsTopLevelAwait.ts -@@ -0,0 +1,25 @@ ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/node/allowJs/nodeModulesAllowJsTopLevelAwait.ts b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsTopLevelAwait.ts +new file mode 100644 +index 0000000000..872cad71c9 +--- /dev/null ++++ b/tests/cases/conformance/node/allowJs/nodeModulesAllowJsTopLevelAwait.ts +@@ -0,0 +1,25 @@ +// @module: node12,nodenext +// @declaration: true +// @allowJs: true @@ -7707,14 +7707,14 @@ index 0000000000..872cad71c9 +// @filename: subfolder/package.json +{ + "type": "commonjs" -+} -\ No newline at end of file -diff --git a/tests/cases/conformance/node/legacyNodeModulesExportsSpecifierGenerationConditions.ts b/tests/cases/conformance/node/legacyNodeModulesExportsSpecifierGenerationConditions.ts -new file mode 100644 -index 0000000000..656465829e ---- /dev/null -+++ b/tests/cases/conformance/node/legacyNodeModulesExportsSpecifierGenerationConditions.ts -@@ -0,0 +1,33 @@ ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/node/legacyNodeModulesExportsSpecifierGenerationConditions.ts b/tests/cases/conformance/node/legacyNodeModulesExportsSpecifierGenerationConditions.ts +new file mode 100644 +index 0000000000..656465829e +--- /dev/null ++++ b/tests/cases/conformance/node/legacyNodeModulesExportsSpecifierGenerationConditions.ts +@@ -0,0 +1,33 @@ +// @module: commonjs +// @lib: es2020 +// @declaration: true @@ -7747,14 +7747,14 @@ index 0000000000..656465829e + "default": "./other.js" + } + } -+} -\ No newline at end of file -diff --git a/tests/cases/conformance/node/nodeModules1.ts b/tests/cases/conformance/node/nodeModules1.ts -new file mode 100644 -index 0000000000..698a6efec1 ---- /dev/null -+++ b/tests/cases/conformance/node/nodeModules1.ts -@@ -0,0 +1,321 @@ ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/node/nodeModules1.ts b/tests/cases/conformance/node/nodeModules1.ts +new file mode 100644 +index 0000000000..698a6efec1 +--- /dev/null ++++ b/tests/cases/conformance/node/nodeModules1.ts +@@ -0,0 +1,321 @@ +// @module: node12,nodenext +// @declaration: true +// @filename: subfolder/index.ts @@ -8075,14 +8075,14 @@ index 0000000000..698a6efec1 +// @filename: subfolder2/another/package.json +{ + "type": "module" -+} -\ No newline at end of file -diff --git a/tests/cases/conformance/node/nodeModulesCjsFormatFileAlwaysHasDefault.ts b/tests/cases/conformance/node/nodeModulesCjsFormatFileAlwaysHasDefault.ts -new file mode 100644 -index 0000000000..06c6320d77 ---- /dev/null -+++ b/tests/cases/conformance/node/nodeModulesCjsFormatFileAlwaysHasDefault.ts -@@ -0,0 +1,19 @@ ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/node/nodeModulesCjsFormatFileAlwaysHasDefault.ts b/tests/cases/conformance/node/nodeModulesCjsFormatFileAlwaysHasDefault.ts +new file mode 100644 +index 0000000000..06c6320d77 +--- /dev/null ++++ b/tests/cases/conformance/node/nodeModulesCjsFormatFileAlwaysHasDefault.ts +@@ -0,0 +1,19 @@ +// @module: node12,nodenext +// @declaration: true +// @filename: subfolder/index.ts @@ -8101,14 +8101,14 @@ index 0000000000..06c6320d77 +// @filename: subfolder/package.json +{ + "type": "commonjs" -+} -\ No newline at end of file -diff --git a/tests/cases/conformance/node/nodeModulesConditionalPackageExports.ts b/tests/cases/conformance/node/nodeModulesConditionalPackageExports.ts -new file mode 100644 -index 0000000000..07bf9d9724 ---- /dev/null -+++ b/tests/cases/conformance/node/nodeModulesConditionalPackageExports.ts -@@ -0,0 +1,124 @@ ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/node/nodeModulesConditionalPackageExports.ts b/tests/cases/conformance/node/nodeModulesConditionalPackageExports.ts +new file mode 100644 +index 0000000000..07bf9d9724 +--- /dev/null ++++ b/tests/cases/conformance/node/nodeModulesConditionalPackageExports.ts +@@ -0,0 +1,124 @@ +// @module: node12,nodenext +// @declaration: true +// @outDir: out @@ -8232,14 +8232,14 @@ index 0000000000..07bf9d9724 + } + } + } -+} -\ No newline at end of file -diff --git a/tests/cases/conformance/node/nodeModulesDeclarationEmitDynamicImportWithPackageExports.ts b/tests/cases/conformance/node/nodeModulesDeclarationEmitDynamicImportWithPackageExports.ts -new file mode 100644 -index 0000000000..3f8bae7ffc ---- /dev/null -+++ b/tests/cases/conformance/node/nodeModulesDeclarationEmitDynamicImportWithPackageExports.ts -@@ -0,0 +1,71 @@ ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/node/nodeModulesDeclarationEmitDynamicImportWithPackageExports.ts b/tests/cases/conformance/node/nodeModulesDeclarationEmitDynamicImportWithPackageExports.ts +new file mode 100644 +index 0000000000..3f8bae7ffc +--- /dev/null ++++ b/tests/cases/conformance/node/nodeModulesDeclarationEmitDynamicImportWithPackageExports.ts +@@ -0,0 +1,71 @@ +// @module: nodenext +// @declaration: true +// @filename: index.ts @@ -8310,14 +8310,14 @@ index 0000000000..3f8bae7ffc + "./mjs": "./index.mjs", + ".": "./index.js" + } -+} -\ No newline at end of file -diff --git a/tests/cases/conformance/node/nodeModulesDeclarationEmitWithPackageExports.ts b/tests/cases/conformance/node/nodeModulesDeclarationEmitWithPackageExports.ts -new file mode 100644 -index 0000000000..2599ff429f ---- /dev/null -+++ b/tests/cases/conformance/node/nodeModulesDeclarationEmitWithPackageExports.ts -@@ -0,0 +1,93 @@ ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/node/nodeModulesDeclarationEmitWithPackageExports.ts b/tests/cases/conformance/node/nodeModulesDeclarationEmitWithPackageExports.ts +new file mode 100644 +index 0000000000..2599ff429f +--- /dev/null ++++ b/tests/cases/conformance/node/nodeModulesDeclarationEmitWithPackageExports.ts +@@ -0,0 +1,93 @@ +// @module: node12,nodenext +// @declaration: true +// @outDir: out @@ -8410,14 +8410,14 @@ index 0000000000..2599ff429f + "./mjs": "./index.mjs", + ".": "./index.js" + } -+} -\ No newline at end of file -diff --git a/tests/cases/conformance/node/nodeModulesDynamicImport.ts b/tests/cases/conformance/node/nodeModulesDynamicImport.ts -new file mode 100644 -index 0000000000..46b317ca52 ---- /dev/null -+++ b/tests/cases/conformance/node/nodeModulesDynamicImport.ts -@@ -0,0 +1,24 @@ ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/node/nodeModulesDynamicImport.ts b/tests/cases/conformance/node/nodeModulesDynamicImport.ts +new file mode 100644 +index 0000000000..46b317ca52 +--- /dev/null ++++ b/tests/cases/conformance/node/nodeModulesDynamicImport.ts +@@ -0,0 +1,24 @@ +// @module: node12,nodenext +// @declaration: true +// @filename: subfolder/index.ts @@ -8441,14 +8441,14 @@ index 0000000000..46b317ca52 + "type": "commonjs" +} +// @filename: types.d.ts -+declare module "fs"; -\ No newline at end of file -diff --git a/tests/cases/conformance/node/nodeModulesExportAssignments.ts b/tests/cases/conformance/node/nodeModulesExportAssignments.ts -new file mode 100644 -index 0000000000..7cbcd200d9 ---- /dev/null -+++ b/tests/cases/conformance/node/nodeModulesExportAssignments.ts -@@ -0,0 +1,20 @@ ++declare module "fs"; +\ No newline at end of file +diff --git a/tests/cases/conformance/node/nodeModulesExportAssignments.ts b/tests/cases/conformance/node/nodeModulesExportAssignments.ts +new file mode 100644 +index 0000000000..7cbcd200d9 +--- /dev/null ++++ b/tests/cases/conformance/node/nodeModulesExportAssignments.ts +@@ -0,0 +1,20 @@ +// @module: node12,nodenext +// @declaration: true +// @filename: subfolder/index.ts @@ -8468,14 +8468,14 @@ index 0000000000..7cbcd200d9 +// @filename: subfolder/package.json +{ + "type": "commonjs" -+} -\ No newline at end of file -diff --git a/tests/cases/conformance/node/nodeModulesExportsBlocksSpecifierResolution.ts b/tests/cases/conformance/node/nodeModulesExportsBlocksSpecifierResolution.ts -new file mode 100644 -index 0000000000..ffc5adf8e0 ---- /dev/null -+++ b/tests/cases/conformance/node/nodeModulesExportsBlocksSpecifierResolution.ts -@@ -0,0 +1,27 @@ ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/node/nodeModulesExportsBlocksSpecifierResolution.ts b/tests/cases/conformance/node/nodeModulesExportsBlocksSpecifierResolution.ts +new file mode 100644 +index 0000000000..ffc5adf8e0 +--- /dev/null ++++ b/tests/cases/conformance/node/nodeModulesExportsBlocksSpecifierResolution.ts +@@ -0,0 +1,27 @@ +// @module: node12,nodenext +// @declaration: true +// @filename: index.ts @@ -8502,14 +8502,14 @@ index 0000000000..ffc5adf8e0 + "private": true, + "type": "module", + "exports": "./index.js" -+} -\ No newline at end of file -diff --git a/tests/cases/conformance/node/nodeModulesExportsSpecifierGenerationConditions.ts b/tests/cases/conformance/node/nodeModulesExportsSpecifierGenerationConditions.ts -new file mode 100644 -index 0000000000..2562c7a4a1 ---- /dev/null -+++ b/tests/cases/conformance/node/nodeModulesExportsSpecifierGenerationConditions.ts -@@ -0,0 +1,34 @@ ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/node/nodeModulesExportsSpecifierGenerationConditions.ts b/tests/cases/conformance/node/nodeModulesExportsSpecifierGenerationConditions.ts +new file mode 100644 +index 0000000000..2562c7a4a1 +--- /dev/null ++++ b/tests/cases/conformance/node/nodeModulesExportsSpecifierGenerationConditions.ts +@@ -0,0 +1,34 @@ +// @module: node12,nodenext +// @declaration: true +// @filename: index.ts @@ -8543,14 +8543,14 @@ index 0000000000..2562c7a4a1 + "default": "./other.js" + } + } -+} -\ No newline at end of file -diff --git a/tests/cases/conformance/node/nodeModulesExportsSpecifierGenerationDirectory.ts b/tests/cases/conformance/node/nodeModulesExportsSpecifierGenerationDirectory.ts -new file mode 100644 -index 0000000000..2eb8ac58e6 ---- /dev/null -+++ b/tests/cases/conformance/node/nodeModulesExportsSpecifierGenerationDirectory.ts -@@ -0,0 +1,29 @@ ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/node/nodeModulesExportsSpecifierGenerationDirectory.ts b/tests/cases/conformance/node/nodeModulesExportsSpecifierGenerationDirectory.ts +new file mode 100644 +index 0000000000..2eb8ac58e6 +--- /dev/null ++++ b/tests/cases/conformance/node/nodeModulesExportsSpecifierGenerationDirectory.ts +@@ -0,0 +1,29 @@ +// @module: node12,nodenext +// @declaration: true +// @filename: index.ts @@ -8579,14 +8579,14 @@ index 0000000000..2eb8ac58e6 + "exports": { + "./": "./" + } -+} -\ No newline at end of file -diff --git a/tests/cases/conformance/node/nodeModulesExportsSpecifierGenerationPattern.ts b/tests/cases/conformance/node/nodeModulesExportsSpecifierGenerationPattern.ts -new file mode 100644 -index 0000000000..97812da5b5 ---- /dev/null -+++ b/tests/cases/conformance/node/nodeModulesExportsSpecifierGenerationPattern.ts -@@ -0,0 +1,29 @@ ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/node/nodeModulesExportsSpecifierGenerationPattern.ts b/tests/cases/conformance/node/nodeModulesExportsSpecifierGenerationPattern.ts +new file mode 100644 +index 0000000000..97812da5b5 +--- /dev/null ++++ b/tests/cases/conformance/node/nodeModulesExportsSpecifierGenerationPattern.ts +@@ -0,0 +1,29 @@ +// @module: node12,nodenext +// @declaration: true +// @filename: index.ts @@ -8615,14 +8615,14 @@ index 0000000000..97812da5b5 + "exports": { + "./*.js": "./*.js" + } -+} -\ No newline at end of file -diff --git a/tests/cases/conformance/node/nodeModulesForbidenSyntax.ts b/tests/cases/conformance/node/nodeModulesForbidenSyntax.ts -new file mode 100644 -index 0000000000..d441627d7d ---- /dev/null -+++ b/tests/cases/conformance/node/nodeModulesForbidenSyntax.ts -@@ -0,0 +1,67 @@ ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/node/nodeModulesForbidenSyntax.ts b/tests/cases/conformance/node/nodeModulesForbidenSyntax.ts +new file mode 100644 +index 0000000000..d441627d7d +--- /dev/null ++++ b/tests/cases/conformance/node/nodeModulesForbidenSyntax.ts +@@ -0,0 +1,67 @@ +// @module: node12,nodenext +// @declaration: true +// @filename: subfolder/index.ts @@ -8689,14 +8689,14 @@ index 0000000000..d441627d7d +// @filename: subfolder2/another/package.json +{ + "type": "module" -+} -\ No newline at end of file -diff --git a/tests/cases/conformance/node/nodeModulesGeneratedNameCollisions.ts b/tests/cases/conformance/node/nodeModulesGeneratedNameCollisions.ts -new file mode 100644 -index 0000000000..e9a9b9d9ed ---- /dev/null -+++ b/tests/cases/conformance/node/nodeModulesGeneratedNameCollisions.ts -@@ -0,0 +1,26 @@ ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/node/nodeModulesGeneratedNameCollisions.ts b/tests/cases/conformance/node/nodeModulesGeneratedNameCollisions.ts +new file mode 100644 +index 0000000000..e9a9b9d9ed +--- /dev/null ++++ b/tests/cases/conformance/node/nodeModulesGeneratedNameCollisions.ts +@@ -0,0 +1,26 @@ +// @module: node12,nodenext +// @declaration: true +// @filename: subfolder/index.ts @@ -8722,14 +8722,14 @@ index 0000000000..e9a9b9d9ed +// @filename: subfolder/package.json +{ + "type": "commonjs" -+} -\ No newline at end of file -diff --git a/tests/cases/conformance/node/nodeModulesImportAssertions.ts b/tests/cases/conformance/node/nodeModulesImportAssertions.ts -new file mode 100644 -index 0000000000..0fe1ccdf82 ---- /dev/null -+++ b/tests/cases/conformance/node/nodeModulesImportAssertions.ts -@@ -0,0 +1,13 @@ ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/node/nodeModulesImportAssertions.ts b/tests/cases/conformance/node/nodeModulesImportAssertions.ts +new file mode 100644 +index 0000000000..0fe1ccdf82 +--- /dev/null ++++ b/tests/cases/conformance/node/nodeModulesImportAssertions.ts +@@ -0,0 +1,13 @@ +// @module: node12,nodenext +// @resolveJsonModule: true +// @filename: index.ts @@ -8742,14 +8742,14 @@ index 0000000000..0fe1ccdf82 + "name": "pkg", + "private": true, + "type": "module" -+} -\ No newline at end of file -diff --git a/tests/cases/conformance/node/nodeModulesImportAssignments.ts b/tests/cases/conformance/node/nodeModulesImportAssignments.ts -new file mode 100644 -index 0000000000..6c22fe83e0 ---- /dev/null -+++ b/tests/cases/conformance/node/nodeModulesImportAssignments.ts -@@ -0,0 +1,31 @@ ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/node/nodeModulesImportAssignments.ts b/tests/cases/conformance/node/nodeModulesImportAssignments.ts +new file mode 100644 +index 0000000000..6c22fe83e0 +--- /dev/null ++++ b/tests/cases/conformance/node/nodeModulesImportAssignments.ts +@@ -0,0 +1,31 @@ +// @module: node12,nodenext +// @declaration: true +// @filename: subfolder/index.ts @@ -8780,14 +8780,14 @@ index 0000000000..6c22fe83e0 + "type": "commonjs" +} +// @filename: types.d.ts -+declare module "fs"; -\ No newline at end of file -diff --git a/tests/cases/conformance/node/nodeModulesImportHelpersCollisions.ts b/tests/cases/conformance/node/nodeModulesImportHelpersCollisions.ts -new file mode 100644 -index 0000000000..103b583712 ---- /dev/null -+++ b/tests/cases/conformance/node/nodeModulesImportHelpersCollisions.ts -@@ -0,0 +1,31 @@ ++declare module "fs"; +\ No newline at end of file +diff --git a/tests/cases/conformance/node/nodeModulesImportHelpersCollisions.ts b/tests/cases/conformance/node/nodeModulesImportHelpersCollisions.ts +new file mode 100644 +index 0000000000..103b583712 +--- /dev/null ++++ b/tests/cases/conformance/node/nodeModulesImportHelpersCollisions.ts +@@ -0,0 +1,31 @@ +// @module: node12,nodenext +// @declaration: true +// @importHelpers: true @@ -8818,14 +8818,14 @@ index 0000000000..103b583712 +declare module "tslib" { + export {}; + // intentionally missing all helpers -+} -\ No newline at end of file -diff --git a/tests/cases/conformance/node/nodeModulesImportHelpersCollisions2.ts b/tests/cases/conformance/node/nodeModulesImportHelpersCollisions2.ts -new file mode 100644 -index 0000000000..7f90947a5f ---- /dev/null -+++ b/tests/cases/conformance/node/nodeModulesImportHelpersCollisions2.ts -@@ -0,0 +1,27 @@ ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/node/nodeModulesImportHelpersCollisions2.ts b/tests/cases/conformance/node/nodeModulesImportHelpersCollisions2.ts +new file mode 100644 +index 0000000000..7f90947a5f +--- /dev/null ++++ b/tests/cases/conformance/node/nodeModulesImportHelpersCollisions2.ts +@@ -0,0 +1,27 @@ +// @module: node12,nodenext +// @declaration: true +// @importHelpers: true @@ -8852,14 +8852,14 @@ index 0000000000..7f90947a5f +declare module "tslib" { + export {}; + // intentionally missing all helpers -+} -\ No newline at end of file -diff --git a/tests/cases/conformance/node/nodeModulesImportHelpersCollisions3.ts b/tests/cases/conformance/node/nodeModulesImportHelpersCollisions3.ts -new file mode 100644 -index 0000000000..5f6984ad1f ---- /dev/null -+++ b/tests/cases/conformance/node/nodeModulesImportHelpersCollisions3.ts -@@ -0,0 +1,25 @@ ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/node/nodeModulesImportHelpersCollisions3.ts b/tests/cases/conformance/node/nodeModulesImportHelpersCollisions3.ts +new file mode 100644 +index 0000000000..5f6984ad1f +--- /dev/null ++++ b/tests/cases/conformance/node/nodeModulesImportHelpersCollisions3.ts +@@ -0,0 +1,25 @@ +// @module: node12,nodenext +// @declaration: true +// @importHelpers: true @@ -8884,14 +8884,14 @@ index 0000000000..5f6984ad1f +declare module "tslib" { + export {}; + // intentionally missing all helpers -+} -\ No newline at end of file -diff --git a/tests/cases/conformance/node/nodeModulesImportMeta.ts b/tests/cases/conformance/node/nodeModulesImportMeta.ts -new file mode 100644 -index 0000000000..d684c7b5cb ---- /dev/null -+++ b/tests/cases/conformance/node/nodeModulesImportMeta.ts -@@ -0,0 +1,20 @@ ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/node/nodeModulesImportMeta.ts b/tests/cases/conformance/node/nodeModulesImportMeta.ts +new file mode 100644 +index 0000000000..d684c7b5cb +--- /dev/null ++++ b/tests/cases/conformance/node/nodeModulesImportMeta.ts +@@ -0,0 +1,20 @@ +// @module: node12,nodenext +// @declaration: true +// @filename: subfolder/index.ts @@ -8911,14 +8911,14 @@ index 0000000000..d684c7b5cb +// @filename: subfolder/package.json +{ + "type": "commonjs" -+} -\ No newline at end of file -diff --git a/tests/cases/conformance/node/nodeModulesImportResolutionIntoExport.ts b/tests/cases/conformance/node/nodeModulesImportResolutionIntoExport.ts -new file mode 100644 -index 0000000000..2a407b2bc6 ---- /dev/null -+++ b/tests/cases/conformance/node/nodeModulesImportResolutionIntoExport.ts -@@ -0,0 +1,24 @@ ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/node/nodeModulesImportResolutionIntoExport.ts b/tests/cases/conformance/node/nodeModulesImportResolutionIntoExport.ts +new file mode 100644 +index 0000000000..2a407b2bc6 +--- /dev/null ++++ b/tests/cases/conformance/node/nodeModulesImportResolutionIntoExport.ts +@@ -0,0 +1,24 @@ +// @module: node12,nodenext +// @declaration: true +// @filename: index.ts @@ -8942,14 +8942,14 @@ index 0000000000..2a407b2bc6 + "imports": { + "#type": "package" + } -+} -\ No newline at end of file -diff --git a/tests/cases/conformance/node/nodeModulesImportResolutionNoCycle.ts b/tests/cases/conformance/node/nodeModulesImportResolutionNoCycle.ts -new file mode 100644 -index 0000000000..c0482c86ec ---- /dev/null -+++ b/tests/cases/conformance/node/nodeModulesImportResolutionNoCycle.ts -@@ -0,0 +1,24 @@ ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/node/nodeModulesImportResolutionNoCycle.ts b/tests/cases/conformance/node/nodeModulesImportResolutionNoCycle.ts +new file mode 100644 +index 0000000000..c0482c86ec +--- /dev/null ++++ b/tests/cases/conformance/node/nodeModulesImportResolutionNoCycle.ts +@@ -0,0 +1,24 @@ +// @module: node12,nodenext +// @declaration: true +// @filename: index.ts @@ -8973,14 +8973,14 @@ index 0000000000..c0482c86ec + "imports": { + "#type": "package" + } -+} -\ No newline at end of file -diff --git a/tests/cases/conformance/node/nodeModulesPackageExports.ts b/tests/cases/conformance/node/nodeModulesPackageExports.ts -new file mode 100644 -index 0000000000..897d01b07d ---- /dev/null -+++ b/tests/cases/conformance/node/nodeModulesPackageExports.ts -@@ -0,0 +1,90 @@ ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/node/nodeModulesPackageExports.ts b/tests/cases/conformance/node/nodeModulesPackageExports.ts +new file mode 100644 +index 0000000000..897d01b07d +--- /dev/null ++++ b/tests/cases/conformance/node/nodeModulesPackageExports.ts +@@ -0,0 +1,90 @@ +// @module: node12,nodenext +// @declaration: true +// @outDir: out @@ -9070,14 +9070,14 @@ index 0000000000..897d01b07d + "./mjs": "./index.mjs", + ".": "./index.js" + } -+} -\ No newline at end of file -diff --git a/tests/cases/conformance/node/nodeModulesPackageImports.ts b/tests/cases/conformance/node/nodeModulesPackageImports.ts -new file mode 100644 -index 0000000000..cccf930098 ---- /dev/null -+++ b/tests/cases/conformance/node/nodeModulesPackageImports.ts -@@ -0,0 +1,38 @@ ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/node/nodeModulesPackageImports.ts b/tests/cases/conformance/node/nodeModulesPackageImports.ts +new file mode 100644 +index 0000000000..cccf930098 +--- /dev/null ++++ b/tests/cases/conformance/node/nodeModulesPackageImports.ts +@@ -0,0 +1,38 @@ +// @module: node12,nodenext +// @declaration: true +// @filename: index.ts @@ -9115,14 +9115,14 @@ index 0000000000..cccf930098 + "#mjs": "./index.mjs", + "#type": "./index.js" + } -+} -\ No newline at end of file -diff --git a/tests/cases/conformance/node/nodeModulesPackagePatternExports.ts b/tests/cases/conformance/node/nodeModulesPackagePatternExports.ts -new file mode 100644 -index 0000000000..e22e497a94 ---- /dev/null -+++ b/tests/cases/conformance/node/nodeModulesPackagePatternExports.ts -@@ -0,0 +1,67 @@ ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/node/nodeModulesPackagePatternExports.ts b/tests/cases/conformance/node/nodeModulesPackagePatternExports.ts +new file mode 100644 +index 0000000000..e22e497a94 +--- /dev/null ++++ b/tests/cases/conformance/node/nodeModulesPackagePatternExports.ts +@@ -0,0 +1,67 @@ +// @module: node12,nodenext +// @declaration: true +// @outDir: out @@ -9189,14 +9189,14 @@ index 0000000000..e22e497a94 + "./mjs/*": "./*.mjs", + "./js/*": "./*.js" + } -+} -\ No newline at end of file -diff --git a/tests/cases/conformance/node/nodeModulesPackagePatternExportsTrailers.ts b/tests/cases/conformance/node/nodeModulesPackagePatternExportsTrailers.ts -new file mode 100644 -index 0000000000..3abe36e0d6 ---- /dev/null -+++ b/tests/cases/conformance/node/nodeModulesPackagePatternExportsTrailers.ts -@@ -0,0 +1,67 @@ ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/node/nodeModulesPackagePatternExportsTrailers.ts b/tests/cases/conformance/node/nodeModulesPackagePatternExportsTrailers.ts +new file mode 100644 +index 0000000000..3abe36e0d6 +--- /dev/null ++++ b/tests/cases/conformance/node/nodeModulesPackagePatternExportsTrailers.ts +@@ -0,0 +1,67 @@ +// @module: node12,nodenext +// @declaration: true +// @outDir: out @@ -9263,14 +9263,14 @@ index 0000000000..3abe36e0d6 + "./mjs/*.mjs": "./*.mjs", + "./js/*.js": "./*.js" + } -+} -\ No newline at end of file -diff --git a/tests/cases/conformance/node/nodeModulesResolveJsonModule.ts b/tests/cases/conformance/node/nodeModulesResolveJsonModule.ts -new file mode 100644 -index 0000000000..c298685c22 ---- /dev/null -+++ b/tests/cases/conformance/node/nodeModulesResolveJsonModule.ts -@@ -0,0 +1,29 @@ ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/node/nodeModulesResolveJsonModule.ts b/tests/cases/conformance/node/nodeModulesResolveJsonModule.ts +new file mode 100644 +index 0000000000..c298685c22 +--- /dev/null ++++ b/tests/cases/conformance/node/nodeModulesResolveJsonModule.ts +@@ -0,0 +1,29 @@ +// @module: node12,nodenext +// @resolveJsonModule: true +// @outDir: ./out @@ -9299,14 +9299,14 @@ index 0000000000..c298685c22 + "version": "0.0.1", + "type": "module", + "default": "misedirection" -+} -\ No newline at end of file -diff --git a/tests/cases/conformance/node/nodeModulesSynchronousCallErrors.ts b/tests/cases/conformance/node/nodeModulesSynchronousCallErrors.ts -new file mode 100644 -index 0000000000..78aa93ee17 ---- /dev/null -+++ b/tests/cases/conformance/node/nodeModulesSynchronousCallErrors.ts -@@ -0,0 +1,34 @@ ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/node/nodeModulesSynchronousCallErrors.ts b/tests/cases/conformance/node/nodeModulesSynchronousCallErrors.ts +new file mode 100644 +index 0000000000..78aa93ee17 +--- /dev/null ++++ b/tests/cases/conformance/node/nodeModulesSynchronousCallErrors.ts +@@ -0,0 +1,34 @@ +// @module: node12,nodenext +// @declaration: true +// @filename: subfolder/index.ts @@ -9340,14 +9340,14 @@ index 0000000000..78aa93ee17 +// @filename: subfolder/package.json +{ + "type": "commonjs" -+} -\ No newline at end of file -diff --git a/tests/cases/conformance/node/nodeModulesTopLevelAwait.ts b/tests/cases/conformance/node/nodeModulesTopLevelAwait.ts -new file mode 100644 -index 0000000000..2fbd5d3b0c ---- /dev/null -+++ b/tests/cases/conformance/node/nodeModulesTopLevelAwait.ts -@@ -0,0 +1,22 @@ ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/node/nodeModulesTopLevelAwait.ts b/tests/cases/conformance/node/nodeModulesTopLevelAwait.ts +new file mode 100644 +index 0000000000..2fbd5d3b0c +--- /dev/null ++++ b/tests/cases/conformance/node/nodeModulesTopLevelAwait.ts +@@ -0,0 +1,22 @@ +// @module: node12,nodenext +// @declaration: true +// @filename: subfolder/index.ts @@ -9369,14 +9369,14 @@ index 0000000000..2fbd5d3b0c +// @filename: subfolder/package.json +{ + "type": "commonjs" -+} -\ No newline at end of file -diff --git a/tests/cases/conformance/node/nodeModulesTypesVersionPackageExports.ts b/tests/cases/conformance/node/nodeModulesTypesVersionPackageExports.ts -new file mode 100644 -index 0000000000..52cda091b3 ---- /dev/null -+++ b/tests/cases/conformance/node/nodeModulesTypesVersionPackageExports.ts -@@ -0,0 +1,53 @@ ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/node/nodeModulesTypesVersionPackageExports.ts b/tests/cases/conformance/node/nodeModulesTypesVersionPackageExports.ts +new file mode 100644 +index 0000000000..52cda091b3 +--- /dev/null ++++ b/tests/cases/conformance/node/nodeModulesTypesVersionPackageExports.ts +@@ -0,0 +1,53 @@ +// @module: node12,nodenext +// @declaration: true +// @outDir: out @@ -9429,14 +9429,14 @@ index 0000000000..52cda091b3 + "node": "./index.js" + }, + } -+} -\ No newline at end of file -diff --git a/tests/cases/conformance/node/nodePackageSelfName.ts b/tests/cases/conformance/node/nodePackageSelfName.ts -new file mode 100644 -index 0000000000..099d9c424e ---- /dev/null -+++ b/tests/cases/conformance/node/nodePackageSelfName.ts -@@ -0,0 +1,21 @@ ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/node/nodePackageSelfName.ts b/tests/cases/conformance/node/nodePackageSelfName.ts +new file mode 100644 +index 0000000000..099d9c424e +--- /dev/null ++++ b/tests/cases/conformance/node/nodePackageSelfName.ts +@@ -0,0 +1,21 @@ +// @module: node12,nodenext +// @declaration: true +// @filename: index.ts @@ -9457,14 +9457,14 @@ index 0000000000..099d9c424e + "private": true, + "type": "module", + "exports": "./index.js" -+} -\ No newline at end of file -diff --git a/tests/cases/conformance/node/nodePackageSelfNameScoped.ts b/tests/cases/conformance/node/nodePackageSelfNameScoped.ts -new file mode 100644 -index 0000000000..f4ef1e3798 ---- /dev/null -+++ b/tests/cases/conformance/node/nodePackageSelfNameScoped.ts -@@ -0,0 +1,21 @@ ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/node/nodePackageSelfNameScoped.ts b/tests/cases/conformance/node/nodePackageSelfNameScoped.ts +new file mode 100644 +index 0000000000..f4ef1e3798 +--- /dev/null ++++ b/tests/cases/conformance/node/nodePackageSelfNameScoped.ts +@@ -0,0 +1,21 @@ +// @module: node12,nodenext +// @declaration: true +// @filename: index.ts @@ -9485,37 +9485,37 @@ index 0000000000..f4ef1e3798 + "private": true, + "type": "module", + "exports": "./index.js" -+} -\ No newline at end of file -diff --git a/tests/cases/conformance/override/override10.ts b/tests/cases/conformance/override/override10.ts -index 3a8eca1632..31b904811c 100644 ---- a/tests/cases/conformance/override/override10.ts -+++ b/tests/cases/conformance/override/override10.ts -@@ -9,4 +9,5 @@ abstract class Base { ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/override/override10.ts b/tests/cases/conformance/override/override10.ts +index 3a8eca1632..31b904811c 100644 +--- a/tests/cases/conformance/override/override10.ts ++++ b/tests/cases/conformance/override/override10.ts +@@ -9,4 +9,5 @@ abstract class Base { abstract class Sub extends Base { abstract override foo(): number; bar() { } --} -\ No newline at end of file -+} -+let aa =new Sub(); -\ No newline at end of file -diff --git a/tests/cases/conformance/override/override12.ts b/tests/cases/conformance/override/override12.ts -index 304caf1627..084c248b37 100644 ---- a/tests/cases/conformance/override/override12.ts -+++ b/tests/cases/conformance/override/override12.ts -@@ -24,3 +24,4 @@ class B extends A { +-} +\ No newline at end of file ++} ++let aa =new Sub(); +\ No newline at end of file +diff --git a/tests/cases/conformance/override/override12.ts b/tests/cases/conformance/override/override12.ts +index 304caf1627..084c248b37 100644 +--- a/tests/cases/conformance/override/override12.ts ++++ b/tests/cases/conformance/override/override12.ts +@@ -24,3 +24,4 @@ class B extends A { override m3(): void {} } -+let qq13 = new B(); -\ No newline at end of file -diff --git a/tests/cases/conformance/override/override15.ts b/tests/cases/conformance/override/override15.ts -new file mode 100644 -index 0000000000..882cc7eb97 ---- /dev/null -+++ b/tests/cases/conformance/override/override15.ts -@@ -0,0 +1,9 @@ ++let qq13 = new B(); +\ No newline at end of file +diff --git a/tests/cases/conformance/override/override15.ts b/tests/cases/conformance/override/override15.ts +new file mode 100644 +index 0000000000..882cc7eb97 +--- /dev/null ++++ b/tests/cases/conformance/override/override15.ts +@@ -0,0 +1,9 @@ +// @noImplicitOverride: true + +class A { @@ -9525,42 +9525,42 @@ index 0000000000..882cc7eb97 +class B extends A { + override doSomethang() {} +} -diff --git a/tests/cases/conformance/override/override16.ts b/tests/cases/conformance/override/override16.ts -index 4468edfdc4..b869c89311 100644 ---- a/tests/cases/conformance/override/override16.ts -+++ b/tests/cases/conformance/override/override16.ts -@@ -8,3 +8,4 @@ class A { +diff --git a/tests/cases/conformance/override/override16.ts b/tests/cases/conformance/override/override16.ts +index 4468edfdc4..b869c89311 100644 +--- a/tests/cases/conformance/override/override16.ts ++++ b/tests/cases/conformance/override/override16.ts +@@ -8,3 +8,4 @@ class A { class B extends A { override foo = "string"; } -+let qq12 = new B(); -\ No newline at end of file -diff --git a/tests/cases/conformance/override/override17.ts b/tests/cases/conformance/override/override17.ts -index edabe9816d..a5f92ef955 100644 ---- a/tests/cases/conformance/override/override17.ts -+++ b/tests/cases/conformance/override/override17.ts -@@ -25,3 +25,4 @@ class B extends A { ++let qq12 = new B(); +\ No newline at end of file +diff --git a/tests/cases/conformance/override/override17.ts b/tests/cases/conformance/override/override17.ts +index edabe9816d..a5f92ef955 100644 +--- a/tests/cases/conformance/override/override17.ts ++++ b/tests/cases/conformance/override/override17.ts +@@ -25,3 +25,4 @@ class B extends A { override m3(): void {} } -+let qq11 = new B(); -\ No newline at end of file -diff --git a/tests/cases/conformance/override/override18.ts b/tests/cases/conformance/override/override18.ts -index 2527449e74..6d4d132193 100644 ---- a/tests/cases/conformance/override/override18.ts -+++ b/tests/cases/conformance/override/override18.ts -@@ -9,3 +9,4 @@ class A { ++let qq11 = new B(); +\ No newline at end of file +diff --git a/tests/cases/conformance/override/override18.ts b/tests/cases/conformance/override/override18.ts +index 2527449e74..6d4d132193 100644 +--- a/tests/cases/conformance/override/override18.ts ++++ b/tests/cases/conformance/override/override18.ts +@@ -9,3 +9,4 @@ class A { class B extends A { override foo = "string"; } -+let qq7 = new B(); -\ No newline at end of file -diff --git a/tests/cases/conformance/override/override19.ts b/tests/cases/conformance/override/override19.ts -new file mode 100644 -index 0000000000..63e5cd9994 ---- /dev/null -+++ b/tests/cases/conformance/override/override19.ts -@@ -0,0 +1,20 @@ ++let qq7 = new B(); +\ No newline at end of file +diff --git a/tests/cases/conformance/override/override19.ts b/tests/cases/conformance/override/override19.ts +new file mode 100644 +index 0000000000..63e5cd9994 +--- /dev/null ++++ b/tests/cases/conformance/override/override19.ts +@@ -0,0 +1,20 @@ +// @target: esnext +// @noImplicitOverride: true + @@ -9581,12 +9581,12 @@ index 0000000000..63e5cd9994 +class C extends CreateMixin(Context, A) { + override doSomethang() {} // Suggestion 'doSomething' +} -diff --git a/tests/cases/conformance/override/override20.ts b/tests/cases/conformance/override/override20.ts -new file mode 100644 -index 0000000000..9835cd9135 ---- /dev/null -+++ b/tests/cases/conformance/override/override20.ts -@@ -0,0 +1,34 @@ +diff --git a/tests/cases/conformance/override/override20.ts b/tests/cases/conformance/override/override20.ts +new file mode 100644 +index 0000000000..9835cd9135 +--- /dev/null ++++ b/tests/cases/conformance/override/override20.ts +@@ -0,0 +1,34 @@ +// @target: esnext +// @noImplicitOverride: true + @@ -9621,26 +9621,26 @@ index 0000000000..9835cd9135 + super.m2(); + } +} -diff --git a/tests/cases/conformance/override/override_js1.ts b/tests/cases/conformance/override/override_js1.ts -index 75df72695e..d327d1dbcf 100644 ---- a/tests/cases/conformance/override/override_js1.ts -+++ b/tests/cases/conformance/override/override_js1.ts -@@ -22,4 +22,6 @@ class C { +diff --git a/tests/cases/conformance/override/override_js1.ts b/tests/cases/conformance/override/override_js1.ts +index 75df72695e..d327d1dbcf 100644 +--- a/tests/cases/conformance/override/override_js1.ts ++++ b/tests/cases/conformance/override/override_js1.ts +@@ -22,4 +22,6 @@ class C { fooo (v) {} /** @override */ bar(v) {} --} -\ No newline at end of file +-} +\ No newline at end of file +} +let qq8 = new D(); -+let qq9 = new C(); -\ No newline at end of file -diff --git a/tests/cases/conformance/override/override_js4.ts b/tests/cases/conformance/override/override_js4.ts -new file mode 100644 -index 0000000000..f5a7f1b6c4 ---- /dev/null -+++ b/tests/cases/conformance/override/override_js4.ts -@@ -0,0 +1,14 @@ ++let qq9 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/override/override_js4.ts b/tests/cases/conformance/override/override_js4.ts +new file mode 100644 +index 0000000000..f5a7f1b6c4 +--- /dev/null ++++ b/tests/cases/conformance/override/override_js4.ts +@@ -0,0 +1,14 @@ +// @noImplicitOverride: true +// @allowJs: true +// @checkJs: true @@ -9655,751 +9655,751 @@ index 0000000000..f5a7f1b6c4 + /** @override */ + doSomethang() {} +} -diff --git a/tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration16.ts b/tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration16.ts -index b345892ec2..39a09037ca 100644 ---- a/tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration16.ts -+++ b/tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration16.ts -@@ -1,4 +1,5 @@ +diff --git a/tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration16.ts b/tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration16.ts +index b345892ec2..39a09037ca 100644 +--- a/tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration16.ts ++++ b/tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration16.ts +@@ -1,4 +1,5 @@ class C { foo(); foo() { } --} -\ No newline at end of file -+} -+let q19 = new C(); -\ No newline at end of file -diff --git a/tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration17.ts b/tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration17.ts -index a709f7d7bc..08f7560759 100644 ---- a/tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration17.ts -+++ b/tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration17.ts -@@ -5,3 +5,4 @@ declare class Enumerator { +-} +\ No newline at end of file ++} ++let q19 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration17.ts b/tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration17.ts +index a709f7d7bc..08f7560759 100644 +--- a/tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration17.ts ++++ b/tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration17.ts +@@ -5,3 +5,4 @@ declare class Enumerator { public item(): any; constructor (o: any); } -+let q22 = new Enumerator(); -\ No newline at end of file -diff --git a/tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration19.ts b/tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration19.ts -index 65d9bd0a57..5ed5520812 100644 ---- a/tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration19.ts -+++ b/tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration19.ts -@@ -1,4 +1,5 @@ ++let q22 = new Enumerator(); +\ No newline at end of file +diff --git a/tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration19.ts b/tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration19.ts +index 65d9bd0a57..5ed5520812 100644 +--- a/tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration19.ts ++++ b/tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration19.ts +@@ -1,4 +1,5 @@ class C { foo(); "foo"() { } --} -\ No newline at end of file -+} -+let q18 = new C(); -\ No newline at end of file -diff --git a/tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration20.ts b/tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration20.ts -index 6c8540e833..a2025ab46f 100644 ---- a/tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration20.ts -+++ b/tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration20.ts -@@ -1,4 +1,5 @@ +-} +\ No newline at end of file ++} ++let q18 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration20.ts b/tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration20.ts +index 6c8540e833..a2025ab46f 100644 +--- a/tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration20.ts ++++ b/tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration20.ts +@@ -1,4 +1,5 @@ class C { 0(); "0"() { } --} -\ No newline at end of file -+} -+let q23 = new C(); -\ No newline at end of file -diff --git a/tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration23.ts b/tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration23.ts -index 5720f935a6..7ff1604575 100644 ---- a/tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration23.ts -+++ b/tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration23.ts -@@ -1,2 +1,3 @@ +-} +\ No newline at end of file ++} ++let q23 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration23.ts b/tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration23.ts +index 5720f935a6..7ff1604575 100644 +--- a/tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration23.ts ++++ b/tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration23.ts +@@ -1,2 +1,3 @@ class C\u0032 { --} -\ No newline at end of file -+} -+let q17 = new C\u0032(); -\ No newline at end of file -diff --git a/tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration26.ts b/tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration26.ts -index 4d5395733a..fbefb55710 100644 ---- a/tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration26.ts -+++ b/tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration26.ts -@@ -1,4 +1,5 @@ +-} +\ No newline at end of file ++} ++let q17 = new C\u0032(); +\ No newline at end of file +diff --git a/tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration26.ts b/tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration26.ts +index 4d5395733a..fbefb55710 100644 +--- a/tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration26.ts ++++ b/tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration26.ts +@@ -1,4 +1,5 @@ class C { var public --} -\ No newline at end of file -+} -+let q20 = new C(); -\ No newline at end of file -diff --git a/tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclarationIndexSignature1.ts b/tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclarationIndexSignature1.ts -index b99c0c6f48..bae31847e0 100644 ---- a/tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclarationIndexSignature1.ts -+++ b/tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclarationIndexSignature1.ts -@@ -1,3 +1,4 @@ +-} +\ No newline at end of file ++} ++let q20 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclarationIndexSignature1.ts b/tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclarationIndexSignature1.ts +index b99c0c6f48..bae31847e0 100644 +--- a/tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclarationIndexSignature1.ts ++++ b/tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclarationIndexSignature1.ts +@@ -1,3 +1,4 @@ class C { [index:number]:number --} -\ No newline at end of file -+} -+let q21 = new C(); -\ No newline at end of file -diff --git a/tests/cases/conformance/parser/ecmascript5/ConstructorDeclarations/parserConstructorDeclaration1.ts b/tests/cases/conformance/parser/ecmascript5/ConstructorDeclarations/parserConstructorDeclaration1.ts -index b845118647..024f143cad 100644 ---- a/tests/cases/conformance/parser/ecmascript5/ConstructorDeclarations/parserConstructorDeclaration1.ts -+++ b/tests/cases/conformance/parser/ecmascript5/ConstructorDeclarations/parserConstructorDeclaration1.ts -@@ -1,3 +1,4 @@ +-} +\ No newline at end of file ++} ++let q21 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/parser/ecmascript5/ConstructorDeclarations/parserConstructorDeclaration1.ts b/tests/cases/conformance/parser/ecmascript5/ConstructorDeclarations/parserConstructorDeclaration1.ts +index b845118647..024f143cad 100644 +--- a/tests/cases/conformance/parser/ecmascript5/ConstructorDeclarations/parserConstructorDeclaration1.ts ++++ b/tests/cases/conformance/parser/ecmascript5/ConstructorDeclarations/parserConstructorDeclaration1.ts +@@ -1,3 +1,4 @@ class C { public constructor() { } --} -\ No newline at end of file -+} -+let q24 = new C(); -\ No newline at end of file -diff --git a/tests/cases/conformance/parser/ecmascript5/ConstructorDeclarations/parserConstructorDeclaration5.ts b/tests/cases/conformance/parser/ecmascript5/ConstructorDeclarations/parserConstructorDeclaration5.ts -index f445d70c88..7305a4098d 100644 ---- a/tests/cases/conformance/parser/ecmascript5/ConstructorDeclarations/parserConstructorDeclaration5.ts -+++ b/tests/cases/conformance/parser/ecmascript5/ConstructorDeclarations/parserConstructorDeclaration5.ts -@@ -1,3 +1,4 @@ +-} +\ No newline at end of file ++} ++let q24 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/parser/ecmascript5/ConstructorDeclarations/parserConstructorDeclaration5.ts b/tests/cases/conformance/parser/ecmascript5/ConstructorDeclarations/parserConstructorDeclaration5.ts +index f445d70c88..7305a4098d 100644 +--- a/tests/cases/conformance/parser/ecmascript5/ConstructorDeclarations/parserConstructorDeclaration5.ts ++++ b/tests/cases/conformance/parser/ecmascript5/ConstructorDeclarations/parserConstructorDeclaration5.ts +@@ -1,3 +1,4 @@ class C { private constructor() { } --} -\ No newline at end of file -+} -+let q25 = new C(); -\ No newline at end of file -diff --git a/tests/cases/conformance/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic11.ts b/tests/cases/conformance/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic11.ts -index 5ebd8f13ae..bd99e7cfb1 100644 ---- a/tests/cases/conformance/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic11.ts -+++ b/tests/cases/conformance/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic11.ts -@@ -2,3 +2,4 @@ class Outer +-} +\ No newline at end of file ++} ++let q25 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic11.ts b/tests/cases/conformance/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic11.ts +index 5ebd8f13ae..bd99e7cfb1 100644 +--- a/tests/cases/conformance/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic11.ts ++++ b/tests/cases/conformance/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic11.ts +@@ -2,3 +2,4 @@ class Outer { static public() {} } -+let q12 = new Outer(); -\ No newline at end of file -diff --git a/tests/cases/conformance/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic14.ts b/tests/cases/conformance/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic14.ts -index 23fb870f86..474e281b08 100644 ---- a/tests/cases/conformance/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic14.ts -+++ b/tests/cases/conformance/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic14.ts -@@ -2,3 +2,4 @@ class Outer ++let q12 = new Outer(); +\ No newline at end of file +diff --git a/tests/cases/conformance/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic14.ts b/tests/cases/conformance/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic14.ts +index 23fb870f86..474e281b08 100644 +--- a/tests/cases/conformance/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic14.ts ++++ b/tests/cases/conformance/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic14.ts +@@ -2,3 +2,4 @@ class Outer { static public() {} } -+let q14 = new Outer(); -\ No newline at end of file -diff --git a/tests/cases/conformance/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic2.ts b/tests/cases/conformance/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic2.ts -index 30045cf9f0..dfc01652e7 100644 ---- a/tests/cases/conformance/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic2.ts -+++ b/tests/cases/conformance/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic2.ts -@@ -2,3 +2,4 @@ class Outer ++let q14 = new Outer(); +\ No newline at end of file +diff --git a/tests/cases/conformance/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic2.ts b/tests/cases/conformance/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic2.ts +index 30045cf9f0..dfc01652e7 100644 +--- a/tests/cases/conformance/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic2.ts ++++ b/tests/cases/conformance/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic2.ts +@@ -2,3 +2,4 @@ class Outer { static public; } -+let q11 = new Outer(); -\ No newline at end of file -diff --git a/tests/cases/conformance/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic3.ts b/tests/cases/conformance/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic3.ts -index c2f462b71a..f38fc7ee97 100644 ---- a/tests/cases/conformance/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic3.ts -+++ b/tests/cases/conformance/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic3.ts -@@ -2,3 +2,4 @@ class Outer ++let q11 = new Outer(); +\ No newline at end of file +diff --git a/tests/cases/conformance/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic3.ts b/tests/cases/conformance/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic3.ts +index c2f462b71a..f38fc7ee97 100644 +--- a/tests/cases/conformance/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic3.ts ++++ b/tests/cases/conformance/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic3.ts +@@ -2,3 +2,4 @@ class Outer { static public = 1; } -+let q9 = new Outer(); -\ No newline at end of file -diff --git a/tests/cases/conformance/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic4.ts b/tests/cases/conformance/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic4.ts -index fe0ed44cf0..41f075c30c 100644 ---- a/tests/cases/conformance/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic4.ts -+++ b/tests/cases/conformance/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic4.ts -@@ -2,3 +2,4 @@ class Outer ++let q9 = new Outer(); +\ No newline at end of file +diff --git a/tests/cases/conformance/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic4.ts b/tests/cases/conformance/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic4.ts +index fe0ed44cf0..41f075c30c 100644 +--- a/tests/cases/conformance/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic4.ts ++++ b/tests/cases/conformance/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic4.ts +@@ -2,3 +2,4 @@ class Outer { static public: number; } -+let q13 = new Outer(); -\ No newline at end of file -diff --git a/tests/cases/conformance/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic5.ts b/tests/cases/conformance/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic5.ts -index 49db39132c..ea9593bb53 100644 ---- a/tests/cases/conformance/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic5.ts -+++ b/tests/cases/conformance/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic5.ts -@@ -2,3 +2,4 @@ class Outer ++let q13 = new Outer(); +\ No newline at end of file +diff --git a/tests/cases/conformance/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic5.ts b/tests/cases/conformance/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic5.ts +index 49db39132c..ea9593bb53 100644 +--- a/tests/cases/conformance/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic5.ts ++++ b/tests/cases/conformance/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic5.ts +@@ -2,3 +2,4 @@ class Outer { static public } -+let q0 = new Outer(); -\ No newline at end of file -diff --git a/tests/cases/conformance/parser/ecmascript5/Generics/parserGenericClass1.ts b/tests/cases/conformance/parser/ecmascript5/Generics/parserGenericClass1.ts -index 237910839d..a814947c9e 100644 ---- a/tests/cases/conformance/parser/ecmascript5/Generics/parserGenericClass1.ts -+++ b/tests/cases/conformance/parser/ecmascript5/Generics/parserGenericClass1.ts -@@ -1,2 +1,3 @@ ++let q0 = new Outer(); +\ No newline at end of file +diff --git a/tests/cases/conformance/parser/ecmascript5/Generics/parserGenericClass1.ts b/tests/cases/conformance/parser/ecmascript5/Generics/parserGenericClass1.ts +index 237910839d..a814947c9e 100644 +--- a/tests/cases/conformance/parser/ecmascript5/Generics/parserGenericClass1.ts ++++ b/tests/cases/conformance/parser/ecmascript5/Generics/parserGenericClass1.ts +@@ -1,2 +1,3 @@ class C { --} -\ No newline at end of file -+} -+let q38 = new C(); -\ No newline at end of file -diff --git a/tests/cases/conformance/parser/ecmascript5/Generics/parserGenericClass2.ts b/tests/cases/conformance/parser/ecmascript5/Generics/parserGenericClass2.ts -index 949f220fbd..f4f517c52c 100644 ---- a/tests/cases/conformance/parser/ecmascript5/Generics/parserGenericClass2.ts -+++ b/tests/cases/conformance/parser/ecmascript5/Generics/parserGenericClass2.ts -@@ -1,2 +1,3 @@ +-} +\ No newline at end of file ++} ++let q38 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/parser/ecmascript5/Generics/parserGenericClass2.ts b/tests/cases/conformance/parser/ecmascript5/Generics/parserGenericClass2.ts +index 949f220fbd..f4f517c52c 100644 +--- a/tests/cases/conformance/parser/ecmascript5/Generics/parserGenericClass2.ts ++++ b/tests/cases/conformance/parser/ecmascript5/Generics/parserGenericClass2.ts +@@ -1,2 +1,3 @@ class C { --} -\ No newline at end of file -+} -+let q40 = new C(); -\ No newline at end of file -diff --git a/tests/cases/conformance/parser/ecmascript5/Generics/parserGenericConstraint1.ts b/tests/cases/conformance/parser/ecmascript5/Generics/parserGenericConstraint1.ts -index 585fa7dbe1..78a9ffb4db 100644 ---- a/tests/cases/conformance/parser/ecmascript5/Generics/parserGenericConstraint1.ts -+++ b/tests/cases/conformance/parser/ecmascript5/Generics/parserGenericConstraint1.ts -@@ -1,2 +1,3 @@ +-} +\ No newline at end of file ++} ++let q40 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/parser/ecmascript5/Generics/parserGenericConstraint1.ts b/tests/cases/conformance/parser/ecmascript5/Generics/parserGenericConstraint1.ts +index 585fa7dbe1..78a9ffb4db 100644 +--- a/tests/cases/conformance/parser/ecmascript5/Generics/parserGenericConstraint1.ts ++++ b/tests/cases/conformance/parser/ecmascript5/Generics/parserGenericConstraint1.ts +@@ -1,2 +1,3 @@ class C { --} -\ No newline at end of file -+} -+let q39 = new C(); -\ No newline at end of file -diff --git a/tests/cases/conformance/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration1.ts b/tests/cases/conformance/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration1.ts -index 56ba0579b0..7de740ebab 100644 ---- a/tests/cases/conformance/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration1.ts -+++ b/tests/cases/conformance/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration1.ts -@@ -1,3 +1,4 @@ +-} +\ No newline at end of file ++} ++let q39 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration1.ts b/tests/cases/conformance/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration1.ts +index 56ba0579b0..7de740ebab 100644 +--- a/tests/cases/conformance/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration1.ts ++++ b/tests/cases/conformance/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration1.ts +@@ -1,3 +1,4 @@ class C { [a: string]: number --} -\ No newline at end of file -+} -+let q27 = new C(); -\ No newline at end of file -diff --git a/tests/cases/conformance/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration2.ts b/tests/cases/conformance/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration2.ts -index 34108a6e71..f0224e9379 100644 ---- a/tests/cases/conformance/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration2.ts -+++ b/tests/cases/conformance/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration2.ts -@@ -1,4 +1,5 @@ +-} +\ No newline at end of file ++} ++let q27 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration2.ts b/tests/cases/conformance/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration2.ts +index 34108a6e71..f0224e9379 100644 +--- a/tests/cases/conformance/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration2.ts ++++ b/tests/cases/conformance/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration2.ts +@@ -1,4 +1,5 @@ class C { [a: string]: number public v: number --} -\ No newline at end of file -+} -+let q29 = new C(); -\ No newline at end of file -diff --git a/tests/cases/conformance/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration3.ts b/tests/cases/conformance/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration3.ts -index f2180413ca..25ea575259 100644 ---- a/tests/cases/conformance/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration3.ts -+++ b/tests/cases/conformance/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration3.ts -@@ -1,4 +1,5 @@ +-} +\ No newline at end of file ++} ++let q29 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration3.ts b/tests/cases/conformance/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration3.ts +index f2180413ca..25ea575259 100644 +--- a/tests/cases/conformance/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration3.ts ++++ b/tests/cases/conformance/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration3.ts +@@ -1,4 +1,5 @@ class C { [a: string]: number; public v: number --} -\ No newline at end of file -+} -+let q30 = new C(); -\ No newline at end of file -diff --git a/tests/cases/conformance/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration4.ts b/tests/cases/conformance/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration4.ts -index 498ad89d82..42622da3af 100644 ---- a/tests/cases/conformance/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration4.ts -+++ b/tests/cases/conformance/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration4.ts -@@ -1,3 +1,4 @@ +-} +\ No newline at end of file ++} ++let q30 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration4.ts b/tests/cases/conformance/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration4.ts +index 498ad89d82..42622da3af 100644 +--- a/tests/cases/conformance/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration4.ts ++++ b/tests/cases/conformance/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration4.ts +@@ -1,3 +1,4 @@ class C { [a: string]: number; public v: number --} -\ No newline at end of file -+} -+let q28 = new C(); -\ No newline at end of file -diff --git a/tests/cases/conformance/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration6.ts b/tests/cases/conformance/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration6.ts -index af180f585f..b89c199246 100644 ---- a/tests/cases/conformance/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration6.ts -+++ b/tests/cases/conformance/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration6.ts -@@ -1,3 +1,4 @@ +-} +\ No newline at end of file ++} ++let q28 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration6.ts b/tests/cases/conformance/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration6.ts +index af180f585f..b89c199246 100644 +--- a/tests/cases/conformance/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration6.ts ++++ b/tests/cases/conformance/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration6.ts +@@ -1,3 +1,4 @@ class C { static [x: string]: string; --} -\ No newline at end of file -+} -+let q26 = new C(); -\ No newline at end of file -diff --git a/tests/cases/conformance/parser/ecmascript5/MemberVariableDeclarations/parserMemberVariableDeclaration5.ts b/tests/cases/conformance/parser/ecmascript5/MemberVariableDeclarations/parserMemberVariableDeclaration5.ts -index 98c4f9a75b..62e5062755 100644 ---- a/tests/cases/conformance/parser/ecmascript5/MemberVariableDeclarations/parserMemberVariableDeclaration5.ts -+++ b/tests/cases/conformance/parser/ecmascript5/MemberVariableDeclarations/parserMemberVariableDeclaration5.ts -@@ -1,3 +1,4 @@ +-} +\ No newline at end of file ++} ++let q26 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/parser/ecmascript5/MemberVariableDeclarations/parserMemberVariableDeclaration5.ts b/tests/cases/conformance/parser/ecmascript5/MemberVariableDeclarations/parserMemberVariableDeclaration5.ts +index 98c4f9a75b..62e5062755 100644 +--- a/tests/cases/conformance/parser/ecmascript5/MemberVariableDeclarations/parserMemberVariableDeclaration5.ts ++++ b/tests/cases/conformance/parser/ecmascript5/MemberVariableDeclarations/parserMemberVariableDeclaration5.ts +@@ -1,3 +1,4 @@ class C { declare Foo; --} -\ No newline at end of file -+} -+let q8 = new C(); -\ No newline at end of file -diff --git a/tests/cases/conformance/parser/ecmascript5/Protected/Protected3.ts b/tests/cases/conformance/parser/ecmascript5/Protected/Protected3.ts -index 2b07e1ca9a..765e7b650a 100644 ---- a/tests/cases/conformance/parser/ecmascript5/Protected/Protected3.ts -+++ b/tests/cases/conformance/parser/ecmascript5/Protected/Protected3.ts -@@ -1,3 +1,4 @@ +-} +\ No newline at end of file ++} ++let q8 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/parser/ecmascript5/Protected/Protected3.ts b/tests/cases/conformance/parser/ecmascript5/Protected/Protected3.ts +index 2b07e1ca9a..765e7b650a 100644 +--- a/tests/cases/conformance/parser/ecmascript5/Protected/Protected3.ts ++++ b/tests/cases/conformance/parser/ecmascript5/Protected/Protected3.ts +@@ -1,3 +1,4 @@ class C { protected constructor() { } --} -\ No newline at end of file -+} -+let q37 = new C(); -\ No newline at end of file -diff --git a/tests/cases/conformance/parser/ecmascript5/Protected/Protected5.ts b/tests/cases/conformance/parser/ecmascript5/Protected/Protected5.ts -index f0bf235a03..c1d4944d1e 100644 ---- a/tests/cases/conformance/parser/ecmascript5/Protected/Protected5.ts -+++ b/tests/cases/conformance/parser/ecmascript5/Protected/Protected5.ts -@@ -1,3 +1,4 @@ +-} +\ No newline at end of file ++} ++let q37 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/parser/ecmascript5/Protected/Protected5.ts b/tests/cases/conformance/parser/ecmascript5/Protected/Protected5.ts +index f0bf235a03..c1d4944d1e 100644 +--- a/tests/cases/conformance/parser/ecmascript5/Protected/Protected5.ts ++++ b/tests/cases/conformance/parser/ecmascript5/Protected/Protected5.ts +@@ -1,3 +1,4 @@ class C { protected static m() { } --} -\ No newline at end of file -+} -+let q34 = new C(); -\ No newline at end of file -diff --git a/tests/cases/conformance/parser/ecmascript5/Protected/Protected9.ts b/tests/cases/conformance/parser/ecmascript5/Protected/Protected9.ts -index 4e24e28ec1..5ce2aa474a 100644 ---- a/tests/cases/conformance/parser/ecmascript5/Protected/Protected9.ts -+++ b/tests/cases/conformance/parser/ecmascript5/Protected/Protected9.ts -@@ -1,3 +1,4 @@ +-} +\ No newline at end of file ++} ++let q34 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/parser/ecmascript5/Protected/Protected9.ts b/tests/cases/conformance/parser/ecmascript5/Protected/Protected9.ts +index 4e24e28ec1..5ce2aa474a 100644 +--- a/tests/cases/conformance/parser/ecmascript5/Protected/Protected9.ts ++++ b/tests/cases/conformance/parser/ecmascript5/Protected/Protected9.ts +@@ -1,3 +1,4 @@ class C { constructor(protected p) { } --} -\ No newline at end of file -+} -+let q35 = new C(null); -\ No newline at end of file -diff --git a/tests/cases/conformance/parser/ecmascript5/RegressionTests/parser509546.ts b/tests/cases/conformance/parser/ecmascript5/RegressionTests/parser509546.ts -index bfb48ee0e3..29d488ffbc 100644 ---- a/tests/cases/conformance/parser/ecmascript5/RegressionTests/parser509546.ts -+++ b/tests/cases/conformance/parser/ecmascript5/RegressionTests/parser509546.ts -@@ -1,3 +1,4 @@ +-} +\ No newline at end of file ++} ++let q35 = new C(null); +\ No newline at end of file +diff --git a/tests/cases/conformance/parser/ecmascript5/RegressionTests/parser509546.ts b/tests/cases/conformance/parser/ecmascript5/RegressionTests/parser509546.ts +index bfb48ee0e3..29d488ffbc 100644 +--- a/tests/cases/conformance/parser/ecmascript5/RegressionTests/parser509546.ts ++++ b/tests/cases/conformance/parser/ecmascript5/RegressionTests/parser509546.ts +@@ -1,3 +1,4 @@ export class Logger { public } -+let q32 = new Logger(); -\ No newline at end of file -diff --git a/tests/cases/conformance/parser/ecmascript5/RegressionTests/parser509546_1.ts b/tests/cases/conformance/parser/ecmascript5/RegressionTests/parser509546_1.ts -index bfb48ee0e3..18eeed1a6d 100644 ---- a/tests/cases/conformance/parser/ecmascript5/RegressionTests/parser509546_1.ts -+++ b/tests/cases/conformance/parser/ecmascript5/RegressionTests/parser509546_1.ts -@@ -1,3 +1,4 @@ ++let q32 = new Logger(); +\ No newline at end of file +diff --git a/tests/cases/conformance/parser/ecmascript5/RegressionTests/parser509546_1.ts b/tests/cases/conformance/parser/ecmascript5/RegressionTests/parser509546_1.ts +index bfb48ee0e3..18eeed1a6d 100644 +--- a/tests/cases/conformance/parser/ecmascript5/RegressionTests/parser509546_1.ts ++++ b/tests/cases/conformance/parser/ecmascript5/RegressionTests/parser509546_1.ts +@@ -1,3 +1,4 @@ export class Logger { public } -+let q31 = new Logger(); -\ No newline at end of file -diff --git a/tests/cases/conformance/parser/ecmascript5/RegressionTests/parser509546_2.ts b/tests/cases/conformance/parser/ecmascript5/RegressionTests/parser509546_2.ts -index ca1a460120..a4609ba88c 100644 ---- a/tests/cases/conformance/parser/ecmascript5/RegressionTests/parser509546_2.ts -+++ b/tests/cases/conformance/parser/ecmascript5/RegressionTests/parser509546_2.ts -@@ -3,3 +3,4 @@ ++let q31 = new Logger(); +\ No newline at end of file +diff --git a/tests/cases/conformance/parser/ecmascript5/RegressionTests/parser509546_2.ts b/tests/cases/conformance/parser/ecmascript5/RegressionTests/parser509546_2.ts +index ca1a460120..a4609ba88c 100644 +--- a/tests/cases/conformance/parser/ecmascript5/RegressionTests/parser509546_2.ts ++++ b/tests/cases/conformance/parser/ecmascript5/RegressionTests/parser509546_2.ts +@@ -3,3 +3,4 @@ export class Logger { public } -+let q23 = new Logger(); -\ No newline at end of file -diff --git a/tests/cases/conformance/parser/ecmascript5/parserUnicode3.ts b/tests/cases/conformance/parser/ecmascript5/parserUnicode3.ts -index bb5f00ea71..99802e72b5 100644 ---- a/tests/cases/conformance/parser/ecmascript5/parserUnicode3.ts -+++ b/tests/cases/conformance/parser/ecmascript5/parserUnicode3.ts -@@ -1,2 +1,3 @@ ++let q23 = new Logger(); +\ No newline at end of file +diff --git a/tests/cases/conformance/parser/ecmascript5/parserUnicode3.ts b/tests/cases/conformance/parser/ecmascript5/parserUnicode3.ts +index bb5f00ea71..99802e72b5 100644 +--- a/tests/cases/conformance/parser/ecmascript5/parserUnicode3.ts ++++ b/tests/cases/conformance/parser/ecmascript5/parserUnicode3.ts +@@ -1,2 +1,3 @@ class 剩下 { --} -\ No newline at end of file +-} +\ No newline at end of file +} +let q5 = new 剩下(); -diff --git a/tests/cases/conformance/parser/ecmascript6/Iterators/parserForOfStatement22.ts b/tests/cases/conformance/parser/ecmascript6/Iterators/parserForOfStatement22.ts -new file mode 100644 -index 0000000000..87f569dbfb ---- /dev/null -+++ b/tests/cases/conformance/parser/ecmascript6/Iterators/parserForOfStatement22.ts -@@ -0,0 +1,4 @@ +diff --git a/tests/cases/conformance/parser/ecmascript6/Iterators/parserForOfStatement22.ts b/tests/cases/conformance/parser/ecmascript6/Iterators/parserForOfStatement22.ts +new file mode 100644 +index 0000000000..87f569dbfb +--- /dev/null ++++ b/tests/cases/conformance/parser/ecmascript6/Iterators/parserForOfStatement22.ts +@@ -0,0 +1,4 @@ +// @target: esnext + +var async; +for (async of [1, 2]) {} -diff --git a/tests/cases/conformance/parser/ecmascript6/Iterators/parserForOfStatement23.ts b/tests/cases/conformance/parser/ecmascript6/Iterators/parserForOfStatement23.ts -new file mode 100644 -index 0000000000..5a3601380b ---- /dev/null -+++ b/tests/cases/conformance/parser/ecmascript6/Iterators/parserForOfStatement23.ts -@@ -0,0 +1,6 @@ +diff --git a/tests/cases/conformance/parser/ecmascript6/Iterators/parserForOfStatement23.ts b/tests/cases/conformance/parser/ecmascript6/Iterators/parserForOfStatement23.ts +new file mode 100644 +index 0000000000..5a3601380b +--- /dev/null ++++ b/tests/cases/conformance/parser/ecmascript6/Iterators/parserForOfStatement23.ts +@@ -0,0 +1,6 @@ +// @target: esnext + +async function foo(x: any) { + var async; + for await (async of x) {} +} -diff --git a/tests/cases/conformance/parser/ecmascript6/Iterators/parserForOfStatement24.ts b/tests/cases/conformance/parser/ecmascript6/Iterators/parserForOfStatement24.ts -new file mode 100644 -index 0000000000..3846bd0a91 ---- /dev/null -+++ b/tests/cases/conformance/parser/ecmascript6/Iterators/parserForOfStatement24.ts -@@ -0,0 +1,4 @@ +diff --git a/tests/cases/conformance/parser/ecmascript6/Iterators/parserForOfStatement24.ts b/tests/cases/conformance/parser/ecmascript6/Iterators/parserForOfStatement24.ts +new file mode 100644 +index 0000000000..3846bd0a91 +--- /dev/null ++++ b/tests/cases/conformance/parser/ecmascript6/Iterators/parserForOfStatement24.ts +@@ -0,0 +1,4 @@ +// @target: esnext + +var async; +for ((async) of [1, 2]); -diff --git a/tests/cases/conformance/salsa/inferringClassMembersFromAssignments3.ts b/tests/cases/conformance/salsa/inferringClassMembersFromAssignments3.ts -index 800bd368db..f713920ad5 100644 ---- a/tests/cases/conformance/salsa/inferringClassMembersFromAssignments3.ts -+++ b/tests/cases/conformance/salsa/inferringClassMembersFromAssignments3.ts -@@ -14,3 +14,4 @@ class Derived extends Base { - this.p = 1 - } - } -+let w1 = new Derived(); -\ No newline at end of file -diff --git a/tests/cases/conformance/salsa/plainJSBinderErrors.ts b/tests/cases/conformance/salsa/plainJSBinderErrors.ts -new file mode 100644 -index 0000000000..d2019e3f78 ---- /dev/null -+++ b/tests/cases/conformance/salsa/plainJSBinderErrors.ts -@@ -0,0 +1,44 @@ -+// @outdir: out/ -+// @target: esnext -+// @allowJS: true -+// @filename: plainJSBinderErrors.js -+export default 12 -+export default 13 -+const await = 1 -+const yield = 2 -+async function f() { -+ const await = 3 -+} -+function* g() { -+ const yield = 4 -+} -+class C { -+ #constructor = 5 -+ deleted() { -+ function container(f) { -+ delete f -+ } -+ var g = 6 -+ delete g -+ delete container -+ } -+ evalArguments() { -+ const eval = 7 -+ const arguments = 8 -+ } -+ withOctal() { -+ const redundant = 010 -+ with (redundant) { -+ return toFixed() -+ } -+ } -+ label() { -+ for(;;) { -+ label: var x = 1 -+ break label -+ } -+ return x -+ } -+} -+const eval = 9 -+const arguments = 10 -diff --git a/tests/cases/conformance/salsa/plainJSRedeclare.ts b/tests/cases/conformance/salsa/plainJSRedeclare.ts -new file mode 100644 -index 0000000000..be6831d0cd ---- /dev/null -+++ b/tests/cases/conformance/salsa/plainJSRedeclare.ts -@@ -0,0 +1,6 @@ -+// @outdir: out/ -+// @allowJS: true -+// @filename: plainJSRedeclare.js -+const orbitol = 1 -+var orbitol = 1 + false -+orbitol.toExponential() -diff --git a/tests/cases/conformance/salsa/plainJSRedeclare2.ts b/tests/cases/conformance/salsa/plainJSRedeclare2.ts -new file mode 100644 -index 0000000000..7409b6c8fe ---- /dev/null -+++ b/tests/cases/conformance/salsa/plainJSRedeclare2.ts -@@ -0,0 +1,7 @@ -+// @outdir: out/ -+// @allowJS: true -+// @checkJS: true -+// @filename: plainJSRedeclare.js -+const orbitol = 1 -+var orbitol = 1 + false -+orbitol.toExponential() -diff --git a/tests/cases/conformance/salsa/plainJSRedeclare3.ts b/tests/cases/conformance/salsa/plainJSRedeclare3.ts -new file mode 100644 -index 0000000000..1327fcfc17 ---- /dev/null -+++ b/tests/cases/conformance/salsa/plainJSRedeclare3.ts -@@ -0,0 +1,7 @@ -+// @outdir: out/ -+// @allowJS: true -+// @checkJS: false -+// @filename: plainJSRedeclare.js -+const orbitol = 1 -+var orbitol = 1 + false -+orbitol.toExponential() -diff --git a/tests/cases/conformance/salsa/plainJSReservedStrict.ts b/tests/cases/conformance/salsa/plainJSReservedStrict.ts -new file mode 100644 -index 0000000000..fbd654927d ---- /dev/null -+++ b/tests/cases/conformance/salsa/plainJSReservedStrict.ts -@@ -0,0 +1,7 @@ -+// @outdir: out/ -+// @target: esnext -+// @allowJS: true -+// @filename: plainJSReservedStrict.js -+"use strict" -+const eval = 1 -+const arguments = 2 -diff --git a/tests/cases/conformance/salsa/spellingUncheckedJS.ts b/tests/cases/conformance/salsa/spellingUncheckedJS.ts -new file mode 100644 -index 0000000000..d5a1e8ac56 ---- /dev/null -+++ b/tests/cases/conformance/salsa/spellingUncheckedJS.ts -@@ -0,0 +1,51 @@ -+// @noEmit: true -+// @allowJs: true -+// @filename: spellingUncheckedJS.js -+export var inModule = 1 -+inmodule.toFixed() -+ -+function f() { -+ var locals = 2 + true -+ locale.toFixed() -+ // @ts-expect-error -+ localf.toExponential() -+ // @ts-expect-error -+ "this is fine" -+} -+class Classe { -+ non = 'oui' -+ methode() { -+ // no error on 'this' references -+ return this.none -+ } -+} -+class Derivee extends Classe { -+ methode() { -+ // no error on 'super' references -+ return super.none -+ } -+} -+ -+ -+var object = { -+ spaaace: 3 -+} -+object.spaaaace // error on read -+object.spaace = 12 // error on write -+object.fresh = 12 // OK -+other.puuuce // OK, from another file -+new Date().getGMTDate() // OK, from another file -+ -+// No suggestions for globals from other files -+const atoc = setIntegral(() => console.log('ok'), 500) -+AudioBuffin // etc -+Jimmy -+Jon -+ -+// @filename: other.js -+var Jimmy = 1 -+var John = 2 -+Jon // error, it's from the same file -+var other = { -+ puuce: 4 -+} -diff --git a/tests/cases/conformance/salsa/typeFromJSInitializer2.ts b/tests/cases/conformance/salsa/typeFromJSInitializer2.ts -new file mode 100644 -index 0000000000..c1d5857624 ---- /dev/null -+++ b/tests/cases/conformance/salsa/typeFromJSInitializer2.ts -@@ -0,0 +1,18 @@ -+// @allowJs: true -+// @checkJs: true -+// @noEmit: true -+// @strictNullChecks: true -+// @noImplicitAny: true -+// @Filename: a.js -+ -+/** @type {() => undefined} */ -+function f1() { -+ return undefined; -+} -+const a = f1() -+ -+/** @type {() => null} */ -+function f2() { -+ return null; -+} -+const b = f2() -diff --git a/tests/cases/conformance/salsa/typeFromJSInitializer3.ts b/tests/cases/conformance/salsa/typeFromJSInitializer3.ts -new file mode 100644 -index 0000000000..c5100df43d ---- /dev/null -+++ b/tests/cases/conformance/salsa/typeFromJSInitializer3.ts -@@ -0,0 +1,18 @@ -+// @allowJs: true -+// @checkJs: true -+// @noEmit: true -+// @strictNullChecks: false -+// @noImplicitAny: true -+// @Filename: a.js -+ -+/** @type {() => undefined} */ -+function f1() { -+ return undefined; -+} -+const a = f1() -+ -+/** @type {() => null} */ -+function f2() { -+ return null; -+} -+const b = f2() -diff --git a/tests/cases/conformance/salsa/typeFromJSInitializer4.ts b/tests/cases/conformance/salsa/typeFromJSInitializer4.ts -new file mode 100644 -index 0000000000..02d16c45a2 ---- /dev/null -+++ b/tests/cases/conformance/salsa/typeFromJSInitializer4.ts -@@ -0,0 +1,29 @@ -+// @allowJs: true -+// @checkJs: true -+// @noEmit: true -+// @strictNullChecks: false -+// @noImplicitAny: true -+// @Filename: a.js -+ -+/** @type {number | undefined} */ -+var n; -+ -+// should get any on parameter initialisers -+function f(a = null, b = n, l = []) { -+ // a should be any -+ a = undefined -+ a = null -+ a = 1 -+ a = true -+ a = {} -+ a = 'ok' -+ -+ // b should be number | undefined, not any -+ b = 1 -+ b = undefined -+ b = 'error' -+ -+ // l should be any[] -+ l.push(1) -+ l.push('ok') -+} -diff --git a/tests/cases/conformance/salsa/typeFromPropertyAssignment23.ts b/tests/cases/conformance/salsa/typeFromPropertyAssignment23.ts -index 18923e0a5a..1dafa91c28 100644 ---- a/tests/cases/conformance/salsa/typeFromPropertyAssignment23.ts -+++ b/tests/cases/conformance/salsa/typeFromPropertyAssignment23.ts -@@ -35,3 +35,6 @@ class NormalModule extends Module { - return 0 - } - } -+let cc = new C(); -+let dd = new D(); -+let mo = new NormalModule(); -\ No newline at end of file -diff --git a/tests/cases/conformance/statements/for-inStatements/for-inStatementsAsyncIdentifier.ts b/tests/cases/conformance/statements/for-inStatements/for-inStatementsAsyncIdentifier.ts -new file mode 100644 -index 0000000000..ae63dd3136 ---- /dev/null -+++ b/tests/cases/conformance/statements/for-inStatements/for-inStatementsAsyncIdentifier.ts -@@ -0,0 +1,4 @@ +diff --git a/tests/cases/conformance/salsa/inferringClassMembersFromAssignments3.ts b/tests/cases/conformance/salsa/inferringClassMembersFromAssignments3.ts +index 800bd368db..f713920ad5 100644 +--- a/tests/cases/conformance/salsa/inferringClassMembersFromAssignments3.ts ++++ b/tests/cases/conformance/salsa/inferringClassMembersFromAssignments3.ts +@@ -14,3 +14,4 @@ class Derived extends Base { + this.p = 1 + } + } ++let w1 = new Derived(); +\ No newline at end of file +diff --git a/tests/cases/conformance/salsa/plainJSBinderErrors.ts b/tests/cases/conformance/salsa/plainJSBinderErrors.ts +new file mode 100644 +index 0000000000..d2019e3f78 +--- /dev/null ++++ b/tests/cases/conformance/salsa/plainJSBinderErrors.ts +@@ -0,0 +1,44 @@ ++// @outdir: out/ ++// @target: esnext ++// @allowJS: true ++// @filename: plainJSBinderErrors.js ++export default 12 ++export default 13 ++const await = 1 ++const yield = 2 ++async function f() { ++ const await = 3 ++} ++function* g() { ++ const yield = 4 ++} ++class C { ++ #constructor = 5 ++ deleted() { ++ function container(f) { ++ delete f ++ } ++ var g = 6 ++ delete g ++ delete container ++ } ++ evalArguments() { ++ const eval = 7 ++ const arguments = 8 ++ } ++ withOctal() { ++ const redundant = 010 ++ with (redundant) { ++ return toFixed() ++ } ++ } ++ label() { ++ for(;;) { ++ label: var x = 1 ++ break label ++ } ++ return x ++ } ++} ++const eval = 9 ++const arguments = 10 +diff --git a/tests/cases/conformance/salsa/plainJSRedeclare.ts b/tests/cases/conformance/salsa/plainJSRedeclare.ts +new file mode 100644 +index 0000000000..be6831d0cd +--- /dev/null ++++ b/tests/cases/conformance/salsa/plainJSRedeclare.ts +@@ -0,0 +1,6 @@ ++// @outdir: out/ ++// @allowJS: true ++// @filename: plainJSRedeclare.js ++const orbitol = 1 ++var orbitol = 1 + false ++orbitol.toExponential() +diff --git a/tests/cases/conformance/salsa/plainJSRedeclare2.ts b/tests/cases/conformance/salsa/plainJSRedeclare2.ts +new file mode 100644 +index 0000000000..7409b6c8fe +--- /dev/null ++++ b/tests/cases/conformance/salsa/plainJSRedeclare2.ts +@@ -0,0 +1,7 @@ ++// @outdir: out/ ++// @allowJS: true ++// @checkJS: true ++// @filename: plainJSRedeclare.js ++const orbitol = 1 ++var orbitol = 1 + false ++orbitol.toExponential() +diff --git a/tests/cases/conformance/salsa/plainJSRedeclare3.ts b/tests/cases/conformance/salsa/plainJSRedeclare3.ts +new file mode 100644 +index 0000000000..1327fcfc17 +--- /dev/null ++++ b/tests/cases/conformance/salsa/plainJSRedeclare3.ts +@@ -0,0 +1,7 @@ ++// @outdir: out/ ++// @allowJS: true ++// @checkJS: false ++// @filename: plainJSRedeclare.js ++const orbitol = 1 ++var orbitol = 1 + false ++orbitol.toExponential() +diff --git a/tests/cases/conformance/salsa/plainJSReservedStrict.ts b/tests/cases/conformance/salsa/plainJSReservedStrict.ts +new file mode 100644 +index 0000000000..fbd654927d +--- /dev/null ++++ b/tests/cases/conformance/salsa/plainJSReservedStrict.ts +@@ -0,0 +1,7 @@ ++// @outdir: out/ ++// @target: esnext ++// @allowJS: true ++// @filename: plainJSReservedStrict.js ++"use strict" ++const eval = 1 ++const arguments = 2 +diff --git a/tests/cases/conformance/salsa/spellingUncheckedJS.ts b/tests/cases/conformance/salsa/spellingUncheckedJS.ts +new file mode 100644 +index 0000000000..d5a1e8ac56 +--- /dev/null ++++ b/tests/cases/conformance/salsa/spellingUncheckedJS.ts +@@ -0,0 +1,51 @@ ++// @noEmit: true ++// @allowJs: true ++// @filename: spellingUncheckedJS.js ++export var inModule = 1 ++inmodule.toFixed() ++ ++function f() { ++ var locals = 2 + true ++ locale.toFixed() ++ // @ts-expect-error ++ localf.toExponential() ++ // @ts-expect-error ++ "this is fine" ++} ++class Classe { ++ non = 'oui' ++ methode() { ++ // no error on 'this' references ++ return this.none ++ } ++} ++class Derivee extends Classe { ++ methode() { ++ // no error on 'super' references ++ return super.none ++ } ++} ++ ++ ++var object = { ++ spaaace: 3 ++} ++object.spaaaace // error on read ++object.spaace = 12 // error on write ++object.fresh = 12 // OK ++other.puuuce // OK, from another file ++new Date().getGMTDate() // OK, from another file ++ ++// No suggestions for globals from other files ++const atoc = setIntegral(() => console.log('ok'), 500) ++AudioBuffin // etc ++Jimmy ++Jon ++ ++// @filename: other.js ++var Jimmy = 1 ++var John = 2 ++Jon // error, it's from the same file ++var other = { ++ puuce: 4 ++} +diff --git a/tests/cases/conformance/salsa/typeFromJSInitializer2.ts b/tests/cases/conformance/salsa/typeFromJSInitializer2.ts +new file mode 100644 +index 0000000000..c1d5857624 +--- /dev/null ++++ b/tests/cases/conformance/salsa/typeFromJSInitializer2.ts +@@ -0,0 +1,18 @@ ++// @allowJs: true ++// @checkJs: true ++// @noEmit: true ++// @strictNullChecks: true ++// @noImplicitAny: true ++// @Filename: a.js ++ ++/** @type {() => undefined} */ ++function f1() { ++ return undefined; ++} ++const a = f1() ++ ++/** @type {() => null} */ ++function f2() { ++ return null; ++} ++const b = f2() +diff --git a/tests/cases/conformance/salsa/typeFromJSInitializer3.ts b/tests/cases/conformance/salsa/typeFromJSInitializer3.ts +new file mode 100644 +index 0000000000..c5100df43d +--- /dev/null ++++ b/tests/cases/conformance/salsa/typeFromJSInitializer3.ts +@@ -0,0 +1,18 @@ ++// @allowJs: true ++// @checkJs: true ++// @noEmit: true ++// @strictNullChecks: false ++// @noImplicitAny: true ++// @Filename: a.js ++ ++/** @type {() => undefined} */ ++function f1() { ++ return undefined; ++} ++const a = f1() ++ ++/** @type {() => null} */ ++function f2() { ++ return null; ++} ++const b = f2() +diff --git a/tests/cases/conformance/salsa/typeFromJSInitializer4.ts b/tests/cases/conformance/salsa/typeFromJSInitializer4.ts +new file mode 100644 +index 0000000000..02d16c45a2 +--- /dev/null ++++ b/tests/cases/conformance/salsa/typeFromJSInitializer4.ts +@@ -0,0 +1,29 @@ ++// @allowJs: true ++// @checkJs: true ++// @noEmit: true ++// @strictNullChecks: false ++// @noImplicitAny: true ++// @Filename: a.js ++ ++/** @type {number | undefined} */ ++var n; ++ ++// should get any on parameter initialisers ++function f(a = null, b = n, l = []) { ++ // a should be any ++ a = undefined ++ a = null ++ a = 1 ++ a = true ++ a = {} ++ a = 'ok' ++ ++ // b should be number | undefined, not any ++ b = 1 ++ b = undefined ++ b = 'error' ++ ++ // l should be any[] ++ l.push(1) ++ l.push('ok') ++} +diff --git a/tests/cases/conformance/salsa/typeFromPropertyAssignment23.ts b/tests/cases/conformance/salsa/typeFromPropertyAssignment23.ts +index 18923e0a5a..1dafa91c28 100644 +--- a/tests/cases/conformance/salsa/typeFromPropertyAssignment23.ts ++++ b/tests/cases/conformance/salsa/typeFromPropertyAssignment23.ts +@@ -35,3 +35,6 @@ class NormalModule extends Module { + return 0 + } + } ++let cc = new C(); ++let dd = new D(); ++let mo = new NormalModule(); +\ No newline at end of file +diff --git a/tests/cases/conformance/statements/for-inStatements/for-inStatementsAsyncIdentifier.ts b/tests/cases/conformance/statements/for-inStatements/for-inStatementsAsyncIdentifier.ts +new file mode 100644 +index 0000000000..ae63dd3136 +--- /dev/null ++++ b/tests/cases/conformance/statements/for-inStatements/for-inStatementsAsyncIdentifier.ts +@@ -0,0 +1,4 @@ +// @target: esnext + +var async; +for (async in { a: 1, b: 2 }) {} -diff --git a/tests/cases/conformance/statements/returnStatements/returnStatements.ts b/tests/cases/conformance/statements/returnStatements/returnStatements.ts -index ce764c1f11..945b98944c 100644 ---- a/tests/cases/conformance/statements/returnStatements/returnStatements.ts -+++ b/tests/cases/conformance/statements/returnStatements/returnStatements.ts -@@ -21,3 +21,4 @@ function fn10(): I { return { id: 12 }; } +diff --git a/tests/cases/conformance/statements/returnStatements/returnStatements.ts b/tests/cases/conformance/statements/returnStatements/returnStatements.ts +index ce764c1f11..945b98944c 100644 +--- a/tests/cases/conformance/statements/returnStatements/returnStatements.ts ++++ b/tests/cases/conformance/statements/returnStatements/returnStatements.ts +@@ -21,3 +21,4 @@ function fn10(): I { return { id: 12 }; } function fn11(): I { return new C(); } function fn12(): C { return new D(); } function fn13(): C { return null; } -+let q41 = new D(); -\ No newline at end of file -diff --git a/tests/cases/conformance/statements/throwStatements/throwInEnclosingStatements.ts b/tests/cases/conformance/statements/throwStatements/throwInEnclosingStatements.ts -index c5875327b5..313b2b7169 100644 ---- a/tests/cases/conformance/statements/throwStatements/throwInEnclosingStatements.ts -+++ b/tests/cases/conformance/statements/throwStatements/throwInEnclosingStatements.ts -@@ -45,3 +45,4 @@ var aa = { ++let q41 = new D(); +\ No newline at end of file +diff --git a/tests/cases/conformance/statements/throwStatements/throwInEnclosingStatements.ts b/tests/cases/conformance/statements/throwStatements/throwInEnclosingStatements.ts +index c5875327b5..313b2b7169 100644 +--- a/tests/cases/conformance/statements/throwStatements/throwInEnclosingStatements.ts ++++ b/tests/cases/conformance/statements/throwStatements/throwInEnclosingStatements.ts +@@ -45,3 +45,4 @@ var aa = { throw this; } } -+let q42 = new C(); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/any/anyAsGenericFunctionCall.ts b/tests/cases/conformance/types/any/anyAsGenericFunctionCall.ts -index 9529b5b9a3..7996e18343 100644 ---- a/tests/cases/conformance/types/any/anyAsGenericFunctionCall.ts -+++ b/tests/cases/conformance/types/any/anyAsGenericFunctionCall.ts -@@ -7,4 +7,6 @@ var b = x('hello'); ++let q42 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/any/anyAsGenericFunctionCall.ts b/tests/cases/conformance/types/any/anyAsGenericFunctionCall.ts +index 9529b5b9a3..7996e18343 100644 +--- a/tests/cases/conformance/types/any/anyAsGenericFunctionCall.ts ++++ b/tests/cases/conformance/types/any/anyAsGenericFunctionCall.ts +@@ -7,4 +7,6 @@ var b = x('hello'); class C { foo: string; } var c = x(x); --var d = x(x); -\ No newline at end of file +-var d = x(x); +\ No newline at end of file +var d = x(x); + -+let c1 = new C(); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/any/assignAnyToEveryType.ts b/tests/cases/conformance/types/any/assignAnyToEveryType.ts -index 0af7d94d7b..aba7eb4753 100644 ---- a/tests/cases/conformance/types/any/assignAnyToEveryType.ts -+++ b/tests/cases/conformance/types/any/assignAnyToEveryType.ts -@@ -42,4 +42,6 @@ M = x; ++let c1 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/any/assignAnyToEveryType.ts b/tests/cases/conformance/types/any/assignAnyToEveryType.ts +index 0af7d94d7b..aba7eb4753 100644 +--- a/tests/cases/conformance/types/any/assignAnyToEveryType.ts ++++ b/tests/cases/conformance/types/any/assignAnyToEveryType.ts +@@ -42,4 +42,6 @@ M = x; function k(a: T) { a = x; --} -\ No newline at end of file +-} +\ No newline at end of file +} + -+let c1 = new C(); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/any/assignEveryTypeToAny.ts b/tests/cases/conformance/types/any/assignEveryTypeToAny.ts -index 8613550fc5..0f7f258e87 100644 ---- a/tests/cases/conformance/types/any/assignEveryTypeToAny.ts -+++ b/tests/cases/conformance/types/any/assignEveryTypeToAny.ts -@@ -52,4 +52,6 @@ x = { f(x: T) { return x; } } ++let c1 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/any/assignEveryTypeToAny.ts b/tests/cases/conformance/types/any/assignEveryTypeToAny.ts +index 8613550fc5..0f7f258e87 100644 +--- a/tests/cases/conformance/types/any/assignEveryTypeToAny.ts ++++ b/tests/cases/conformance/types/any/assignEveryTypeToAny.ts +@@ -52,4 +52,6 @@ x = { f(x: T) { return x; } } function j(a: T) { x = a; --} -\ No newline at end of file +-} +\ No newline at end of file +} + -+let c1 = new C(); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/conditional/variance.ts b/tests/cases/conformance/types/conditional/variance.ts -index 1dd5db5c67..433eab8e01 100644 ---- a/tests/cases/conformance/types/conditional/variance.ts -+++ b/tests/cases/conformance/types/conditional/variance.ts -@@ -25,3 +25,5 @@ class Bar { ++let c1 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/conditional/variance.ts b/tests/cases/conformance/types/conditional/variance.ts +index 1dd5db5c67..433eab8e01 100644 +--- a/tests/cases/conformance/types/conditional/variance.ts ++++ b/tests/cases/conformance/types/conditional/variance.ts +@@ -25,3 +25,5 @@ class Bar { Bar.instance.push(this); } } + +let ba = new Bar(); -diff --git a/tests/cases/conformance/types/contextualTypes/partiallyAnnotatedFunction/partiallyAnnotatedFunctionInferenceWithTypeParameter.ts b/tests/cases/conformance/types/contextualTypes/partiallyAnnotatedFunction/partiallyAnnotatedFunctionInferenceWithTypeParameter.ts -index 530d506f64..87069a602d 100644 ---- a/tests/cases/conformance/types/contextualTypes/partiallyAnnotatedFunction/partiallyAnnotatedFunctionInferenceWithTypeParameter.ts -+++ b/tests/cases/conformance/types/contextualTypes/partiallyAnnotatedFunction/partiallyAnnotatedFunctionInferenceWithTypeParameter.ts -@@ -31,3 +31,6 @@ testRest((t1: D, t2, t3) => {}) - testRest((t1, t2: D, t3) => {}) - testRest((t2: D, ...t3) => {}) - testRest((t2, ...t3: D[]) => {}) -+ -+ -+let d = new D(); -diff --git a/tests/cases/conformance/types/import/importTypeAmbient.ts b/tests/cases/conformance/types/import/importTypeAmbient.ts -index b1ba463777..3345c3ac06 100644 ---- a/tests/cases/conformance/types/import/importTypeAmbient.ts -+++ b/tests/cases/conformance/types/import/importTypeAmbient.ts -@@ -28,8 +28,8 @@ declare module "foo2" { +diff --git a/tests/cases/conformance/types/contextualTypes/partiallyAnnotatedFunction/partiallyAnnotatedFunctionInferenceWithTypeParameter.ts b/tests/cases/conformance/types/contextualTypes/partiallyAnnotatedFunction/partiallyAnnotatedFunctionInferenceWithTypeParameter.ts +index 530d506f64..87069a602d 100644 +--- a/tests/cases/conformance/types/contextualTypes/partiallyAnnotatedFunction/partiallyAnnotatedFunctionInferenceWithTypeParameter.ts ++++ b/tests/cases/conformance/types/contextualTypes/partiallyAnnotatedFunction/partiallyAnnotatedFunctionInferenceWithTypeParameter.ts +@@ -31,3 +31,6 @@ testRest((t1: D, t2, t3) => {}) + testRest((t1, t2: D, t3) => {}) + testRest((t2: D, ...t3) => {}) + testRest((t2, ...t3: D[]) => {}) ++ ++ ++let d = new D(); +diff --git a/tests/cases/conformance/types/import/importTypeAmbient.ts b/tests/cases/conformance/types/import/importTypeAmbient.ts +index b1ba463777..3345c3ac06 100644 +--- a/tests/cases/conformance/types/import/importTypeAmbient.ts ++++ b/tests/cases/conformance/types/import/importTypeAmbient.ts +@@ -28,8 +28,8 @@ declare module "foo2" { item: Bar.I; constructor(input: Baz.J); } @@ -10409,18 +10409,18 @@ index b1ba463777..3345c3ac06 100644 let y: import("foo2").Bar.I = { a: "", b: 0 }; class Bar2 { -@@ -40,3 +40,6 @@ class Bar2 { +@@ -40,3 +40,6 @@ class Bar2 { let shim: typeof import("foo2") = { Bar: Bar2 }; + +var a; +let ba1 = new Bar2(a); -diff --git a/tests/cases/conformance/types/import/importTypeGenericTypes.ts b/tests/cases/conformance/types/import/importTypeGenericTypes.ts -index 5bc3aa7802..cf808fc6e3 100644 ---- a/tests/cases/conformance/types/import/importTypeGenericTypes.ts -+++ b/tests/cases/conformance/types/import/importTypeGenericTypes.ts -@@ -29,9 +29,10 @@ class Bar { +diff --git a/tests/cases/conformance/types/import/importTypeGenericTypes.ts b/tests/cases/conformance/types/import/importTypeGenericTypes.ts +index 5bc3aa7802..cf808fc6e3 100644 +--- a/tests/cases/conformance/types/import/importTypeGenericTypes.ts ++++ b/tests/cases/conformance/types/import/importTypeGenericTypes.ts +@@ -29,9 +29,10 @@ class Bar { item: Bar.I; constructor(input: Baz.J) {} } @@ -10432,17 +10432,17 @@ index 5bc3aa7802..cf808fc6e3 100644 export const x: import("./foo")<{x: number}> = { x: 0, y: 0, data: {x: 12} }; export let y: import("./foo2").Bar.I<{x: number}> = { a: "", b: 0, data: {x: 12} }; -@@ -43,3 +44,5 @@ export class Bar2 { +@@ -43,3 +44,5 @@ export class Bar2 { export let shim: typeof import("./foo2") = { Bar: Bar2 }; + +let ba2 = new Bar2(1); -diff --git a/tests/cases/conformance/types/import/importTypeLocal.ts b/tests/cases/conformance/types/import/importTypeLocal.ts -index 4f29a22285..6fe5ab1c18 100644 ---- a/tests/cases/conformance/types/import/importTypeLocal.ts -+++ b/tests/cases/conformance/types/import/importTypeLocal.ts -@@ -26,8 +26,11 @@ class Bar { +diff --git a/tests/cases/conformance/types/import/importTypeLocal.ts b/tests/cases/conformance/types/import/importTypeLocal.ts +index 4f29a22285..6fe5ab1c18 100644 +--- a/tests/cases/conformance/types/import/importTypeLocal.ts ++++ b/tests/cases/conformance/types/import/importTypeLocal.ts +@@ -26,8 +26,11 @@ class Bar { item: Bar.I; constructor(input: Baz.J) {} } @@ -10454,40 +10454,40 @@ index 4f29a22285..6fe5ab1c18 100644 // @filename: usage.ts export const x: import("./foo") = { x: 0, y: 0 }; export let y: import("./foo2").Bar.I = { a: "", b: 0 }; -@@ -40,3 +43,5 @@ export class Bar2 { +@@ -40,3 +43,5 @@ export class Bar2 { export let shim: typeof import("./foo2") = { Bar: Bar2 }; + -+let ba2 = new Bar2(); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/intersection/intersectionOfUnionNarrowing.ts b/tests/cases/conformance/types/intersection/intersectionOfUnionNarrowing.ts -new file mode 100644 -index 0000000000..0f67b66bff ---- /dev/null -+++ b/tests/cases/conformance/types/intersection/intersectionOfUnionNarrowing.ts -@@ -0,0 +1,16 @@ -+// @strict: true -+ -+interface X { -+ a?: { aProp: string }; -+ b?: { bProp: string }; -+} -+type AorB = { a: object; b: undefined } | { a: undefined; b: object }; -+ -+declare const q: X & AorB; -+ -+if (q.a !== undefined) { -+ q.a.aProp; -+} else { -+ // q.b is previously incorrectly inferred as potentially undefined -+ q.b.bProp; -+} -diff --git a/tests/cases/conformance/types/keyof/keyofAndIndexedAccess.ts b/tests/cases/conformance/types/keyof/keyofAndIndexedAccess.ts -index 56ff157a67..7c7d0b13e0 100644 ---- a/tests/cases/conformance/types/keyof/keyofAndIndexedAccess.ts -+++ b/tests/cases/conformance/types/keyof/keyofAndIndexedAccess.ts -@@ -658,3 +658,23 @@ const cf2 = (t: T, ++let ba2 = new Bar2(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/intersection/intersectionOfUnionNarrowing.ts b/tests/cases/conformance/types/intersection/intersectionOfUnionNarrowing.ts +new file mode 100644 +index 0000000000..0f67b66bff +--- /dev/null ++++ b/tests/cases/conformance/types/intersection/intersectionOfUnionNarrowing.ts +@@ -0,0 +1,16 @@ ++// @strict: true ++ ++interface X { ++ a?: { aProp: string }; ++ b?: { bProp: string }; ++} ++type AorB = { a: object; b: undefined } | { a: undefined; b: object }; ++ ++declare const q: X & AorB; ++ ++if (q.a !== undefined) { ++ q.a.aProp; ++} else { ++ // q.b is previously incorrectly inferred as potentially undefined ++ q.b.bProp; ++} +diff --git a/tests/cases/conformance/types/keyof/keyofAndIndexedAccess.ts b/tests/cases/conformance/types/keyof/keyofAndIndexedAccess.ts +index 56ff157a67..7c7d0b13e0 100644 +--- a/tests/cases/conformance/types/keyof/keyofAndIndexedAccess.ts ++++ b/tests/cases/conformance/types/keyof/keyofAndIndexedAccess.ts +@@ -658,3 +658,23 @@ const cf2 = (t: T, const s: string = t[k]; t.cool; }; @@ -10511,22 +10511,22 @@ index 56ff157a67..7c7d0b13e0 100644 +let sam = new SampleClass(1); +let ano = new AnotherSampleClass(1); +let unb = new Unbounded(); -diff --git a/tests/cases/conformance/types/literal/literalTypes2.ts b/tests/cases/conformance/types/literal/literalTypes2.ts -index 57e7a0bc74..46b1479857 100644 ---- a/tests/cases/conformance/types/literal/literalTypes2.ts -+++ b/tests/cases/conformance/types/literal/literalTypes2.ts -@@ -176,3 +176,6 @@ type Bit = 0 | 1; +diff --git a/tests/cases/conformance/types/literal/literalTypes2.ts b/tests/cases/conformance/types/literal/literalTypes2.ts +index 57e7a0bc74..46b1479857 100644 +--- a/tests/cases/conformance/types/literal/literalTypes2.ts ++++ b/tests/cases/conformance/types/literal/literalTypes2.ts +@@ -176,3 +176,6 @@ type Bit = 0 | 1; let aa = makeArray(0); aa = append(aa, 1); + +let c1 = new C1(); +let c2 = new C2(); -diff --git a/tests/cases/conformance/types/localTypes/localTypes2.ts b/tests/cases/conformance/types/localTypes/localTypes2.ts -index 79f1402c70..2b81f903ac 100644 ---- a/tests/cases/conformance/types/localTypes/localTypes2.ts -+++ b/tests/cases/conformance/types/localTypes/localTypes2.ts -@@ -3,6 +3,7 @@ function f1() { +diff --git a/tests/cases/conformance/types/localTypes/localTypes2.ts b/tests/cases/conformance/types/localTypes/localTypes2.ts +index 79f1402c70..2b81f903ac 100644 +--- a/tests/cases/conformance/types/localTypes/localTypes2.ts ++++ b/tests/cases/conformance/types/localTypes/localTypes2.ts +@@ -3,6 +3,7 @@ function f1() { class C { constructor(public x: number, public y: number) { } } @@ -10534,7 +10534,7 @@ index 79f1402c70..2b81f903ac 100644 return C; } let C = f(); -@@ -17,6 +18,7 @@ function f2() { +@@ -17,6 +18,7 @@ function f2() { public x = x; constructor(public y: number) { } } @@ -10542,7 +10542,7 @@ index 79f1402c70..2b81f903ac 100644 return C; } let C = f(10); -@@ -31,6 +33,7 @@ function f3() { +@@ -31,6 +33,7 @@ function f3() { public x = x; public y = y; } @@ -10550,11 +10550,11 @@ index 79f1402c70..2b81f903ac 100644 return C; } let C = f(10, 20); -diff --git a/tests/cases/conformance/types/localTypes/localTypes3.ts b/tests/cases/conformance/types/localTypes/localTypes3.ts -index 5eb3cf2850..7b1e536270 100644 ---- a/tests/cases/conformance/types/localTypes/localTypes3.ts -+++ b/tests/cases/conformance/types/localTypes/localTypes3.ts -@@ -3,6 +3,7 @@ function f1() { +diff --git a/tests/cases/conformance/types/localTypes/localTypes3.ts b/tests/cases/conformance/types/localTypes/localTypes3.ts +index 5eb3cf2850..7b1e536270 100644 +--- a/tests/cases/conformance/types/localTypes/localTypes3.ts ++++ b/tests/cases/conformance/types/localTypes/localTypes3.ts +@@ -3,6 +3,7 @@ function f1() { class C { constructor(public x: X, public y: Y) { } } @@ -10562,7 +10562,7 @@ index 5eb3cf2850..7b1e536270 100644 return C; } let C = f(); -@@ -17,6 +18,7 @@ function f2() { +@@ -17,6 +18,7 @@ function f2() { public x = x; constructor(public y: Y) { } } @@ -10570,7 +10570,7 @@ index 5eb3cf2850..7b1e536270 100644 return C; } let C = f(10); -@@ -31,6 +33,7 @@ function f3() { +@@ -31,6 +33,7 @@ function f3() { public x = x; public y = y; } @@ -10578,132 +10578,132 @@ index 5eb3cf2850..7b1e536270 100644 return C; } let C = f(10, "hello"); -diff --git a/tests/cases/conformance/types/mapped/mappedTypeAsClauseRelationships.ts b/tests/cases/conformance/types/mapped/mappedTypeAsClauseRelationships.ts -new file mode 100644 -index 0000000000..051192159e ---- /dev/null -+++ b/tests/cases/conformance/types/mapped/mappedTypeAsClauseRelationships.ts -@@ -0,0 +1,27 @@ -+// From original issue #45212: -+type Methods = { [P in keyof T as T[P] extends Function ? P : never]: T[P] }; -+type H = T[keyof Methods]; // Ok -+ -+// `Filter` only filters out some keys of `T`. -+type Filter = { [P in keyof T as T[P] extends Function ? P : never]: T[P] }; -+// `Modify` might modify some keys of `T`. -+type Modify = { [P in keyof T as P extends string? `bool${P}`: P]: T[P] }; -+ -+function fun(val: T) { -+ let x: Filter = val; // Ok -+ let y: Modify = val; // Error -+} -+ -+type FilterInclOpt = { [P in keyof T as T[P] extends Function ? P : never]+?: T[P] }; -+type ModifyInclOpt = { [P in keyof T as P extends string? `bool${P}`: never ]+?: T[P] }; -+type FilterExclOpt = { [P in keyof T as T[P] extends Function ? P : never]-?: T[P] }; -+type ModifyExclOpt = { [P in keyof T as P extends string? `bool${P}`: never ]-?: T[P] }; -+ -+function fun2(val: T) { -+ let x: FilterInclOpt = val; // Ok -+ let y: ModifyInclOpt = val; // Ok -+ let z: FilterExclOpt = val; // Error -+ let w: ModifyExclOpt = val; // Error -+} -+ -+ -diff --git a/tests/cases/conformance/types/mapped/mappedTypeProperties.ts b/tests/cases/conformance/types/mapped/mappedTypeProperties.ts -new file mode 100644 -index 0000000000..407e0eaf56 ---- /dev/null -+++ b/tests/cases/conformance/types/mapped/mappedTypeProperties.ts -@@ -0,0 +1,42 @@ -+// @declaration: true -+export type PlaceType = 'openSky' | 'roofed' | 'garage' -+type Before = { -+ model: 'hour' | 'day'; -+ [placeType in PlaceType]: void; -+} -+ -+type After = { -+ [placeType in PlaceType]: void; -+ model: 'hour' | 'day' -+} -+ -+type AfterQuestion = { -+ [placeType in PlaceType]?: void; -+ model: 'hour' | 'day'; -+} -+type AfterMethod = { -+ [placeType in PlaceType]?: void; -+ model(duration: number): 'hour' | 'day'; -+} -+ -+type AfterImplicit = { -+ [placeType in PlaceType] -+ model: 'hour' | 'day'; -+} -+type AfterImplicitQ = { -+ [placeType in PlaceType]? -+ model: 'hour' | 'day' -+} -+ -+interface I { -+ [P in PlaceType]: any -+} -+class C { -+ [P in PlaceType]: any -+} -+const D = class { -+ [P in PlaceType]: any -+} -+const E = class { -+ [P in 'a' | 'b']: any -+} -diff --git a/tests/cases/conformance/types/mapped/mappedTypes3.ts b/tests/cases/conformance/types/mapped/mappedTypes3.ts -index bf5a4399b0..6ef1918898 100644 ---- a/tests/cases/conformance/types/mapped/mappedTypes3.ts -+++ b/tests/cases/conformance/types/mapped/mappedTypes3.ts -@@ -37,4 +37,6 @@ function f3(bb: BoxifiedBacon) { +diff --git a/tests/cases/conformance/types/mapped/mappedTypeAsClauseRelationships.ts b/tests/cases/conformance/types/mapped/mappedTypeAsClauseRelationships.ts +new file mode 100644 +index 0000000000..051192159e +--- /dev/null ++++ b/tests/cases/conformance/types/mapped/mappedTypeAsClauseRelationships.ts +@@ -0,0 +1,27 @@ ++// From original issue #45212: ++type Methods = { [P in keyof T as T[P] extends Function ? P : never]: T[P] }; ++type H = T[keyof Methods]; // Ok ++ ++// `Filter` only filters out some keys of `T`. ++type Filter = { [P in keyof T as T[P] extends Function ? P : never]: T[P] }; ++// `Modify` might modify some keys of `T`. ++type Modify = { [P in keyof T as P extends string? `bool${P}`: P]: T[P] }; ++ ++function fun(val: T) { ++ let x: Filter = val; // Ok ++ let y: Modify = val; // Error ++} ++ ++type FilterInclOpt = { [P in keyof T as T[P] extends Function ? P : never]+?: T[P] }; ++type ModifyInclOpt = { [P in keyof T as P extends string? `bool${P}`: never ]+?: T[P] }; ++type FilterExclOpt = { [P in keyof T as T[P] extends Function ? P : never]-?: T[P] }; ++type ModifyExclOpt = { [P in keyof T as P extends string? `bool${P}`: never ]-?: T[P] }; ++ ++function fun2(val: T) { ++ let x: FilterInclOpt = val; // Ok ++ let y: ModifyInclOpt = val; // Ok ++ let z: FilterExclOpt = val; // Error ++ let w: ModifyExclOpt = val; // Error ++} ++ ++ +diff --git a/tests/cases/conformance/types/mapped/mappedTypeProperties.ts b/tests/cases/conformance/types/mapped/mappedTypeProperties.ts +new file mode 100644 +index 0000000000..407e0eaf56 +--- /dev/null ++++ b/tests/cases/conformance/types/mapped/mappedTypeProperties.ts +@@ -0,0 +1,42 @@ ++// @declaration: true ++export type PlaceType = 'openSky' | 'roofed' | 'garage' ++type Before = { ++ model: 'hour' | 'day'; ++ [placeType in PlaceType]: void; ++} ++ ++type After = { ++ [placeType in PlaceType]: void; ++ model: 'hour' | 'day' ++} ++ ++type AfterQuestion = { ++ [placeType in PlaceType]?: void; ++ model: 'hour' | 'day'; ++} ++type AfterMethod = { ++ [placeType in PlaceType]?: void; ++ model(duration: number): 'hour' | 'day'; ++} ++ ++type AfterImplicit = { ++ [placeType in PlaceType] ++ model: 'hour' | 'day'; ++} ++type AfterImplicitQ = { ++ [placeType in PlaceType]? ++ model: 'hour' | 'day' ++} ++ ++interface I { ++ [P in PlaceType]: any ++} ++class C { ++ [P in PlaceType]: any ++} ++const D = class { ++ [P in PlaceType]: any ++} ++const E = class { ++ [P in 'a' | 'b']: any ++} +diff --git a/tests/cases/conformance/types/mapped/mappedTypes3.ts b/tests/cases/conformance/types/mapped/mappedTypes3.ts +index bf5a4399b0..6ef1918898 100644 +--- a/tests/cases/conformance/types/mapped/mappedTypes3.ts ++++ b/tests/cases/conformance/types/mapped/mappedTypes3.ts +@@ -37,4 +37,6 @@ function f3(bb: BoxifiedBacon) { let b = unboxify(bb); // Explicit type parameter required let bool = b.isPerfect; let weight = bb.weight; --} -\ No newline at end of file +-} +\ No newline at end of file +} + -+let box = new Box(); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/mapped/mappedTypesAndObjects.ts b/tests/cases/conformance/types/mapped/mappedTypesAndObjects.ts -index b3530b4696..66e25c6091 100644 ---- a/tests/cases/conformance/types/mapped/mappedTypesAndObjects.ts -+++ b/tests/cases/conformance/types/mapped/mappedTypesAndObjects.ts -@@ -43,3 +43,5 @@ interface E3 extends Base { ++let box = new Box(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/mapped/mappedTypesAndObjects.ts b/tests/cases/conformance/types/mapped/mappedTypesAndObjects.ts +index b3530b4696..66e25c6091 100644 +--- a/tests/cases/conformance/types/mapped/mappedTypesAndObjects.ts ++++ b/tests/cases/conformance/types/mapped/mappedTypesAndObjects.ts +@@ -43,3 +43,5 @@ interface E3 extends Base { class Form { private values: {[P in keyof T]?: T[P]} = {} } + -+let f = new Form(); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/members/classWithProtectedProperty.ts b/tests/cases/conformance/types/members/classWithProtectedProperty.ts -index 96bc615c02..a37828eef1 100644 ---- a/tests/cases/conformance/types/members/classWithProtectedProperty.ts -+++ b/tests/cases/conformance/types/members/classWithProtectedProperty.ts -@@ -24,4 +24,6 @@ class D extends C { ++let f = new Form(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/members/classWithProtectedProperty.ts b/tests/cases/conformance/types/members/classWithProtectedProperty.ts +index 96bc615c02..a37828eef1 100644 +--- a/tests/cases/conformance/types/members/classWithProtectedProperty.ts ++++ b/tests/cases/conformance/types/members/classWithProtectedProperty.ts +@@ -24,4 +24,6 @@ class D extends C { var r7: string = C.f(); var r8: string = C.g(); } --} -\ No newline at end of file -+} -+ -+let d = new D(); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/members/indexSignatures1.ts b/tests/cases/conformance/types/members/indexSignatures1.ts -new file mode 100644 -index 0000000000..f888275683 ---- /dev/null -+++ b/tests/cases/conformance/types/members/indexSignatures1.ts -@@ -0,0 +1,325 @@ +-} +\ No newline at end of file ++} ++ ++let d = new D(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/members/indexSignatures1.ts b/tests/cases/conformance/types/members/indexSignatures1.ts +new file mode 100644 +index 0000000000..f888275683 +--- /dev/null ++++ b/tests/cases/conformance/types/members/indexSignatures1.ts +@@ -0,0 +1,325 @@ +// @strict: true +// @declaration: true +// @target: esnext @@ -11029,127 +11029,127 @@ index 0000000000..f888275683 + +type K1 = keyof Rec1; // Id +type K2 = keyof Rec2; // Id -diff --git a/tests/cases/conformance/types/members/objectTypeHidingMembersOfObject.ts b/tests/cases/conformance/types/members/objectTypeHidingMembersOfObject.ts -index 1a7d6f2be4..bc489541ae 100644 ---- a/tests/cases/conformance/types/members/objectTypeHidingMembersOfObject.ts -+++ b/tests/cases/conformance/types/members/objectTypeHidingMembersOfObject.ts -@@ -24,4 +24,6 @@ var b: { +diff --git a/tests/cases/conformance/types/members/objectTypeHidingMembersOfObject.ts b/tests/cases/conformance/types/members/objectTypeHidingMembersOfObject.ts +index 1a7d6f2be4..bc489541ae 100644 +--- a/tests/cases/conformance/types/members/objectTypeHidingMembersOfObject.ts ++++ b/tests/cases/conformance/types/members/objectTypeHidingMembersOfObject.ts +@@ -24,4 +24,6 @@ var b: { valueOf(): void; } --var r4: void = b.valueOf(); -\ No newline at end of file +-var r4: void = b.valueOf(); +\ No newline at end of file +var r4: void = b.valueOf(); + -+let c1 = new C(); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/members/objectTypePropertyAccess.ts b/tests/cases/conformance/types/members/objectTypePropertyAccess.ts -index a54890fce9..e3c2cca547 100644 ---- a/tests/cases/conformance/types/members/objectTypePropertyAccess.ts -+++ b/tests/cases/conformance/types/members/objectTypePropertyAccess.ts -@@ -26,3 +26,5 @@ var r8 = a.toString(); ++let c1 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/members/objectTypePropertyAccess.ts b/tests/cases/conformance/types/members/objectTypePropertyAccess.ts +index a54890fce9..e3c2cca547 100644 +--- a/tests/cases/conformance/types/members/objectTypePropertyAccess.ts ++++ b/tests/cases/conformance/types/members/objectTypePropertyAccess.ts +@@ -26,3 +26,5 @@ var r8 = a.toString(); var r9 = a['toString'](); var r10 = a.foo; var r11 = a['foo']; + -+let c1 = new C(); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/members/objectTypeWithNumericProperty.ts b/tests/cases/conformance/types/members/objectTypeWithNumericProperty.ts -index 730ab43ec9..2c1b46b5d1 100644 ---- a/tests/cases/conformance/types/members/objectTypeWithNumericProperty.ts -+++ b/tests/cases/conformance/types/members/objectTypeWithNumericProperty.ts -@@ -40,4 +40,6 @@ var b = { ++let c1 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/members/objectTypeWithNumericProperty.ts b/tests/cases/conformance/types/members/objectTypeWithNumericProperty.ts +index 730ab43ec9..2c1b46b5d1 100644 +--- a/tests/cases/conformance/types/members/objectTypeWithNumericProperty.ts ++++ b/tests/cases/conformance/types/members/objectTypeWithNumericProperty.ts +@@ -40,4 +40,6 @@ var b = { var r1 = b[1]; var r2 = b[1.1]; var r3 = b['1']; --var r4 = b['1.1']; -\ No newline at end of file +-var r4 = b['1.1']; +\ No newline at end of file +var r4 = b['1.1']; + -+let c1 = new C(); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/members/objectTypeWithStringNamedPropertyOfIllegalCharacters.ts b/tests/cases/conformance/types/members/objectTypeWithStringNamedPropertyOfIllegalCharacters.ts -index 766f56bdd2..d67c011129 100644 ---- a/tests/cases/conformance/types/members/objectTypeWithStringNamedPropertyOfIllegalCharacters.ts -+++ b/tests/cases/conformance/types/members/objectTypeWithStringNamedPropertyOfIllegalCharacters.ts -@@ -50,3 +50,5 @@ var r2 = b[" "]; ++let c1 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/members/objectTypeWithStringNamedPropertyOfIllegalCharacters.ts b/tests/cases/conformance/types/members/objectTypeWithStringNamedPropertyOfIllegalCharacters.ts +index 766f56bdd2..d67c011129 100644 +--- a/tests/cases/conformance/types/members/objectTypeWithStringNamedPropertyOfIllegalCharacters.ts ++++ b/tests/cases/conformance/types/members/objectTypeWithStringNamedPropertyOfIllegalCharacters.ts +@@ -50,3 +50,5 @@ var r2 = b[" "]; var r3 = b["a b"]; // BUG 817263 var r4 = b["~!@#$%^&*()_+{}|:'<>?\/.,`"]; + -+let c1 = new C(); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/members/typesWithSpecializedCallSignatures.ts b/tests/cases/conformance/types/members/typesWithSpecializedCallSignatures.ts -index 9eef3476f2..9aea8f6a18 100644 ---- a/tests/cases/conformance/types/members/typesWithSpecializedCallSignatures.ts -+++ b/tests/cases/conformance/types/members/typesWithSpecializedCallSignatures.ts -@@ -38,4 +38,7 @@ a = i; ++let c1 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/members/typesWithSpecializedCallSignatures.ts b/tests/cases/conformance/types/members/typesWithSpecializedCallSignatures.ts +index 9eef3476f2..9aea8f6a18 100644 +--- a/tests/cases/conformance/types/members/typesWithSpecializedCallSignatures.ts ++++ b/tests/cases/conformance/types/members/typesWithSpecializedCallSignatures.ts +@@ -38,4 +38,7 @@ a = i; var r1: Derived1 = c.foo('hi'); var r2: Derived2 = c.foo('bye'); --var r3: Base = c.foo('hm'); -\ No newline at end of file +-var r3: Base = c.foo('hm'); +\ No newline at end of file +var r3: Base = c.foo('hm'); + +// let dev1 = new Derived1(); -+// let dev2 = new Derived2(); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/members/typesWithSpecializedConstructSignatures.ts b/tests/cases/conformance/types/members/typesWithSpecializedConstructSignatures.ts -index 7c84e76f14..522fad55bf 100644 ---- a/tests/cases/conformance/types/members/typesWithSpecializedConstructSignatures.ts -+++ b/tests/cases/conformance/types/members/typesWithSpecializedConstructSignatures.ts -@@ -36,4 +36,7 @@ a = i; ++// let dev2 = new Derived2(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/members/typesWithSpecializedConstructSignatures.ts b/tests/cases/conformance/types/members/typesWithSpecializedConstructSignatures.ts +index 7c84e76f14..522fad55bf 100644 +--- a/tests/cases/conformance/types/members/typesWithSpecializedConstructSignatures.ts ++++ b/tests/cases/conformance/types/members/typesWithSpecializedConstructSignatures.ts +@@ -36,4 +36,7 @@ a = i; var r1 = new C('hi'); var r2: Derived2 = new i('bye'); --var r3: Base = new a('hm'); -\ No newline at end of file +-var r3: Base = new a('hm'); +\ No newline at end of file +var r3: Base = new a('hm'); + +let dev1 = new Derived1(); -+let dev2 = new Derived2(); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/namedTypes/classWithOptionalParameter.ts b/tests/cases/conformance/types/namedTypes/classWithOptionalParameter.ts -index 82e7de4584..97001142ae 100644 ---- a/tests/cases/conformance/types/namedTypes/classWithOptionalParameter.ts -+++ b/tests/cases/conformance/types/namedTypes/classWithOptionalParameter.ts -@@ -8,4 +8,7 @@ class C { ++let dev2 = new Derived2(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/namedTypes/classWithOptionalParameter.ts b/tests/cases/conformance/types/namedTypes/classWithOptionalParameter.ts +index 82e7de4584..97001142ae 100644 +--- a/tests/cases/conformance/types/namedTypes/classWithOptionalParameter.ts ++++ b/tests/cases/conformance/types/namedTypes/classWithOptionalParameter.ts +@@ -8,4 +8,7 @@ class C { class C2 { x?: T; f?(x: T) {} --} -\ No newline at end of file +-} +\ No newline at end of file +} + +let c = new C(); -+let c2 = new C2(); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/namedTypes/optionalMethods.ts b/tests/cases/conformance/types/namedTypes/optionalMethods.ts -index 932521425f..dc7fe5cf4c 100644 ---- a/tests/cases/conformance/types/namedTypes/optionalMethods.ts -+++ b/tests/cases/conformance/types/namedTypes/optionalMethods.ts -@@ -56,3 +56,6 @@ class Derived extends Base { ++let c2 = new C2(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/namedTypes/optionalMethods.ts b/tests/cases/conformance/types/namedTypes/optionalMethods.ts +index 932521425f..dc7fe5cf4c 100644 +--- a/tests/cases/conformance/types/namedTypes/optionalMethods.ts ++++ b/tests/cases/conformance/types/namedTypes/optionalMethods.ts +@@ -56,3 +56,6 @@ class Derived extends Base { a = 1; f(): number { return 1; } } + +let ba1 = new Bar(); +let dev = new Derived(); -diff --git a/tests/cases/conformance/types/never/neverType.ts b/tests/cases/conformance/types/never/neverType.ts -index d58471d62a..e548194630 100644 ---- a/tests/cases/conformance/types/never/neverType.ts -+++ b/tests/cases/conformance/types/never/neverType.ts -@@ -91,3 +91,5 @@ test(() => "hello"); +diff --git a/tests/cases/conformance/types/never/neverType.ts b/tests/cases/conformance/types/never/neverType.ts +index d58471d62a..e548194630 100644 +--- a/tests/cases/conformance/types/never/neverType.ts ++++ b/tests/cases/conformance/types/never/neverType.ts +@@ -91,3 +91,5 @@ test(() => "hello"); test(() => fail()); test(() => { throw new Error(); }) test(errorCallback); + +let c1 = new C(); -diff --git a/tests/cases/conformance/types/objectTypeLiteral/callSignatures/callSignatureWithoutReturnTypeAnnotationInference.ts b/tests/cases/conformance/types/objectTypeLiteral/callSignatures/callSignatureWithoutReturnTypeAnnotationInference.ts -index 1cc499c7d6..16fe9f1bc5 100644 ---- a/tests/cases/conformance/types/objectTypeLiteral/callSignatures/callSignatureWithoutReturnTypeAnnotationInference.ts -+++ b/tests/cases/conformance/types/objectTypeLiteral/callSignatures/callSignatureWithoutReturnTypeAnnotationInference.ts -@@ -77,6 +77,7 @@ module M { +diff --git a/tests/cases/conformance/types/objectTypeLiteral/callSignatures/callSignatureWithoutReturnTypeAnnotationInference.ts b/tests/cases/conformance/types/objectTypeLiteral/callSignatures/callSignatureWithoutReturnTypeAnnotationInference.ts +index 1cc499c7d6..16fe9f1bc5 100644 +--- a/tests/cases/conformance/types/objectTypeLiteral/callSignatures/callSignatureWithoutReturnTypeAnnotationInference.ts ++++ b/tests/cases/conformance/types/objectTypeLiteral/callSignatures/callSignatureWithoutReturnTypeAnnotationInference.ts +@@ -77,6 +77,7 @@ module M { export var x = 1; export class C { foo: string } } @@ -11157,491 +11157,491 @@ index 1cc499c7d6..16fe9f1bc5 100644 function foo11() { return M; } -@@ -119,4 +120,7 @@ module e1 { export var y = 1; } +@@ -119,4 +120,7 @@ module e1 { export var y = 1; } function foo15() { return e1; } --var r15 = foo15(); -\ No newline at end of file +-var r15 = foo15(); +\ No newline at end of file +var r15 = foo15(); + +let c = new C(); +let c11 = new c1(1); -diff --git a/tests/cases/conformance/types/objectTypeLiteral/callSignatures/callSignaturesWithDuplicateParameters.ts b/tests/cases/conformance/types/objectTypeLiteral/callSignatures/callSignaturesWithDuplicateParameters.ts -index d5ff0c1f56..191117eb92 100644 ---- a/tests/cases/conformance/types/objectTypeLiteral/callSignatures/callSignaturesWithDuplicateParameters.ts -+++ b/tests/cases/conformance/types/objectTypeLiteral/callSignatures/callSignaturesWithDuplicateParameters.ts -@@ -35,4 +35,6 @@ var b = { +diff --git a/tests/cases/conformance/types/objectTypeLiteral/callSignatures/callSignaturesWithDuplicateParameters.ts b/tests/cases/conformance/types/objectTypeLiteral/callSignatures/callSignaturesWithDuplicateParameters.ts +index d5ff0c1f56..191117eb92 100644 +--- a/tests/cases/conformance/types/objectTypeLiteral/callSignatures/callSignaturesWithDuplicateParameters.ts ++++ b/tests/cases/conformance/types/objectTypeLiteral/callSignatures/callSignaturesWithDuplicateParameters.ts +@@ -35,4 +35,6 @@ var b = { foo(x, x) { }, a: function foo(x: number, x: string) { }, b: (x: T, x: T) => { } --} -\ No newline at end of file +-} +\ No newline at end of file +} + -+let c1 = new C(); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/objectTypeLiteral/callSignatures/callSignaturesWithOptionalParameters.ts b/tests/cases/conformance/types/objectTypeLiteral/callSignatures/callSignaturesWithOptionalParameters.ts -index 34edfba671..d285c45d78 100644 ---- a/tests/cases/conformance/types/objectTypeLiteral/callSignatures/callSignaturesWithOptionalParameters.ts -+++ b/tests/cases/conformance/types/objectTypeLiteral/callSignatures/callSignaturesWithOptionalParameters.ts -@@ -52,3 +52,5 @@ b.a(1); ++let c1 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/objectTypeLiteral/callSignatures/callSignaturesWithOptionalParameters.ts b/tests/cases/conformance/types/objectTypeLiteral/callSignatures/callSignaturesWithOptionalParameters.ts +index 34edfba671..d285c45d78 100644 +--- a/tests/cases/conformance/types/objectTypeLiteral/callSignatures/callSignaturesWithOptionalParameters.ts ++++ b/tests/cases/conformance/types/objectTypeLiteral/callSignatures/callSignaturesWithOptionalParameters.ts +@@ -52,3 +52,5 @@ b.a(1); b.a(1, 2); b.b(); b.b(1); + +let c1 = new C(); -diff --git a/tests/cases/conformance/types/objectTypeLiteral/callSignatures/callSignaturesWithOptionalParameters2.ts b/tests/cases/conformance/types/objectTypeLiteral/callSignatures/callSignaturesWithOptionalParameters2.ts -index 4f31726f82..bdd01987b0 100644 ---- a/tests/cases/conformance/types/objectTypeLiteral/callSignatures/callSignaturesWithOptionalParameters2.ts -+++ b/tests/cases/conformance/types/objectTypeLiteral/callSignatures/callSignaturesWithOptionalParameters2.ts -@@ -56,4 +56,6 @@ a(1); +diff --git a/tests/cases/conformance/types/objectTypeLiteral/callSignatures/callSignaturesWithOptionalParameters2.ts b/tests/cases/conformance/types/objectTypeLiteral/callSignatures/callSignaturesWithOptionalParameters2.ts +index 4f31726f82..bdd01987b0 100644 +--- a/tests/cases/conformance/types/objectTypeLiteral/callSignatures/callSignaturesWithOptionalParameters2.ts ++++ b/tests/cases/conformance/types/objectTypeLiteral/callSignatures/callSignaturesWithOptionalParameters2.ts +@@ -56,4 +56,6 @@ a(1); a(1, 2); a.foo(1); a.foo(1, 2); --a.foo(1, 2, 3); -\ No newline at end of file +-a.foo(1, 2, 3); +\ No newline at end of file +a.foo(1, 2, 3); + +let c1 = new C(); -diff --git a/tests/cases/conformance/types/objectTypeLiteral/callSignatures/parametersWithNoAnnotationAreAny.ts b/tests/cases/conformance/types/objectTypeLiteral/callSignatures/parametersWithNoAnnotationAreAny.ts -index 432c905765..4c09ab1066 100644 ---- a/tests/cases/conformance/types/objectTypeLiteral/callSignatures/parametersWithNoAnnotationAreAny.ts -+++ b/tests/cases/conformance/types/objectTypeLiteral/callSignatures/parametersWithNoAnnotationAreAny.ts -@@ -26,4 +26,6 @@ var b = { +diff --git a/tests/cases/conformance/types/objectTypeLiteral/callSignatures/parametersWithNoAnnotationAreAny.ts b/tests/cases/conformance/types/objectTypeLiteral/callSignatures/parametersWithNoAnnotationAreAny.ts +index 432c905765..4c09ab1066 100644 +--- a/tests/cases/conformance/types/objectTypeLiteral/callSignatures/parametersWithNoAnnotationAreAny.ts ++++ b/tests/cases/conformance/types/objectTypeLiteral/callSignatures/parametersWithNoAnnotationAreAny.ts +@@ -26,4 +26,6 @@ var b = { return x; }, b: (x) => x --} -\ No newline at end of file +-} +\ No newline at end of file +} + +let c1 = new C(); -diff --git a/tests/cases/conformance/types/objectTypeLiteral/callSignatures/specializedSignatureIsNotSubtypeOfNonSpecializedSignature.ts b/tests/cases/conformance/types/objectTypeLiteral/callSignatures/specializedSignatureIsNotSubtypeOfNonSpecializedSignature.ts -index 01f33fbd7b..0aeddb657c 100644 ---- a/tests/cases/conformance/types/objectTypeLiteral/callSignatures/specializedSignatureIsNotSubtypeOfNonSpecializedSignature.ts -+++ b/tests/cases/conformance/types/objectTypeLiteral/callSignatures/specializedSignatureIsNotSubtypeOfNonSpecializedSignature.ts -@@ -62,3 +62,6 @@ var a3: { +diff --git a/tests/cases/conformance/types/objectTypeLiteral/callSignatures/specializedSignatureIsNotSubtypeOfNonSpecializedSignature.ts b/tests/cases/conformance/types/objectTypeLiteral/callSignatures/specializedSignatureIsNotSubtypeOfNonSpecializedSignature.ts +index 01f33fbd7b..0aeddb657c 100644 +--- a/tests/cases/conformance/types/objectTypeLiteral/callSignatures/specializedSignatureIsNotSubtypeOfNonSpecializedSignature.ts ++++ b/tests/cases/conformance/types/objectTypeLiteral/callSignatures/specializedSignatureIsNotSubtypeOfNonSpecializedSignature.ts +@@ -62,3 +62,6 @@ var a3: { foo(x: 'a'); foo(x: T); } +let c1 = new C(); +let c2 = new C2(); +let c3 = new C3(); -diff --git a/tests/cases/conformance/types/objectTypeLiteral/callSignatures/specializedSignatureIsSubtypeOfNonSpecializedSignature.ts b/tests/cases/conformance/types/objectTypeLiteral/callSignatures/specializedSignatureIsSubtypeOfNonSpecializedSignature.ts -index 70735b8edd..06ca07fbe8 100644 ---- a/tests/cases/conformance/types/objectTypeLiteral/callSignatures/specializedSignatureIsSubtypeOfNonSpecializedSignature.ts -+++ b/tests/cases/conformance/types/objectTypeLiteral/callSignatures/specializedSignatureIsSubtypeOfNonSpecializedSignature.ts -@@ -78,3 +78,6 @@ var a3: { +diff --git a/tests/cases/conformance/types/objectTypeLiteral/callSignatures/specializedSignatureIsSubtypeOfNonSpecializedSignature.ts b/tests/cases/conformance/types/objectTypeLiteral/callSignatures/specializedSignatureIsSubtypeOfNonSpecializedSignature.ts +index 70735b8edd..06ca07fbe8 100644 +--- a/tests/cases/conformance/types/objectTypeLiteral/callSignatures/specializedSignatureIsSubtypeOfNonSpecializedSignature.ts ++++ b/tests/cases/conformance/types/objectTypeLiteral/callSignatures/specializedSignatureIsSubtypeOfNonSpecializedSignature.ts +@@ -78,3 +78,6 @@ var a3: { foo(x: 'a'); foo(x: T); } +let c1 = new C(); +let c2 = new C2(); -+let c3 = new C3(); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/objectTypeLiteral/callSignatures/stringLiteralTypesInImplementationSignatures.ts b/tests/cases/conformance/types/objectTypeLiteral/callSignatures/stringLiteralTypesInImplementationSignatures.ts -index a8bf323850..6ea1c88cfb 100644 ---- a/tests/cases/conformance/types/objectTypeLiteral/callSignatures/stringLiteralTypesInImplementationSignatures.ts -+++ b/tests/cases/conformance/types/objectTypeLiteral/callSignatures/stringLiteralTypesInImplementationSignatures.ts -@@ -23,3 +23,5 @@ var b = { ++let c3 = new C3(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/objectTypeLiteral/callSignatures/stringLiteralTypesInImplementationSignatures.ts b/tests/cases/conformance/types/objectTypeLiteral/callSignatures/stringLiteralTypesInImplementationSignatures.ts +index a8bf323850..6ea1c88cfb 100644 +--- a/tests/cases/conformance/types/objectTypeLiteral/callSignatures/stringLiteralTypesInImplementationSignatures.ts ++++ b/tests/cases/conformance/types/objectTypeLiteral/callSignatures/stringLiteralTypesInImplementationSignatures.ts +@@ -23,3 +23,5 @@ var b = { a: function foo(x: 'hi', y: 'hi') { }, b: (x: 'hi') => { } } + +let c1 = new C(); -diff --git a/tests/cases/conformance/types/objectTypeLiteral/callSignatures/typeParameterAsTypeArgument.ts b/tests/cases/conformance/types/objectTypeLiteral/callSignatures/typeParameterAsTypeArgument.ts -index ef33eef5d5..5e87397a9e 100644 ---- a/tests/cases/conformance/types/objectTypeLiteral/callSignatures/typeParameterAsTypeArgument.ts -+++ b/tests/cases/conformance/types/objectTypeLiteral/callSignatures/typeParameterAsTypeArgument.ts -@@ -24,4 +24,6 @@ interface I { +diff --git a/tests/cases/conformance/types/objectTypeLiteral/callSignatures/typeParameterAsTypeArgument.ts b/tests/cases/conformance/types/objectTypeLiteral/callSignatures/typeParameterAsTypeArgument.ts +index ef33eef5d5..5e87397a9e 100644 +--- a/tests/cases/conformance/types/objectTypeLiteral/callSignatures/typeParameterAsTypeArgument.ts ++++ b/tests/cases/conformance/types/objectTypeLiteral/callSignatures/typeParameterAsTypeArgument.ts +@@ -24,4 +24,6 @@ interface I { //interface I { // x: C; --//} +-//} +//} + +let c1 = new C(); -diff --git a/tests/cases/conformance/types/objectTypeLiteral/constructSignatures/constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts b/tests/cases/conformance/types/objectTypeLiteral/constructSignatures/constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts -index 4ac60bd7f7..9a462477de 100644 ---- a/tests/cases/conformance/types/objectTypeLiteral/constructSignatures/constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts -+++ b/tests/cases/conformance/types/objectTypeLiteral/constructSignatures/constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts -@@ -29,4 +29,7 @@ var a: { +diff --git a/tests/cases/conformance/types/objectTypeLiteral/constructSignatures/constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts b/tests/cases/conformance/types/objectTypeLiteral/constructSignatures/constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts +index 4ac60bd7f7..9a462477de 100644 +--- a/tests/cases/conformance/types/objectTypeLiteral/constructSignatures/constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts ++++ b/tests/cases/conformance/types/objectTypeLiteral/constructSignatures/constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts +@@ -29,4 +29,7 @@ var a: { var b: { new (x: T, y: string): C2; new (x: T, y: string): C; // error --} -\ No newline at end of file +-} +\ No newline at end of file +} + +let c1 = new C(1); -+let c2 = new C2(1); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/objectTypeLiteral/indexSignatures/numericIndexingResults.ts b/tests/cases/conformance/types/objectTypeLiteral/indexSignatures/numericIndexingResults.ts -index 3d7b7eba45..4af4aba5a9 100644 ---- a/tests/cases/conformance/types/objectTypeLiteral/indexSignatures/numericIndexingResults.ts -+++ b/tests/cases/conformance/types/objectTypeLiteral/indexSignatures/numericIndexingResults.ts -@@ -53,4 +53,6 @@ var r2b = b2['2']; ++let c2 = new C2(1); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/objectTypeLiteral/indexSignatures/numericIndexingResults.ts b/tests/cases/conformance/types/objectTypeLiteral/indexSignatures/numericIndexingResults.ts +index 3d7b7eba45..4af4aba5a9 100644 +--- a/tests/cases/conformance/types/objectTypeLiteral/indexSignatures/numericIndexingResults.ts ++++ b/tests/cases/conformance/types/objectTypeLiteral/indexSignatures/numericIndexingResults.ts +@@ -53,4 +53,6 @@ var r2b = b2['2']; var r3 = b2['3']; var r4 = b2[1]; var r5 = b2[2]; --var r6 = b2[3]; -\ No newline at end of file +-var r6 = b2[3]; +\ No newline at end of file +var r6 = b2[3]; + +let c1 = new C(); -diff --git a/tests/cases/conformance/types/objectTypeLiteral/indexSignatures/stringIndexingResults.ts b/tests/cases/conformance/types/objectTypeLiteral/indexSignatures/stringIndexingResults.ts -index f51b8e461e..48ccea819f 100644 ---- a/tests/cases/conformance/types/objectTypeLiteral/indexSignatures/stringIndexingResults.ts -+++ b/tests/cases/conformance/types/objectTypeLiteral/indexSignatures/stringIndexingResults.ts -@@ -32,3 +32,5 @@ var b: { [x: string]: string } = { y: '' } +diff --git a/tests/cases/conformance/types/objectTypeLiteral/indexSignatures/stringIndexingResults.ts b/tests/cases/conformance/types/objectTypeLiteral/indexSignatures/stringIndexingResults.ts +index f51b8e461e..48ccea819f 100644 +--- a/tests/cases/conformance/types/objectTypeLiteral/indexSignatures/stringIndexingResults.ts ++++ b/tests/cases/conformance/types/objectTypeLiteral/indexSignatures/stringIndexingResults.ts +@@ -32,3 +32,5 @@ var b: { [x: string]: string } = { y: '' } var r10 = b['y']; var r11 = b['a']; var r12 = b[1]; + -+let c1 = new C(); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/objectTypeLiteral/propertySignatures/propertyNameWithoutTypeAnnotation.ts b/tests/cases/conformance/types/objectTypeLiteral/propertySignatures/propertyNameWithoutTypeAnnotation.ts -index 42f42eb312..ce53505fda 100644 ---- a/tests/cases/conformance/types/objectTypeLiteral/propertySignatures/propertyNameWithoutTypeAnnotation.ts -+++ b/tests/cases/conformance/types/objectTypeLiteral/propertySignatures/propertyNameWithoutTypeAnnotation.ts -@@ -18,4 +18,6 @@ var b = { ++let c1 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/objectTypeLiteral/propertySignatures/propertyNameWithoutTypeAnnotation.ts b/tests/cases/conformance/types/objectTypeLiteral/propertySignatures/propertyNameWithoutTypeAnnotation.ts +index 42f42eb312..ce53505fda 100644 +--- a/tests/cases/conformance/types/objectTypeLiteral/propertySignatures/propertyNameWithoutTypeAnnotation.ts ++++ b/tests/cases/conformance/types/objectTypeLiteral/propertySignatures/propertyNameWithoutTypeAnnotation.ts +@@ -18,4 +18,6 @@ var b = { var r1 = (new C()).foo; var r2 = (null).foo; var r3 = a.foo; --var r4 = b.foo; -\ No newline at end of file +-var r4 = b.foo; +\ No newline at end of file +var r4 = b.foo; + -+let c1 = new C(); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/objectTypeLiteral/propertySignatures/propertyNamesOfReservedWords.ts b/tests/cases/conformance/types/objectTypeLiteral/propertySignatures/propertyNamesOfReservedWords.ts -index 6673465381..e8589921f5 100644 ---- a/tests/cases/conformance/types/objectTypeLiteral/propertySignatures/propertyNamesOfReservedWords.ts -+++ b/tests/cases/conformance/types/objectTypeLiteral/propertySignatures/propertyNamesOfReservedWords.ts -@@ -273,4 +273,6 @@ enum E { ++let c1 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/objectTypeLiteral/propertySignatures/propertyNamesOfReservedWords.ts b/tests/cases/conformance/types/objectTypeLiteral/propertySignatures/propertyNamesOfReservedWords.ts +index 6673465381..e8589921f5 100644 +--- a/tests/cases/conformance/types/objectTypeLiteral/propertySignatures/propertyNamesOfReservedWords.ts ++++ b/tests/cases/conformance/types/objectTypeLiteral/propertySignatures/propertyNamesOfReservedWords.ts +@@ -273,4 +273,6 @@ enum E { } var r7 = E.abstract; --var r8 = E.as; -\ No newline at end of file +-var r8 = E.as; +\ No newline at end of file +var r8 = E.as; + +let c1 = new C(); -diff --git a/tests/cases/conformance/types/objectTypeLiteral/propertySignatures/stringNamedPropertyAccess.ts b/tests/cases/conformance/types/objectTypeLiteral/propertySignatures/stringNamedPropertyAccess.ts -index dbea999036..9c6eea5968 100644 ---- a/tests/cases/conformance/types/objectTypeLiteral/propertySignatures/stringNamedPropertyAccess.ts -+++ b/tests/cases/conformance/types/objectTypeLiteral/propertySignatures/stringNamedPropertyAccess.ts -@@ -20,4 +20,6 @@ var r3 = a["a b"]; +diff --git a/tests/cases/conformance/types/objectTypeLiteral/propertySignatures/stringNamedPropertyAccess.ts b/tests/cases/conformance/types/objectTypeLiteral/propertySignatures/stringNamedPropertyAccess.ts +index dbea999036..9c6eea5968 100644 +--- a/tests/cases/conformance/types/objectTypeLiteral/propertySignatures/stringNamedPropertyAccess.ts ++++ b/tests/cases/conformance/types/objectTypeLiteral/propertySignatures/stringNamedPropertyAccess.ts +@@ -20,4 +20,6 @@ var r3 = a["a b"]; var b = { "a b": 1 } --var r4 = b["a b"]; -\ No newline at end of file +-var r4 = b["a b"]; +\ No newline at end of file +var r4 = b["a b"]; + +let c1 = new C(); -diff --git a/tests/cases/conformance/types/primitives/number/extendNumberInterface.ts b/tests/cases/conformance/types/primitives/number/extendNumberInterface.ts -index 6aa6325ee3..68641deedd 100644 ---- a/tests/cases/conformance/types/primitives/number/extendNumberInterface.ts -+++ b/tests/cases/conformance/types/primitives/number/extendNumberInterface.ts -@@ -7,4 +7,4 @@ var x = 1; +diff --git a/tests/cases/conformance/types/primitives/number/extendNumberInterface.ts b/tests/cases/conformance/types/primitives/number/extendNumberInterface.ts +index 6aa6325ee3..68641deedd 100644 +--- a/tests/cases/conformance/types/primitives/number/extendNumberInterface.ts ++++ b/tests/cases/conformance/types/primitives/number/extendNumberInterface.ts +@@ -7,4 +7,4 @@ var x = 1; var a: string = x.doStuff(); var b: string = x.doOtherStuff('hm'); var c: string = x['doStuff'](); --var d: string = x['doOtherStuff']('hm'); -\ No newline at end of file +-var d: string = x['doOtherStuff']('hm'); +\ No newline at end of file +var d: string = x['doOtherStuff']('hm'); -diff --git a/tests/cases/conformance/types/primitives/undefined/invalidUndefinedValues.ts b/tests/cases/conformance/types/primitives/undefined/invalidUndefinedValues.ts -index 58a5a54386..572d96843f 100644 ---- a/tests/cases/conformance/types/primitives/undefined/invalidUndefinedValues.ts -+++ b/tests/cases/conformance/types/primitives/undefined/invalidUndefinedValues.ts -@@ -28,4 +28,6 @@ x = f; +diff --git a/tests/cases/conformance/types/primitives/undefined/invalidUndefinedValues.ts b/tests/cases/conformance/types/primitives/undefined/invalidUndefinedValues.ts +index 58a5a54386..572d96843f 100644 +--- a/tests/cases/conformance/types/primitives/undefined/invalidUndefinedValues.ts ++++ b/tests/cases/conformance/types/primitives/undefined/invalidUndefinedValues.ts +@@ -28,4 +28,6 @@ x = f; enum E { A } x = E; --x = E.A; -\ No newline at end of file +-x = E.A; +\ No newline at end of file +x = E.A; + -+let c1 = new C(); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/primitives/undefined/validUndefinedAssignments.ts b/tests/cases/conformance/types/primitives/undefined/validUndefinedAssignments.ts -index 71ae9f89a1..a1cad7a4a4 100644 ---- a/tests/cases/conformance/types/primitives/undefined/validUndefinedAssignments.ts -+++ b/tests/cases/conformance/types/primitives/undefined/validUndefinedAssignments.ts -@@ -20,4 +20,6 @@ var h: { f(): void } = x; ++let c1 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/primitives/undefined/validUndefinedAssignments.ts b/tests/cases/conformance/types/primitives/undefined/validUndefinedAssignments.ts +index 71ae9f89a1..a1cad7a4a4 100644 +--- a/tests/cases/conformance/types/primitives/undefined/validUndefinedAssignments.ts ++++ b/tests/cases/conformance/types/primitives/undefined/validUndefinedAssignments.ts +@@ -20,4 +20,6 @@ var h: { f(): void } = x; function i(a: T) { a = x; --} -\ No newline at end of file -+} -+ -+let c1 = new C(); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/rest/objectRestParameter.ts b/tests/cases/conformance/types/rest/objectRestParameter.ts -index 5b6faeb797..a18f4afc49 100644 ---- a/tests/cases/conformance/types/rest/objectRestParameter.ts -+++ b/tests/cases/conformance/types/rest/objectRestParameter.ts -@@ -19,3 +19,4 @@ function foobar({ bar={}, ...opts }: any = {}) { - foobar(); - foobar({ baz: 'hello' }); - foobar({ bar: { greeting: 'hello' } }); -+let t1 = new C(); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/specifyingTypes/typeLiterals/arrayOfFunctionTypes3.ts b/tests/cases/conformance/types/specifyingTypes/typeLiterals/arrayOfFunctionTypes3.ts -index 9746dd287b..a518d15d97 100644 ---- a/tests/cases/conformance/types/specifyingTypes/typeLiterals/arrayOfFunctionTypes3.ts -+++ b/tests/cases/conformance/types/specifyingTypes/typeLiterals/arrayOfFunctionTypes3.ts -@@ -23,4 +23,6 @@ var c2: { (x: number): number; (x: T): any; }; +-} +\ No newline at end of file ++} ++ ++let c1 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/rest/objectRestParameter.ts b/tests/cases/conformance/types/rest/objectRestParameter.ts +index 5b6faeb797..a18f4afc49 100644 +--- a/tests/cases/conformance/types/rest/objectRestParameter.ts ++++ b/tests/cases/conformance/types/rest/objectRestParameter.ts +@@ -19,3 +19,4 @@ function foobar({ bar={}, ...opts }: any = {}) { + foobar(); + foobar({ baz: 'hello' }); + foobar({ bar: { greeting: 'hello' } }); ++let t1 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/specifyingTypes/typeLiterals/arrayOfFunctionTypes3.ts b/tests/cases/conformance/types/specifyingTypes/typeLiterals/arrayOfFunctionTypes3.ts +index 9746dd287b..a518d15d97 100644 +--- a/tests/cases/conformance/types/specifyingTypes/typeLiterals/arrayOfFunctionTypes3.ts ++++ b/tests/cases/conformance/types/specifyingTypes/typeLiterals/arrayOfFunctionTypes3.ts +@@ -23,4 +23,6 @@ var c2: { (x: number): number; (x: T): any; }; var z2 = [a2, b2, c2]; var r6 = z2[0]; --var r7 = r6(''); // any not string -\ No newline at end of file +-var r7 = r6(''); // any not string +\ No newline at end of file +var r7 = r6(''); // any not string + -+let c11 = new C(); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/specifyingTypes/typeLiterals/functionLiteralForOverloads2.ts b/tests/cases/conformance/types/specifyingTypes/typeLiterals/functionLiteralForOverloads2.ts -index 4ba6a76000..1d686dcc89 100644 ---- a/tests/cases/conformance/types/specifyingTypes/typeLiterals/functionLiteralForOverloads2.ts -+++ b/tests/cases/conformance/types/specifyingTypes/typeLiterals/functionLiteralForOverloads2.ts -@@ -25,4 +25,7 @@ var f2: { ++let c11 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/specifyingTypes/typeLiterals/functionLiteralForOverloads2.ts b/tests/cases/conformance/types/specifyingTypes/typeLiterals/functionLiteralForOverloads2.ts +index 4ba6a76000..1d686dcc89 100644 +--- a/tests/cases/conformance/types/specifyingTypes/typeLiterals/functionLiteralForOverloads2.ts ++++ b/tests/cases/conformance/types/specifyingTypes/typeLiterals/functionLiteralForOverloads2.ts +@@ -25,4 +25,7 @@ var f2: { var f3: { new(x: string): D; new(x: number): D; --} = D; -\ No newline at end of file +-} = D; +\ No newline at end of file +} = D; + +let c = new C(''); -+let d = new D(''); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/specifyingTypes/typeQueries/typeQueryOnClass.ts b/tests/cases/conformance/types/specifyingTypes/typeQueries/typeQueryOnClass.ts -index 3e8ee82c74..4dd74a8b9b 100644 ---- a/tests/cases/conformance/types/specifyingTypes/typeQueries/typeQueryOnClass.ts -+++ b/tests/cases/conformance/types/specifyingTypes/typeQueries/typeQueryOnClass.ts -@@ -53,4 +53,7 @@ class D { ++let d = new D(''); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/specifyingTypes/typeQueries/typeQueryOnClass.ts b/tests/cases/conformance/types/specifyingTypes/typeQueries/typeQueryOnClass.ts +index 3e8ee82c74..4dd74a8b9b 100644 +--- a/tests/cases/conformance/types/specifyingTypes/typeQueries/typeQueryOnClass.ts ++++ b/tests/cases/conformance/types/specifyingTypes/typeQueries/typeQueryOnClass.ts +@@ -53,4 +53,7 @@ class D { var d: D; var r3: typeof D; --var r4: typeof d; -\ No newline at end of file +-var r4: typeof d; +\ No newline at end of file +var r4: typeof d; + +let c1 = new C(1); -+let d1 = new D(1); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/specifyingTypes/typeQueries/typeQueryWithReservedWords.ts b/tests/cases/conformance/types/specifyingTypes/typeQueries/typeQueryWithReservedWords.ts -index 5fb9d2233f..ce1748f526 100644 ---- a/tests/cases/conformance/types/specifyingTypes/typeQueries/typeQueryWithReservedWords.ts -+++ b/tests/cases/conformance/types/specifyingTypes/typeQueries/typeQueryWithReservedWords.ts -@@ -12,3 +12,4 @@ interface IScope { ++let d1 = new D(1); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/specifyingTypes/typeQueries/typeQueryWithReservedWords.ts b/tests/cases/conformance/types/specifyingTypes/typeQueries/typeQueryWithReservedWords.ts +index 5fb9d2233f..ce1748f526 100644 +--- a/tests/cases/conformance/types/specifyingTypes/typeQueries/typeQueryWithReservedWords.ts ++++ b/tests/cases/conformance/types/specifyingTypes/typeQueries/typeQueryWithReservedWords.ts +@@ -12,3 +12,4 @@ interface IScope { delete: typeof Controller.prototype.delete; // Should not error var: typeof Controller.prototype.var; // Should not error } +let c2 = new Controller(); -diff --git a/tests/cases/conformance/types/specifyingTypes/typeQueries/typeofClass2.ts b/tests/cases/conformance/types/specifyingTypes/typeQueries/typeofClass2.ts -index df1898a543..4dcf244525 100644 ---- a/tests/cases/conformance/types/specifyingTypes/typeQueries/typeofClass2.ts -+++ b/tests/cases/conformance/types/specifyingTypes/typeQueries/typeofClass2.ts -@@ -18,4 +18,7 @@ class D extends C { +diff --git a/tests/cases/conformance/types/specifyingTypes/typeQueries/typeofClass2.ts b/tests/cases/conformance/types/specifyingTypes/typeQueries/typeofClass2.ts +index df1898a543..4dcf244525 100644 +--- a/tests/cases/conformance/types/specifyingTypes/typeQueries/typeofClass2.ts ++++ b/tests/cases/conformance/types/specifyingTypes/typeQueries/typeofClass2.ts +@@ -18,4 +18,7 @@ class D extends C { var d: D; var r1: typeof D; --var r2: typeof d; -\ No newline at end of file +-var r2: typeof d; +\ No newline at end of file +var r2: typeof d; + +let c = new C(1); -+let d1 = new D(1); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/specifyingTypes/typeQueries/typeofModuleWithoutExports.ts b/tests/cases/conformance/types/specifyingTypes/typeQueries/typeofModuleWithoutExports.ts -index 878885a8a9..53d74c3b71 100644 ---- a/tests/cases/conformance/types/specifyingTypes/typeQueries/typeofModuleWithoutExports.ts -+++ b/tests/cases/conformance/types/specifyingTypes/typeQueries/typeofModuleWithoutExports.ts -@@ -3,6 +3,7 @@ module M { ++let d1 = new D(1); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/specifyingTypes/typeQueries/typeofModuleWithoutExports.ts b/tests/cases/conformance/types/specifyingTypes/typeQueries/typeofModuleWithoutExports.ts +index 878885a8a9..53d74c3b71 100644 +--- a/tests/cases/conformance/types/specifyingTypes/typeQueries/typeofModuleWithoutExports.ts ++++ b/tests/cases/conformance/types/specifyingTypes/typeQueries/typeofModuleWithoutExports.ts +@@ -3,6 +3,7 @@ module M { class C { foo: number; } + var c = new C(); } --var r: typeof M; -\ No newline at end of file +-var r: typeof M; +\ No newline at end of file +var r: typeof M; -diff --git a/tests/cases/conformance/types/specifyingTypes/typeQueries/typeofThis.ts b/tests/cases/conformance/types/specifyingTypes/typeQueries/typeofThis.ts -new file mode 100644 -index 0000000000..420604c550 ---- /dev/null -+++ b/tests/cases/conformance/types/specifyingTypes/typeQueries/typeofThis.ts -@@ -0,0 +1,146 @@ -+// @noImplicitThis: true -+// @strict: true -+ -+class Test { -+ data = {}; -+ constructor() { -+ var copy: typeof this.data = {}; -+ } -+} -+ -+class Test1 { -+ data = { foo: '' }; -+ ['this'] = ''; -+ constructor() { -+ var copy: typeof this.data = { foo: '' }; -+ var foo: typeof this.data.foo = ''; -+ -+ var self: typeof this = this; -+ self.data; -+ -+ var str: typeof this.this = ''; -+ } -+} -+ -+ -+function Test2() { -+ let x: typeof this.no = 1; -+} -+ -+function Test3(this: { no: number }) { -+ let x: typeof this.no = 1; -+} -+ -+function Test4(this: { no: number } | undefined) { -+ let x: typeof this.no = 1; -+} -+ -+class Test5 { -+ no = 1; -+ -+ f = () => { -+ // should not capture this. -+ let x: typeof this.no = 1; -+ } -+} -+ -+namespace Test6 { -+ export let f = () => { -+ let x: typeof this.no = 1; -+ } -+} -+ -+module Test7 { -+ export let f = () => { -+ let x: typeof this.no = 1; -+ } -+} -+ -+const Test8 = () => { -+ let x: typeof this.no = 1; -+} -+ -+class Test9 { -+ no = 0; -+ this = 0; -+ -+ f() { -+ if (this instanceof Test9D1) { -+ const d1: typeof this = this; -+ d1.f1(); -+ } -+ -+ if (this instanceof Test9D2) { -+ const d2: typeof this = this; -+ d2.f2(); -+ } -+ } -+ -+ g() { -+ if (this.no === 1) { -+ const no: typeof this.no = this.no; -+ } -+ -+ if (this.this === 1) { -+ const no: typeof this.this = this.this; -+ } -+ } -+} -+ -+class Test9D1 { -+ f1() {} -+} -+ -+class Test9D2 { -+ f2() {} -+} -+ -+class Test10 { -+ a?: { b?: string } -+ -+ foo() { -+ let a: typeof this.a = undefined as any; -+ if (this.a) { -+ let a: typeof this.a = undefined as any; // should narrow to { b?: string } -+ let b: typeof this.a.b = undefined as any; -+ -+ if (this.a.b) { -+ let b: typeof this.a.b = undefined as any; // should narrow to string -+ } -+ } -+ } -+} -+ -+class Test11 { -+ this?: { x?: string }; -+ -+ foo() { -+ const o = this; -+ let bar: typeof o.this = {}; -+ -+ if (o.this && o.this.x) { -+ let y: string = o.this.x; // should narrow to string -+ } -+ } -+} -+ -+class Tests12 { -+ test1() { // OK -+ type Test = typeof this; -+ } -+ -+ test2() { // OK -+ for (;;) {} -+ type Test = typeof this; -+ } -+ -+ test3() { // expected no compile errors -+ for (const dummy in []) {} -+ type Test = typeof this; -+ } -+ -+ test4() { // expected no compile errors -+ for (const dummy of []) {} -+ type Test = typeof this; -+ } -+} -\ No newline at end of file -diff --git a/tests/cases/conformance/types/specifyingTypes/typeQueries/typeofThisWithImplicitThis.ts b/tests/cases/conformance/types/specifyingTypes/typeQueries/typeofThisWithImplicitThis.ts -new file mode 100644 -index 0000000000..d99cceaa58 ---- /dev/null -+++ b/tests/cases/conformance/types/specifyingTypes/typeQueries/typeofThisWithImplicitThis.ts -@@ -0,0 +1,5 @@ -+// @noImplicitThis: false -+ -+function Test1() { -+ let x: typeof this.no = 1 -+} -diff --git a/tests/cases/conformance/types/spread/spreadDuplicate.ts b/tests/cases/conformance/types/spread/spreadDuplicate.ts -new file mode 100644 -index 0000000000..f27a2529f0 ---- /dev/null -+++ b/tests/cases/conformance/types/spread/spreadDuplicate.ts -@@ -0,0 +1,21 @@ +diff --git a/tests/cases/conformance/types/specifyingTypes/typeQueries/typeofThis.ts b/tests/cases/conformance/types/specifyingTypes/typeQueries/typeofThis.ts +new file mode 100644 +index 0000000000..420604c550 +--- /dev/null ++++ b/tests/cases/conformance/types/specifyingTypes/typeQueries/typeofThis.ts +@@ -0,0 +1,146 @@ ++// @noImplicitThis: true ++// @strict: true ++ ++class Test { ++ data = {}; ++ constructor() { ++ var copy: typeof this.data = {}; ++ } ++} ++ ++class Test1 { ++ data = { foo: '' }; ++ ['this'] = ''; ++ constructor() { ++ var copy: typeof this.data = { foo: '' }; ++ var foo: typeof this.data.foo = ''; ++ ++ var self: typeof this = this; ++ self.data; ++ ++ var str: typeof this.this = ''; ++ } ++} ++ ++ ++function Test2() { ++ let x: typeof this.no = 1; ++} ++ ++function Test3(this: { no: number }) { ++ let x: typeof this.no = 1; ++} ++ ++function Test4(this: { no: number } | undefined) { ++ let x: typeof this.no = 1; ++} ++ ++class Test5 { ++ no = 1; ++ ++ f = () => { ++ // should not capture this. ++ let x: typeof this.no = 1; ++ } ++} ++ ++namespace Test6 { ++ export let f = () => { ++ let x: typeof this.no = 1; ++ } ++} ++ ++module Test7 { ++ export let f = () => { ++ let x: typeof this.no = 1; ++ } ++} ++ ++const Test8 = () => { ++ let x: typeof this.no = 1; ++} ++ ++class Test9 { ++ no = 0; ++ this = 0; ++ ++ f() { ++ if (this instanceof Test9D1) { ++ const d1: typeof this = this; ++ d1.f1(); ++ } ++ ++ if (this instanceof Test9D2) { ++ const d2: typeof this = this; ++ d2.f2(); ++ } ++ } ++ ++ g() { ++ if (this.no === 1) { ++ const no: typeof this.no = this.no; ++ } ++ ++ if (this.this === 1) { ++ const no: typeof this.this = this.this; ++ } ++ } ++} ++ ++class Test9D1 { ++ f1() {} ++} ++ ++class Test9D2 { ++ f2() {} ++} ++ ++class Test10 { ++ a?: { b?: string } ++ ++ foo() { ++ let a: typeof this.a = undefined as any; ++ if (this.a) { ++ let a: typeof this.a = undefined as any; // should narrow to { b?: string } ++ let b: typeof this.a.b = undefined as any; ++ ++ if (this.a.b) { ++ let b: typeof this.a.b = undefined as any; // should narrow to string ++ } ++ } ++ } ++} ++ ++class Test11 { ++ this?: { x?: string }; ++ ++ foo() { ++ const o = this; ++ let bar: typeof o.this = {}; ++ ++ if (o.this && o.this.x) { ++ let y: string = o.this.x; // should narrow to string ++ } ++ } ++} ++ ++class Tests12 { ++ test1() { // OK ++ type Test = typeof this; ++ } ++ ++ test2() { // OK ++ for (;;) {} ++ type Test = typeof this; ++ } ++ ++ test3() { // expected no compile errors ++ for (const dummy in []) {} ++ type Test = typeof this; ++ } ++ ++ test4() { // expected no compile errors ++ for (const dummy of []) {} ++ type Test = typeof this; ++ } ++} +\ No newline at end of file +diff --git a/tests/cases/conformance/types/specifyingTypes/typeQueries/typeofThisWithImplicitThis.ts b/tests/cases/conformance/types/specifyingTypes/typeQueries/typeofThisWithImplicitThis.ts +new file mode 100644 +index 0000000000..d99cceaa58 +--- /dev/null ++++ b/tests/cases/conformance/types/specifyingTypes/typeQueries/typeofThisWithImplicitThis.ts +@@ -0,0 +1,5 @@ ++// @noImplicitThis: false ++ ++function Test1() { ++ let x: typeof this.no = 1 ++} +diff --git a/tests/cases/conformance/types/spread/spreadDuplicate.ts b/tests/cases/conformance/types/spread/spreadDuplicate.ts +new file mode 100644 +index 0000000000..f27a2529f0 +--- /dev/null ++++ b/tests/cases/conformance/types/spread/spreadDuplicate.ts +@@ -0,0 +1,21 @@ +// @strict: true +// @declaration: true + @@ -11663,12 +11663,12 @@ index 0000000000..f27a2529f0 +let b2 = { a: 123, ...(t ? b : {}) }; // string | number +let c2 = { a: 123, ...(t ? c : {}) }; // string | number +let d2 = { a: 123, ...(t ? d : {}) }; // string | number -diff --git a/tests/cases/conformance/types/spread/spreadDuplicateExact.ts b/tests/cases/conformance/types/spread/spreadDuplicateExact.ts -new file mode 100644 -index 0000000000..e395af4ce5 ---- /dev/null -+++ b/tests/cases/conformance/types/spread/spreadDuplicateExact.ts -@@ -0,0 +1,22 @@ +diff --git a/tests/cases/conformance/types/spread/spreadDuplicateExact.ts b/tests/cases/conformance/types/spread/spreadDuplicateExact.ts +new file mode 100644 +index 0000000000..e395af4ce5 +--- /dev/null ++++ b/tests/cases/conformance/types/spread/spreadDuplicateExact.ts +@@ -0,0 +1,22 @@ +// @strict: true +// @exactOptionalPropertyTypes: true +// @declaration: true @@ -11691,42 +11691,42 @@ index 0000000000..e395af4ce5 +let b2 = { a: 123, ...(t ? b : {}) }; // string | number +let c2 = { a: 123, ...(t ? c : {}) }; // string | number | undefined +let d2 = { a: 123, ...(t ? d : {}) }; // string | number | undefined -diff --git a/tests/cases/conformance/types/spread/spreadUnion4.ts b/tests/cases/conformance/types/spread/spreadUnion4.ts -new file mode 100644 -index 0000000000..6a39ac3a3c ---- /dev/null -+++ b/tests/cases/conformance/types/spread/spreadUnion4.ts -@@ -0,0 +1,4 @@ -+declare const a: { x: () => void } -+declare const b: { x?: () => void } -+ -+const c = { ...a, ...b }; -diff --git a/tests/cases/conformance/types/thisType/fluentClasses.ts b/tests/cases/conformance/types/thisType/fluentClasses.ts -index c9e791cb6f..0aad4efe17 100644 ---- a/tests/cases/conformance/types/thisType/fluentClasses.ts -+++ b/tests/cases/conformance/types/thisType/fluentClasses.ts -@@ -15,3 +15,5 @@ class C extends B { +diff --git a/tests/cases/conformance/types/spread/spreadUnion4.ts b/tests/cases/conformance/types/spread/spreadUnion4.ts +new file mode 100644 +index 0000000000..6a39ac3a3c +--- /dev/null ++++ b/tests/cases/conformance/types/spread/spreadUnion4.ts +@@ -0,0 +1,4 @@ ++declare const a: { x: () => void } ++declare const b: { x?: () => void } ++ ++const c = { ...a, ...b }; +diff --git a/tests/cases/conformance/types/thisType/fluentClasses.ts b/tests/cases/conformance/types/thisType/fluentClasses.ts +index c9e791cb6f..0aad4efe17 100644 +--- a/tests/cases/conformance/types/thisType/fluentClasses.ts ++++ b/tests/cases/conformance/types/thisType/fluentClasses.ts +@@ -15,3 +15,5 @@ class C extends B { } var c: C; var z = c.foo().bar().baz(); // Fluent pattern +let b1 = new B(); +let c1 = new C(); -diff --git a/tests/cases/conformance/types/thisType/thisTypeAndConstraints.ts b/tests/cases/conformance/types/thisType/thisTypeAndConstraints.ts -index f46b251c3b..c6091fd7a2 100644 ---- a/tests/cases/conformance/types/thisType/thisTypeAndConstraints.ts -+++ b/tests/cases/conformance/types/thisType/thisTypeAndConstraints.ts -@@ -19,3 +19,6 @@ class B { +diff --git a/tests/cases/conformance/types/thisType/thisTypeAndConstraints.ts b/tests/cases/conformance/types/thisType/thisTypeAndConstraints.ts +index f46b251c3b..c6091fd7a2 100644 +--- a/tests/cases/conformance/types/thisType/thisTypeAndConstraints.ts ++++ b/tests/cases/conformance/types/thisType/thisTypeAndConstraints.ts +@@ -19,3 +19,6 @@ class B { x = x.self(); } } + +let a = new A(); +let b = new B(); -diff --git a/tests/cases/conformance/types/thisType/thisTypeInClasses.ts b/tests/cases/conformance/types/thisType/thisTypeInClasses.ts -index 6c650341fb..0d3913de7e 100644 ---- a/tests/cases/conformance/types/thisType/thisTypeInClasses.ts -+++ b/tests/cases/conformance/types/thisType/thisTypeInClasses.ts -@@ -47,3 +47,9 @@ class C5 { +diff --git a/tests/cases/conformance/types/thisType/thisTypeInClasses.ts b/tests/cases/conformance/types/thisType/thisTypeInClasses.ts +index 6c650341fb..0d3913de7e 100644 +--- a/tests/cases/conformance/types/thisType/thisTypeInClasses.ts ++++ b/tests/cases/conformance/types/thisType/thisTypeInClasses.ts +@@ -47,3 +47,9 @@ class C5 { let x2 = undefined as this; } } @@ -11736,23 +11736,23 @@ index 6c650341fb..0d3913de7e 100644 +let c3 = new C3(); +let c4 = new C4(); +let c5 = new C5(); -diff --git a/tests/cases/conformance/types/thisType/thisTypeInFunctions3.ts b/tests/cases/conformance/types/thisType/thisTypeInFunctions3.ts -index 01d7fd0430..8fe03ac945 100644 ---- a/tests/cases/conformance/types/thisType/thisTypeInFunctions3.ts -+++ b/tests/cases/conformance/types/thisType/thisTypeInFunctions3.ts -@@ -7,3 +7,6 @@ class Test extends Base { - this.check(this); - } - } -+ -+let te = new Test(); -+ -diff --git a/tests/cases/conformance/types/thisType/thisTypeInTaggedTemplateCall.ts b/tests/cases/conformance/types/thisType/thisTypeInTaggedTemplateCall.ts -new file mode 100644 -index 0000000000..c46933329b ---- /dev/null -+++ b/tests/cases/conformance/types/thisType/thisTypeInTaggedTemplateCall.ts -@@ -0,0 +1,10 @@ +diff --git a/tests/cases/conformance/types/thisType/thisTypeInFunctions3.ts b/tests/cases/conformance/types/thisType/thisTypeInFunctions3.ts +index 01d7fd0430..8fe03ac945 100644 +--- a/tests/cases/conformance/types/thisType/thisTypeInFunctions3.ts ++++ b/tests/cases/conformance/types/thisType/thisTypeInFunctions3.ts +@@ -7,3 +7,6 @@ class Test extends Base { + this.check(this); + } + } ++ ++let te = new Test(); ++ +diff --git a/tests/cases/conformance/types/thisType/thisTypeInTaggedTemplateCall.ts b/tests/cases/conformance/types/thisType/thisTypeInTaggedTemplateCall.ts +new file mode 100644 +index 0000000000..c46933329b +--- /dev/null ++++ b/tests/cases/conformance/types/thisType/thisTypeInTaggedTemplateCall.ts +@@ -0,0 +1,10 @@ +// @target: esnext + +class Foo { @@ -11763,134 +11763,134 @@ index 0000000000..c46933329b + +Foo.m`test`; +(Foo.m)`test`; -diff --git a/tests/cases/conformance/types/tuple/readonlyArraysAndTuples2.ts b/tests/cases/conformance/types/tuple/readonlyArraysAndTuples2.ts -index 0f58f1971d..e03bc2a0c6 100644 ---- a/tests/cases/conformance/types/tuple/readonlyArraysAndTuples2.ts -+++ b/tests/cases/conformance/types/tuple/readonlyArraysAndTuples2.ts -@@ -21,3 +21,5 @@ class A { +diff --git a/tests/cases/conformance/types/tuple/readonlyArraysAndTuples2.ts b/tests/cases/conformance/types/tuple/readonlyArraysAndTuples2.ts +index 0f58f1971d..e03bc2a0c6 100644 +--- a/tests/cases/conformance/types/tuple/readonlyArraysAndTuples2.ts ++++ b/tests/cases/conformance/types/tuple/readonlyArraysAndTuples2.ts +@@ -21,3 +21,5 @@ class A { @someDec k: readonly [string, number] = ['foo', 42]; } + -+let a = new A(); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/typeAliases/circularTypeAliasForUnionWithClass.ts b/tests/cases/conformance/types/typeAliases/circularTypeAliasForUnionWithClass.ts -index e7cca719f4..05fd3be85e 100644 ---- a/tests/cases/conformance/types/typeAliases/circularTypeAliasForUnionWithClass.ts -+++ b/tests/cases/conformance/types/typeAliases/circularTypeAliasForUnionWithClass.ts -@@ -15,3 +15,7 @@ type T4 = string | I4; ++let a = new A(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeAliases/circularTypeAliasForUnionWithClass.ts b/tests/cases/conformance/types/typeAliases/circularTypeAliasForUnionWithClass.ts +index e7cca719f4..05fd3be85e 100644 +--- a/tests/cases/conformance/types/typeAliases/circularTypeAliasForUnionWithClass.ts ++++ b/tests/cases/conformance/types/typeAliases/circularTypeAliasForUnionWithClass.ts +@@ -15,3 +15,7 @@ type T4 = string | I4; class I4 { [x: string]: T4; } + +let i0 = new I0(); +let i3 = new I3(); -+let i4 = new I4(); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/typeAliases/classDoesNotDependOnBaseTypes.ts b/tests/cases/conformance/types/typeAliases/classDoesNotDependOnBaseTypes.ts -index 4cc3a72395..96d1b74b83 100644 ---- a/tests/cases/conformance/types/typeAliases/classDoesNotDependOnBaseTypes.ts -+++ b/tests/cases/conformance/types/typeAliases/classDoesNotDependOnBaseTypes.ts -@@ -9,4 +9,6 @@ var x: StringTree; ++let i4 = new I4(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeAliases/classDoesNotDependOnBaseTypes.ts b/tests/cases/conformance/types/typeAliases/classDoesNotDependOnBaseTypes.ts +index 4cc3a72395..96d1b74b83 100644 +--- a/tests/cases/conformance/types/typeAliases/classDoesNotDependOnBaseTypes.ts ++++ b/tests/cases/conformance/types/typeAliases/classDoesNotDependOnBaseTypes.ts +@@ -9,4 +9,6 @@ var x: StringTree; if (typeof x !== "string") { x[0] = ""; x[0] = new StringTreeCollection; --} -\ No newline at end of file +-} +\ No newline at end of file +} + +let s1 = new StringTreeCollection(); -diff --git a/tests/cases/conformance/types/typeAliases/typeAliases.ts b/tests/cases/conformance/types/typeAliases/typeAliases.ts -index b9d28f4cc3..32eb8473bf 100644 ---- a/tests/cases/conformance/types/typeAliases/typeAliases.ts -+++ b/tests/cases/conformance/types/typeAliases/typeAliases.ts -@@ -77,4 +77,6 @@ var x: [string, boolean]; +diff --git a/tests/cases/conformance/types/typeAliases/typeAliases.ts b/tests/cases/conformance/types/typeAliases/typeAliases.ts +index b9d28f4cc3..32eb8473bf 100644 +--- a/tests/cases/conformance/types/typeAliases/typeAliases.ts ++++ b/tests/cases/conformance/types/typeAliases/typeAliases.ts +@@ -77,4 +77,6 @@ var x: [string, boolean]; f16(x); var y: StringAndBoolean = ["1", false]; --y[0].toLowerCase(); -\ No newline at end of file +-y[0].toLowerCase(); +\ No newline at end of file +y[0].toLowerCase(); + -+let c7 = new C7(); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/typeParameters/typeArgumentLists/callGenericFunctionWithZeroTypeArguments.ts b/tests/cases/conformance/types/typeParameters/typeArgumentLists/callGenericFunctionWithZeroTypeArguments.ts -index 9a21c48ee1..b4a8dc7ba5 100644 ---- a/tests/cases/conformance/types/typeParameters/typeArgumentLists/callGenericFunctionWithZeroTypeArguments.ts -+++ b/tests/cases/conformance/types/typeParameters/typeArgumentLists/callGenericFunctionWithZeroTypeArguments.ts -@@ -33,4 +33,7 @@ interface I2 { ++let c7 = new C7(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeParameters/typeArgumentLists/callGenericFunctionWithZeroTypeArguments.ts b/tests/cases/conformance/types/typeParameters/typeArgumentLists/callGenericFunctionWithZeroTypeArguments.ts +index 9a21c48ee1..b4a8dc7ba5 100644 +--- a/tests/cases/conformance/types/typeParameters/typeArgumentLists/callGenericFunctionWithZeroTypeArguments.ts ++++ b/tests/cases/conformance/types/typeParameters/typeArgumentLists/callGenericFunctionWithZeroTypeArguments.ts +@@ -33,4 +33,7 @@ interface I2 { f(x: T): T; } var i2: I2; --var r7 = i2.f(1); -\ No newline at end of file +-var r7 = i2.f(1); +\ No newline at end of file +var r7 = i2.f(1); + +let c1 = new C(); -+let c2 = new C2(); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/typeParameters/typeArgumentLists/functionConstraintSatisfaction.ts b/tests/cases/conformance/types/typeParameters/typeArgumentLists/functionConstraintSatisfaction.ts -index ba1c5b003f..7490e2bd94 100644 ---- a/tests/cases/conformance/types/typeParameters/typeArgumentLists/functionConstraintSatisfaction.ts -+++ b/tests/cases/conformance/types/typeParameters/typeArgumentLists/functionConstraintSatisfaction.ts -@@ -58,4 +58,7 @@ function foo2(x: T, y: U) { ++let c2 = new C2(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeParameters/typeArgumentLists/functionConstraintSatisfaction.ts b/tests/cases/conformance/types/typeParameters/typeArgumentLists/functionConstraintSatisfaction.ts +index ba1c5b003f..7490e2bd94 100644 +--- a/tests/cases/conformance/types/typeParameters/typeArgumentLists/functionConstraintSatisfaction.ts ++++ b/tests/cases/conformance/types/typeParameters/typeArgumentLists/functionConstraintSatisfaction.ts +@@ -58,4 +58,7 @@ function foo2(x: T, y: U) { //function foo2(x: T, y: U) { // foo(x); // foo(y); --//} -\ No newline at end of file +-//} +\ No newline at end of file +//} + +let c11 = new C(); -+let c12 = new C2(); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/typeParameters/typeArgumentLists/functionConstraintSatisfaction3.ts b/tests/cases/conformance/types/typeParameters/typeArgumentLists/functionConstraintSatisfaction3.ts -index 6c32014789..dec6cdd0bd 100644 ---- a/tests/cases/conformance/types/typeParameters/typeArgumentLists/functionConstraintSatisfaction3.ts -+++ b/tests/cases/conformance/types/typeParameters/typeArgumentLists/functionConstraintSatisfaction3.ts -@@ -38,4 +38,7 @@ var c2: { (x: T): T; (x: T, y: T): T }; ++let c12 = new C2(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeParameters/typeArgumentLists/functionConstraintSatisfaction3.ts b/tests/cases/conformance/types/typeParameters/typeArgumentLists/functionConstraintSatisfaction3.ts +index 6c32014789..dec6cdd0bd 100644 +--- a/tests/cases/conformance/types/typeParameters/typeArgumentLists/functionConstraintSatisfaction3.ts ++++ b/tests/cases/conformance/types/typeParameters/typeArgumentLists/functionConstraintSatisfaction3.ts +@@ -38,4 +38,7 @@ var c2: { (x: T): T; (x: T, y: T): T }; var r9 = foo(function (x: U) { return x; }); var r10 = foo((x: U) => x); var r12 = foo(i2); --var r15 = foo(c2); -\ No newline at end of file +-var r15 = foo(c2); +\ No newline at end of file +var r15 = foo(c2); + +let c11 = new C(); -+let c12 = new C2() -\ No newline at end of file -diff --git a/tests/cases/conformance/types/typeParameters/typeParameterLists/innerTypeParameterShadowingOuterOne2.ts b/tests/cases/conformance/types/typeParameters/typeParameterLists/innerTypeParameterShadowingOuterOne2.ts -index 60766c7e5e..4bd0b6c27f 100644 ---- a/tests/cases/conformance/types/typeParameters/typeParameterLists/innerTypeParameterShadowingOuterOne2.ts -+++ b/tests/cases/conformance/types/typeParameters/typeParameterLists/innerTypeParameterShadowingOuterOne2.ts -@@ -34,4 +34,6 @@ class C2 { ++let c12 = new C2() +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeParameters/typeParameterLists/innerTypeParameterShadowingOuterOne2.ts b/tests/cases/conformance/types/typeParameters/typeParameterLists/innerTypeParameterShadowingOuterOne2.ts +index 60766c7e5e..4bd0b6c27f 100644 +--- a/tests/cases/conformance/types/typeParameters/typeParameterLists/innerTypeParameterShadowingOuterOne2.ts ++++ b/tests/cases/conformance/types/typeParameters/typeParameterLists/innerTypeParameterShadowingOuterOne2.ts +@@ -34,4 +34,6 @@ class C2 { // var x: U; // x.getDate(); // } --//} -\ No newline at end of file +-//} +\ No newline at end of file +//} +let c1 = new C(); -+let c2 = new C2(); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/typeParameters/typeParameterLists/propertyAccessOnTypeParameterWithConstraints.ts b/tests/cases/conformance/types/typeParameters/typeParameterLists/propertyAccessOnTypeParameterWithConstraints.ts -index b89016ecff..c10bef3300 100644 ---- a/tests/cases/conformance/types/typeParameters/typeParameterLists/propertyAccessOnTypeParameterWithConstraints.ts -+++ b/tests/cases/conformance/types/typeParameters/typeParameterLists/propertyAccessOnTypeParameterWithConstraints.ts -@@ -31,4 +31,5 @@ var b = { ++let c2 = new C2(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeParameters/typeParameterLists/propertyAccessOnTypeParameterWithConstraints.ts b/tests/cases/conformance/types/typeParameters/typeParameterLists/propertyAccessOnTypeParameterWithConstraints.ts +index b89016ecff..c10bef3300 100644 +--- a/tests/cases/conformance/types/typeParameters/typeParameterLists/propertyAccessOnTypeParameterWithConstraints.ts ++++ b/tests/cases/conformance/types/typeParameters/typeParameterLists/propertyAccessOnTypeParameterWithConstraints.ts +@@ -31,4 +31,5 @@ var b = { } } --var r4 = b.foo(new Date()); -\ No newline at end of file +-var r4 = b.foo(new Date()); +\ No newline at end of file +var r4 = b.foo(new Date()); -+let c = new C(); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/typeParameters/typeParameterLists/propertyAccessOnTypeParameterWithConstraints2.ts b/tests/cases/conformance/types/typeParameters/typeParameterLists/propertyAccessOnTypeParameterWithConstraints2.ts -index 10f3a49884..a9992c5aa1 100644 ---- a/tests/cases/conformance/types/typeParameters/typeParameterLists/propertyAccessOnTypeParameterWithConstraints2.ts -+++ b/tests/cases/conformance/types/typeParameters/typeParameterLists/propertyAccessOnTypeParameterWithConstraints2.ts -@@ -61,7 +61,7 @@ var a: { ++let c = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeParameters/typeParameterLists/propertyAccessOnTypeParameterWithConstraints2.ts b/tests/cases/conformance/types/typeParameters/typeParameterLists/propertyAccessOnTypeParameterWithConstraints2.ts +index 10f3a49884..a9992c5aa1 100644 +--- a/tests/cases/conformance/types/typeParameters/typeParameterLists/propertyAccessOnTypeParameterWithConstraints2.ts ++++ b/tests/cases/conformance/types/typeParameters/typeParameterLists/propertyAccessOnTypeParameterWithConstraints2.ts +@@ -61,7 +61,7 @@ var a: { var r3 = a().foo(); var r3b = a()['foo'](); // parameter supplied for type argument inference to succeed @@ -11899,50 +11899,50 @@ index 10f3a49884..a9992c5aa1 100644 var r3c = a(aB, aB).foo(); var r3d = a(aB, aB)['foo'](); -@@ -78,4 +78,7 @@ var b = { +@@ -78,4 +78,7 @@ var b = { // } //} --var r4 = b.foo(aB, aB); // no inferences for T so constraint isn't satisfied, error -\ No newline at end of file +-var r4 = b.foo(aB, aB); // no inferences for T so constraint isn't satisfied, error +\ No newline at end of file +var r4 = b.foo(aB, aB); // no inferences for T so constraint isn't satisfied, error + +let b1 = new B(); -+let c1 = new C(); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/typeParameters/typeParameterLists/propertyAccessOnTypeParameterWithConstraints3.ts b/tests/cases/conformance/types/typeParameters/typeParameterLists/propertyAccessOnTypeParameterWithConstraints3.ts -index 6167485f1b..73a10ae071 100644 ---- a/tests/cases/conformance/types/typeParameters/typeParameterLists/propertyAccessOnTypeParameterWithConstraints3.ts -+++ b/tests/cases/conformance/types/typeParameters/typeParameterLists/propertyAccessOnTypeParameterWithConstraints3.ts -@@ -53,4 +53,6 @@ var b = { ++let c1 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeParameters/typeParameterLists/propertyAccessOnTypeParameterWithConstraints3.ts b/tests/cases/conformance/types/typeParameters/typeParameterLists/propertyAccessOnTypeParameterWithConstraints3.ts +index 6167485f1b..73a10ae071 100644 +--- a/tests/cases/conformance/types/typeParameters/typeParameterLists/propertyAccessOnTypeParameterWithConstraints3.ts ++++ b/tests/cases/conformance/types/typeParameters/typeParameterLists/propertyAccessOnTypeParameterWithConstraints3.ts +@@ -53,4 +53,6 @@ var b = { } } --var r4 = b.foo(new B()); // valid call to an invalid function -\ No newline at end of file +-var r4 = b.foo(new B()); // valid call to an invalid function +\ No newline at end of file +var r4 = b.foo(new B()); // valid call to an invalid function +let b1 = new B(); -+let c1 = new C(); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/typeParameters/typeParameterLists/propertyAccessOnTypeParameterWithoutConstraints.ts b/tests/cases/conformance/types/typeParameters/typeParameterLists/propertyAccessOnTypeParameterWithoutConstraints.ts -index 1660d67a4e..b46569e9a4 100644 ---- a/tests/cases/conformance/types/typeParameters/typeParameterLists/propertyAccessOnTypeParameterWithoutConstraints.ts -+++ b/tests/cases/conformance/types/typeParameters/typeParameterLists/propertyAccessOnTypeParameterWithoutConstraints.ts -@@ -28,4 +28,6 @@ var b = { ++let c1 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeParameters/typeParameterLists/propertyAccessOnTypeParameterWithoutConstraints.ts b/tests/cases/conformance/types/typeParameters/typeParameterLists/propertyAccessOnTypeParameterWithoutConstraints.ts +index 1660d67a4e..b46569e9a4 100644 +--- a/tests/cases/conformance/types/typeParameters/typeParameterLists/propertyAccessOnTypeParameterWithoutConstraints.ts ++++ b/tests/cases/conformance/types/typeParameters/typeParameterLists/propertyAccessOnTypeParameterWithoutConstraints.ts +@@ -28,4 +28,6 @@ var b = { } } --var r4 = b.foo(1); -\ No newline at end of file +-var r4 = b.foo(1); +\ No newline at end of file +var r4 = b.foo(1); + -+let c = new C(); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/typeParameters/typeParameterLists/typeParameterUsedAsConstraint.ts b/tests/cases/conformance/types/typeParameters/typeParameterLists/typeParameterUsedAsConstraint.ts -index bade67badd..b9f3e54bb7 100644 ---- a/tests/cases/conformance/types/typeParameters/typeParameterLists/typeParameterUsedAsConstraint.ts -+++ b/tests/cases/conformance/types/typeParameters/typeParameterLists/typeParameterUsedAsConstraint.ts -@@ -32,3 +32,10 @@ var a3: { (): void } ++let c = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeParameters/typeParameterLists/typeParameterUsedAsConstraint.ts b/tests/cases/conformance/types/typeParameters/typeParameterLists/typeParameterUsedAsConstraint.ts +index bade67badd..b9f3e54bb7 100644 +--- a/tests/cases/conformance/types/typeParameters/typeParameterLists/typeParameterUsedAsConstraint.ts ++++ b/tests/cases/conformance/types/typeParameters/typeParameterLists/typeParameterUsedAsConstraint.ts +@@ -32,3 +32,10 @@ var a3: { (): void } var a4: { (): void } var a5: { (): void } var a6: { (): void } @@ -11952,29 +11952,29 @@ index bade67badd..b9f3e54bb7 100644 +let c3 = new C3(); +let c4 = new C4(); +let c5 = new C5(); -+let c6 = new C6(); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/anyAssignabilityInInheritance.ts b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/anyAssignabilityInInheritance.ts -index cc154308a1..5dfa8f94d3 100644 ---- a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/anyAssignabilityInInheritance.ts -+++ b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/anyAssignabilityInInheritance.ts -@@ -85,4 +85,8 @@ var r3 = foo3(a); // any ++let c6 = new C6(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/anyAssignabilityInInheritance.ts b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/anyAssignabilityInInheritance.ts +index cc154308a1..5dfa8f94d3 100644 +--- a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/anyAssignabilityInInheritance.ts ++++ b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/anyAssignabilityInInheritance.ts +@@ -85,4 +85,8 @@ var r3 = foo3(a); // any declare function foo18(x: {}): {}; declare function foo18(x: any): any; --var r3 = foo3(a); // any -\ No newline at end of file +-var r3 = foo3(a); // any +\ No newline at end of file +var r3 = foo3(a); // any + +let aa1 = new A(); +let aa2 = new A2(); -+let ccc = new CC(); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/anyAssignableToEveryType.ts b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/anyAssignableToEveryType.ts -index 1c3bcc71ce..03e0089697 100644 ---- a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/anyAssignableToEveryType.ts -+++ b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/anyAssignableToEveryType.ts -@@ -38,6 +38,7 @@ function foo(x: T, y: U, z: V) { ++let ccc = new CC(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/anyAssignableToEveryType.ts b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/anyAssignableToEveryType.ts +index 1c3bcc71ce..03e0089697 100644 +--- a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/anyAssignableToEveryType.ts ++++ b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/anyAssignableToEveryType.ts +@@ -38,6 +38,7 @@ function foo(x: T, y: U, z: V) { z = a; } @@ -11982,23 +11982,23 @@ index 1c3bcc71ce..03e0089697 100644 //function foo(x: T, y: U, z: V) { // x = a; // y = a; -diff --git a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/anyAssignableToEveryType2.ts b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/anyAssignableToEveryType2.ts -index 26f3eee594..74a517176d 100644 ---- a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/anyAssignableToEveryType2.ts -+++ b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/anyAssignableToEveryType2.ts -@@ -127,3 +127,6 @@ interface I20 { +diff --git a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/anyAssignableToEveryType2.ts b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/anyAssignableToEveryType2.ts +index 26f3eee594..74a517176d 100644 +--- a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/anyAssignableToEveryType2.ts ++++ b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/anyAssignableToEveryType2.ts +@@ -127,3 +127,6 @@ interface I20 { [x: string]: {}; foo: any; } +let aa = new A(); +let aa2 = new A2() -+let ccc = new c(); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithObjectMembers.ts b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithObjectMembers.ts -index d7a94cc862..464edb67d3 100644 ---- a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithObjectMembers.ts -+++ b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithObjectMembers.ts -@@ -40,6 +40,8 @@ module SimpleTypes { ++let ccc = new c(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithObjectMembers.ts b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithObjectMembers.ts +index d7a94cc862..464edb67d3 100644 +--- a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithObjectMembers.ts ++++ b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithObjectMembers.ts +@@ -40,6 +40,8 @@ module SimpleTypes { a2 = b; a2 = t2; a2 = t; @@ -12007,146 +12007,146 @@ index d7a94cc862..464edb67d3 100644 } module ObjectTypes { -@@ -81,5 +83,6 @@ module ObjectTypes { +@@ -81,5 +83,6 @@ module ObjectTypes { a2 = b; a2 = t2; a2 = t; - + let ss = new S(); + let tt = new T(); - } -\ No newline at end of file -diff --git a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithObjectMembers2.ts b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithObjectMembers2.ts -index a45da06482..a9e3bc6141 100644 ---- a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithObjectMembers2.ts -+++ b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithObjectMembers2.ts -@@ -39,3 +39,5 @@ b2 = a2; + } +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithObjectMembers2.ts b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithObjectMembers2.ts +index a45da06482..a9e3bc6141 100644 +--- a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithObjectMembers2.ts ++++ b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithObjectMembers2.ts +@@ -39,3 +39,5 @@ b2 = a2; a2 = b; a2 = t2; a2 = t; +let qu1 = new S(); -+let qu2 = new T(); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithObjectMembers3.ts b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithObjectMembers3.ts -index 6e9a210db4..b96693de94 100644 ---- a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithObjectMembers3.ts -+++ b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithObjectMembers3.ts -@@ -39,3 +39,5 @@ b2 = a2; ++let qu2 = new T(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithObjectMembers3.ts b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithObjectMembers3.ts +index 6e9a210db4..b96693de94 100644 +--- a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithObjectMembers3.ts ++++ b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithObjectMembers3.ts +@@ -39,3 +39,5 @@ b2 = a2; a2 = b; a2 = t2; a2 = t; +let qi3 = new S(); -+let qi4 = new T(); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithObjectMembersNumericNames.ts b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithObjectMembersNumericNames.ts -index b25c949f42..7372988241 100644 ---- a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithObjectMembersNumericNames.ts -+++ b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithObjectMembersNumericNames.ts -@@ -39,3 +39,5 @@ b2 = a2; ++let qi4 = new T(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithObjectMembersNumericNames.ts b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithObjectMembersNumericNames.ts +index b25c949f42..7372988241 100644 +--- a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithObjectMembersNumericNames.ts ++++ b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithObjectMembersNumericNames.ts +@@ -39,3 +39,5 @@ b2 = a2; a2 = b; a2 = t2; a2 = t; +let qi1 = new S(); -+let qi2 = new T(); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/callSignatureAssignabilityInInheritance2.ts b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/callSignatureAssignabilityInInheritance2.ts -index 9e6cd52ac2..c511bfa71a 100644 ---- a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/callSignatureAssignabilityInInheritance2.ts -+++ b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/callSignatureAssignabilityInInheritance2.ts -@@ -66,4 +66,8 @@ interface I extends A { ++let qi2 = new T(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/callSignatureAssignabilityInInheritance2.ts b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/callSignatureAssignabilityInInheritance2.ts +index 9e6cd52ac2..c511bfa71a 100644 +--- a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/callSignatureAssignabilityInInheritance2.ts ++++ b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/callSignatureAssignabilityInInheritance2.ts +@@ -66,4 +66,8 @@ interface I extends A { a16: (x: T) => number[]; // ok a17: (x: (a: T) => T) => T[]; // ok a18: (x: (a: T) => T) => T[]; // ok, no inferences for T but assignable to any --} -\ No newline at end of file +-} +\ No newline at end of file +} + +let qi14 = new Derived(); +let qi15 = new Derived2(); -+let qi16 = new OtherDerived(); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/callSignatureAssignabilityInInheritance4.ts b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/callSignatureAssignabilityInInheritance4.ts -index dd10ee7646..bb1f737657 100644 ---- a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/callSignatureAssignabilityInInheritance4.ts -+++ b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/callSignatureAssignabilityInInheritance4.ts -@@ -46,4 +46,8 @@ interface I extends A { ++let qi16 = new OtherDerived(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/callSignatureAssignabilityInInheritance4.ts b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/callSignatureAssignabilityInInheritance4.ts +index dd10ee7646..bb1f737657 100644 +--- a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/callSignatureAssignabilityInInheritance4.ts ++++ b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/callSignatureAssignabilityInInheritance4.ts +@@ -46,4 +46,8 @@ interface I extends A { a16: (x: { a: T; b: T }) => T[]; // ok, more general parameter type a17: (x: (a: T) => T) => T[]; // ok a18: (x: (a: T) => T) => any[]; // ok --} -\ No newline at end of file +-} +\ No newline at end of file +} + +let qi14 = new Derived(); +let qi15 = new Derived2(); -+let qi16 = new OtherDerived(); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/callSignatureAssignabilityInInheritance5.ts b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/callSignatureAssignabilityInInheritance5.ts -index bf60d6518c..ef4e179af9 100644 ---- a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/callSignatureAssignabilityInInheritance5.ts -+++ b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/callSignatureAssignabilityInInheritance5.ts -@@ -45,4 +45,7 @@ interface I extends B { ++let qi16 = new OtherDerived(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/callSignatureAssignabilityInInheritance5.ts b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/callSignatureAssignabilityInInheritance5.ts +index bf60d6518c..ef4e179af9 100644 +--- a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/callSignatureAssignabilityInInheritance5.ts ++++ b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/callSignatureAssignabilityInInheritance5.ts +@@ -45,4 +45,7 @@ interface I extends B { a12: >(x: Array, y: T) => Array; // ok, less specific parameter type a13: >(x: Array, y: T) => T; // ok, T = Array, satisfies constraint, contextual signature instantiation succeeds a14: (x: { a: T; b: U }) => T; // ok --} -\ No newline at end of file +-} +\ No newline at end of file +} +let qi14 = new Derived(); +let qi15 = new Derived2(); -+let qi16 = new OtherDerived(); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/constructSignatureAssignabilityInInheritance2.ts b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/constructSignatureAssignabilityInInheritance2.ts -index 65e4f4c962..8d842b7d7e 100644 ---- a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/constructSignatureAssignabilityInInheritance2.ts -+++ b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/constructSignatureAssignabilityInInheritance2.ts -@@ -66,4 +66,8 @@ interface I extends A { ++let qi16 = new OtherDerived(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/constructSignatureAssignabilityInInheritance2.ts b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/constructSignatureAssignabilityInInheritance2.ts +index 65e4f4c962..8d842b7d7e 100644 +--- a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/constructSignatureAssignabilityInInheritance2.ts ++++ b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/constructSignatureAssignabilityInInheritance2.ts +@@ -66,4 +66,8 @@ interface I extends A { a16: new (x: T) => number[]; // ok a17: new (x: new (a: T) => T) => T[]; // ok a18: new (x: new (a: T) => T) => T[]; // ok, no inferences for T but assignable to any --} -\ No newline at end of file +-} +\ No newline at end of file +} + +let qi14 = new Derived(); +let qi15 = new Derived2(); -+let qi16 = new OtherDerived(); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/constructSignatureAssignabilityInInheritance4.ts b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/constructSignatureAssignabilityInInheritance4.ts -index 9dfcf5548a..8b57d6a8c7 100644 ---- a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/constructSignatureAssignabilityInInheritance4.ts -+++ b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/constructSignatureAssignabilityInInheritance4.ts -@@ -56,4 +56,7 @@ interface I extends A { ++let qi16 = new OtherDerived(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/constructSignatureAssignabilityInInheritance4.ts b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/constructSignatureAssignabilityInInheritance4.ts +index 9dfcf5548a..8b57d6a8c7 100644 +--- a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/constructSignatureAssignabilityInInheritance4.ts ++++ b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/constructSignatureAssignabilityInInheritance4.ts +@@ -56,4 +56,7 @@ interface I extends A { a18: new (x: T) => number[]; // ok, more general parameter type a19: new (x: new (a: T) => T) => T[]; // ok a20: new (x: new (a: T) => T) => any[]; // ok --} -\ No newline at end of file +-} +\ No newline at end of file +} +let qi14 = new Derived(); +let qi15 = new Derived2(); -+let qi16 = new OtherDerived(); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/constructSignatureAssignabilityInInheritance5.ts b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/constructSignatureAssignabilityInInheritance5.ts -index f33820218e..6ba5e454f6 100644 ---- a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/constructSignatureAssignabilityInInheritance5.ts -+++ b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/constructSignatureAssignabilityInInheritance5.ts -@@ -45,4 +45,7 @@ interface I extends B { ++let qi16 = new OtherDerived(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/constructSignatureAssignabilityInInheritance5.ts b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/constructSignatureAssignabilityInInheritance5.ts +index f33820218e..6ba5e454f6 100644 +--- a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/constructSignatureAssignabilityInInheritance5.ts ++++ b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/constructSignatureAssignabilityInInheritance5.ts +@@ -45,4 +45,7 @@ interface I extends B { a12: new >(x: Array, y: T) => Array; // ok, less specific parameter type a13: new >(x: Array, y: T) => T; // ok, T = Array, satisfies constraint, contextual signature instantiation succeeds a14: new (x: { a: T; b: U }) => T; // ok --} -\ No newline at end of file +-} +\ No newline at end of file +} +let qi14 = new Derived(); +let qi15 = new Derived2(); -+let qi16 = new OtherDerived(); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/everyTypeAssignableToAny.ts b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/everyTypeAssignableToAny.ts -index 6c8670abaa..407e128678 100644 ---- a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/everyTypeAssignableToAny.ts -+++ b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/everyTypeAssignableToAny.ts -@@ -53,6 +53,8 @@ function foo(x: T, y: U, z: V) { ++let qi16 = new OtherDerived(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/everyTypeAssignableToAny.ts b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/everyTypeAssignableToAny.ts +index 6c8670abaa..407e128678 100644 +--- a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/everyTypeAssignableToAny.ts ++++ b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/everyTypeAssignableToAny.ts +@@ -53,6 +53,8 @@ function foo(x: T, y: U, z: V) { a = y; a = z; } @@ -12155,11 +12155,11 @@ index 6c8670abaa..407e128678 100644 //function foo(x: T, y: U, z: V) { // a = x; // a = y; -diff --git a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/nullAssignableToEveryType.ts b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/nullAssignableToEveryType.ts -index b0f55331d7..cc755558ff 100644 ---- a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/nullAssignableToEveryType.ts -+++ b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/nullAssignableToEveryType.ts -@@ -35,7 +35,7 @@ function foo(x: T, y: U, z: V) { +diff --git a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/nullAssignableToEveryType.ts b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/nullAssignableToEveryType.ts +index b0f55331d7..cc755558ff 100644 +--- a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/nullAssignableToEveryType.ts ++++ b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/nullAssignableToEveryType.ts +@@ -35,7 +35,7 @@ function foo(x: T, y: U, z: V) { y = null; z = null; } @@ -12168,11 +12168,11 @@ index b0f55331d7..cc755558ff 100644 //function foo(x: T, y: U, z: V) { // x = null; // y = null; -diff --git a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/undefinedAssignableToEveryType.ts b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/undefinedAssignableToEveryType.ts -index 5fc14274a1..f296781ef1 100644 ---- a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/undefinedAssignableToEveryType.ts -+++ b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/undefinedAssignableToEveryType.ts -@@ -35,6 +35,7 @@ function foo(x: T, y: U, z: V) { +diff --git a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/undefinedAssignableToEveryType.ts b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/undefinedAssignableToEveryType.ts +index 5fc14274a1..f296781ef1 100644 +--- a/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/undefinedAssignableToEveryType.ts ++++ b/tests/cases/conformance/types/typeRelationships/assignmentCompatibility/undefinedAssignableToEveryType.ts +@@ -35,6 +35,7 @@ function foo(x: T, y: U, z: V) { y = undefined; z = undefined; } @@ -12180,40 +12180,40 @@ index 5fc14274a1..f296781ef1 100644 //function foo(x: T, y: U, z: V) { // x = undefined; // y = undefined; -diff --git a/tests/cases/conformance/types/typeRelationships/bestCommonType/bestCommonTypeOfConditionalExpressions.ts b/tests/cases/conformance/types/typeRelationships/bestCommonType/bestCommonTypeOfConditionalExpressions.ts -index 5f02210478..1e1889cc10 100644 ---- a/tests/cases/conformance/types/typeRelationships/bestCommonType/bestCommonTypeOfConditionalExpressions.ts -+++ b/tests/cases/conformance/types/typeRelationships/bestCommonType/bestCommonTypeOfConditionalExpressions.ts -@@ -23,4 +23,7 @@ var r11 = true ? base : derived2; +diff --git a/tests/cases/conformance/types/typeRelationships/bestCommonType/bestCommonTypeOfConditionalExpressions.ts b/tests/cases/conformance/types/typeRelationships/bestCommonType/bestCommonTypeOfConditionalExpressions.ts +index 5f02210478..1e1889cc10 100644 +--- a/tests/cases/conformance/types/typeRelationships/bestCommonType/bestCommonTypeOfConditionalExpressions.ts ++++ b/tests/cases/conformance/types/typeRelationships/bestCommonType/bestCommonTypeOfConditionalExpressions.ts +@@ -23,4 +23,7 @@ var r11 = true ? base : derived2; function foo5(t: T, u: U): Object { return true ? t : u; // BCT is Object --} -\ No newline at end of file +-} +\ No newline at end of file +} + +let qy10 = new Derived(); -+let qy11 = new Derived2(); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/typeRelationships/bestCommonType/bestCommonTypeOfConditionalExpressions2.ts b/tests/cases/conformance/types/typeRelationships/bestCommonType/bestCommonTypeOfConditionalExpressions2.ts -index 8e6f345ea4..f1512e3536 100644 ---- a/tests/cases/conformance/types/typeRelationships/bestCommonType/bestCommonTypeOfConditionalExpressions2.ts -+++ b/tests/cases/conformance/types/typeRelationships/bestCommonType/bestCommonTypeOfConditionalExpressions2.ts -@@ -21,4 +21,6 @@ function foo2(t: T, u: U) { // Error for referencing own type pa ++let qy11 = new Derived2(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/bestCommonType/bestCommonTypeOfConditionalExpressions2.ts b/tests/cases/conformance/types/typeRelationships/bestCommonType/bestCommonTypeOfConditionalExpressions2.ts +index 8e6f345ea4..f1512e3536 100644 +--- a/tests/cases/conformance/types/typeRelationships/bestCommonType/bestCommonTypeOfConditionalExpressions2.ts ++++ b/tests/cases/conformance/types/typeRelationships/bestCommonType/bestCommonTypeOfConditionalExpressions2.ts +@@ -21,4 +21,6 @@ function foo2(t: T, u: U) { // Error for referencing own type pa function foo3(t: T, u: U) { return true ? t : u; --} -\ No newline at end of file +-} +\ No newline at end of file +} +let qy8 = new Derived(); -+let qy9 = new Derived2(); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/typeRelationships/bestCommonType/heterogeneousArrayLiterals.ts b/tests/cases/conformance/types/typeRelationships/bestCommonType/heterogeneousArrayLiterals.ts -index 0f498c570a..13ecea225a 100644 ---- a/tests/cases/conformance/types/typeRelationships/bestCommonType/heterogeneousArrayLiterals.ts -+++ b/tests/cases/conformance/types/typeRelationships/bestCommonType/heterogeneousArrayLiterals.ts -@@ -99,6 +99,8 @@ function foo4(t: T, u: U) { ++let qy9 = new Derived2(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/bestCommonType/heterogeneousArrayLiterals.ts b/tests/cases/conformance/types/typeRelationships/bestCommonType/heterogeneousArrayLiterals.ts +index 0f498c570a..13ecea225a 100644 +--- a/tests/cases/conformance/types/typeRelationships/bestCommonType/heterogeneousArrayLiterals.ts ++++ b/tests/cases/conformance/types/typeRelationships/bestCommonType/heterogeneousArrayLiterals.ts +@@ -99,6 +99,8 @@ function foo4(t: T, u: U) { var k: Base[] = [t, u]; } @@ -12222,69 +12222,69 @@ index 0f498c570a..13ecea225a 100644 //function foo3(t: T, u: U) { // var a = [t, t]; // T[] -diff --git a/tests/cases/conformance/types/typeRelationships/instanceOf/narrowingConstrainedTypeVariable.ts b/tests/cases/conformance/types/typeRelationships/instanceOf/narrowingConstrainedTypeVariable.ts -index 04623503f9..491876d8ff 100644 ---- a/tests/cases/conformance/types/typeRelationships/instanceOf/narrowingConstrainedTypeVariable.ts -+++ b/tests/cases/conformance/types/typeRelationships/instanceOf/narrowingConstrainedTypeVariable.ts -@@ -34,3 +34,6 @@ function f3(v: T | { x: string }) { +diff --git a/tests/cases/conformance/types/typeRelationships/instanceOf/narrowingConstrainedTypeVariable.ts b/tests/cases/conformance/types/typeRelationships/instanceOf/narrowingConstrainedTypeVariable.ts +index 04623503f9..491876d8ff 100644 +--- a/tests/cases/conformance/types/typeRelationships/instanceOf/narrowingConstrainedTypeVariable.ts ++++ b/tests/cases/conformance/types/typeRelationships/instanceOf/narrowingConstrainedTypeVariable.ts +@@ -34,3 +34,6 @@ function f3(v: T | { x: string }) { const y: { x: string } = v; } } +let qy5 = new C(); +let qy6 = new D(); -+let qy7 = new E(); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/typeRelationships/recursiveTypes/arrayLiteralsWithRecursiveGenerics.ts b/tests/cases/conformance/types/typeRelationships/recursiveTypes/arrayLiteralsWithRecursiveGenerics.ts -index e7260831a4..35de332a33 100644 ---- a/tests/cases/conformance/types/typeRelationships/recursiveTypes/arrayLiteralsWithRecursiveGenerics.ts -+++ b/tests/cases/conformance/types/typeRelationships/recursiveTypes/arrayLiteralsWithRecursiveGenerics.ts -@@ -22,4 +22,8 @@ var ys = [list, list2]; // {}[] ++let qy7 = new E(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/recursiveTypes/arrayLiteralsWithRecursiveGenerics.ts b/tests/cases/conformance/types/typeRelationships/recursiveTypes/arrayLiteralsWithRecursiveGenerics.ts +index e7260831a4..35de332a33 100644 +--- a/tests/cases/conformance/types/typeRelationships/recursiveTypes/arrayLiteralsWithRecursiveGenerics.ts ++++ b/tests/cases/conformance/types/typeRelationships/recursiveTypes/arrayLiteralsWithRecursiveGenerics.ts +@@ -22,4 +22,8 @@ var ys = [list, list2]; // {}[] var zs = [list, null]; // List[] var myDerivedList: DerivedList; --var as = [list, myDerivedList]; // List[] -\ No newline at end of file +-var as = [list, myDerivedList]; // List[] +\ No newline at end of file +var as = [list, myDerivedList]; // List[] + +let li = new List(); +let der = new DerivedList(); -+let my = new MyList(); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/typeRelationships/recursiveTypes/recursiveTypeInGenericConstraint.ts b/tests/cases/conformance/types/typeRelationships/recursiveTypes/recursiveTypeInGenericConstraint.ts -index ac6286bd81..e4d37f2abe 100644 ---- a/tests/cases/conformance/types/typeRelationships/recursiveTypes/recursiveTypeInGenericConstraint.ts -+++ b/tests/cases/conformance/types/typeRelationships/recursiveTypes/recursiveTypeInGenericConstraint.ts -@@ -10,4 +10,7 @@ class D { ++let my = new MyList(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/recursiveTypes/recursiveTypeInGenericConstraint.ts b/tests/cases/conformance/types/typeRelationships/recursiveTypes/recursiveTypeInGenericConstraint.ts +index ac6286bd81..e4d37f2abe 100644 +--- a/tests/cases/conformance/types/typeRelationships/recursiveTypes/recursiveTypeInGenericConstraint.ts ++++ b/tests/cases/conformance/types/typeRelationships/recursiveTypes/recursiveTypeInGenericConstraint.ts +@@ -10,4 +10,7 @@ class D { x: G>; } --var c1 = new Foo>(); // ok, circularity in assignment compat check causes success -\ No newline at end of file +-var c1 = new Foo>(); // ok, circularity in assignment compat check causes success +\ No newline at end of file +var c1 = new Foo>(); // ok, circularity in assignment compat check causes success +let g = new G(); +let foo = new Foo(); -+let d = new D(); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/typeRelationships/recursiveTypes/recursiveTypesUsedAsFunctionParameters.ts b/tests/cases/conformance/types/typeRelationships/recursiveTypes/recursiveTypesUsedAsFunctionParameters.ts -index 6eba1f2836..6cdf1db8be 100644 ---- a/tests/cases/conformance/types/typeRelationships/recursiveTypes/recursiveTypesUsedAsFunctionParameters.ts -+++ b/tests/cases/conformance/types/typeRelationships/recursiveTypes/recursiveTypesUsedAsFunctionParameters.ts -@@ -40,4 +40,7 @@ function other, U>() { ++let d = new D(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/recursiveTypes/recursiveTypesUsedAsFunctionParameters.ts b/tests/cases/conformance/types/typeRelationships/recursiveTypes/recursiveTypesUsedAsFunctionParameters.ts +index 6eba1f2836..6cdf1db8be 100644 +--- a/tests/cases/conformance/types/typeRelationships/recursiveTypes/recursiveTypesUsedAsFunctionParameters.ts ++++ b/tests/cases/conformance/types/typeRelationships/recursiveTypes/recursiveTypesUsedAsFunctionParameters.ts +@@ -40,4 +40,7 @@ function other, U>() { var r = foo5(list); var r2 = foo5(myList); --} -\ No newline at end of file +-} +\ No newline at end of file +} + +let li = new List(); -+let my = new MyList(); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/nullIsSubtypeOfEverythingButUndefined.ts b/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/nullIsSubtypeOfEverythingButUndefined.ts -index 24f2ab71d4..ced02bcefe 100644 ---- a/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/nullIsSubtypeOfEverythingButUndefined.ts -+++ b/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/nullIsSubtypeOfEverythingButUndefined.ts -@@ -88,3 +88,7 @@ var r19 = true ? null : new Object(); ++let my = new MyList(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/nullIsSubtypeOfEverythingButUndefined.ts b/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/nullIsSubtypeOfEverythingButUndefined.ts +index 24f2ab71d4..ced02bcefe 100644 +--- a/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/nullIsSubtypeOfEverythingButUndefined.ts ++++ b/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/nullIsSubtypeOfEverythingButUndefined.ts +@@ -88,3 +88,7 @@ var r19 = true ? null : new Object(); var r20 = true ? {} : null; var r20 = true ? null : {}; @@ -12292,55 +12292,55 @@ index 24f2ab71d4..ced02bcefe 100644 +let c11 = new C1(); +let c12 = new C2(); +let c13 = new c(); -diff --git a/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/stringLiteralTypeIsSubtypeOfString.ts b/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/stringLiteralTypeIsSubtypeOfString.ts -index c7e9c0fc8e..0f00bc8c02 100644 ---- a/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/stringLiteralTypeIsSubtypeOfString.ts -+++ b/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/stringLiteralTypeIsSubtypeOfString.ts -@@ -97,4 +97,6 @@ function f15(x: any) { } +diff --git a/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/stringLiteralTypeIsSubtypeOfString.ts b/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/stringLiteralTypeIsSubtypeOfString.ts +index c7e9c0fc8e..0f00bc8c02 100644 +--- a/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/stringLiteralTypeIsSubtypeOfString.ts ++++ b/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/stringLiteralTypeIsSubtypeOfString.ts +@@ -97,4 +97,6 @@ function f15(x: any) { } function f16(x: 'a'); function f16(x: U); --function f16(x: any) { } -\ No newline at end of file +-function f16(x: any) { } +\ No newline at end of file +function f16(x: any) { } + -+let ccc = new C(); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypesOfAny.ts b/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypesOfAny.ts -index 0e5df54319..d785a27b7b 100644 ---- a/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypesOfAny.ts -+++ b/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypesOfAny.ts -@@ -130,4 +130,7 @@ interface I19 { ++let ccc = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypesOfAny.ts b/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypesOfAny.ts +index 0e5df54319..d785a27b7b 100644 +--- a/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypesOfAny.ts ++++ b/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypesOfAny.ts +@@ -130,4 +130,7 @@ interface I19 { interface I20 { [x: string]: any; foo: {}; --} -\ No newline at end of file +-} +\ No newline at end of file +} +let a1 = new A(); +let a2 = new A2(); -+let c1 = new c(); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypesOfTypeParameterWithConstraints2.ts b/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypesOfTypeParameterWithConstraints2.ts -index 9edf4f5f41..990e4b8cc5 100644 ---- a/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypesOfTypeParameterWithConstraints2.ts -+++ b/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypesOfTypeParameterWithConstraints2.ts -@@ -154,4 +154,7 @@ function f20(x: T) { ++let c1 = new c(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypesOfTypeParameterWithConstraints2.ts b/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypesOfTypeParameterWithConstraints2.ts +index 9edf4f5f41..990e4b8cc5 100644 +--- a/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypesOfTypeParameterWithConstraints2.ts ++++ b/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypesOfTypeParameterWithConstraints2.ts +@@ -154,4 +154,7 @@ function f20(x: T) { function f21(x: T) { var r20 = true ? {} : x; // ok var r20 = true ? x : {}; // ok --} -\ No newline at end of file +-} +\ No newline at end of file +} + +let c1 = new C1(); -+let c2 = new C2(); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignatures2.ts b/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignatures2.ts -index e8ae73c5fb..4a29484b12 100644 ---- a/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignatures2.ts -+++ b/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignatures2.ts -@@ -5,6 +5,7 @@ class Derived extends Base { bar: string; } ++let c2 = new C2(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignatures2.ts b/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignatures2.ts +index e8ae73c5fb..4a29484b12 100644 +--- a/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignatures2.ts ++++ b/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignatures2.ts +@@ -5,6 +5,7 @@ class Derived extends Base { bar: string; } class Derived2 extends Derived { baz: string; } class OtherDerived extends Base { bing: string; } @@ -12348,7 +12348,7 @@ index e8ae73c5fb..4a29484b12 100644 declare function foo1(a: (x: number) => number[]): typeof a; declare function foo1(a: any): any; -@@ -169,3 +170,8 @@ var r17arg1 = (x: (a: T) => T) => null; +@@ -169,3 +170,8 @@ var r17arg1 = (x: (a: T) => T) => null; var r17 = foo17(r17arg1); // any var r18arg1 = (x: (a: T) => T) => null; var r18 = foo18(r18arg1); @@ -12356,13 +12356,13 @@ index e8ae73c5fb..4a29484b12 100644 + +let der1 = new Derived(); +let der2 = new Derived2(); -+let oth = new OtherDerived(); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignatures3.ts b/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignatures3.ts -index 505919547f..51c890854f 100644 ---- a/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignatures3.ts -+++ b/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignatures3.ts -@@ -103,6 +103,10 @@ module Errors { ++let oth = new OtherDerived(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignatures3.ts b/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignatures3.ts +index 505919547f..51c890854f 100644 +--- a/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignatures3.ts ++++ b/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignatures3.ts +@@ -103,6 +103,10 @@ module Errors { var r9arg = (x: (a: T) => T) => null; var r9 = foo17(r9arg); // (x: { (a: T): T; (a: T): T; }): any[]; (x: { (a: T): T; (a: T): T; }): any[]; @@ -12373,27 +12373,27 @@ index 505919547f..51c890854f 100644 } module WithGenericSignaturesInBaseType { -diff --git a/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignatures4.ts b/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignatures4.ts -index e86fc51d44..e043cec402 100644 ---- a/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignatures4.ts -+++ b/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignatures4.ts -@@ -108,4 +108,8 @@ var r17arg = (x: (a: T) => T) => null; +diff --git a/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignatures4.ts b/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignatures4.ts +index e86fc51d44..e043cec402 100644 +--- a/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignatures4.ts ++++ b/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithCallSignatures4.ts +@@ -108,4 +108,8 @@ var r17arg = (x: (a: T) => T) => null; var r17 = foo17(r17arg); var r18arg = (x: (a: T) => T) => null; --var r18 = foo18(r18arg); -\ No newline at end of file +-var r18 = foo18(r18arg); +\ No newline at end of file +var r18 = foo18(r18arg); + +let der =new Derived(); +let der2 = new Derived2(); -+let oth = new OtherDerived(); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithConstructSignatures2.ts b/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithConstructSignatures2.ts -index 46d1c9e91d..683db9f182 100644 ---- a/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithConstructSignatures2.ts -+++ b/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithConstructSignatures2.ts -@@ -169,3 +169,8 @@ var r17arg1: new (x: (a: T) => T) => T[]; ++let oth = new OtherDerived(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithConstructSignatures2.ts b/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithConstructSignatures2.ts +index 46d1c9e91d..683db9f182 100644 +--- a/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithConstructSignatures2.ts ++++ b/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithConstructSignatures2.ts +@@ -169,3 +169,8 @@ var r17arg1: new (x: (a: T) => T) => T[]; var r17 = foo17(r17arg1); // any var r18arg1: new (x: (a: T) => T) => T[]; var r18 = foo18(r18arg1); @@ -12401,13 +12401,13 @@ index 46d1c9e91d..683db9f182 100644 + +let der =new Derived(); +let der2 = new Derived2(); -+let oth = new OtherDerived(); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithConstructSignatures3.ts b/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithConstructSignatures3.ts -index 215a5d1d4d..bbaddcabfc 100644 ---- a/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithConstructSignatures3.ts -+++ b/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithConstructSignatures3.ts -@@ -105,6 +105,10 @@ module Errors { ++let oth = new OtherDerived(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithConstructSignatures3.ts b/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithConstructSignatures3.ts +index 215a5d1d4d..bbaddcabfc 100644 +--- a/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithConstructSignatures3.ts ++++ b/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithConstructSignatures3.ts +@@ -105,6 +105,10 @@ module Errors { var r9arg: new (x: new (a: T) => T) => any[]; var r9 = foo17(r9arg); // // (x: { (a: T): T; (a: T): T; }): any[]; (x: { (a: T): T; (a: T): T; }): any[]; @@ -12418,27 +12418,27 @@ index 215a5d1d4d..bbaddcabfc 100644 } module WithGenericSignaturesInBaseType { -diff --git a/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithConstructSignatures4.ts b/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithConstructSignatures4.ts -index 830139d3fa..5d5145d29d 100644 ---- a/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithConstructSignatures4.ts -+++ b/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithConstructSignatures4.ts -@@ -108,4 +108,8 @@ var r17arg: new (x: new (a: T) => T) => T[]; +diff --git a/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithConstructSignatures4.ts b/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithConstructSignatures4.ts +index 830139d3fa..5d5145d29d 100644 +--- a/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithConstructSignatures4.ts ++++ b/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithConstructSignatures4.ts +@@ -108,4 +108,8 @@ var r17arg: new (x: new (a: T) => T) => T[]; var r17 = foo17(r17arg); var r18arg: new (x: new (a: T) => T) => any[]; --var r18 = foo18(r18arg); -\ No newline at end of file +-var r18 = foo18(r18arg); +\ No newline at end of file +var r18 = foo18(r18arg); + +let der =new Derived(); +let der2 = new Derived2(); -+let oth = new OtherDerived(); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithConstructSignatures5.ts b/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithConstructSignatures5.ts -index f33820218e..f3c1c5d20d 100644 ---- a/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithConstructSignatures5.ts -+++ b/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithConstructSignatures5.ts -@@ -6,6 +6,7 @@ class Derived extends Base { bar: string; } ++let oth = new OtherDerived(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithConstructSignatures5.ts b/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithConstructSignatures5.ts +index f33820218e..f3c1c5d20d 100644 +--- a/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithConstructSignatures5.ts ++++ b/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithConstructSignatures5.ts +@@ -6,6 +6,7 @@ class Derived extends Base { bar: string; } class Derived2 extends Derived { baz: string; } class OtherDerived extends Base { bing: string; } @@ -12446,37 +12446,37 @@ index f33820218e..f3c1c5d20d 100644 interface A { // T // M's a: new (x: number) => number[]; -@@ -45,4 +46,7 @@ interface I extends B { +@@ -45,4 +46,7 @@ interface I extends B { a12: new >(x: Array, y: T) => Array; // ok, less specific parameter type a13: new >(x: Array, y: T) => T; // ok, T = Array, satisfies constraint, contextual signature instantiation succeeds a14: new (x: { a: T; b: U }) => T; // ok --} -\ No newline at end of file +-} +\ No newline at end of file +} +let der =new Derived(); +let der2 = new Derived2(); +let oth = new OtherDerived(); -diff --git a/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithObjectMembers4.ts b/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithObjectMembers4.ts -index b50e1f7106..2c99af9515 100644 ---- a/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithObjectMembers4.ts -+++ b/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithObjectMembers4.ts -@@ -30,4 +30,8 @@ class A3 { +diff --git a/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithObjectMembers4.ts b/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithObjectMembers4.ts +index b50e1f7106..2c99af9515 100644 +--- a/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithObjectMembers4.ts ++++ b/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/subtypingWithObjectMembers4.ts +@@ -30,4 +30,8 @@ class A3 { class B3 extends A3 { '1.1': Derived; // ok, inherits '1' --} -\ No newline at end of file +-} +\ No newline at end of file +} +let der = new Derived(); +let b1 = new B(); +let b2 = new B2(); -+let b3 = new B3(); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/undefinedIsSubtypeOfEverything.ts b/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/undefinedIsSubtypeOfEverything.ts -index 7ee0906ee2..08c7e7d192 100644 ---- a/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/undefinedIsSubtypeOfEverything.ts -+++ b/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/undefinedIsSubtypeOfEverything.ts -@@ -118,3 +118,28 @@ class D16 extends Base { ++let b3 = new B3(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/undefinedIsSubtypeOfEverything.ts b/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/undefinedIsSubtypeOfEverything.ts +index 7ee0906ee2..08c7e7d192 100644 +--- a/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/undefinedIsSubtypeOfEverything.ts ++++ b/tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/undefinedIsSubtypeOfEverything.ts +@@ -118,3 +118,28 @@ class D16 extends Base { class D17 extends Base { foo: {}; } @@ -12505,214 +12505,214 @@ index 7ee0906ee2..08c7e7d192 100644 +let d15 = new D15() +let d16 = new D16() +let d17 = new D17() -diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentity.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentity.ts -index 225a974181..acf6300dba 100644 ---- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentity.ts -+++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentity.ts -@@ -85,4 +85,8 @@ function foo13(x: any) { } +diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentity.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentity.ts +index 225a974181..acf6300dba 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentity.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentity.ts +@@ -85,4 +85,8 @@ function foo13(x: any) { } function foo14(x: I); function foo14(x: typeof b); // error --function foo14(x: any) { } -\ No newline at end of file +-function foo14(x: any) { } +\ No newline at end of file +function foo14(x: any) { } + +let a1 = new A(); +let b1 = new B(); -+let c1 = new C(); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentity2.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentity2.ts -index fefde23a69..2427d26180 100644 ---- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentity2.ts -+++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentity2.ts -@@ -62,4 +62,7 @@ function foo13(x: any) { } ++let c1 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentity2.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentity2.ts +index fefde23a69..2427d26180 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentity2.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentity2.ts +@@ -62,4 +62,7 @@ function foo13(x: any) { } function foo14(x: I); function foo14(x: typeof b); // ok --function foo14(x: any) { } -\ No newline at end of file +-function foo14(x: any) { } +\ No newline at end of file +function foo14(x: any) { } +let aa = new A(); +let bb = new B(); -+let cc = new C(); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithCallSignatures.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithCallSignatures.ts -index 94038f6df9..bb5d06c3fc 100644 ---- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithCallSignatures.ts -+++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithCallSignatures.ts -@@ -97,4 +97,7 @@ function foo14(x: any) { } ++let cc = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithCallSignatures.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithCallSignatures.ts +index 94038f6df9..bb5d06c3fc 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithCallSignatures.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithCallSignatures.ts +@@ -97,4 +97,7 @@ function foo14(x: any) { } function foo15(x: I2); function foo15(x: C); // ok --function foo15(x: any) { } -\ No newline at end of file +-function foo15(x: any) { } +\ No newline at end of file +function foo15(x: any) { } +let qy17 = new A(); +let qy18 = new B(); -+let qy19 = new C(); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithCallSignatures2.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithCallSignatures2.ts -index 699f0f73f7..99aafb4b8a 100644 ---- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithCallSignatures2.ts -+++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithCallSignatures2.ts -@@ -97,4 +97,7 @@ function foo14(x: any) { } ++let qy19 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithCallSignatures2.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithCallSignatures2.ts +index 699f0f73f7..99aafb4b8a 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithCallSignatures2.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithCallSignatures2.ts +@@ -97,4 +97,7 @@ function foo14(x: any) { } function foo15(x: I2); function foo15(x: C); // ok --function foo15(x: any) { } -\ No newline at end of file +-function foo15(x: any) { } +\ No newline at end of file +function foo15(x: any) { } +let aa = new A(); +let bb = new B(); -+let cc = new C(); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts -index b62b558d06..8a23c2c1bd 100644 ---- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts -+++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts -@@ -97,4 +97,7 @@ function foo14(x: any) { } ++let cc = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts +index b62b558d06..8a23c2c1bd 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts +@@ -97,4 +97,7 @@ function foo14(x: any) { } function foo15(x: I2); function foo15(x: C); // ok --function foo15(x: any) { } -\ No newline at end of file +-function foo15(x: any) { } +\ No newline at end of file +function foo15(x: any) { } +let aa = new A(); +let bb = new B(); -+let cc = new C(); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithCallSignaturesWithOverloads.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithCallSignaturesWithOverloads.ts -index 0aaf7c30f2..cc561aa934 100644 ---- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithCallSignaturesWithOverloads.ts -+++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithCallSignaturesWithOverloads.ts -@@ -113,4 +113,8 @@ function foo14(x: any) { } ++let cc = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithCallSignaturesWithOverloads.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithCallSignaturesWithOverloads.ts +index 0aaf7c30f2..cc561aa934 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithCallSignaturesWithOverloads.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithCallSignaturesWithOverloads.ts +@@ -113,4 +113,8 @@ function foo14(x: any) { } function foo15(x: I2); function foo15(x: C); // ok --function foo15(x: any) { } -\ No newline at end of file +-function foo15(x: any) { } +\ No newline at end of file +function foo15(x: any) { } + +let aa = new A(); +let bb = new B(); -+let cc = new C(); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithConstructSignatures.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithConstructSignatures.ts -index efec6a715b..964c2a9d43 100644 ---- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithConstructSignatures.ts -+++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithConstructSignatures.ts -@@ -84,4 +84,8 @@ function foo13(x: any) { } ++let cc = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithConstructSignatures.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithConstructSignatures.ts +index efec6a715b..964c2a9d43 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithConstructSignatures.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithConstructSignatures.ts +@@ -84,4 +84,8 @@ function foo13(x: any) { } function foo15(x: I2); function foo15(x: C); // ok --function foo15(x: any) { } -\ No newline at end of file +-function foo15(x: any) { } +\ No newline at end of file +function foo15(x: any) { } + +let a1 = new A('1'); +let b1 = new B('1'); -+let c1 = new C(1); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithConstructSignatures2.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithConstructSignatures2.ts -index 63e5167a4c..09f632da93 100644 ---- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithConstructSignatures2.ts -+++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithConstructSignatures2.ts -@@ -73,4 +73,6 @@ function foo14(x: any) { } ++let c1 = new C(1); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithConstructSignatures2.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithConstructSignatures2.ts +index 63e5167a4c..09f632da93 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithConstructSignatures2.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithConstructSignatures2.ts +@@ -73,4 +73,6 @@ function foo14(x: any) { } function foo15(x: I2); function foo15(x: C); // ok --function foo15(x: any) { } -\ No newline at end of file +-function foo15(x: any) { } +\ No newline at end of file +function foo15(x: any) { } +let qy38 = new B(null); -+let qy39 =new C(null); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts -index b8fc424b21..b6af7ec955 100644 ---- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts -+++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts -@@ -73,4 +73,6 @@ function foo14(x: any) { } ++let qy39 =new C(null); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts +index b8fc424b21..b6af7ec955 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts +@@ -73,4 +73,6 @@ function foo14(x: any) { } function foo15(x: I2); function foo15(x: C); // ok --function foo15(x: any) { } -\ No newline at end of file +-function foo15(x: any) { } +\ No newline at end of file +function foo15(x: any) { } +let qo23 =new B(null,null); -+let qo24 =new C(null,null); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignatures.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignatures.ts -index d95bc486df..72019e6b9a 100644 ---- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignatures.ts -+++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignatures.ts -@@ -97,4 +97,8 @@ function foo14(x: any) { } ++let qo24 =new C(null,null); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignatures.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignatures.ts +index d95bc486df..72019e6b9a 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignatures.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignatures.ts +@@ -97,4 +97,8 @@ function foo14(x: any) { } function foo15(x: I2); function foo15(x: C); // ok --function foo15(x: any) { } -\ No newline at end of file +-function foo15(x: any) { } +\ No newline at end of file +function foo15(x: any) { } + +let a1 = new A(); +let b1 = new B(); -+let c1 = new C(); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignatures2.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignatures2.ts -index 5c009926a0..099927c132 100644 ---- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignatures2.ts -+++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignatures2.ts -@@ -97,4 +97,8 @@ function foo14(x: any) { } ++let c1 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignatures2.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignatures2.ts +index 5c009926a0..099927c132 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignatures2.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignatures2.ts +@@ -97,4 +97,8 @@ function foo14(x: any) { } function foo15(x: I2); function foo15(x: C); // ok --function foo15(x: any) { } -\ No newline at end of file +-function foo15(x: any) { } +\ No newline at end of file +function foo15(x: any) { } + +let a1 = new A(); +let b1 = new B(); +let c1 = new C(); -diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts -index ede6da4040..21f9ed1933 100644 ---- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts -+++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts -@@ -99,4 +99,8 @@ function foo14(x: any) { } +diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts +index ede6da4040..21f9ed1933 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts +@@ -99,4 +99,8 @@ function foo14(x: any) { } function foo15(x: I2); function foo15(x: C); // ok --function foo15(x: any) { } -\ No newline at end of file +-function foo15(x: any) { } +\ No newline at end of file +function foo15(x: any) { } + +let a1 = new A(); +let b1 = new B(); +let c1 = new C(); -diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints2.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints2.ts -index 5fb315c4da..c0ce245917 100644 ---- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints2.ts -+++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints2.ts -@@ -111,4 +111,8 @@ function foo14(x: any) { } +diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints2.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints2.ts +index 5fb315c4da..c0ce245917 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints2.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints2.ts +@@ -111,4 +111,8 @@ function foo14(x: any) { } function foo15(x: I2); function foo15(x: C); // ok --function foo15(x: any) { } -\ No newline at end of file +-function foo15(x: any) { } +\ No newline at end of file +function foo15(x: any) { } +let a1 = new A(); +let b1 = new B(); +let c1 = new C(); -+let d1 = new D(); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints3.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints3.ts -index aaae2cbf33..b341b1f6c2 100644 ---- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints3.ts -+++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints3.ts -@@ -120,4 +120,11 @@ function foo14(x: any) { } ++let d1 = new D(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints3.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints3.ts +index aaae2cbf33..b341b1f6c2 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints3.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints3.ts +@@ -120,4 +120,11 @@ function foo14(x: any) { } function foo15(x: I2); function foo15(x: C); // ok --function foo15(x: any) { } -\ No newline at end of file +-function foo15(x: any) { } +\ No newline at end of file +function foo15(x: any) { } + +let one = new One(); @@ -12720,277 +12720,277 @@ index aaae2cbf33..b341b1f6c2 100644 +let a1 = new A(); +let b1 = new B(); +let c1 = new C(); -+let d1 = new D(); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts -index 97a657606e..ab7da883ec 100644 ---- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts -+++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts -@@ -99,4 +99,7 @@ function foo14(x: any) { } ++let d1 = new D(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts +index 97a657606e..ab7da883ec 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts +@@ -99,4 +99,7 @@ function foo14(x: any) { } function foo15(x: I2); function foo15(x: C); // ok --function foo15(x: any) { } -\ No newline at end of file +-function foo15(x: any) { } +\ No newline at end of file +function foo15(x: any) { } +let qy12 = new A(); +let qy13 = new B(); +let qy14 = new C(); -diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts -index df7533d906..5e419a9b14 100644 ---- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts -+++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts -@@ -99,4 +99,8 @@ function foo14(x: any) { } +diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts +index df7533d906..5e419a9b14 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts +@@ -99,4 +99,8 @@ function foo14(x: any) { } function foo15(x: I2); function foo15(x: C); // ok --function foo15(x: any) { } -\ No newline at end of file +-function foo15(x: any) { } +\ No newline at end of file +function foo15(x: any) { } + +let qo27 = new A(); +let qo28 =new B(); -+let qo29 =new C(); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts -index e3bd868941..1bda87ea35 100644 ---- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts -+++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts -@@ -97,4 +97,8 @@ function foo14(x: any) { } ++let qo29 =new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts +index e3bd868941..1bda87ea35 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts +@@ -97,4 +97,8 @@ function foo14(x: any) { } function foo15(x: I2); function foo15(x: C, B>); // ok --function foo15(x: any) { } -\ No newline at end of file +-function foo15(x: any) { } +\ No newline at end of file +function foo15(x: any) { } + +let a1 = new A(); +let b1 = new B(); +let c1 = new C(); -diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts -index 9e01aaec49..9b74d14cfc 100644 ---- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts -+++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts -@@ -97,4 +97,7 @@ function foo14(x: any) { } +diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts +index 9e01aaec49..9b74d14cfc 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts +@@ -97,4 +97,7 @@ function foo14(x: any) { } function foo15(x: I2); function foo15(x: C); // ok --function foo15(x: any) { } -\ No newline at end of file +-function foo15(x: any) { } +\ No newline at end of file +function foo15(x: any) { } +let qo17 = new A(); +let qo18 =new B(); -+let qo19 =new C(); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts -index c5454cc41e..781a351188 100644 ---- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts -+++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts -@@ -99,4 +99,7 @@ function foo14(x: any) { } ++let qo19 =new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts +index c5454cc41e..781a351188 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts +@@ -99,4 +99,7 @@ function foo14(x: any) { } function foo15(x: I2); function foo15(x: C); // ok --function foo15(x: any) { } -\ No newline at end of file +-function foo15(x: any) { } +\ No newline at end of file +function foo15(x: any) { } +let qo9 = new A(); +let qo10 = new B(); -+let qo11 = new C(); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts -index b8620f04d1..ca2a5abb87 100644 ---- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts -+++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts -@@ -99,4 +99,7 @@ function foo14(x: any) { } ++let qo11 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts +index b8620f04d1..ca2a5abb87 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts +@@ -99,4 +99,7 @@ function foo14(x: any) { } function foo15(x: I2); function foo15(x: C); // ok --function foo15(x: any) { } -\ No newline at end of file +-function foo15(x: any) { } +\ No newline at end of file +function foo15(x: any) { } +let a1 = new A(); +let b1 = new B(); -+let c1 = new C(); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts -index f39d23637a..828b26331c 100644 ---- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts -+++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts -@@ -99,4 +99,8 @@ function foo14(x: any) { } ++let c1 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts +index f39d23637a..828b26331c 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts +@@ -99,4 +99,8 @@ function foo14(x: any) { } function foo15(x: I2); function foo15(x: C); // ok --function foo15(x: any) { } -\ No newline at end of file +-function foo15(x: any) { } +\ No newline at end of file +function foo15(x: any) { } + +let a1 = new A(); +let b1 = new B(); -+let c1 = new C(); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts -index 974f53cb9c..8d1aa46bde 100644 ---- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts -+++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts -@@ -72,3 +72,5 @@ function foo13(x: any) { } ++let c1 = new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts +index 974f53cb9c..8d1aa46bde 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts +@@ -72,3 +72,5 @@ function foo13(x: any) { } function foo14(x: I); function foo14(x: typeof b); // ok function foo14(x: any) { } +let qo15 = new B(null); -+let qo16 = new C(null); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints2.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints2.ts -index 47bab5dab8..963aabc746 100644 ---- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints2.ts -+++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints2.ts -@@ -83,4 +83,9 @@ function foo13(x: any) { } ++let qo16 = new C(null); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints2.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints2.ts +index 47bab5dab8..963aabc746 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints2.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints2.ts +@@ -83,4 +83,9 @@ function foo13(x: any) { } function foo14(x: I); function foo14(x: typeof b); // ok --function foo14(x: any) { } -\ No newline at end of file +-function foo14(x: any) { } +\ No newline at end of file +function foo14(x: any) { } + +var aa = [] +let b1 = new B(aa,aa); +let c1 = new C('',''); -+let d1 = new D(1,1); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints3.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints3.ts -index 14f4933a15..b593e623e5 100644 ---- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints3.ts -+++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints3.ts -@@ -92,4 +92,9 @@ function foo13(x: any) { } ++let d1 = new D(1,1); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints3.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints3.ts +index 14f4933a15..b593e623e5 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints3.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints3.ts +@@ -92,4 +92,9 @@ function foo13(x: any) { } function foo14(x: I, Five>); function foo14(x: typeof b); // ok --function foo14(x: any) { } -\ No newline at end of file +-function foo14(x: any) { } +\ No newline at end of file +function foo14(x: any) { } +let qo1 = new One(); +let qo2 = new Two(); +let qo3 = new B(null,null); +let qo4 = new C(null,null); -+let qo5 = new D(null,null); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts -index 9c072e8936..185dab627d 100644 ---- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts -+++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts -@@ -79,4 +79,6 @@ function foo14(x: any) { } ++let qo5 = new D(null,null); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts +index 9c072e8936..185dab627d 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts +@@ -79,4 +79,6 @@ function foo14(x: any) { } function foo15(x: I2); function foo15(x: C); // ok --function foo15(x: any) { } -\ No newline at end of file +-function foo15(x: any) { } +\ No newline at end of file +function foo15(x: any) { } +let qy49 =new B(null); -+let qy50 =new C(null); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts -index 2e0a98d557..9e63b81350 100644 ---- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts -+++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts -@@ -75,4 +75,8 @@ function foo14(x: any) { } ++let qy50 =new C(null); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts +index 2e0a98d557..9e63b81350 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts +@@ -75,4 +75,8 @@ function foo14(x: any) { } function foo15(x: I2); function foo15(x: C); // ok --function foo15(x: any) { } -\ No newline at end of file +-function foo15(x: any) { } +\ No newline at end of file +function foo15(x: any) { } + +var aa; +let b1 = new B(aa); -+let c1 = new C(aa); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts -index fe01df2564..8caa853954 100644 ---- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts -+++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts -@@ -69,4 +69,6 @@ function foo13(x: any) { } ++let c1 = new C(aa); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts +index fe01df2564..8caa853954 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts +@@ -69,4 +69,6 @@ function foo13(x: any) { } function foo14(x: I); function foo14(x: typeof b); // ok --function foo14(x: any) { } -\ No newline at end of file +-function foo14(x: any) { } +\ No newline at end of file +function foo14(x: any) { } +let qo6 = new B(null); -+let qo7 = new C(null); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts -index 20d7dbab13..7573f3e8b4 100644 ---- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts -+++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts -@@ -69,4 +69,8 @@ function foo13(x: any) { } ++let qo7 = new C(null); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts +index 20d7dbab13..7573f3e8b4 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts +@@ -69,4 +69,8 @@ function foo13(x: any) { } function foo14(x: I); function foo14(x: typeof b); // ok --function foo14(x: any) { } -\ No newline at end of file +-function foo14(x: any) { } +\ No newline at end of file +function foo14(x: any) { } + + +let b1 = new B(a); +let c1 = new C(a); -diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts -index 56dc5a051c..2caea04bc0 100644 ---- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts -+++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts -@@ -71,4 +71,7 @@ function foo13(x: any) { } +diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts +index 56dc5a051c..2caea04bc0 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts +@@ -71,4 +71,7 @@ function foo13(x: any) { } function foo14(x: I); function foo14(x: typeof b); // ok --function foo14(x: any) { } -\ No newline at end of file +-function foo14(x: any) { } +\ No newline at end of file +function foo14(x: any) { } + +let b1 = new B(a); +let c1 = new C(a); -diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts -index 6c4a282228..d9e2b8c184 100644 ---- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts -+++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts -@@ -71,4 +71,7 @@ function foo13(x: any) { } +diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts +index 6c4a282228..d9e2b8c184 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts +@@ -71,4 +71,7 @@ function foo13(x: any) { } function foo14(x: I); function foo14(x: typeof b); // ok --function foo14(x: any) { } -\ No newline at end of file +-function foo14(x: any) { } +\ No newline at end of file +function foo14(x: any) { } + +let b1 = new B(a); +let c1 = new C(a); -diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts -index 8c9a08137f..0683e8d40b 100644 ---- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts -+++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts -@@ -71,4 +71,6 @@ function foo13(x: any) { } +diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts +index 8c9a08137f..0683e8d40b 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts +@@ -71,4 +71,6 @@ function foo13(x: any) { } function foo14(x: I); function foo14(x: typeof b); // ok --function foo14(x: any) { } -\ No newline at end of file +-function foo14(x: any) { } +\ No newline at end of file +function foo14(x: any) { } +let qy15 = new B(null,null); -+let qy16 = new C(null,null); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithNumericIndexers1.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithNumericIndexers1.ts -index 867199d905..0c6b2ca24b 100644 ---- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithNumericIndexers1.ts -+++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithNumericIndexers1.ts -@@ -119,3 +119,6 @@ function foo16(x: I); ++let qy16 = new C(null,null); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithNumericIndexers1.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithNumericIndexers1.ts +index 867199d905..0c6b2ca24b 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithNumericIndexers1.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithNumericIndexers1.ts +@@ -119,3 +119,6 @@ function foo16(x: I); function foo16(x: PB); // error function foo16(x: any) { } +let c1 = new C(); +let pa = new PA(); -+let pb = new PB(); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithNumericIndexers2.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithNumericIndexers2.ts -index ea9d7d04ee..bf735eb8a5 100644 ---- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithNumericIndexers2.ts -+++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithNumericIndexers2.ts -@@ -122,3 +122,8 @@ function foo16(x: I); ++let pb = new PB(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithNumericIndexers2.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithNumericIndexers2.ts +index ea9d7d04ee..bf735eb8a5 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithNumericIndexers2.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithNumericIndexers2.ts +@@ -122,3 +122,8 @@ function foo16(x: I); function foo16(x: PB); // error function foo16(x: any) { } @@ -12998,39 +12998,39 @@ index ea9d7d04ee..bf735eb8a5 100644 +let der = new Derived() +let c1 = new C(); +let pa = new PA(); -+let pb = new PB(); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithNumericIndexers3.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithNumericIndexers3.ts -index d3f22604c4..337ac0b542 100644 ---- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithNumericIndexers3.ts -+++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithNumericIndexers3.ts -@@ -119,3 +119,6 @@ function foo16(x: I); ++let pb = new PB(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithNumericIndexers3.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithNumericIndexers3.ts +index d3f22604c4..337ac0b542 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithNumericIndexers3.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithNumericIndexers3.ts +@@ -119,3 +119,6 @@ function foo16(x: I); function foo16(x: PB); // error function foo16(x: any) { } +let qo32 =new C(); +let qo30 = new PA(); +let qo31 =new PB(); -diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithOptionality.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithOptionality.ts -index 7c24195105..21be3c5930 100644 ---- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithOptionality.ts -+++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithOptionality.ts -@@ -53,4 +53,8 @@ function foo13(x: any) { } +diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithOptionality.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithOptionality.ts +index 7c24195105..21be3c5930 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithOptionality.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithOptionality.ts +@@ -53,4 +53,8 @@ function foo13(x: any) { } function foo14(x: I); function foo14(x: typeof b); // ok --function foo14(x: any) { } -\ No newline at end of file +-function foo14(x: any) { } +\ No newline at end of file +function foo14(x: any) { } + +let a1 = new A(); +let b1 = new B(); +let c1 = new C(); -diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithPrivates.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithPrivates.ts -index b9e390158c..fe547befb2 100644 ---- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithPrivates.ts -+++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithPrivates.ts -@@ -116,4 +116,6 @@ function foo15(x: any) { } +diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithPrivates.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithPrivates.ts +index b9e390158c..fe547befb2 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithPrivates.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithPrivates.ts +@@ -116,4 +116,6 @@ function foo15(x: any) { } function foo16(x: I); function foo16(x: PB); // no error function foo16(x: any) { } @@ -13038,46 +13038,46 @@ index b9e390158c..fe547befb2 100644 +let qo26 =new C(); +let qo24 = new PA(); +let qo25 =new PB(); -diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithPrivates2.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithPrivates2.ts -index 769e59f06d..403c1692d7 100644 ---- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithPrivates2.ts -+++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithPrivates2.ts -@@ -35,3 +35,4 @@ function foo6(x: D): string; // error +diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithPrivates2.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithPrivates2.ts +index 769e59f06d..403c1692d7 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithPrivates2.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithPrivates2.ts +@@ -35,3 +35,4 @@ function foo6(x: D): string; // error function foo6(x: any): any { } +let d1 = new D(); -diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithPublics.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithPublics.ts -index 813a8333e5..6f12d3d4e0 100644 ---- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithPublics.ts -+++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithPublics.ts -@@ -85,4 +85,7 @@ function foo13(x: any) { } +diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithPublics.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithPublics.ts +index 813a8333e5..6f12d3d4e0 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithPublics.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithPublics.ts +@@ -85,4 +85,7 @@ function foo13(x: any) { } function foo14(x: I); function foo14(x: typeof b); // error --function foo14(x: any) { } -\ No newline at end of file +-function foo14(x: any) { } +\ No newline at end of file +function foo14(x: any) { } +let qy41 = new A(); +let qy42 =new B(); -+let qy43 =new C(); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithStringIndexers.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithStringIndexers.ts -index f511e56bc3..e6d583aa06 100644 ---- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithStringIndexers.ts -+++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithStringIndexers.ts -@@ -119,3 +119,6 @@ function foo16(x: I); ++let qy43 =new C(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithStringIndexers.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithStringIndexers.ts +index f511e56bc3..e6d583aa06 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithStringIndexers.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithStringIndexers.ts +@@ -119,3 +119,6 @@ function foo16(x: I); function foo16(x: PB); // error function foo16(x: any) { } +let qo35 =new C(); +let qo33 = new PA(); +let qo34 =new PB(); -diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithStringIndexers2.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithStringIndexers2.ts -index d8af511910..7c37adc723 100644 ---- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithStringIndexers2.ts -+++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithStringIndexers2.ts -@@ -122,3 +122,8 @@ function foo16(x: I); +diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithStringIndexers2.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithStringIndexers2.ts +index d8af511910..7c37adc723 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithStringIndexers2.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithStringIndexers2.ts +@@ -122,3 +122,8 @@ function foo16(x: I); function foo16(x: PB); // error function foo16(x: any) { } @@ -13086,65 +13086,65 @@ index d8af511910..7c37adc723 100644 +let c1 = new C(); +let pa = new PA(); +let pb = new PB(); -diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/typeParametersAreIdenticalToThemselves.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/typeParametersAreIdenticalToThemselves.ts -index 0495789326..383623ee14 100644 ---- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/typeParametersAreIdenticalToThemselves.ts -+++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/typeParametersAreIdenticalToThemselves.ts -@@ -73,4 +73,6 @@ interface I2 { +diff --git a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/typeParametersAreIdenticalToThemselves.ts b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/typeParametersAreIdenticalToThemselves.ts +index 0495789326..383623ee14 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/typeParametersAreIdenticalToThemselves.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/typeParametersAreIdenticalToThemselves.ts +@@ -73,4 +73,6 @@ interface I2 { foo3(x: T); foo3(x: T); // no error, different declaration for each T --} -\ No newline at end of file +-} +\ No newline at end of file +} +let qy36 = new C(); -+let qy37 =new C2(); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithConstraintsTypeArgumentInference.ts b/tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithConstraintsTypeArgumentInference.ts -index 601f790667..b8526977ef 100644 ---- a/tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithConstraintsTypeArgumentInference.ts -+++ b/tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithConstraintsTypeArgumentInference.ts -@@ -104,3 +104,6 @@ var r8b = i.foo5(d2, d2); // Derived2 ++let qy37 =new C2(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithConstraintsTypeArgumentInference.ts b/tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithConstraintsTypeArgumentInference.ts +index 601f790667..b8526977ef 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithConstraintsTypeArgumentInference.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithConstraintsTypeArgumentInference.ts +@@ -104,3 +104,6 @@ var r8b = i.foo5(d2, d2); // Derived2 var r9 = i.foo6(); // Derived var r10 = i.foo7(d1); // Base var r11 = i.foo8(); // Base + +let qu12 = new Derived(); -+let qu13 = new Derived2(); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithFunctionTypedArguments4.ts b/tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithFunctionTypedArguments4.ts -index 3d68ff7a0d..74c3573627 100644 ---- a/tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithFunctionTypedArguments4.ts -+++ b/tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithFunctionTypedArguments4.ts -@@ -19,4 +19,6 @@ var b: { ++let qu13 = new Derived2(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithFunctionTypedArguments4.ts b/tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithFunctionTypedArguments4.ts +index 3d68ff7a0d..74c3573627 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithFunctionTypedArguments4.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithFunctionTypedArguments4.ts +@@ -19,4 +19,6 @@ var b: { new(x: T): any; } --var r2 = foo4(b); // T is {} (candidates boolean and {}), U is any (candidates any and {}) -\ No newline at end of file +-var r2 = foo4(b); // T is {} (candidates boolean and {}), U is any (candidates any and {}) +\ No newline at end of file +var r2 = foo4(b); // T is {} (candidates boolean and {}), U is any (candidates any and {}) +let qy3 = new C(); -+let qy4 =new D(); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithObjectTypeArgs2.ts b/tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithObjectTypeArgs2.ts -index 514df351cc..52f1c5e20f 100644 ---- a/tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithObjectTypeArgs2.ts -+++ b/tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithObjectTypeArgs2.ts -@@ -29,4 +29,6 @@ interface I { ++let qy4 =new D(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithObjectTypeArgs2.ts b/tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithObjectTypeArgs2.ts +index 514df351cc..52f1c5e20f 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithObjectTypeArgs2.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithObjectTypeArgs2.ts +@@ -29,4 +29,6 @@ interface I { } var i: I; --var r4 = f2(i); // Base => Derived -\ No newline at end of file +-var r4 = f2(i); // Base => Derived +\ No newline at end of file +var r4 = f2(i); // Base => Derived +let qy0 = new Derived(); -+let qy1 = new Derived2(); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithObjectTypeArgsAndConstraints.ts b/tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithObjectTypeArgsAndConstraints.ts -index e1c91529d7..475dfe3dcb 100644 ---- a/tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithObjectTypeArgsAndConstraints.ts -+++ b/tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithObjectTypeArgsAndConstraints.ts -@@ -19,8 +19,8 @@ function foo(t: X, t2: X) { ++let qy1 = new Derived2(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithObjectTypeArgsAndConstraints.ts b/tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithObjectTypeArgsAndConstraints.ts +index e1c91529d7..475dfe3dcb 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithObjectTypeArgsAndConstraints.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithObjectTypeArgsAndConstraints.ts +@@ -19,8 +19,8 @@ function foo(t: X, t2: X) { return x; } @@ -13155,33 +13155,33 @@ index e1c91529d7..475dfe3dcb 100644 var r = foo(c1, d1); var r2 = foo(c1, c1); -@@ -30,4 +30,8 @@ function foo2(t: X, t2: X) { +@@ -30,4 +30,8 @@ function foo2(t: X, t2: X) { } var r = foo2(c1, d1); --var r2 = foo2(c1, c1); -\ No newline at end of file +-var r2 = foo2(c1, c1); +\ No newline at end of file +var r2 = foo2(c1, c1); + +let qu4 = new C(); +let qu5 = new D(); -+let qu6 = new X(); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithObjectTypeArgsAndConstraints2.ts b/tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithObjectTypeArgsAndConstraints2.ts -index c97915eaf1..5f7fee7daf 100644 ---- a/tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithObjectTypeArgsAndConstraints2.ts -+++ b/tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithObjectTypeArgsAndConstraints2.ts -@@ -35,3 +35,4 @@ var r5 = f3(new Derived(), x => x); ++let qu6 = new X(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithObjectTypeArgsAndConstraints2.ts b/tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithObjectTypeArgsAndConstraints2.ts +index c97915eaf1..5f7fee7daf 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithObjectTypeArgsAndConstraints2.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithObjectTypeArgsAndConstraints2.ts +@@ -35,3 +35,4 @@ var r5 = f3(new Derived(), x => x); var r6 = f3(null, null); // any var r7 = f3(null, x => x); // any -+let qu8 = new Derived(); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/typeRelationships/typeInference/genericClassWithObjectTypeArgsAndConstraints.ts b/tests/cases/conformance/types/typeRelationships/typeInference/genericClassWithObjectTypeArgsAndConstraints.ts -index 1c29b3822b..a52b2b835e 100644 ---- a/tests/cases/conformance/types/typeRelationships/typeInference/genericClassWithObjectTypeArgsAndConstraints.ts -+++ b/tests/cases/conformance/types/typeRelationships/typeInference/genericClassWithObjectTypeArgsAndConstraints.ts -@@ -37,6 +37,8 @@ module Class { ++let qu8 = new Derived(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/typeInference/genericClassWithObjectTypeArgsAndConstraints.ts b/tests/cases/conformance/types/typeRelationships/typeInference/genericClassWithObjectTypeArgsAndConstraints.ts +index 1c29b3822b..a52b2b835e 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeInference/genericClassWithObjectTypeArgsAndConstraints.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeInference/genericClassWithObjectTypeArgsAndConstraints.ts +@@ -37,6 +37,8 @@ module Class { var g2: G2; var r = g2.foo2(c1, d1); var r2 = g2.foo2(c1, c1); @@ -13190,36 +13190,36 @@ index 1c29b3822b..a52b2b835e 100644 } module Interface { -@@ -57,4 +59,7 @@ module Interface { +@@ -57,4 +59,7 @@ module Interface { var g2: G2; var r = g2.foo2(c1, d1); var r2 = g2.foo2(c1, c1); --} -\ No newline at end of file +-} +\ No newline at end of file +} +let c = new C(); +let d = new D(); -+let x = new X(); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/typeRelationships/typeInference/keyofInferenceLowerPriorityThanReturn.ts b/tests/cases/conformance/types/typeRelationships/typeInference/keyofInferenceLowerPriorityThanReturn.ts -index 9de110bd1e..7a24403769 100644 ---- a/tests/cases/conformance/types/typeRelationships/typeInference/keyofInferenceLowerPriorityThanReturn.ts -+++ b/tests/cases/conformance/types/typeRelationships/typeInference/keyofInferenceLowerPriorityThanReturn.ts -@@ -44,3 +44,7 @@ function insertOnConflictDoNothing(_tabl - function f() { - insertOnConflictDoNothing(bookTable, ConflictTarget.tableColumns(["serial"])); // <-- No error here; should use the type inferred for the return type of `tableColumns` - } -+let qu9 = new Write(); -+let qu10 = new Col(); -+let qu11 =new Table(); -+let qu12 =new ConflictTarget(); -\ No newline at end of file -diff --git a/tests/cases/conformance/types/union/discriminatedUnionTypes3.ts b/tests/cases/conformance/types/union/discriminatedUnionTypes3.ts -new file mode 100644 -index 0000000000..a5e51271bc ---- /dev/null -+++ b/tests/cases/conformance/types/union/discriminatedUnionTypes3.ts -@@ -0,0 +1,19 @@ ++let x = new X(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/typeRelationships/typeInference/keyofInferenceLowerPriorityThanReturn.ts b/tests/cases/conformance/types/typeRelationships/typeInference/keyofInferenceLowerPriorityThanReturn.ts +index 9de110bd1e..7a24403769 100644 +--- a/tests/cases/conformance/types/typeRelationships/typeInference/keyofInferenceLowerPriorityThanReturn.ts ++++ b/tests/cases/conformance/types/typeRelationships/typeInference/keyofInferenceLowerPriorityThanReturn.ts +@@ -44,3 +44,7 @@ function insertOnConflictDoNothing(_tabl + function f() { + insertOnConflictDoNothing(bookTable, ConflictTarget.tableColumns(["serial"])); // <-- No error here; should use the type inferred for the return type of `tableColumns` + } ++let qu9 = new Write(); ++let qu10 = new Col(); ++let qu11 =new Table(); ++let qu12 =new ConflictTarget(); +\ No newline at end of file +diff --git a/tests/cases/conformance/types/union/discriminatedUnionTypes3.ts b/tests/cases/conformance/types/union/discriminatedUnionTypes3.ts +new file mode 100644 +index 0000000000..a5e51271bc +--- /dev/null ++++ b/tests/cases/conformance/types/union/discriminatedUnionTypes3.ts +@@ -0,0 +1,19 @@ +// @strict: true + +// Repro from #44435 @@ -13238,8 +13238,8 @@ index 0000000000..a5e51271bc + +if (example.err === undefined) { + example.property; // true -+} -\ No newline at end of file --- -2.17.1 - ++} +\ No newline at end of file +-- +2.17.1 + diff --git a/ts2panda/package-lock.json b/ts2panda/package-lock.json index 646821ba8881cb3f9add02ae06249b613d902356..9df9191454dbbbf8be9f7e59acae3734d2e50a4e 100644 --- a/ts2panda/package-lock.json +++ b/ts2panda/package-lock.json @@ -1,108 +1,3711 @@ { "name": "ts2panda", "version": "1.0.0", - "lockfileVersion": 1, + "lockfileVersion": 2, "requires": true, + "packages": { + "": { + "name": "ts2panda", + "version": "1.0.0", + "dependencies": { + "@babel/core": "^7.12.10", + "@babel/preset-env": "^7.12.11", + "@types/command-line-args": "^5.0.0", + "@types/command-line-usage": "^5.0.1", + "command-line-args": "^5.1.1", + "command-line-usage": "^6.1.1", + "minimatch": "^3.0.4", + "recast": "^0.20.4", + "regexpp": "^3.1.0", + "rxjs": "^6.6.3", + "test262-stream": "^1.3.0", + "unique-temp-dir": "^1.0.0", + "yargs": "^16.2.0" + }, + "devDependencies": { + "@types/chai": "^4.2.12", + "@types/mocha": "^8.0.2", + "@types/node": "^14.0.27", + "chai": "^4.2.0", + "mocha": "^8.1.1", + "sinon": "^9.0.3", + "ts-sinon": "^1.2.1", + "typescript": "^4.1.3" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/@ampproject/remapping/-/remapping-2.1.1.tgz", + "integrity": "sha512-Aolwjd7HSC2PyY0fDj/wA/EimQT4HfEnFYNp5s9CQlrdhyvWTtvZ5YzrUPu6R6/1jKiUlxu8bUhkdSnKHNAHMA==", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/code-frame/-/code-frame-7.16.7.tgz", + "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", + "dependencies": { + "@babel/highlight": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.17.0", + "resolved": "https://registry.npmmirror.com/@babel/compat-data/-/compat-data-7.17.0.tgz", + "integrity": "sha512-392byTlpGWXMv4FbyWw3sAZ/FrW/DrwqLGXpy0mbyNe9Taqv1mg9yON5/o0cnr8XYCkFTZbC1eV+c+LAROgrng==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.17.4", + "resolved": "https://registry.npmmirror.com/@babel/core/-/core-7.17.4.tgz", + "integrity": "sha512-R9x5r4t4+hBqZTmioSnkrW+I6NmbojwjGT8p4G2Gw1thWbXIHGDnmGdLdFw0/7ljucdIrNRp7Npgb4CyBYzzJg==", + "dependencies": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.17.3", + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-module-transforms": "^7.16.7", + "@babel/helpers": "^7.17.2", + "@babel/parser": "^7.17.3", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.17.3", + "@babel/types": "^7.17.0", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.1.2", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/generator": { + "version": "7.17.3", + "resolved": "https://registry.npmmirror.com/@babel/generator/-/generator-7.17.3.tgz", + "integrity": "sha512-+R6Dctil/MgUsZsZAkYgK+ADNSZzJRRy0TvY65T71z/CR854xHQ1EweBYXdfT+HNeN7w0cSJJEzgxZMv40pxsg==", + "dependencies": { + "@babel/types": "^7.17.0", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", + "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz", + "integrity": "sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA==", + "dependencies": { + "@babel/helper-explode-assignable-expression": "^7.16.7", + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz", + "integrity": "sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA==", + "dependencies": { + "@babel/compat-data": "^7.16.4", + "@babel/helper-validator-option": "^7.16.7", + "browserslist": "^4.17.5", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.17.1", + "resolved": "https://registry.npmmirror.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.1.tgz", + "integrity": "sha512-JBdSr/LtyYIno/pNnJ75lBcqc3Z1XXujzPanHqjvvrhOA+DTceTFuJi8XjmWTZh4r3fsdfqaCMN0iZemdkxZHQ==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-member-expression-to-functions": "^7.16.7", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.17.0", + "resolved": "https://registry.npmmirror.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.0.tgz", + "integrity": "sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "regexpu-core": "^5.0.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.3.1", + "resolved": "https://registry.npmmirror.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz", + "integrity": "sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==", + "dependencies": { + "@babel/helper-compilation-targets": "^7.13.0", + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/traverse": "^7.13.0", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0-0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", + "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-explode-assignable-expression": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz", + "integrity": "sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ==", + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz", + "integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==", + "dependencies": { + "@babel/helper-get-function-arity": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-get-function-arity": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz", + "integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==", + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", + "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.7.tgz", + "integrity": "sha512-VtJ/65tYiU/6AbMTDwyoXGPKHgTsfRarivm+YbB5uAzKUyuPjgZSgAFeG87FCigc7KNHu2Pegh1XIT3lXjvz3Q==", + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", + "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-module-transforms/-/helper-module-transforms-7.16.7.tgz", + "integrity": "sha512-gaqtLDxJEFCeQbYp9aLAefjhkKdjKcdh6DB7jniIGU3Pz52WAmP268zK0VgPz9hUNkMSYeH976K2/Y6yPadpng==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-simple-access": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/helper-validator-identifier": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.16.7", + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz", + "integrity": "sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==", + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", + "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.16.8", + "resolved": "https://registry.npmmirror.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz", + "integrity": "sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-wrap-function": "^7.16.8", + "@babel/types": "^7.16.8" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz", + "integrity": "sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-member-expression-to-functions": "^7.16.7", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/traverse": "^7.16.7", + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz", + "integrity": "sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g==", + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.16.0", + "resolved": "https://registry.npmmirror.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz", + "integrity": "sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==", + "dependencies": { + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", + "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", + "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", + "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.16.8", + "resolved": "https://registry.npmmirror.com/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz", + "integrity": "sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw==", + "dependencies": { + "@babel/helper-function-name": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.16.8", + "@babel/types": "^7.16.8" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.17.2", + "resolved": "https://registry.npmmirror.com/@babel/helpers/-/helpers-7.17.2.tgz", + "integrity": "sha512-0Qu7RLR1dILozr/6M0xgj+DFPmi6Bnulgm9M8BVa9ZCWxDqlSnqt3cf8IDPB5m45sVXUZ0kuQAgUrdSFFH79fQ==", + "dependencies": { + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.17.0", + "@babel/types": "^7.17.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.16.10", + "resolved": "https://registry.npmmirror.com/@babel/highlight/-/highlight-7.16.10.tgz", + "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.16.7", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.17.3", + "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.17.3.tgz", + "integrity": "sha512-7yJPvPV+ESz2IUTPbOL+YkIGyCqOyNIzdguKQuJGnH7bg1WTIifuM21YqokFt/THWh1AkCRn9IgoykTRCBVpzA==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7.tgz", + "integrity": "sha512-anv/DObl7waiGEnC24O9zqL0pSuI9hljihqiDuFHC8d7/bjr/4RLGPWuc8rYOff/QPzbEPSkzG8wGG9aDuhHRg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7.tgz", + "integrity": "sha512-di8vUHRdf+4aJ7ltXhaDbPoszdkh59AQtJM5soLsuHpQJdFQZOA4uGj0V2u/CZ8bJ/u8ULDL5yq6FO/bCXnKHw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", + "@babel/plugin-proposal-optional-chaining": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-proposal-async-generator-functions": { + "version": "7.16.8", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz", + "integrity": "sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-remap-async-to-generator": "^7.16.8", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-class-properties": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz", + "integrity": "sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-class-static-block": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.16.7.tgz", + "integrity": "sha512-dgqJJrcZoG/4CkMopzhPJjGxsIe9A8RlkQLnL/Vhhx8AA9ZuaRwGSlscSh42hazc7WSrya/IK7mTeoF0DP9tEw==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-proposal-dynamic-import": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz", + "integrity": "sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-export-namespace-from": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.7.tgz", + "integrity": "sha512-ZxdtqDXLRGBL64ocZcs7ovt71L3jhC1RGSyR996svrCi3PYqHNkb3SwPJCs8RIzD86s+WPpt2S73+EHCGO+NUA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-json-strings": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.7.tgz", + "integrity": "sha512-lNZ3EEggsGY78JavgbHsK9u5P3pQaW7k4axlgFLYkMd7UBsiNahCITShLjNQschPyjtO6dADrL24757IdhBrsQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.7.tgz", + "integrity": "sha512-K3XzyZJGQCr00+EtYtrDjmwX7o7PLK6U9bi1nCwkQioRFVUv6dJoxbQjtWVtP+bCPy82bONBKG8NPyQ4+i6yjg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.7.tgz", + "integrity": "sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-numeric-separator": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz", + "integrity": "sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-object-rest-spread": { + "version": "7.17.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.17.3.tgz", + "integrity": "sha512-yuL5iQA/TbZn+RGAfxQXfi7CNLmKi1f8zInn4IgobuCWcAb7i+zj4TYzQ9l8cEzVyJ89PDGuqxK1xZpUDISesw==", + "dependencies": { + "@babel/compat-data": "^7.17.0", + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-catch-binding": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz", + "integrity": "sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-chaining": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz", + "integrity": "sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-methods": { + "version": "7.16.11", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.11.tgz", + "integrity": "sha512-F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.16.10", + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.7.tgz", + "integrity": "sha512-rMQkjcOFbm+ufe3bTZLyOfsOUOxyvLXZJCTARhJr+8UMSoZmqTe1K1BgkFcrW37rAchWg57yI69ORxiWvUINuQ==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-create-class-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-unicode-property-regex": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.7.tgz", + "integrity": "sha512-QRK0YI/40VLhNVGIjRNAAQkEHws0cswSdFFjpFyt943YmJIU1da9uW63Iu6NFV6CxTZW5eTDCrwZUstBWgp/Rg==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz", + "integrity": "sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.16.8", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz", + "integrity": "sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg==", + "dependencies": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-remap-async-to-generator": "^7.16.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz", + "integrity": "sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.7.tgz", + "integrity": "sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz", + "integrity": "sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz", + "integrity": "sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.17.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.17.3.tgz", + "integrity": "sha512-dDFzegDYKlPqa72xIlbmSkly5MluLoaC1JswABGktyt6NTXSBcUuse/kWE/wvKFWJHPETpi158qJZFS3JmykJg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz", + "integrity": "sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.7.tgz", + "integrity": "sha512-03DvpbRfvWIXyK0/6QiR1KMTWeT6OcQ7tbhjrXyFS02kjuX/mu5Bvnh5SDSWHxyawit2g5aWhKwI86EE7GUnTw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz", + "integrity": "sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA==", + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz", + "integrity": "sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz", + "integrity": "sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==", + "dependencies": { + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.7.tgz", + "integrity": "sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz", + "integrity": "sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.7.tgz", + "integrity": "sha512-KaaEtgBL7FKYwjJ/teH63oAmE3lP34N3kshz8mm4VMAw7U3PxjVwwUmxEFksbgsNUaO3wId9R2AVQYSEGRa2+g==", + "dependencies": { + "@babel/helper-module-transforms": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.16.8", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.8.tgz", + "integrity": "sha512-oflKPvsLT2+uKQopesJt3ApiaIS2HW+hzHFcwRNtyDGieAeC/dIHZX8buJQ2J2X1rxGPy4eRcUijm3qcSPjYcA==", + "dependencies": { + "@babel/helper-module-transforms": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-simple-access": "^7.16.7", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.16.7.tgz", + "integrity": "sha512-DuK5E3k+QQmnOqBR9UkusByy5WZWGRxfzV529s9nPra1GE7olmxfqO2FHobEOYSPIjPBTr4p66YDcjQnt8cBmw==", + "dependencies": { + "@babel/helper-hoist-variables": "^7.16.7", + "@babel/helper-module-transforms": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-validator-identifier": "^7.16.7", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.7.tgz", + "integrity": "sha512-EMh7uolsC8O4xhudF2F6wedbSHm1HHZ0C6aJ7K67zcDNidMzVcxWdGr+htW9n21klm+bOn+Rx4CBsAntZd3rEQ==", + "dependencies": { + "@babel/helper-module-transforms": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.16.8", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.8.tgz", + "integrity": "sha512-j3Jw+n5PvpmhRR+mrgIh04puSANCk/T/UA3m3P1MjJkhlK906+ApHhDIqBQDdOgL/r1UYpz4GNclTXxyZrYGSw==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.7.tgz", + "integrity": "sha512-xiLDzWNMfKoGOpc6t3U+etCE2yRnn3SM09BXqWPIZOBpL2gvVrBWUKnsJx0K/ADi5F5YC5f8APFfWrz25TdlGg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz", + "integrity": "sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.7.tgz", + "integrity": "sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz", + "integrity": "sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.7.tgz", + "integrity": "sha512-mF7jOgGYCkSJagJ6XCujSQg+6xC1M77/03K2oBmVJWoFGNUtnVJO4WHKJk3dnPC8HCcj4xBQP1Egm8DWh3Pb3Q==", + "dependencies": { + "regenerator-transform": "^0.14.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.7.tgz", + "integrity": "sha512-KQzzDnZ9hWQBjwi5lpY5v9shmm6IVG0U9pB18zvMu2i4H90xpT4gmqwPYsn8rObiadYe2M0gmgsiOIF5A/2rtg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz", + "integrity": "sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.7.tgz", + "integrity": "sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz", + "integrity": "sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.7.tgz", + "integrity": "sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.7.tgz", + "integrity": "sha512-p2rOixCKRJzpg9JB4gjnG4gjWkWa89ZoYUnl9snJ1cWIcTH/hvxZqfO+WjG6T8DRBpctEol5jw1O5rA8gkCokQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz", + "integrity": "sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz", + "integrity": "sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.16.11", + "resolved": "https://registry.npmmirror.com/@babel/preset-env/-/preset-env-7.16.11.tgz", + "integrity": "sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g==", + "dependencies": { + "@babel/compat-data": "^7.16.8", + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-validator-option": "^7.16.7", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.7", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.7", + "@babel/plugin-proposal-async-generator-functions": "^7.16.8", + "@babel/plugin-proposal-class-properties": "^7.16.7", + "@babel/plugin-proposal-class-static-block": "^7.16.7", + "@babel/plugin-proposal-dynamic-import": "^7.16.7", + "@babel/plugin-proposal-export-namespace-from": "^7.16.7", + "@babel/plugin-proposal-json-strings": "^7.16.7", + "@babel/plugin-proposal-logical-assignment-operators": "^7.16.7", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.7", + "@babel/plugin-proposal-numeric-separator": "^7.16.7", + "@babel/plugin-proposal-object-rest-spread": "^7.16.7", + "@babel/plugin-proposal-optional-catch-binding": "^7.16.7", + "@babel/plugin-proposal-optional-chaining": "^7.16.7", + "@babel/plugin-proposal-private-methods": "^7.16.11", + "@babel/plugin-proposal-private-property-in-object": "^7.16.7", + "@babel/plugin-proposal-unicode-property-regex": "^7.16.7", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-transform-arrow-functions": "^7.16.7", + "@babel/plugin-transform-async-to-generator": "^7.16.8", + "@babel/plugin-transform-block-scoped-functions": "^7.16.7", + "@babel/plugin-transform-block-scoping": "^7.16.7", + "@babel/plugin-transform-classes": "^7.16.7", + "@babel/plugin-transform-computed-properties": "^7.16.7", + "@babel/plugin-transform-destructuring": "^7.16.7", + "@babel/plugin-transform-dotall-regex": "^7.16.7", + "@babel/plugin-transform-duplicate-keys": "^7.16.7", + "@babel/plugin-transform-exponentiation-operator": "^7.16.7", + "@babel/plugin-transform-for-of": "^7.16.7", + "@babel/plugin-transform-function-name": "^7.16.7", + "@babel/plugin-transform-literals": "^7.16.7", + "@babel/plugin-transform-member-expression-literals": "^7.16.7", + "@babel/plugin-transform-modules-amd": "^7.16.7", + "@babel/plugin-transform-modules-commonjs": "^7.16.8", + "@babel/plugin-transform-modules-systemjs": "^7.16.7", + "@babel/plugin-transform-modules-umd": "^7.16.7", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.16.8", + "@babel/plugin-transform-new-target": "^7.16.7", + "@babel/plugin-transform-object-super": "^7.16.7", + "@babel/plugin-transform-parameters": "^7.16.7", + "@babel/plugin-transform-property-literals": "^7.16.7", + "@babel/plugin-transform-regenerator": "^7.16.7", + "@babel/plugin-transform-reserved-words": "^7.16.7", + "@babel/plugin-transform-shorthand-properties": "^7.16.7", + "@babel/plugin-transform-spread": "^7.16.7", + "@babel/plugin-transform-sticky-regex": "^7.16.7", + "@babel/plugin-transform-template-literals": "^7.16.7", + "@babel/plugin-transform-typeof-symbol": "^7.16.7", + "@babel/plugin-transform-unicode-escapes": "^7.16.7", + "@babel/plugin-transform-unicode-regex": "^7.16.7", + "@babel/preset-modules": "^0.1.5", + "@babel/types": "^7.16.8", + "babel-plugin-polyfill-corejs2": "^0.3.0", + "babel-plugin-polyfill-corejs3": "^0.5.0", + "babel-plugin-polyfill-regenerator": "^0.3.0", + "core-js-compat": "^3.20.2", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.5", + "resolved": "https://registry.npmmirror.com/@babel/preset-modules/-/preset-modules-0.1.5.tgz", + "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.17.2", + "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.17.2.tgz", + "integrity": "sha512-hzeyJyMA1YGdJTuWU0e/j4wKXrU4OMFvY2MSlaI9B7VQb0r5cxTE3EAIS2Q7Tn2RIcDkRvTA/v2JsAEhxe99uw==", + "dependencies": { + "regenerator-runtime": "^0.13.4" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/template/-/template-7.16.7.tgz", + "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", + "dependencies": { + "@babel/code-frame": "^7.16.7", + "@babel/parser": "^7.16.7", + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.17.3", + "resolved": "https://registry.npmmirror.com/@babel/traverse/-/traverse-7.17.3.tgz", + "integrity": "sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw==", + "dependencies": { + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.17.3", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-hoist-variables": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/parser": "^7.17.3", + "@babel/types": "^7.17.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.17.0", + "resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.17.0.tgz", + "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.16.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.0.5", + "resolved": "https://registry.npmmirror.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz", + "integrity": "sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.11", + "resolved": "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz", + "integrity": "sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.4", + "resolved": "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz", + "integrity": "sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ==", + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@sinonjs/commons": { + "version": "1.8.3", + "resolved": "https://registry.npmmirror.com/@sinonjs/commons/-/commons-1.8.3.tgz", + "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", + "dev": true, + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz", + "integrity": "sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^1.7.0" + } + }, + "node_modules/@sinonjs/samsam": { + "version": "5.3.1", + "resolved": "https://registry.npmmirror.com/@sinonjs/samsam/-/samsam-5.3.1.tgz", + "integrity": "sha512-1Hc0b1TtyfBu8ixF/tpfSHTVWKwCBLY4QJbkgnE7HcwyvT2xArDxb4K7dMgqRm3szI+LJbzmW/s4xxEhv6hwDg==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^1.6.0", + "lodash.get": "^4.4.2", + "type-detect": "^4.0.8" + } + }, + "node_modules/@sinonjs/text-encoding": { + "version": "0.7.1", + "resolved": "https://registry.npmmirror.com/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz", + "integrity": "sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==", + "dev": true + }, + "node_modules/@types/chai": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/@types/chai/-/chai-4.3.0.tgz", + "integrity": "sha512-/ceqdqeRraGolFTcfoXNiqjyQhZzbINDngeoAq9GoHa8PPK1yNzTaxWjA6BFWp5Ua9JpXEMSS4s5i9tS0hOJtw==", + "dev": true + }, + "node_modules/@types/command-line-args": { + "version": "5.2.0", + "resolved": "https://registry.npmmirror.com/@types/command-line-args/-/command-line-args-5.2.0.tgz", + "integrity": "sha512-UuKzKpJJ/Ief6ufIaIzr3A/0XnluX7RvFgwkV89Yzvm77wCh1kFaFmqN8XEnGcN62EuHdedQjEMb8mYxFLGPyA==" + }, + "node_modules/@types/command-line-usage": { + "version": "5.0.2", + "resolved": "https://registry.npmmirror.com/@types/command-line-usage/-/command-line-usage-5.0.2.tgz", + "integrity": "sha512-n7RlEEJ+4x4TS7ZQddTmNSxP+zziEG0TNsMfiRIxcIVXt71ENJ9ojeXmGO3wPoTdn7pJcU2xc3CJYMktNT6DPg==" + }, + "node_modules/@types/mocha": { + "version": "8.2.3", + "resolved": "https://registry.npmmirror.com/@types/mocha/-/mocha-8.2.3.tgz", + "integrity": "sha512-ekGvFhFgrc2zYQoX4JeZPmVzZxw6Dtllga7iGHzfbYIYkAMUx/sAFP2GdFpLff+vdHXu5fl7WX9AT+TtqYcsyw==", + "dev": true + }, + "node_modules/@types/node": { + "version": "14.18.12", + "resolved": "https://registry.npmmirror.com/@types/node/-/node-14.18.12.tgz", + "integrity": "sha512-q4jlIR71hUpWTnGhXWcakgkZeHa3CCjcQcnuzU8M891BAWA2jHiziiWEPEkdS5pFsz7H9HJiy8BrK7tBRNrY7A==", + "dev": true + }, + "node_modules/@types/sinon": { + "version": "9.0.11", + "resolved": "https://registry.npmmirror.com/@types/sinon/-/sinon-9.0.11.tgz", + "integrity": "sha512-PwP4UY33SeeVKodNE37ZlOsR9cReypbMJOhZ7BVE0lB+Hix3efCOxiJWiE5Ia+yL9Cn2Ch72EjFTRze8RZsNtg==", + "dev": true, + "dependencies": { + "@types/sinonjs__fake-timers": "*" + } + }, + "node_modules/@types/sinon-chai": { + "version": "3.2.8", + "resolved": "https://registry.npmmirror.com/@types/sinon-chai/-/sinon-chai-3.2.8.tgz", + "integrity": "sha512-d4ImIQbT/rKMG8+AXpmcan5T2/PNeSjrYhvkwet6z0p8kzYtfgA32xzOBlbU0yqJfq+/0Ml805iFoODO0LP5/g==", + "dev": true, + "dependencies": { + "@types/chai": "*", + "@types/sinon": "*" + } + }, + "node_modules/@types/sinonjs__fake-timers": { + "version": "8.1.1", + "resolved": "https://registry.npmmirror.com/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.1.tgz", + "integrity": "sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g==", + "dev": true + }, + "node_modules/@ungap/promise-all-settled": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", + "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", + "dev": true + }, + "node_modules/ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha512-wFUFA5bg5dviipbQQ32yOQhl6gcJaJXiHE7dvR8VYPG97+J/GNC5FKGepKdEDUFeXRzDxPF1X/Btc8L+v7oqIQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/array-back": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/array-back/-/array-back-3.1.0.tgz", + "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", + "engines": { + "node": ">=6" + } + }, + "node_modules/assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/ast-types": { + "version": "0.14.2", + "resolved": "https://registry.npmmirror.com/ast-types/-/ast-types-0.14.2.tgz", + "integrity": "sha512-O0yuUDnZeQDL+ncNGlJ78BiO4jnYI3bvMsD5prT0/nsgijG/LpNBIr63gTjVTNsiGkgQhiyCShTgxt8oXOrklA==", + "dependencies": { + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npmmirror.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "dependencies": { + "object.assign": "^4.1.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.3.1", + "resolved": "https://registry.npmmirror.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz", + "integrity": "sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==", + "dependencies": { + "@babel/compat-data": "^7.13.11", + "@babel/helper-define-polyfill-provider": "^0.3.1", + "semver": "^6.1.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.5.2", + "resolved": "https://registry.npmmirror.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz", + "integrity": "sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.3.1", + "core-js-compat": "^3.21.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.3.1", + "resolved": "https://registry.npmmirror.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz", + "integrity": "sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmmirror.com/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true + }, + "node_modules/browserslist": { + "version": "4.19.1", + "resolved": "https://registry.npmmirror.com/browserslist/-/browserslist-4.19.1.tgz", + "integrity": "sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==", + "dependencies": { + "caniuse-lite": "^1.0.30001286", + "electron-to-chromium": "^1.4.17", + "escalade": "^3.1.1", + "node-releases": "^2.0.1", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmmirror.com/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001312", + "resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001312.tgz", + "integrity": "sha512-Wiz1Psk2MEK0pX3rUzWaunLTZzqS2JYZFzNKqAiJGiuxIjRPLgV6+VDPOg6lQOUxmDwhTlh198JsTTi8Hzw6aQ==" + }, + "node_modules/chai": { + "version": "4.3.6", + "resolved": "https://registry.npmmirror.com/chai/-/chai-4.3.6.tgz", + "integrity": "sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q==", + "dev": true, + "dependencies": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^3.0.1", + "get-func-name": "^2.0.0", + "loupe": "^2.3.1", + "pathval": "^1.1.1", + "type-detect": "^4.0.5" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/check-error": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/check-error/-/check-error-1.0.2.tgz", + "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/chokidar": { + "version": "3.5.1", + "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.5.1.tgz", + "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", + "dev": true, + "dependencies": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.5.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.1" + } + }, + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmmirror.com/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/cliui/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/command-line-args": { + "version": "5.2.1", + "resolved": "https://registry.npmmirror.com/command-line-args/-/command-line-args-5.2.1.tgz", + "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==", + "dependencies": { + "array-back": "^3.1.0", + "find-replace": "^3.0.0", + "lodash.camelcase": "^4.3.0", + "typical": "^4.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/command-line-usage": { + "version": "6.1.1", + "resolved": "https://registry.npmmirror.com/command-line-usage/-/command-line-usage-6.1.1.tgz", + "integrity": "sha512-F59pEuAR9o1SF/bD0dQBDluhpT4jJQNWUHEuVBqpDmCUo6gPjCi+m9fCWnWZVR/oG6cMTUms4h+3NPl74wGXvA==", + "dependencies": { + "array-back": "^4.0.1", + "chalk": "^2.4.2", + "table-layout": "^1.0.1", + "typical": "^5.2.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/command-line-usage/node_modules/array-back": { + "version": "4.0.2", + "resolved": "https://registry.npmmirror.com/array-back/-/array-back-4.0.2.tgz", + "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/command-line-usage/node_modules/typical": { + "version": "5.2.0", + "resolved": "https://registry.npmmirror.com/typical/-/typical-5.2.0.tgz", + "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "node_modules/convert-source-map": { + "version": "1.8.0", + "resolved": "https://registry.npmmirror.com/convert-source-map/-/convert-source-map-1.8.0.tgz", + "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", + "dependencies": { + "safe-buffer": "~5.1.1" + } + }, + "node_modules/core-js-compat": { + "version": "3.21.0", + "resolved": "https://registry.npmmirror.com/core-js-compat/-/core-js-compat-3.21.0.tgz", + "integrity": "sha512-OSXseNPSK2OPJa6GdtkMz/XxeXx8/CJvfhQWTqd6neuUraujcL4jVsjkLQz1OWnax8xVQJnRPe0V2jqNWORA+A==", + "dependencies": { + "browserslist": "^4.19.1", + "semver": "7.0.0" + } + }, + "node_modules/core-js-compat/node_modules/semver": { + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/debug": { + "version": "4.3.3", + "resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/deep-eql": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/deep-eql/-/deep-eql-3.0.1.tgz", + "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", + "dev": true, + "dependencies": { + "type-detect": "^4.0.0" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmmirror.com/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dependencies": { + "object-keys": "^1.0.12" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/diff": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/diff/-/diff-5.0.0.tgz", + "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.4.71", + "resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.71.tgz", + "integrity": "sha512-Hk61vXXKRb2cd3znPE9F+2pLWdIOmP7GjiTj45y6L3W/lO+hSnUSUhq+6lEaERWBdZOHbk2s3YV5c9xVl3boVw==" + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmmirror.com/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-replace": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/find-replace/-/find-replace-3.0.0.tgz", + "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", + "dependencies": { + "array-back": "^3.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmmirror.com/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true, + "bin": { + "flat": "cli.js" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmmirror.com/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-func-name": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/get-func-name/-/get-func-name-2.0.0.tgz", + "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, + "node_modules/glob": { + "version": "7.1.6", + "resolved": "https://registry.npmmirror.com/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmmirror.com/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.9", + "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.9.tgz", + "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==" + }, + "node_modules/growl": { + "version": "1.10.5", + "resolved": "https://registry.npmmirror.com/growl/-/growl-1.10.5.tgz", + "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", + "dev": true, + "engines": { + "node": ">=4.x" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "bin": { + "he": "bin/he" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmmirror.com/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.8.1", + "resolved": "https://registry.npmmirror.com/is-core-module/-/is-core-module-2.8.1.tgz", + "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", + "dependencies": { + "has": "^1.0.3" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmmirror.com/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", + "dev": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/js-yaml": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/js-yaml/-/js-yaml-4.0.0.tgz", + "integrity": "sha512-pqon0s+4ScYUvX30wxQi3PogGFAlUyH0awepWvwkj4jD4v+ova3RiYw8bmA6x2rDrEaj8i/oWKoRxpVNW+Re8Q==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmmirror.com/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json5": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/json5/-/json5-2.2.0.tgz", + "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/just-extend": { + "version": "4.2.1", + "resolved": "https://registry.npmmirror.com/just-extend/-/just-extend-4.2.1.tgz", + "integrity": "sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg==", + "dev": true + }, + "node_modules/klaw": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/klaw/-/klaw-2.1.1.tgz", + "integrity": "sha512-kuInGWCNc98b1ghOqBJfqPOvAKn9HHgm+SdluR5VNfdA7rs7uNsuXGy7CCqsP6pFKPpUoCH4s9o00GEj9xONHg==", + "dependencies": { + "graceful-fs": "^4.1.9" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==" + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmmirror.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" + }, + "node_modules/lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmmirror.com/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", + "dev": true + }, + "node_modules/log-symbols": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/log-symbols/-/log-symbols-4.0.0.tgz", + "integrity": "sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/log-symbols/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/log-symbols/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/log-symbols/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/log-symbols/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/log-symbols/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/log-symbols/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/loupe": { + "version": "2.3.4", + "resolved": "https://registry.npmmirror.com/loupe/-/loupe-2.3.4.tgz", + "integrity": "sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ==", + "dev": true, + "dependencies": { + "get-func-name": "^2.0.0" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmmirror.com/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + }, + "node_modules/mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmmirror.com/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/mocha": { + "version": "8.4.0", + "resolved": "https://registry.npmmirror.com/mocha/-/mocha-8.4.0.tgz", + "integrity": "sha512-hJaO0mwDXmZS4ghXsvPVriOhsxQ7ofcpQdm8dE+jISUOKopitvnXFQmpRR7jd2K6VBG6E26gU3IAbXXGIbu4sQ==", + "dev": true, + "dependencies": { + "@ungap/promise-all-settled": "1.1.2", + "ansi-colors": "4.1.1", + "browser-stdout": "1.3.1", + "chokidar": "3.5.1", + "debug": "4.3.1", + "diff": "5.0.0", + "escape-string-regexp": "4.0.0", + "find-up": "5.0.0", + "glob": "7.1.6", + "growl": "1.10.5", + "he": "1.2.0", + "js-yaml": "4.0.0", + "log-symbols": "4.0.0", + "minimatch": "3.0.4", + "ms": "2.1.3", + "nanoid": "3.1.20", + "serialize-javascript": "5.0.1", + "strip-json-comments": "3.1.1", + "supports-color": "8.1.1", + "which": "2.0.2", + "wide-align": "1.1.3", + "workerpool": "6.1.0", + "yargs": "16.2.0", + "yargs-parser": "20.2.4", + "yargs-unparser": "2.0.0" + }, + "bin": { + "_mocha": "bin/_mocha", + "mocha": "bin/mocha" + }, + "engines": { + "node": ">= 10.12.0" + } + }, + "node_modules/mocha/node_modules/debug": { + "version": "4.3.1", + "resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/mocha/node_modules/debug/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/mocha/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/mocha/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/mocha/node_modules/minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/mocha/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/mocha/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/nanoid": { + "version": "3.1.20", + "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.1.20.tgz", + "integrity": "sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw==", + "dev": true, + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/nise": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/nise/-/nise-4.1.0.tgz", + "integrity": "sha512-eQMEmGN/8arp0xsvGoQ+B1qvSkR73B1nWSCh7nOt5neMCtwcQVYQGdzQMhcNscktTsWB54xnlSQFzOAPJD8nXA==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^1.7.0", + "@sinonjs/fake-timers": "^6.0.0", + "@sinonjs/text-encoding": "^0.7.1", + "just-extend": "^4.0.2", + "path-to-regexp": "^1.7.0" + } + }, + "node_modules/node-releases": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.2.tgz", + "integrity": "sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "node_modules/path-to-regexp": { + "version": "1.8.0", + "resolved": "https://registry.npmmirror.com/path-to-regexp/-/path-to-regexp-1.8.0.tgz", + "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", + "dev": true, + "dependencies": { + "isarray": "0.0.1" + } + }, + "node_modules/pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/readdirp": { + "version": "3.5.0", + "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.5.0.tgz", + "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/recast": { + "version": "0.20.5", + "resolved": "https://registry.npmmirror.com/recast/-/recast-0.20.5.tgz", + "integrity": "sha512-E5qICoPoNL4yU0H0NoBDntNB0Q5oMSNh9usFctYniLBluTthi3RsQVBXIJNbApOlvSwW/RGxIuokPcAc59J5fQ==", + "dependencies": { + "ast-types": "0.14.2", + "esprima": "~4.0.0", + "source-map": "~0.6.1", + "tslib": "^2.0.1" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/recast/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/reduce-flatten": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/reduce-flatten/-/reduce-flatten-2.0.0.tgz", + "integrity": "sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w==", + "engines": { + "node": ">=6" + } + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmmirror.com/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.0.1", + "resolved": "https://registry.npmmirror.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz", + "integrity": "sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==", + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.13.9", + "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", + "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" + }, + "node_modules/regenerator-transform": { + "version": "0.14.5", + "resolved": "https://registry.npmmirror.com/regenerator-transform/-/regenerator-transform-0.14.5.tgz", + "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/regexpu-core": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/regexpu-core/-/regexpu-core-5.0.1.tgz", + "integrity": "sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw==", + "dependencies": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.0.1", + "regjsgen": "^0.6.0", + "regjsparser": "^0.8.2", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsgen": { + "version": "0.6.0", + "resolved": "https://registry.npmmirror.com/regjsgen/-/regjsgen-0.6.0.tgz", + "integrity": "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==" + }, + "node_modules/regjsparser": { + "version": "0.8.4", + "resolved": "https://registry.npmmirror.com/regjsparser/-/regjsparser-0.8.4.tgz", + "integrity": "sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==", + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmmirror.com/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.0", + "resolved": "https://registry.npmmirror.com/resolve/-/resolve-1.22.0.tgz", + "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", + "dependencies": { + "is-core-module": "^2.8.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + } + }, + "node_modules/rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmmirror.com/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/rxjs/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmmirror.com/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/serialize-javascript": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/serialize-javascript/-/serialize-javascript-5.0.1.tgz", + "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/sinon": { + "version": "9.2.4", + "resolved": "https://registry.npmmirror.com/sinon/-/sinon-9.2.4.tgz", + "integrity": "sha512-zljcULZQsJxVra28qIAL6ow1Z9tpattkCTEJR4RBP3TGc00FcttsP5pK284Nas5WjMZU5Yzy3kAIp3B3KRf5Yg==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^1.8.1", + "@sinonjs/fake-timers": "^6.0.1", + "@sinonjs/samsam": "^5.3.1", + "diff": "^4.0.2", + "nise": "^4.0.4", + "supports-color": "^7.1.0" + } + }, + "node_modules/sinon/node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmmirror.com/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/sinon/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/sinon/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" + }, + "node_modules/string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "dependencies": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", + "dev": true, + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/table-layout": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/table-layout/-/table-layout-1.0.2.tgz", + "integrity": "sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A==", + "dependencies": { + "array-back": "^4.0.1", + "deep-extend": "~0.6.0", + "typical": "^5.2.0", + "wordwrapjs": "^4.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/table-layout/node_modules/array-back": { + "version": "4.0.2", + "resolved": "https://registry.npmmirror.com/array-back/-/array-back-4.0.2.tgz", + "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/table-layout/node_modules/typical": { + "version": "5.2.0", + "resolved": "https://registry.npmmirror.com/typical/-/typical-5.2.0.tgz", + "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/test262-stream": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/test262-stream/-/test262-stream-1.4.0.tgz", + "integrity": "sha512-s364askxqgyWAtIwvYCG5nYT3P32g9ByEt1ML49ubFlPE52GA6fG5ZZGmf4y/YJgKtppRAZZ7YVd9NOsk1oUxA==", + "dependencies": { + "js-yaml": "^3.2.1", + "klaw": "^2.1.0" + } + }, + "node_modules/test262-stream/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmmirror.com/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/test262-stream/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmmirror.com/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/ts-sinon": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/ts-sinon/-/ts-sinon-1.2.1.tgz", + "integrity": "sha512-p+ZtMR7NfeBS0dGvPGhMrUY/wFdmTlhcyHIzKle32lQucPA2tF/2xO6oz5aYoXsxbrySu0SqcaupM6L+L9Msgg==", + "dev": true, + "dependencies": { + "@types/node": "^11.15.20", + "@types/sinon": "^9.0.5", + "@types/sinon-chai": "^3.2.4", + "sinon": "^9.0.3" + } + }, + "node_modules/ts-sinon/node_modules/@types/node": { + "version": "11.15.54", + "resolved": "https://registry.npmmirror.com/@types/node/-/node-11.15.54.tgz", + "integrity": "sha512-1RWYiq+5UfozGsU6MwJyFX6BtktcT10XRjvcAQmskCtMcW3tPske88lM/nHv7BQG1w9KBXI1zPGuu5PnNCX14g==", + "dev": true + }, + "node_modules/tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmmirror.com/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/typescript": { + "version": "4.5.5", + "resolved": "https://registry.npmmirror.com/typescript/-/typescript-4.5.5.tgz", + "integrity": "sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/typical": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/typical/-/typical-4.0.0.tgz", + "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/uid2": { + "version": "0.0.3", + "resolved": "https://registry.npmmirror.com/uid2/-/uid2-0.0.3.tgz", + "integrity": "sha512-5gSP1liv10Gjp8cMEnFd6shzkL/D6W1uhXSFNCxDC+YI8+L8wkCYCbJ7n77Ezb4wE/xzMogecE+DtamEe9PZjg==" + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", + "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", + "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/unique-temp-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/unique-temp-dir/-/unique-temp-dir-1.0.0.tgz", + "integrity": "sha512-tE68ki2FndoVdPioyiz8mYaJeX3xU/9lk4dml7KlLKEkWLtDGAYeg5LGjE2dMkzB8d6R3HbcKTn/I14nukP2dw==", + "dependencies": { + "mkdirp": "^0.5.1", + "os-tmpdir": "^1.0.1", + "uid2": "0.0.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/wide-align": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "dev": true, + "dependencies": { + "string-width": "^1.0.2 || 2" + } + }, + "node_modules/wordwrapjs": { + "version": "4.0.1", + "resolved": "https://registry.npmmirror.com/wordwrapjs/-/wordwrapjs-4.0.1.tgz", + "integrity": "sha512-kKlNACbvHrkpIw6oPeYDSmdCTu2hdMHoyXLTcUKala++lx5Y+wjJ/e474Jqv5abnVmwxw08DiTuHmw69lJGksA==", + "dependencies": { + "reduce-flatten": "^2.0.0", + "typical": "^5.2.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/wordwrapjs/node_modules/typical": { + "version": "5.2.0", + "resolved": "https://registry.npmmirror.com/typical/-/typical-5.2.0.tgz", + "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/workerpool": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/workerpool/-/workerpool-6.1.0.tgz", + "integrity": "sha512-toV7q9rWNYha963Pl/qyeZ6wG+3nnsyvolaNUS8+R5Wtw6qJPTxIlOP1ZSvcGhEJw+l3HMMmtiNo9Gl61G4GVg==", + "dev": true + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmmirror.com/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmmirror.com/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.4", + "resolved": "https://registry.npmmirror.com/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-unparser": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz", + "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", + "dev": true, + "dependencies": { + "camelcase": "^6.0.0", + "decamelize": "^4.0.0", + "flat": "^5.0.2", + "is-plain-obj": "^2.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmmirror.com/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + } + } + }, "dependencies": { + "@ampproject/remapping": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/@ampproject/remapping/-/remapping-2.1.1.tgz", + "integrity": "sha512-Aolwjd7HSC2PyY0fDj/wA/EimQT4HfEnFYNp5s9CQlrdhyvWTtvZ5YzrUPu6R6/1jKiUlxu8bUhkdSnKHNAHMA==", + "requires": { + "@jridgewell/trace-mapping": "^0.3.0" + } + }, "@babel/code-frame": { - "version": "7.15.8", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/code-frame/-/code-frame-7.15.8.tgz", - "integrity": "sha512-2IAnmn8zbvC/jKYhq5Ki9I+DwjlrtMPUCH/CpHvqI4dNnlwHwsxoIhlc8WcYY5LSYknXQtAlFYuHfqAFCvQ4Wg==", + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/code-frame/-/code-frame-7.16.7.tgz", + "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", "requires": { - "@babel/highlight": "^7.14.5" + "@babel/highlight": "^7.16.7" } }, "@babel/compat-data": { - "version": "7.15.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/compat-data/-/compat-data-7.15.0.tgz", - "integrity": "sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA==" + "version": "7.17.0", + "resolved": "https://registry.npmmirror.com/@babel/compat-data/-/compat-data-7.17.0.tgz", + "integrity": "sha512-392byTlpGWXMv4FbyWw3sAZ/FrW/DrwqLGXpy0mbyNe9Taqv1mg9yON5/o0cnr8XYCkFTZbC1eV+c+LAROgrng==" }, "@babel/core": { - "version": "7.15.8", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/core/-/core-7.15.8.tgz", - "integrity": "sha512-3UG9dsxvYBMYwRv+gS41WKHno4K60/9GPy1CJaH6xy3Elq8CTtvtjT5R5jmNhXfCYLX2mTw+7/aq5ak/gOE0og==", - "requires": { - "@babel/code-frame": "^7.15.8", - "@babel/generator": "^7.15.8", - "@babel/helper-compilation-targets": "^7.15.4", - "@babel/helper-module-transforms": "^7.15.8", - "@babel/helpers": "^7.15.4", - "@babel/parser": "^7.15.8", - "@babel/template": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.6", + "version": "7.17.4", + "resolved": "https://registry.npmmirror.com/@babel/core/-/core-7.17.4.tgz", + "integrity": "sha512-R9x5r4t4+hBqZTmioSnkrW+I6NmbojwjGT8p4G2Gw1thWbXIHGDnmGdLdFw0/7ljucdIrNRp7Npgb4CyBYzzJg==", + "requires": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.17.3", + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-module-transforms": "^7.16.7", + "@babel/helpers": "^7.17.2", + "@babel/parser": "^7.17.3", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.17.3", + "@babel/types": "^7.17.0", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", "json5": "^2.1.2", - "semver": "^6.3.0", - "source-map": "^0.5.0" + "semver": "^6.3.0" } }, "@babel/generator": { - "version": "7.15.8", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/generator/-/generator-7.15.8.tgz", - "integrity": "sha512-ECmAKstXbp1cvpTTZciZCgfOt6iN64lR0d+euv3UZisU5awfRawOvg07Utn/qBGuH4bRIEZKrA/4LzZyXhZr8g==", + "version": "7.17.3", + "resolved": "https://registry.npmmirror.com/@babel/generator/-/generator-7.17.3.tgz", + "integrity": "sha512-+R6Dctil/MgUsZsZAkYgK+ADNSZzJRRy0TvY65T71z/CR854xHQ1EweBYXdfT+HNeN7w0cSJJEzgxZMv40pxsg==", "requires": { - "@babel/types": "^7.15.6", + "@babel/types": "^7.17.0", "jsesc": "^2.5.1", "source-map": "^0.5.0" } }, "@babel/helper-annotate-as-pure": { - "version": "7.15.4", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.15.4.tgz", - "integrity": "sha512-QwrtdNvUNsPCj2lfNQacsGSQvGX8ee1ttrBrcozUP2Sv/jylewBP/8QFe6ZkBsC8T/GYWonNAWJV4aRR9AL2DA==", + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", + "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", "requires": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.16.7" } }, "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.15.4", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.15.4.tgz", - "integrity": "sha512-P8o7JP2Mzi0SdC6eWr1zF+AEYvrsZa7GSY1lTayjF5XJhVH0kjLYUZPvTMflP7tBgZoe9gIhTa60QwFpqh/E0Q==", + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz", + "integrity": "sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA==", "requires": { - "@babel/helper-explode-assignable-expression": "^7.15.4", - "@babel/types": "^7.15.4" + "@babel/helper-explode-assignable-expression": "^7.16.7", + "@babel/types": "^7.16.7" } }, "@babel/helper-compilation-targets": { - "version": "7.15.4", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.4.tgz", - "integrity": "sha512-rMWPCirulnPSe4d+gwdWXLfAXTTBj8M3guAf5xFQJ0nvFY7tfNAFnWdqaHegHlgDZOCT4qvhF3BYlSJag8yhqQ==", + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz", + "integrity": "sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA==", "requires": { - "@babel/compat-data": "^7.15.0", - "@babel/helper-validator-option": "^7.14.5", - "browserslist": "^4.16.6", + "@babel/compat-data": "^7.16.4", + "@babel/helper-validator-option": "^7.16.7", + "browserslist": "^4.17.5", "semver": "^6.3.0" } }, "@babel/helper-create-class-features-plugin": { - "version": "7.15.4", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.15.4.tgz", - "integrity": "sha512-7ZmzFi+DwJx6A7mHRwbuucEYpyBwmh2Ca0RvI6z2+WLZYCqV0JOaLb+u0zbtmDicebgKBZgqbYfLaKNqSgv5Pw==", + "version": "7.17.1", + "resolved": "https://registry.npmmirror.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.1.tgz", + "integrity": "sha512-JBdSr/LtyYIno/pNnJ75lBcqc3Z1XXujzPanHqjvvrhOA+DTceTFuJi8XjmWTZh4r3fsdfqaCMN0iZemdkxZHQ==", "requires": { - "@babel/helper-annotate-as-pure": "^7.15.4", - "@babel/helper-function-name": "^7.15.4", - "@babel/helper-member-expression-to-functions": "^7.15.4", - "@babel/helper-optimise-call-expression": "^7.15.4", - "@babel/helper-replace-supers": "^7.15.4", - "@babel/helper-split-export-declaration": "^7.15.4" + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-member-expression-to-functions": "^7.16.7", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7" } }, "@babel/helper-create-regexp-features-plugin": { - "version": "7.14.5", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.14.5.tgz", - "integrity": "sha512-TLawwqpOErY2HhWbGJ2nZT5wSkR192QpN+nBg1THfBfftrlvOh+WbhrxXCH4q4xJ9Gl16BGPR/48JA+Ryiho/A==", + "version": "7.17.0", + "resolved": "https://registry.npmmirror.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.0.tgz", + "integrity": "sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA==", "requires": { - "@babel/helper-annotate-as-pure": "^7.14.5", - "regexpu-core": "^4.7.1" + "@babel/helper-annotate-as-pure": "^7.16.7", + "regexpu-core": "^5.0.1" } }, "@babel/helper-define-polyfill-provider": { - "version": "0.2.3", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.3.tgz", - "integrity": "sha512-RH3QDAfRMzj7+0Nqu5oqgO5q9mFtQEVvCRsi8qCEfzLR9p2BHfn5FzhSB2oj1fF7I2+DcTORkYaQ6aTR9Cofew==", + "version": "0.3.1", + "resolved": "https://registry.npmmirror.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz", + "integrity": "sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==", "requires": { "@babel/helper-compilation-targets": "^7.13.0", "@babel/helper-module-imports": "^7.12.13", @@ -114,331 +3717,348 @@ "semver": "^6.1.2" } }, + "@babel/helper-environment-visitor": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", + "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", + "requires": { + "@babel/types": "^7.16.7" + } + }, "@babel/helper-explode-assignable-expression": { - "version": "7.15.4", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.15.4.tgz", - "integrity": "sha512-J14f/vq8+hdC2KoWLIQSsGrC9EFBKE4NFts8pfMpymfApds+fPqR30AOUWc4tyr56h9l/GA1Sxv2q3dLZWbQ/g==", + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz", + "integrity": "sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ==", "requires": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.16.7" } }, "@babel/helper-function-name": { - "version": "7.15.4", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/helper-function-name/-/helper-function-name-7.15.4.tgz", - "integrity": "sha512-Z91cOMM4DseLIGOnog+Z8OI6YseR9bua+HpvLAQ2XayUGU+neTtX+97caALaLdyu53I/fjhbeCnWnRH1O3jFOw==", + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz", + "integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==", "requires": { - "@babel/helper-get-function-arity": "^7.15.4", - "@babel/template": "^7.15.4", - "@babel/types": "^7.15.4" + "@babel/helper-get-function-arity": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/types": "^7.16.7" } }, "@babel/helper-get-function-arity": { - "version": "7.15.4", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/helper-get-function-arity/-/helper-get-function-arity-7.15.4.tgz", - "integrity": "sha512-1/AlxSF92CmGZzHnC515hm4SirTxtpDnLEJ0UyEMgTMZN+6bxXKg04dKhiRx5Enel+SUA1G1t5Ed/yQia0efrA==", + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz", + "integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==", "requires": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.16.7" } }, "@babel/helper-hoist-variables": { - "version": "7.15.4", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/helper-hoist-variables/-/helper-hoist-variables-7.15.4.tgz", - "integrity": "sha512-VTy085egb3jUGVK9ycIxQiPbquesq0HUQ+tPO0uv5mPEBZipk+5FkRKiWq5apuyTE9FUrjENB0rCf8y+n+UuhA==", + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", + "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", "requires": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.16.7" } }, "@babel/helper-member-expression-to-functions": { - "version": "7.15.4", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.4.tgz", - "integrity": "sha512-cokOMkxC/BTyNP1AlY25HuBWM32iCEsLPI4BHDpJCHHm1FU2E7dKWWIXJgQgSFiu4lp8q3bL1BIKwqkSUviqtA==", + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.7.tgz", + "integrity": "sha512-VtJ/65tYiU/6AbMTDwyoXGPKHgTsfRarivm+YbB5uAzKUyuPjgZSgAFeG87FCigc7KNHu2Pegh1XIT3lXjvz3Q==", "requires": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.16.7" } }, "@babel/helper-module-imports": { - "version": "7.15.4", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/helper-module-imports/-/helper-module-imports-7.15.4.tgz", - "integrity": "sha512-jeAHZbzUwdW/xHgHQ3QmWR4Jg6j15q4w/gCfwZvtqOxoo5DKtLHk8Bsf4c5RZRC7NmLEs+ohkdq8jFefuvIxAA==", + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", + "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", "requires": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.16.7" } }, "@babel/helper-module-transforms": { - "version": "7.15.8", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/helper-module-transforms/-/helper-module-transforms-7.15.8.tgz", - "integrity": "sha512-DfAfA6PfpG8t4S6npwzLvTUpp0sS7JrcuaMiy1Y5645laRJIp/LiLGIBbQKaXSInK8tiGNI7FL7L8UvB8gdUZg==", + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-module-transforms/-/helper-module-transforms-7.16.7.tgz", + "integrity": "sha512-gaqtLDxJEFCeQbYp9aLAefjhkKdjKcdh6DB7jniIGU3Pz52WAmP268zK0VgPz9hUNkMSYeH976K2/Y6yPadpng==", "requires": { - "@babel/helper-module-imports": "^7.15.4", - "@babel/helper-replace-supers": "^7.15.4", - "@babel/helper-simple-access": "^7.15.4", - "@babel/helper-split-export-declaration": "^7.15.4", - "@babel/helper-validator-identifier": "^7.15.7", - "@babel/template": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.6" + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-simple-access": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/helper-validator-identifier": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.16.7", + "@babel/types": "^7.16.7" } }, "@babel/helper-optimise-call-expression": { - "version": "7.15.4", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.15.4.tgz", - "integrity": "sha512-E/z9rfbAOt1vDW1DR7k4SzhzotVV5+qMciWV6LaG1g4jeFrkDlJedjtV4h0i4Q/ITnUu+Pk08M7fczsB9GXBDw==", + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz", + "integrity": "sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==", "requires": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.16.7" } }, "@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==" + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", + "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" }, "@babel/helper-remap-async-to-generator": { - "version": "7.15.4", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.15.4.tgz", - "integrity": "sha512-v53MxgvMK/HCwckJ1bZrq6dNKlmwlyRNYM6ypaRTdXWGOE2c1/SCa6dL/HimhPulGhZKw9W0QhREM583F/t0vQ==", + "version": "7.16.8", + "resolved": "https://registry.npmmirror.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz", + "integrity": "sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw==", "requires": { - "@babel/helper-annotate-as-pure": "^7.15.4", - "@babel/helper-wrap-function": "^7.15.4", - "@babel/types": "^7.15.4" + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-wrap-function": "^7.16.8", + "@babel/types": "^7.16.8" } }, "@babel/helper-replace-supers": { - "version": "7.15.4", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/helper-replace-supers/-/helper-replace-supers-7.15.4.tgz", - "integrity": "sha512-/ztT6khaXF37MS47fufrKvIsiQkx1LBRvSJNzRqmbyeZnTwU9qBxXYLaaT/6KaxfKhjs2Wy8kG8ZdsFUuWBjzw==", + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz", + "integrity": "sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw==", "requires": { - "@babel/helper-member-expression-to-functions": "^7.15.4", - "@babel/helper-optimise-call-expression": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4" + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-member-expression-to-functions": "^7.16.7", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/traverse": "^7.16.7", + "@babel/types": "^7.16.7" } }, "@babel/helper-simple-access": { - "version": "7.15.4", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/helper-simple-access/-/helper-simple-access-7.15.4.tgz", - "integrity": "sha512-UzazrDoIVOZZcTeHHEPYrr1MvTR/K+wgLg6MY6e1CJyaRhbibftF6fR2KU2sFRtI/nERUZR9fBd6aKgBlIBaPg==", + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz", + "integrity": "sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g==", "requires": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.16.7" } }, "@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.15.4", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.15.4.tgz", - "integrity": "sha512-BMRLsdh+D1/aap19TycS4eD1qELGrCBJwzaY9IE8LrpJtJb+H7rQkPIdsfgnMtLBA6DJls7X9z93Z4U8h7xw0A==", + "version": "7.16.0", + "resolved": "https://registry.npmmirror.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz", + "integrity": "sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==", "requires": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.16.0" } }, "@babel/helper-split-export-declaration": { - "version": "7.15.4", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.15.4.tgz", - "integrity": "sha512-HsFqhLDZ08DxCpBdEVtKmywj6PQbwnF6HHybur0MAnkAKnlS6uHkwnmRIkElB2Owpfb4xL4NwDmDLFubueDXsw==", + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", + "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", "requires": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.16.7" } }, "@babel/helper-validator-identifier": { - "version": "7.15.7", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", - "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==" + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", + "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==" }, "@babel/helper-validator-option": { - "version": "7.14.5", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz", - "integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==" + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", + "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==" }, "@babel/helper-wrap-function": { - "version": "7.15.4", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/helper-wrap-function/-/helper-wrap-function-7.15.4.tgz", - "integrity": "sha512-Y2o+H/hRV5W8QhIfTpRIBwl57y8PrZt6JM3V8FOo5qarjshHItyH5lXlpMfBfmBefOqSCpKZs/6Dxqp0E/U+uw==", + "version": "7.16.8", + "resolved": "https://registry.npmmirror.com/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz", + "integrity": "sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw==", "requires": { - "@babel/helper-function-name": "^7.15.4", - "@babel/template": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4" + "@babel/helper-function-name": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.16.8", + "@babel/types": "^7.16.8" } }, "@babel/helpers": { - "version": "7.15.4", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/helpers/-/helpers-7.15.4.tgz", - "integrity": "sha512-V45u6dqEJ3w2rlryYYXf6i9rQ5YMNu4FLS6ngs8ikblhu2VdR1AqAd6aJjBzmf2Qzh6KOLqKHxEN9+TFbAkAVQ==", + "version": "7.17.2", + "resolved": "https://registry.npmmirror.com/@babel/helpers/-/helpers-7.17.2.tgz", + "integrity": "sha512-0Qu7RLR1dILozr/6M0xgj+DFPmi6Bnulgm9M8BVa9ZCWxDqlSnqt3cf8IDPB5m45sVXUZ0kuQAgUrdSFFH79fQ==", "requires": { - "@babel/template": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4" + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.17.0", + "@babel/types": "^7.17.0" } }, "@babel/highlight": { - "version": "7.14.5", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/highlight/-/highlight-7.14.5.tgz", - "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", + "version": "7.16.10", + "resolved": "https://registry.npmmirror.com/@babel/highlight/-/highlight-7.16.10.tgz", + "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==", "requires": { - "@babel/helper-validator-identifier": "^7.14.5", + "@babel/helper-validator-identifier": "^7.16.7", "chalk": "^2.0.0", "js-tokens": "^4.0.0" } }, "@babel/parser": { - "version": "7.15.8", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/parser/-/parser-7.15.8.tgz", - "integrity": "sha512-BRYa3wcQnjS/nqI8Ac94pYYpJfojHVvVXJ97+IDCImX4Jc8W8Xv1+47enbruk+q1etOpsQNwnfFcNGw+gtPGxA==" + "version": "7.17.3", + "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.17.3.tgz", + "integrity": "sha512-7yJPvPV+ESz2IUTPbOL+YkIGyCqOyNIzdguKQuJGnH7bg1WTIifuM21YqokFt/THWh1AkCRn9IgoykTRCBVpzA==" + }, + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7.tgz", + "integrity": "sha512-anv/DObl7waiGEnC24O9zqL0pSuI9hljihqiDuFHC8d7/bjr/4RLGPWuc8rYOff/QPzbEPSkzG8wGG9aDuhHRg==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } }, "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.15.4", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.15.4.tgz", - "integrity": "sha512-eBnpsl9tlhPhpI10kU06JHnrYXwg3+V6CaP2idsCXNef0aeslpqyITXQ74Vfk5uHgY7IG7XP0yIH8b42KSzHog==", + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7.tgz", + "integrity": "sha512-di8vUHRdf+4aJ7ltXhaDbPoszdkh59AQtJM5soLsuHpQJdFQZOA4uGj0V2u/CZ8bJ/u8ULDL5yq6FO/bCXnKHw==", "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.15.4", - "@babel/plugin-proposal-optional-chaining": "^7.14.5" + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", + "@babel/plugin-proposal-optional-chaining": "^7.16.7" } }, "@babel/plugin-proposal-async-generator-functions": { - "version": "7.15.8", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.15.8.tgz", - "integrity": "sha512-2Z5F2R2ibINTc63mY7FLqGfEbmofrHU9FitJW1Q7aPaKFhiPvSq6QEt/BoWN5oME3GVyjcRuNNSRbb9LC0CSWA==", + "version": "7.16.8", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz", + "integrity": "sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ==", "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-remap-async-to-generator": "^7.15.4", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-remap-async-to-generator": "^7.16.8", "@babel/plugin-syntax-async-generators": "^7.8.4" } }, "@babel/plugin-proposal-class-properties": { - "version": "7.14.5", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.14.5.tgz", - "integrity": "sha512-q/PLpv5Ko4dVc1LYMpCY7RVAAO4uk55qPwrIuJ5QJ8c6cVuAmhu7I/49JOppXL6gXf7ZHzpRVEUZdYoPLM04Gg==", + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz", + "integrity": "sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww==", "requires": { - "@babel/helper-create-class-features-plugin": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-create-class-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-proposal-class-static-block": { - "version": "7.15.4", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.15.4.tgz", - "integrity": "sha512-M682XWrrLNk3chXCjoPUQWOyYsB93B9z3mRyjtqqYJWDf2mfCdIYgDrA11cgNVhAQieaq6F2fn2f3wI0U4aTjA==", + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.16.7.tgz", + "integrity": "sha512-dgqJJrcZoG/4CkMopzhPJjGxsIe9A8RlkQLnL/Vhhx8AA9ZuaRwGSlscSh42hazc7WSrya/IK7mTeoF0DP9tEw==", "requires": { - "@babel/helper-create-class-features-plugin": "^7.15.4", - "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-create-class-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", "@babel/plugin-syntax-class-static-block": "^7.14.5" } }, "@babel/plugin-proposal-dynamic-import": { - "version": "7.14.5", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.14.5.tgz", - "integrity": "sha512-ExjiNYc3HDN5PXJx+bwC50GIx/KKanX2HiggnIUAYedbARdImiCU4RhhHfdf0Kd7JNXGpsBBBCOm+bBVy3Gb0g==", + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz", + "integrity": "sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==", "requires": { - "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-plugin-utils": "^7.16.7", "@babel/plugin-syntax-dynamic-import": "^7.8.3" } }, "@babel/plugin-proposal-export-namespace-from": { - "version": "7.14.5", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.14.5.tgz", - "integrity": "sha512-g5POA32bXPMmSBu5Dx/iZGLGnKmKPc5AiY7qfZgurzrCYgIztDlHFbznSNCoQuv57YQLnQfaDi7dxCtLDIdXdA==", + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.7.tgz", + "integrity": "sha512-ZxdtqDXLRGBL64ocZcs7ovt71L3jhC1RGSyR996svrCi3PYqHNkb3SwPJCs8RIzD86s+WPpt2S73+EHCGO+NUA==", "requires": { - "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-plugin-utils": "^7.16.7", "@babel/plugin-syntax-export-namespace-from": "^7.8.3" } }, "@babel/plugin-proposal-json-strings": { - "version": "7.14.5", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.14.5.tgz", - "integrity": "sha512-NSq2fczJYKVRIsUJyNxrVUMhB27zb7N7pOFGQOhBKJrChbGcgEAqyZrmZswkPk18VMurEeJAaICbfm57vUeTbQ==", + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.7.tgz", + "integrity": "sha512-lNZ3EEggsGY78JavgbHsK9u5P3pQaW7k4axlgFLYkMd7UBsiNahCITShLjNQschPyjtO6dADrL24757IdhBrsQ==", "requires": { - "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-plugin-utils": "^7.16.7", "@babel/plugin-syntax-json-strings": "^7.8.3" } }, "@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.14.5", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.14.5.tgz", - "integrity": "sha512-YGn2AvZAo9TwyhlLvCCWxD90Xq8xJ4aSgaX3G5D/8DW94L8aaT+dS5cSP+Z06+rCJERGSr9GxMBZ601xoc2taw==", + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.7.tgz", + "integrity": "sha512-K3XzyZJGQCr00+EtYtrDjmwX7o7PLK6U9bi1nCwkQioRFVUv6dJoxbQjtWVtP+bCPy82bONBKG8NPyQ4+i6yjg==", "requires": { - "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-plugin-utils": "^7.16.7", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" } }, "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.14.5", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.14.5.tgz", - "integrity": "sha512-gun/SOnMqjSb98Nkaq2rTKMwervfdAoz6NphdY0vTfuzMfryj+tDGb2n6UkDKwez+Y8PZDhE3D143v6Gepp4Hg==", + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.7.tgz", + "integrity": "sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ==", "requires": { - "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-plugin-utils": "^7.16.7", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" } }, "@babel/plugin-proposal-numeric-separator": { - "version": "7.14.5", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.14.5.tgz", - "integrity": "sha512-yiclALKe0vyZRZE0pS6RXgjUOt87GWv6FYa5zqj15PvhOGFO69R5DusPlgK/1K5dVnCtegTiWu9UaBSrLLJJBg==", + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz", + "integrity": "sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==", "requires": { - "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-plugin-utils": "^7.16.7", "@babel/plugin-syntax-numeric-separator": "^7.10.4" } }, "@babel/plugin-proposal-object-rest-spread": { - "version": "7.15.6", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.15.6.tgz", - "integrity": "sha512-qtOHo7A1Vt+O23qEAX+GdBpqaIuD3i9VRrWgCJeq7WO6H2d14EK3q11urj5Te2MAeK97nMiIdRpwd/ST4JFbNg==", + "version": "7.17.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.17.3.tgz", + "integrity": "sha512-yuL5iQA/TbZn+RGAfxQXfi7CNLmKi1f8zInn4IgobuCWcAb7i+zj4TYzQ9l8cEzVyJ89PDGuqxK1xZpUDISesw==", "requires": { - "@babel/compat-data": "^7.15.0", - "@babel/helper-compilation-targets": "^7.15.4", - "@babel/helper-plugin-utils": "^7.14.5", + "@babel/compat-data": "^7.17.0", + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.15.4" + "@babel/plugin-transform-parameters": "^7.16.7" } }, "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.14.5", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.14.5.tgz", - "integrity": "sha512-3Oyiixm0ur7bzO5ybNcZFlmVsygSIQgdOa7cTfOYCMY+wEPAYhZAJxi3mixKFCTCKUhQXuCTtQ1MzrpL3WT8ZQ==", + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz", + "integrity": "sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA==", "requires": { - "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-plugin-utils": "^7.16.7", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" } }, "@babel/plugin-proposal-optional-chaining": { - "version": "7.14.5", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.14.5.tgz", - "integrity": "sha512-ycz+VOzo2UbWNI1rQXxIuMOzrDdHGrI23fRiz/Si2R4kv2XZQ1BK8ccdHwehMKBlcH/joGW/tzrUmo67gbJHlQ==", + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz", + "integrity": "sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA==", "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.14.5", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", "@babel/plugin-syntax-optional-chaining": "^7.8.3" } }, "@babel/plugin-proposal-private-methods": { - "version": "7.14.5", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.14.5.tgz", - "integrity": "sha512-838DkdUA1u+QTCplatfq4B7+1lnDa/+QMI89x5WZHBcnNv+47N8QEj2k9I2MUU9xIv8XJ4XvPCviM/Dj7Uwt9g==", + "version": "7.16.11", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.11.tgz", + "integrity": "sha512-F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw==", "requires": { - "@babel/helper-create-class-features-plugin": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-create-class-features-plugin": "^7.16.10", + "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-proposal-private-property-in-object": { - "version": "7.15.4", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.15.4.tgz", - "integrity": "sha512-X0UTixkLf0PCCffxgu5/1RQyGGbgZuKoI+vXP4iSbJSYwPb7hu06omsFGBvQ9lJEvwgrxHdS8B5nbfcd8GyUNA==", + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.7.tgz", + "integrity": "sha512-rMQkjcOFbm+ufe3bTZLyOfsOUOxyvLXZJCTARhJr+8UMSoZmqTe1K1BgkFcrW37rAchWg57yI69ORxiWvUINuQ==", "requires": { - "@babel/helper-annotate-as-pure": "^7.15.4", - "@babel/helper-create-class-features-plugin": "^7.15.4", - "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-create-class-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", "@babel/plugin-syntax-private-property-in-object": "^7.14.5" } }, "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.14.5", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.14.5.tgz", - "integrity": "sha512-6axIeOU5LnY471KenAB9vI8I5j7NQ2d652hIYwVyRfgaZT5UpiqFKCuVXCDMSrU+3VFafnu2c5m3lrWIlr6A5Q==", + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.7.tgz", + "integrity": "sha512-QRK0YI/40VLhNVGIjRNAAQkEHws0cswSdFFjpFyt943YmJIU1da9uW63Iu6NFV6CxTZW5eTDCrwZUstBWgp/Rg==", "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-create-regexp-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-syntax-async-generators": { "version": "7.8.4", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", "requires": { "@babel/helper-plugin-utils": "^7.8.0" @@ -446,7 +4066,7 @@ }, "@babel/plugin-syntax-class-properties": { "version": "7.12.13", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", "requires": { "@babel/helper-plugin-utils": "^7.12.13" @@ -454,7 +4074,7 @@ }, "@babel/plugin-syntax-class-static-block": { "version": "7.14.5", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", "requires": { "@babel/helper-plugin-utils": "^7.14.5" @@ -462,7 +4082,7 @@ }, "@babel/plugin-syntax-dynamic-import": { "version": "7.8.3", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", "requires": { "@babel/helper-plugin-utils": "^7.8.0" @@ -470,7 +4090,7 @@ }, "@babel/plugin-syntax-export-namespace-from": { "version": "7.8.3", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", "requires": { "@babel/helper-plugin-utils": "^7.8.3" @@ -478,7 +4098,7 @@ }, "@babel/plugin-syntax-json-strings": { "version": "7.8.3", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", "requires": { "@babel/helper-plugin-utils": "^7.8.0" @@ -486,7 +4106,7 @@ }, "@babel/plugin-syntax-logical-assignment-operators": { "version": "7.10.4", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", "requires": { "@babel/helper-plugin-utils": "^7.10.4" @@ -494,7 +4114,7 @@ }, "@babel/plugin-syntax-nullish-coalescing-operator": { "version": "7.8.3", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", "requires": { "@babel/helper-plugin-utils": "^7.8.0" @@ -502,7 +4122,7 @@ }, "@babel/plugin-syntax-numeric-separator": { "version": "7.10.4", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", "requires": { "@babel/helper-plugin-utils": "^7.10.4" @@ -510,7 +4130,7 @@ }, "@babel/plugin-syntax-object-rest-spread": { "version": "7.8.3", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", "requires": { "@babel/helper-plugin-utils": "^7.8.0" @@ -518,7 +4138,7 @@ }, "@babel/plugin-syntax-optional-catch-binding": { "version": "7.8.3", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", "requires": { "@babel/helper-plugin-utils": "^7.8.0" @@ -526,7 +4146,7 @@ }, "@babel/plugin-syntax-optional-chaining": { "version": "7.8.3", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", "requires": { "@babel/helper-plugin-utils": "^7.8.0" @@ -534,7 +4154,7 @@ }, "@babel/plugin-syntax-private-property-in-object": { "version": "7.14.5", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", "requires": { "@babel/helper-plugin-utils": "^7.14.5" @@ -542,317 +4162,320 @@ }, "@babel/plugin-syntax-top-level-await": { "version": "7.14.5", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", "requires": { "@babel/helper-plugin-utils": "^7.14.5" } }, "@babel/plugin-transform-arrow-functions": { - "version": "7.14.5", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.14.5.tgz", - "integrity": "sha512-KOnO0l4+tD5IfOdi4x8C1XmEIRWUjNRV8wc6K2vz/3e8yAOoZZvsRXRRIF/yo/MAOFb4QjtAw9xSxMXbSMRy8A==", + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz", + "integrity": "sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ==", "requires": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-async-to-generator": { - "version": "7.14.5", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.14.5.tgz", - "integrity": "sha512-szkbzQ0mNk0rpu76fzDdqSyPu0MuvpXgC+6rz5rpMb5OIRxdmHfQxrktL8CYolL2d8luMCZTR0DpIMIdL27IjA==", + "version": "7.16.8", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz", + "integrity": "sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg==", "requires": { - "@babel/helper-module-imports": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-remap-async-to-generator": "^7.14.5" + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-remap-async-to-generator": "^7.16.8" } }, "@babel/plugin-transform-block-scoped-functions": { - "version": "7.14.5", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.14.5.tgz", - "integrity": "sha512-dtqWqdWZ5NqBX3KzsVCWfQI3A53Ft5pWFCT2eCVUftWZgjc5DpDponbIF1+c+7cSGk2wN0YK7HGL/ezfRbpKBQ==", + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz", + "integrity": "sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==", "requires": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-block-scoping": { - "version": "7.15.3", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.15.3.tgz", - "integrity": "sha512-nBAzfZwZb4DkaGtOes1Up1nOAp9TDRRFw4XBzBBSG9QK7KVFmYzgj9o9sbPv7TX5ofL4Auq4wZnxCoPnI/lz2Q==", + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.7.tgz", + "integrity": "sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ==", "requires": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-classes": { - "version": "7.15.4", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/plugin-transform-classes/-/plugin-transform-classes-7.15.4.tgz", - "integrity": "sha512-Yjvhex8GzBmmPQUvpXRPWQ9WnxXgAFuZSrqOK/eJlOGIXwvv8H3UEdUigl1gb/bnjTrln+e8bkZUYCBt/xYlBg==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.15.4", - "@babel/helper-function-name": "^7.15.4", - "@babel/helper-optimise-call-expression": "^7.15.4", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-replace-supers": "^7.15.4", - "@babel/helper-split-export-declaration": "^7.15.4", + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz", + "integrity": "sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", "globals": "^11.1.0" } }, "@babel/plugin-transform-computed-properties": { - "version": "7.14.5", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.14.5.tgz", - "integrity": "sha512-pWM+E4283UxaVzLb8UBXv4EIxMovU4zxT1OPnpHJcmnvyY9QbPPTKZfEj31EUvG3/EQRbYAGaYEUZ4yWOBC2xg==", + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz", + "integrity": "sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw==", "requires": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-destructuring": { - "version": "7.14.7", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.14.7.tgz", - "integrity": "sha512-0mDE99nK+kVh3xlc5vKwB6wnP9ecuSj+zQCa/n0voENtP/zymdT4HH6QEb65wjjcbqr1Jb/7z9Qp7TF5FtwYGw==", + "version": "7.17.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.17.3.tgz", + "integrity": "sha512-dDFzegDYKlPqa72xIlbmSkly5MluLoaC1JswABGktyt6NTXSBcUuse/kWE/wvKFWJHPETpi158qJZFS3JmykJg==", "requires": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-dotall-regex": { - "version": "7.14.5", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.14.5.tgz", - "integrity": "sha512-loGlnBdj02MDsFaHhAIJzh7euK89lBrGIdM9EAtHFo6xKygCUGuuWe07o1oZVk287amtW1n0808sQM99aZt3gw==", + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz", + "integrity": "sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ==", "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-create-regexp-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-duplicate-keys": { - "version": "7.14.5", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.14.5.tgz", - "integrity": "sha512-iJjbI53huKbPDAsJ8EmVmvCKeeq21bAze4fu9GBQtSLqfvzj2oRuHVx4ZkDwEhg1htQ+5OBZh/Ab0XDf5iBZ7A==", + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.7.tgz", + "integrity": "sha512-03DvpbRfvWIXyK0/6QiR1KMTWeT6OcQ7tbhjrXyFS02kjuX/mu5Bvnh5SDSWHxyawit2g5aWhKwI86EE7GUnTw==", "requires": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-exponentiation-operator": { - "version": "7.14.5", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.14.5.tgz", - "integrity": "sha512-jFazJhMBc9D27o9jDnIE5ZErI0R0m7PbKXVq77FFvqFbzvTMuv8jaAwLZ5PviOLSFttqKIW0/wxNSDbjLk0tYA==", + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz", + "integrity": "sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA==", "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-for-of": { - "version": "7.15.4", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.15.4.tgz", - "integrity": "sha512-DRTY9fA751AFBDh2oxydvVm4SYevs5ILTWLs6xKXps4Re/KG5nfUkr+TdHCrRWB8C69TlzVgA9b3RmGWmgN9LA==", + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz", + "integrity": "sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg==", "requires": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-function-name": { - "version": "7.14.5", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.14.5.tgz", - "integrity": "sha512-vbO6kv0fIzZ1GpmGQuvbwwm+O4Cbm2NrPzwlup9+/3fdkuzo1YqOZcXw26+YUJB84Ja7j9yURWposEHLYwxUfQ==", + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz", + "integrity": "sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==", "requires": { - "@babel/helper-function-name": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-literals": { - "version": "7.14.5", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/plugin-transform-literals/-/plugin-transform-literals-7.14.5.tgz", - "integrity": "sha512-ql33+epql2F49bi8aHXxvLURHkxJbSmMKl9J5yHqg4PLtdE6Uc48CH1GS6TQvZ86eoB/ApZXwm7jlA+B3kra7A==", + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.7.tgz", + "integrity": "sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ==", "requires": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-member-expression-literals": { - "version": "7.14.5", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.14.5.tgz", - "integrity": "sha512-WkNXxH1VXVTKarWFqmso83xl+2V3Eo28YY5utIkbsmXoItO8Q3aZxN4BTS2k0hz9dGUloHK26mJMyQEYfkn/+Q==", + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz", + "integrity": "sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==", "requires": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-modules-amd": { - "version": "7.14.5", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.14.5.tgz", - "integrity": "sha512-3lpOU8Vxmp3roC4vzFpSdEpGUWSMsHFreTWOMMLzel2gNGfHE5UWIh/LN6ghHs2xurUp4jRFYMUIZhuFbody1g==", + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.7.tgz", + "integrity": "sha512-KaaEtgBL7FKYwjJ/teH63oAmE3lP34N3kshz8mm4VMAw7U3PxjVwwUmxEFksbgsNUaO3wId9R2AVQYSEGRa2+g==", "requires": { - "@babel/helper-module-transforms": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-module-transforms": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", "babel-plugin-dynamic-import-node": "^2.3.3" } }, "@babel/plugin-transform-modules-commonjs": { - "version": "7.15.4", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.15.4.tgz", - "integrity": "sha512-qg4DPhwG8hKp4BbVDvX1s8cohM8a6Bvptu4l6Iingq5rW+yRUAhe/YRup/YcW2zCOlrysEWVhftIcKzrEZv3sA==", + "version": "7.16.8", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.8.tgz", + "integrity": "sha512-oflKPvsLT2+uKQopesJt3ApiaIS2HW+hzHFcwRNtyDGieAeC/dIHZX8buJQ2J2X1rxGPy4eRcUijm3qcSPjYcA==", "requires": { - "@babel/helper-module-transforms": "^7.15.4", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-simple-access": "^7.15.4", + "@babel/helper-module-transforms": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-simple-access": "^7.16.7", "babel-plugin-dynamic-import-node": "^2.3.3" } }, "@babel/plugin-transform-modules-systemjs": { - "version": "7.15.4", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.15.4.tgz", - "integrity": "sha512-fJUnlQrl/mezMneR72CKCgtOoahqGJNVKpompKwzv3BrEXdlPspTcyxrZ1XmDTIr9PpULrgEQo3qNKp6dW7ssw==", - "requires": { - "@babel/helper-hoist-variables": "^7.15.4", - "@babel/helper-module-transforms": "^7.15.4", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-validator-identifier": "^7.14.9", + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.16.7.tgz", + "integrity": "sha512-DuK5E3k+QQmnOqBR9UkusByy5WZWGRxfzV529s9nPra1GE7olmxfqO2FHobEOYSPIjPBTr4p66YDcjQnt8cBmw==", + "requires": { + "@babel/helper-hoist-variables": "^7.16.7", + "@babel/helper-module-transforms": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-validator-identifier": "^7.16.7", "babel-plugin-dynamic-import-node": "^2.3.3" } }, "@babel/plugin-transform-modules-umd": { - "version": "7.14.5", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.14.5.tgz", - "integrity": "sha512-RfPGoagSngC06LsGUYyM9QWSXZ8MysEjDJTAea1lqRjNECE3y0qIJF/qbvJxc4oA4s99HumIMdXOrd+TdKaAAA==", + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.7.tgz", + "integrity": "sha512-EMh7uolsC8O4xhudF2F6wedbSHm1HHZ0C6aJ7K67zcDNidMzVcxWdGr+htW9n21klm+bOn+Rx4CBsAntZd3rEQ==", "requires": { - "@babel/helper-module-transforms": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-module-transforms": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.14.9", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.14.9.tgz", - "integrity": "sha512-l666wCVYO75mlAtGFfyFwnWmIXQm3kSH0C3IRnJqWcZbWkoihyAdDhFm2ZWaxWTqvBvhVFfJjMRQ0ez4oN1yYA==", + "version": "7.16.8", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.8.tgz", + "integrity": "sha512-j3Jw+n5PvpmhRR+mrgIh04puSANCk/T/UA3m3P1MjJkhlK906+ApHhDIqBQDdOgL/r1UYpz4GNclTXxyZrYGSw==", "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.14.5" + "@babel/helper-create-regexp-features-plugin": "^7.16.7" } }, "@babel/plugin-transform-new-target": { - "version": "7.14.5", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.14.5.tgz", - "integrity": "sha512-Nx054zovz6IIRWEB49RDRuXGI4Gy0GMgqG0cII9L3MxqgXz/+rgII+RU58qpo4g7tNEx1jG7rRVH4ihZoP4esQ==", + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.7.tgz", + "integrity": "sha512-xiLDzWNMfKoGOpc6t3U+etCE2yRnn3SM09BXqWPIZOBpL2gvVrBWUKnsJx0K/ADi5F5YC5f8APFfWrz25TdlGg==", "requires": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-object-super": { - "version": "7.14.5", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.14.5.tgz", - "integrity": "sha512-MKfOBWzK0pZIrav9z/hkRqIk/2bTv9qvxHzPQc12RcVkMOzpIKnFCNYJip00ssKWYkd8Sf5g0Wr7pqJ+cmtuFg==", + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz", + "integrity": "sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==", "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-replace-supers": "^7.14.5" + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7" } }, "@babel/plugin-transform-parameters": { - "version": "7.15.4", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.15.4.tgz", - "integrity": "sha512-9WB/GUTO6lvJU3XQsSr6J/WKvBC2hcs4Pew8YxZagi6GkTdniyqp8On5kqdK8MN0LMeu0mGbhPN+O049NV/9FQ==", + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.7.tgz", + "integrity": "sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw==", "requires": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-property-literals": { - "version": "7.14.5", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.14.5.tgz", - "integrity": "sha512-r1uilDthkgXW8Z1vJz2dKYLV1tuw2xsbrp3MrZmD99Wh9vsfKoob+JTgri5VUb/JqyKRXotlOtwgu4stIYCmnw==", + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz", + "integrity": "sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==", "requires": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-regenerator": { - "version": "7.14.5", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.14.5.tgz", - "integrity": "sha512-NVIY1W3ITDP5xQl50NgTKlZ0GrotKtLna08/uGY6ErQt6VEQZXla86x/CTddm5gZdcr+5GSsvMeTmWA5Ii6pkg==", + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.7.tgz", + "integrity": "sha512-mF7jOgGYCkSJagJ6XCujSQg+6xC1M77/03K2oBmVJWoFGNUtnVJO4WHKJk3dnPC8HCcj4xBQP1Egm8DWh3Pb3Q==", "requires": { "regenerator-transform": "^0.14.2" } }, "@babel/plugin-transform-reserved-words": { - "version": "7.14.5", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.14.5.tgz", - "integrity": "sha512-cv4F2rv1nD4qdexOGsRQXJrOcyb5CrgjUH9PKrrtyhSDBNWGxd0UIitjyJiWagS+EbUGjG++22mGH1Pub8D6Vg==", + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.7.tgz", + "integrity": "sha512-KQzzDnZ9hWQBjwi5lpY5v9shmm6IVG0U9pB18zvMu2i4H90xpT4gmqwPYsn8rObiadYe2M0gmgsiOIF5A/2rtg==", "requires": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-shorthand-properties": { - "version": "7.14.5", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.14.5.tgz", - "integrity": "sha512-xLucks6T1VmGsTB+GWK5Pl9Jl5+nRXD1uoFdA5TSO6xtiNjtXTjKkmPdFXVLGlK5A2/or/wQMKfmQ2Y0XJfn5g==", + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz", + "integrity": "sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==", "requires": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-spread": { - "version": "7.15.8", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/plugin-transform-spread/-/plugin-transform-spread-7.15.8.tgz", - "integrity": "sha512-/daZ8s2tNaRekl9YJa9X4bzjpeRZLt122cpgFnQPLGUe61PH8zMEBmYqKkW5xF5JUEh5buEGXJoQpqBmIbpmEQ==", + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.7.tgz", + "integrity": "sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg==", "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.15.4" + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0" } }, "@babel/plugin-transform-sticky-regex": { - "version": "7.14.5", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.14.5.tgz", - "integrity": "sha512-Z7F7GyvEMzIIbwnziAZmnSNpdijdr4dWt+FJNBnBLz5mwDFkqIXU9wmBcWWad3QeJF5hMTkRe4dAq2sUZiG+8A==", + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz", + "integrity": "sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==", "requires": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-template-literals": { - "version": "7.14.5", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.14.5.tgz", - "integrity": "sha512-22btZeURqiepOfuy/VkFr+zStqlujWaarpMErvay7goJS6BWwdd6BY9zQyDLDa4x2S3VugxFb162IZ4m/S/+Gg==", + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.7.tgz", + "integrity": "sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA==", "requires": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-typeof-symbol": { - "version": "7.14.5", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.14.5.tgz", - "integrity": "sha512-lXzLD30ffCWseTbMQzrvDWqljvZlHkXU+CnseMhkMNqU1sASnCsz3tSzAaH3vCUXb9PHeUb90ZT1BdFTm1xxJw==", + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.7.tgz", + "integrity": "sha512-p2rOixCKRJzpg9JB4gjnG4gjWkWa89ZoYUnl9snJ1cWIcTH/hvxZqfO+WjG6T8DRBpctEol5jw1O5rA8gkCokQ==", "requires": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-unicode-escapes": { - "version": "7.14.5", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.14.5.tgz", - "integrity": "sha512-crTo4jATEOjxj7bt9lbYXcBAM3LZaUrbP2uUdxb6WIorLmjNKSpHfIybgY4B8SRpbf8tEVIWH3Vtm7ayCrKocA==", + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz", + "integrity": "sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q==", "requires": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-unicode-regex": { - "version": "7.14.5", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.14.5.tgz", - "integrity": "sha512-UygduJpC5kHeCiRw/xDVzC+wj8VaYSoKl5JNVmbP7MadpNinAm3SvZCxZ42H37KZBKztz46YC73i9yV34d0Tzw==", + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz", + "integrity": "sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q==", "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-create-regexp-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/preset-env": { - "version": "7.15.8", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/preset-env/-/preset-env-7.15.8.tgz", - "integrity": "sha512-rCC0wH8husJgY4FPbHsiYyiLxSY8oMDJH7Rl6RQMknbN9oDDHhM9RDFvnGM2MgkbUJzSQB4gtuwygY5mCqGSsA==", - "requires": { - "@babel/compat-data": "^7.15.0", - "@babel/helper-compilation-targets": "^7.15.4", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-validator-option": "^7.14.5", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.15.4", - "@babel/plugin-proposal-async-generator-functions": "^7.15.8", - "@babel/plugin-proposal-class-properties": "^7.14.5", - "@babel/plugin-proposal-class-static-block": "^7.15.4", - "@babel/plugin-proposal-dynamic-import": "^7.14.5", - "@babel/plugin-proposal-export-namespace-from": "^7.14.5", - "@babel/plugin-proposal-json-strings": "^7.14.5", - "@babel/plugin-proposal-logical-assignment-operators": "^7.14.5", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.14.5", - "@babel/plugin-proposal-numeric-separator": "^7.14.5", - "@babel/plugin-proposal-object-rest-spread": "^7.15.6", - "@babel/plugin-proposal-optional-catch-binding": "^7.14.5", - "@babel/plugin-proposal-optional-chaining": "^7.14.5", - "@babel/plugin-proposal-private-methods": "^7.14.5", - "@babel/plugin-proposal-private-property-in-object": "^7.15.4", - "@babel/plugin-proposal-unicode-property-regex": "^7.14.5", + "version": "7.16.11", + "resolved": "https://registry.npmmirror.com/@babel/preset-env/-/preset-env-7.16.11.tgz", + "integrity": "sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g==", + "requires": { + "@babel/compat-data": "^7.16.8", + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-validator-option": "^7.16.7", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.7", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.7", + "@babel/plugin-proposal-async-generator-functions": "^7.16.8", + "@babel/plugin-proposal-class-properties": "^7.16.7", + "@babel/plugin-proposal-class-static-block": "^7.16.7", + "@babel/plugin-proposal-dynamic-import": "^7.16.7", + "@babel/plugin-proposal-export-namespace-from": "^7.16.7", + "@babel/plugin-proposal-json-strings": "^7.16.7", + "@babel/plugin-proposal-logical-assignment-operators": "^7.16.7", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.7", + "@babel/plugin-proposal-numeric-separator": "^7.16.7", + "@babel/plugin-proposal-object-rest-spread": "^7.16.7", + "@babel/plugin-proposal-optional-catch-binding": "^7.16.7", + "@babel/plugin-proposal-optional-chaining": "^7.16.7", + "@babel/plugin-proposal-private-methods": "^7.16.11", + "@babel/plugin-proposal-private-property-in-object": "^7.16.7", + "@babel/plugin-proposal-unicode-property-regex": "^7.16.7", "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-syntax-class-static-block": "^7.14.5", @@ -867,51 +4490,51 @@ "@babel/plugin-syntax-optional-chaining": "^7.8.3", "@babel/plugin-syntax-private-property-in-object": "^7.14.5", "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.14.5", - "@babel/plugin-transform-async-to-generator": "^7.14.5", - "@babel/plugin-transform-block-scoped-functions": "^7.14.5", - "@babel/plugin-transform-block-scoping": "^7.15.3", - "@babel/plugin-transform-classes": "^7.15.4", - "@babel/plugin-transform-computed-properties": "^7.14.5", - "@babel/plugin-transform-destructuring": "^7.14.7", - "@babel/plugin-transform-dotall-regex": "^7.14.5", - "@babel/plugin-transform-duplicate-keys": "^7.14.5", - "@babel/plugin-transform-exponentiation-operator": "^7.14.5", - "@babel/plugin-transform-for-of": "^7.15.4", - "@babel/plugin-transform-function-name": "^7.14.5", - "@babel/plugin-transform-literals": "^7.14.5", - "@babel/plugin-transform-member-expression-literals": "^7.14.5", - "@babel/plugin-transform-modules-amd": "^7.14.5", - "@babel/plugin-transform-modules-commonjs": "^7.15.4", - "@babel/plugin-transform-modules-systemjs": "^7.15.4", - "@babel/plugin-transform-modules-umd": "^7.14.5", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.14.9", - "@babel/plugin-transform-new-target": "^7.14.5", - "@babel/plugin-transform-object-super": "^7.14.5", - "@babel/plugin-transform-parameters": "^7.15.4", - "@babel/plugin-transform-property-literals": "^7.14.5", - "@babel/plugin-transform-regenerator": "^7.14.5", - "@babel/plugin-transform-reserved-words": "^7.14.5", - "@babel/plugin-transform-shorthand-properties": "^7.14.5", - "@babel/plugin-transform-spread": "^7.15.8", - "@babel/plugin-transform-sticky-regex": "^7.14.5", - "@babel/plugin-transform-template-literals": "^7.14.5", - "@babel/plugin-transform-typeof-symbol": "^7.14.5", - "@babel/plugin-transform-unicode-escapes": "^7.14.5", - "@babel/plugin-transform-unicode-regex": "^7.14.5", - "@babel/preset-modules": "^0.1.4", - "@babel/types": "^7.15.6", - "babel-plugin-polyfill-corejs2": "^0.2.2", - "babel-plugin-polyfill-corejs3": "^0.2.5", - "babel-plugin-polyfill-regenerator": "^0.2.2", - "core-js-compat": "^3.16.0", + "@babel/plugin-transform-arrow-functions": "^7.16.7", + "@babel/plugin-transform-async-to-generator": "^7.16.8", + "@babel/plugin-transform-block-scoped-functions": "^7.16.7", + "@babel/plugin-transform-block-scoping": "^7.16.7", + "@babel/plugin-transform-classes": "^7.16.7", + "@babel/plugin-transform-computed-properties": "^7.16.7", + "@babel/plugin-transform-destructuring": "^7.16.7", + "@babel/plugin-transform-dotall-regex": "^7.16.7", + "@babel/plugin-transform-duplicate-keys": "^7.16.7", + "@babel/plugin-transform-exponentiation-operator": "^7.16.7", + "@babel/plugin-transform-for-of": "^7.16.7", + "@babel/plugin-transform-function-name": "^7.16.7", + "@babel/plugin-transform-literals": "^7.16.7", + "@babel/plugin-transform-member-expression-literals": "^7.16.7", + "@babel/plugin-transform-modules-amd": "^7.16.7", + "@babel/plugin-transform-modules-commonjs": "^7.16.8", + "@babel/plugin-transform-modules-systemjs": "^7.16.7", + "@babel/plugin-transform-modules-umd": "^7.16.7", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.16.8", + "@babel/plugin-transform-new-target": "^7.16.7", + "@babel/plugin-transform-object-super": "^7.16.7", + "@babel/plugin-transform-parameters": "^7.16.7", + "@babel/plugin-transform-property-literals": "^7.16.7", + "@babel/plugin-transform-regenerator": "^7.16.7", + "@babel/plugin-transform-reserved-words": "^7.16.7", + "@babel/plugin-transform-shorthand-properties": "^7.16.7", + "@babel/plugin-transform-spread": "^7.16.7", + "@babel/plugin-transform-sticky-regex": "^7.16.7", + "@babel/plugin-transform-template-literals": "^7.16.7", + "@babel/plugin-transform-typeof-symbol": "^7.16.7", + "@babel/plugin-transform-unicode-escapes": "^7.16.7", + "@babel/plugin-transform-unicode-regex": "^7.16.7", + "@babel/preset-modules": "^0.1.5", + "@babel/types": "^7.16.8", + "babel-plugin-polyfill-corejs2": "^0.3.0", + "babel-plugin-polyfill-corejs3": "^0.5.0", + "babel-plugin-polyfill-regenerator": "^0.3.0", + "core-js-compat": "^3.20.2", "semver": "^6.3.0" } }, "@babel/preset-modules": { - "version": "0.1.4", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/preset-modules/-/preset-modules-0.1.4.tgz", - "integrity": "sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg==", + "version": "0.1.5", + "resolved": "https://registry.npmmirror.com/@babel/preset-modules/-/preset-modules-0.1.5.tgz", + "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", "requires": { "@babel/helper-plugin-utils": "^7.0.0", "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", @@ -921,51 +4544,71 @@ } }, "@babel/runtime": { - "version": "7.15.4", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/runtime/-/runtime-7.15.4.tgz", - "integrity": "sha512-99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw==", + "version": "7.17.2", + "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.17.2.tgz", + "integrity": "sha512-hzeyJyMA1YGdJTuWU0e/j4wKXrU4OMFvY2MSlaI9B7VQb0r5cxTE3EAIS2Q7Tn2RIcDkRvTA/v2JsAEhxe99uw==", "requires": { "regenerator-runtime": "^0.13.4" } }, "@babel/template": { - "version": "7.15.4", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/template/-/template-7.15.4.tgz", - "integrity": "sha512-UgBAfEa1oGuYgDIPM2G+aHa4Nlo9Lh6mGD2bDBGMTbYnc38vulXPuC1MGjYILIEmlwl6Rd+BPR9ee3gm20CBtg==", + "version": "7.16.7", + "resolved": "https://registry.npmmirror.com/@babel/template/-/template-7.16.7.tgz", + "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/parser": "^7.15.4", - "@babel/types": "^7.15.4" + "@babel/code-frame": "^7.16.7", + "@babel/parser": "^7.16.7", + "@babel/types": "^7.16.7" } }, "@babel/traverse": { - "version": "7.15.4", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/traverse/-/traverse-7.15.4.tgz", - "integrity": "sha512-W6lQD8l4rUbQR/vYgSuCAE75ADyyQvOpFVsvPPdkhf6lATXAsQIG9YdtOcu8BB1dZ0LKu+Zo3c1wEcbKeuhdlA==", - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.15.4", - "@babel/helper-function-name": "^7.15.4", - "@babel/helper-hoist-variables": "^7.15.4", - "@babel/helper-split-export-declaration": "^7.15.4", - "@babel/parser": "^7.15.4", - "@babel/types": "^7.15.4", + "version": "7.17.3", + "resolved": "https://registry.npmmirror.com/@babel/traverse/-/traverse-7.17.3.tgz", + "integrity": "sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw==", + "requires": { + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.17.3", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-hoist-variables": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/parser": "^7.17.3", + "@babel/types": "^7.17.0", "debug": "^4.1.0", "globals": "^11.1.0" } }, "@babel/types": { - "version": "7.15.6", - "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/types/-/types-7.15.6.tgz", - "integrity": "sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==", + "version": "7.17.0", + "resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.17.0.tgz", + "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", "requires": { - "@babel/helper-validator-identifier": "^7.14.9", + "@babel/helper-validator-identifier": "^7.16.7", "to-fast-properties": "^2.0.0" } }, + "@jridgewell/resolve-uri": { + "version": "3.0.5", + "resolved": "https://registry.npmmirror.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz", + "integrity": "sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==" + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.11", + "resolved": "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz", + "integrity": "sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==" + }, + "@jridgewell/trace-mapping": { + "version": "0.3.4", + "resolved": "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz", + "integrity": "sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ==", + "requires": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, "@sinonjs/commons": { "version": "1.8.3", - "resolved": "https://repo.huaweicloud.com/repository/npm/@sinonjs/commons/-/commons-1.8.3.tgz", + "resolved": "https://registry.npmmirror.com/@sinonjs/commons/-/commons-1.8.3.tgz", "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", "dev": true, "requires": { @@ -974,7 +4617,7 @@ }, "@sinonjs/fake-timers": { "version": "6.0.1", - "resolved": "https://repo.huaweicloud.com/repository/npm/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz", + "resolved": "https://registry.npmmirror.com/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz", "integrity": "sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==", "dev": true, "requires": { @@ -983,7 +4626,7 @@ }, "@sinonjs/samsam": { "version": "5.3.1", - "resolved": "https://repo.huaweicloud.com/repository/npm/@sinonjs/samsam/-/samsam-5.3.1.tgz", + "resolved": "https://registry.npmmirror.com/@sinonjs/samsam/-/samsam-5.3.1.tgz", "integrity": "sha512-1Hc0b1TtyfBu8ixF/tpfSHTVWKwCBLY4QJbkgnE7HcwyvT2xArDxb4K7dMgqRm3szI+LJbzmW/s4xxEhv6hwDg==", "dev": true, "requires": { @@ -994,41 +4637,41 @@ }, "@sinonjs/text-encoding": { "version": "0.7.1", - "resolved": "https://repo.huaweicloud.com/repository/npm/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz", + "resolved": "https://registry.npmmirror.com/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz", "integrity": "sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==", "dev": true }, "@types/chai": { - "version": "4.2.22", - "resolved": "https://repo.huaweicloud.com/repository/npm/@types/chai/-/chai-4.2.22.tgz", - "integrity": "sha512-tFfcE+DSTzWAgifkjik9AySNqIyNoYwmR+uecPwwD/XRNfvOjmC/FjCxpiUGDkDVDphPfCUecSQVFw+lN3M3kQ==", + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/@types/chai/-/chai-4.3.0.tgz", + "integrity": "sha512-/ceqdqeRraGolFTcfoXNiqjyQhZzbINDngeoAq9GoHa8PPK1yNzTaxWjA6BFWp5Ua9JpXEMSS4s5i9tS0hOJtw==", "dev": true }, "@types/command-line-args": { "version": "5.2.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/@types/command-line-args/-/command-line-args-5.2.0.tgz", + "resolved": "https://registry.npmmirror.com/@types/command-line-args/-/command-line-args-5.2.0.tgz", "integrity": "sha512-UuKzKpJJ/Ief6ufIaIzr3A/0XnluX7RvFgwkV89Yzvm77wCh1kFaFmqN8XEnGcN62EuHdedQjEMb8mYxFLGPyA==" }, "@types/command-line-usage": { "version": "5.0.2", - "resolved": "https://repo.huaweicloud.com/repository/npm/@types/command-line-usage/-/command-line-usage-5.0.2.tgz", + "resolved": "https://registry.npmmirror.com/@types/command-line-usage/-/command-line-usage-5.0.2.tgz", "integrity": "sha512-n7RlEEJ+4x4TS7ZQddTmNSxP+zziEG0TNsMfiRIxcIVXt71ENJ9ojeXmGO3wPoTdn7pJcU2xc3CJYMktNT6DPg==" }, "@types/mocha": { "version": "8.2.3", - "resolved": "https://repo.huaweicloud.com/repository/npm/@types/mocha/-/mocha-8.2.3.tgz", + "resolved": "https://registry.npmmirror.com/@types/mocha/-/mocha-8.2.3.tgz", "integrity": "sha512-ekGvFhFgrc2zYQoX4JeZPmVzZxw6Dtllga7iGHzfbYIYkAMUx/sAFP2GdFpLff+vdHXu5fl7WX9AT+TtqYcsyw==", "dev": true }, "@types/node": { - "version": "14.17.21", - "resolved": "https://repo.huaweicloud.com/repository/npm/@types/node/-/node-14.17.21.tgz", - "integrity": "sha512-zv8ukKci1mrILYiQOwGSV4FpkZhyxQtuFWGya2GujWg+zVAeRQ4qbaMmWp9vb9889CFA8JECH7lkwCL6Ygg8kA==", + "version": "14.18.12", + "resolved": "https://registry.npmmirror.com/@types/node/-/node-14.18.12.tgz", + "integrity": "sha512-q4jlIR71hUpWTnGhXWcakgkZeHa3CCjcQcnuzU8M891BAWA2jHiziiWEPEkdS5pFsz7H9HJiy8BrK7tBRNrY7A==", "dev": true }, "@types/sinon": { "version": "9.0.11", - "resolved": "https://repo.huaweicloud.com/repository/npm/@types/sinon/-/sinon-9.0.11.tgz", + "resolved": "https://registry.npmmirror.com/@types/sinon/-/sinon-9.0.11.tgz", "integrity": "sha512-PwP4UY33SeeVKodNE37ZlOsR9cReypbMJOhZ7BVE0lB+Hix3efCOxiJWiE5Ia+yL9Cn2Ch72EjFTRze8RZsNtg==", "dev": true, "requires": { @@ -1036,9 +4679,9 @@ } }, "@types/sinon-chai": { - "version": "3.2.5", - "resolved": "https://repo.huaweicloud.com/repository/npm/@types/sinon-chai/-/sinon-chai-3.2.5.tgz", - "integrity": "sha512-bKQqIpew7mmIGNRlxW6Zli/QVyc3zikpGzCa797B/tRnD9OtHvZ/ts8sYXV+Ilj9u3QRaUEM8xrjgd1gwm1BpQ==", + "version": "3.2.8", + "resolved": "https://registry.npmmirror.com/@types/sinon-chai/-/sinon-chai-3.2.8.tgz", + "integrity": "sha512-d4ImIQbT/rKMG8+AXpmcan5T2/PNeSjrYhvkwet6z0p8kzYtfgA32xzOBlbU0yqJfq+/0Ml805iFoODO0LP5/g==", "dev": true, "requires": { "@types/chai": "*", @@ -1046,31 +4689,32 @@ } }, "@types/sinonjs__fake-timers": { - "version": "6.0.4", - "resolved": "https://repo.huaweicloud.com/repository/npm/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-6.0.4.tgz", - "integrity": "sha512-IFQTJARgMUBF+xVd2b+hIgXWrZEjND3vJtRCvIelcFB5SIXfjV4bOHbHJ0eXKh+0COrBRc8MqteKAz/j88rE0A==", + "version": "8.1.1", + "resolved": "https://registry.npmmirror.com/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.1.tgz", + "integrity": "sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g==", "dev": true }, "@ungap/promise-all-settled": { "version": "1.1.2", - "resolved": "https://repo.huaweicloud.com/repository/npm/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", + "resolved": "https://registry.npmmirror.com/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", "dev": true }, "ansi-colors": { "version": "4.1.1", - "resolved": "https://repo.huaweicloud.com/repository/npm/ansi-colors/-/ansi-colors-4.1.1.tgz", + "resolved": "https://registry.npmmirror.com/ansi-colors/-/ansi-colors-4.1.1.tgz", "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", "dev": true }, "ansi-regex": { - "version": "5.0.1", - "resolved": "https://repo.huaweicloud.com/repository/npm/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha512-wFUFA5bg5dviipbQQ32yOQhl6gcJaJXiHE7dvR8VYPG97+J/GNC5FKGepKdEDUFeXRzDxPF1X/Btc8L+v7oqIQ==", + "dev": true }, "ansi-styles": { "version": "3.2.1", - "resolved": "https://repo.huaweicloud.com/repository/npm/ansi-styles/-/ansi-styles-3.2.1.tgz", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "requires": { "color-convert": "^1.9.0" @@ -1078,7 +4722,7 @@ }, "anymatch": { "version": "3.1.2", - "resolved": "https://repo.huaweicloud.com/repository/npm/anymatch/-/anymatch-3.1.2.tgz", + "resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.2.tgz", "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", "dev": true, "requires": { @@ -1087,27 +4731,25 @@ } }, "argparse": { - "version": "1.0.10", - "resolved": "https://repo.huaweicloud.com/repository/npm/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "requires": { - "sprintf-js": "~1.0.2" - } + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true }, "array-back": { "version": "3.1.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/array-back/-/array-back-3.1.0.tgz", + "resolved": "https://registry.npmmirror.com/array-back/-/array-back-3.1.0.tgz", "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==" }, "assertion-error": { "version": "1.1.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/assertion-error/-/assertion-error-1.1.0.tgz", + "resolved": "https://registry.npmmirror.com/assertion-error/-/assertion-error-1.1.0.tgz", "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", "dev": true }, "ast-types": { "version": "0.14.2", - "resolved": "https://repo.huaweicloud.com/repository/npm/ast-types/-/ast-types-0.14.2.tgz", + "resolved": "https://registry.npmmirror.com/ast-types/-/ast-types-0.14.2.tgz", "integrity": "sha512-O0yuUDnZeQDL+ncNGlJ78BiO4jnYI3bvMsD5prT0/nsgijG/LpNBIr63gTjVTNsiGkgQhiyCShTgxt8oXOrklA==", "requires": { "tslib": "^2.0.1" @@ -1115,53 +4757,53 @@ }, "babel-plugin-dynamic-import-node": { "version": "2.3.3", - "resolved": "https://repo.huaweicloud.com/repository/npm/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "resolved": "https://registry.npmmirror.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", "requires": { "object.assign": "^4.1.0" } }, "babel-plugin-polyfill-corejs2": { - "version": "0.2.2", - "resolved": "https://repo.huaweicloud.com/repository/npm/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.2.tgz", - "integrity": "sha512-kISrENsJ0z5dNPq5eRvcctITNHYXWOA4DUZRFYCz3jYCcvTb/A546LIddmoGNMVYg2U38OyFeNosQwI9ENTqIQ==", + "version": "0.3.1", + "resolved": "https://registry.npmmirror.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz", + "integrity": "sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==", "requires": { "@babel/compat-data": "^7.13.11", - "@babel/helper-define-polyfill-provider": "^0.2.2", + "@babel/helper-define-polyfill-provider": "^0.3.1", "semver": "^6.1.1" } }, "babel-plugin-polyfill-corejs3": { - "version": "0.2.5", - "resolved": "https://repo.huaweicloud.com/repository/npm/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.5.tgz", - "integrity": "sha512-ninF5MQNwAX9Z7c9ED+H2pGt1mXdP4TqzlHKyPIYmJIYz0N+++uwdM7RnJukklhzJ54Q84vA4ZJkgs7lu5vqcw==", + "version": "0.5.2", + "resolved": "https://registry.npmmirror.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz", + "integrity": "sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==", "requires": { - "@babel/helper-define-polyfill-provider": "^0.2.2", - "core-js-compat": "^3.16.2" + "@babel/helper-define-polyfill-provider": "^0.3.1", + "core-js-compat": "^3.21.0" } }, "babel-plugin-polyfill-regenerator": { - "version": "0.2.2", - "resolved": "https://repo.huaweicloud.com/repository/npm/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.2.tgz", - "integrity": "sha512-Goy5ghsc21HgPDFtzRkSirpZVW35meGoTmTOb2bxqdl60ghub4xOidgNTHaZfQ2FaxQsKmwvXtOAkcIS4SMBWg==", + "version": "0.3.1", + "resolved": "https://registry.npmmirror.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz", + "integrity": "sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==", "requires": { - "@babel/helper-define-polyfill-provider": "^0.2.2" + "@babel/helper-define-polyfill-provider": "^0.3.1" } }, "balanced-match": { "version": "1.0.2", - "resolved": "https://repo.huaweicloud.com/repository/npm/balanced-match/-/balanced-match-1.0.2.tgz", + "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, "binary-extensions": { "version": "2.2.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/binary-extensions/-/binary-extensions-2.2.0.tgz", + "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.2.0.tgz", "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "dev": true }, "brace-expansion": { "version": "1.1.11", - "resolved": "https://repo.huaweicloud.com/repository/npm/brace-expansion/-/brace-expansion-1.1.11.tgz", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "requires": { "balanced-match": "^1.0.0", @@ -1170,7 +4812,7 @@ }, "braces": { "version": "3.0.2", - "resolved": "https://repo.huaweicloud.com/repository/npm/braces/-/braces-3.0.2.tgz", + "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, "requires": { @@ -1179,25 +4821,25 @@ }, "browser-stdout": { "version": "1.3.1", - "resolved": "https://repo.huaweicloud.com/repository/npm/browser-stdout/-/browser-stdout-1.3.1.tgz", + "resolved": "https://registry.npmmirror.com/browser-stdout/-/browser-stdout-1.3.1.tgz", "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", "dev": true }, "browserslist": { - "version": "4.17.3", - "resolved": "https://repo.huaweicloud.com/repository/npm/browserslist/-/browserslist-4.17.3.tgz", - "integrity": "sha512-59IqHJV5VGdcJZ+GZ2hU5n4Kv3YiASzW6Xk5g9tf5a/MAzGeFwgGWU39fVzNIOVcgB3+Gp+kiQu0HEfTVU/3VQ==", + "version": "4.19.1", + "resolved": "https://registry.npmmirror.com/browserslist/-/browserslist-4.19.1.tgz", + "integrity": "sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==", "requires": { - "caniuse-lite": "^1.0.30001264", - "electron-to-chromium": "^1.3.857", + "caniuse-lite": "^1.0.30001286", + "electron-to-chromium": "^1.4.17", "escalade": "^3.1.1", - "node-releases": "^1.1.77", - "picocolors": "^0.2.1" + "node-releases": "^2.0.1", + "picocolors": "^1.0.0" } }, "call-bind": { "version": "1.0.2", - "resolved": "https://repo.huaweicloud.com/repository/npm/call-bind/-/call-bind-1.0.2.tgz", + "resolved": "https://registry.npmmirror.com/call-bind/-/call-bind-1.0.2.tgz", "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", "requires": { "function-bind": "^1.1.1", @@ -1205,33 +4847,34 @@ } }, "camelcase": { - "version": "6.2.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/camelcase/-/camelcase-6.2.0.tgz", - "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", + "version": "6.3.0", + "resolved": "https://registry.npmmirror.com/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true }, "caniuse-lite": { - "version": "1.0.30001265", - "resolved": "https://repo.huaweicloud.com/repository/npm/caniuse-lite/-/caniuse-lite-1.0.30001265.tgz", - "integrity": "sha512-YzBnspggWV5hep1m9Z6sZVLOt7vrju8xWooFAgN6BA5qvy98qPAPb7vNUzypFaoh2pb3vlfzbDO8tB57UPGbtw==" + "version": "1.0.30001312", + "resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001312.tgz", + "integrity": "sha512-Wiz1Psk2MEK0pX3rUzWaunLTZzqS2JYZFzNKqAiJGiuxIjRPLgV6+VDPOg6lQOUxmDwhTlh198JsTTi8Hzw6aQ==" }, "chai": { - "version": "4.3.4", - "resolved": "https://repo.huaweicloud.com/repository/npm/chai/-/chai-4.3.4.tgz", - "integrity": "sha512-yS5H68VYOCtN1cjfwumDSuzn/9c+yza4f3reKXlE5rUg7SFcCEy90gJvydNgOYtblyf4Zi6jIWRnXOgErta0KA==", + "version": "4.3.6", + "resolved": "https://registry.npmmirror.com/chai/-/chai-4.3.6.tgz", + "integrity": "sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q==", "dev": true, "requires": { "assertion-error": "^1.1.0", "check-error": "^1.0.2", "deep-eql": "^3.0.1", "get-func-name": "^2.0.0", + "loupe": "^2.3.1", "pathval": "^1.1.1", "type-detect": "^4.0.5" } }, "chalk": { "version": "2.4.2", - "resolved": "https://repo.huaweicloud.com/repository/npm/chalk/-/chalk-2.4.2.tgz", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "requires": { "ansi-styles": "^3.2.1", @@ -1241,13 +4884,13 @@ }, "check-error": { "version": "1.0.2", - "resolved": "https://repo.huaweicloud.com/repository/npm/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", + "resolved": "https://registry.npmmirror.com/check-error/-/check-error-1.0.2.tgz", + "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==", "dev": true }, "chokidar": { "version": "3.5.1", - "resolved": "https://repo.huaweicloud.com/repository/npm/chokidar/-/chokidar-3.5.1.tgz", + "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.5.1.tgz", "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", "dev": true, "requires": { @@ -1263,17 +4906,47 @@ }, "cliui": { "version": "7.0.4", - "resolved": "https://repo.huaweicloud.com/repository/npm/cliui/-/cliui-7.0.4.tgz", + "resolved": "https://registry.npmmirror.com/cliui/-/cliui-7.0.4.tgz", "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "requires": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", "wrap-ansi": "^7.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "requires": { + "ansi-regex": "^5.0.1" + } + } } }, "color-convert": { "version": "1.9.3", - "resolved": "https://repo.huaweicloud.com/repository/npm/color-convert/-/color-convert-1.9.3.tgz", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "requires": { "color-name": "1.1.3" @@ -1281,13 +4954,13 @@ }, "color-name": { "version": "1.1.3", - "resolved": "https://repo.huaweicloud.com/repository/npm/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" }, "command-line-args": { - "version": "5.2.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/command-line-args/-/command-line-args-5.2.0.tgz", - "integrity": "sha512-4zqtU1hYsSJzcJBOcNZIbW5Fbk9BkjCp1pZVhQKoRaWL5J7N4XphDLwo8aWwdQpTugxwu+jf9u2ZhkXiqp5Z6A==", + "version": "5.2.1", + "resolved": "https://registry.npmmirror.com/command-line-args/-/command-line-args-5.2.1.tgz", + "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==", "requires": { "array-back": "^3.1.0", "find-replace": "^3.0.0", @@ -1297,7 +4970,7 @@ }, "command-line-usage": { "version": "6.1.1", - "resolved": "https://repo.huaweicloud.com/repository/npm/command-line-usage/-/command-line-usage-6.1.1.tgz", + "resolved": "https://registry.npmmirror.com/command-line-usage/-/command-line-usage-6.1.1.tgz", "integrity": "sha512-F59pEuAR9o1SF/bD0dQBDluhpT4jJQNWUHEuVBqpDmCUo6gPjCi+m9fCWnWZVR/oG6cMTUms4h+3NPl74wGXvA==", "requires": { "array-back": "^4.0.1", @@ -1308,62 +4981,62 @@ "dependencies": { "array-back": { "version": "4.0.2", - "resolved": "https://repo.huaweicloud.com/repository/npm/array-back/-/array-back-4.0.2.tgz", + "resolved": "https://registry.npmmirror.com/array-back/-/array-back-4.0.2.tgz", "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==" }, "typical": { "version": "5.2.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/typical/-/typical-5.2.0.tgz", + "resolved": "https://registry.npmmirror.com/typical/-/typical-5.2.0.tgz", "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==" } } }, "concat-map": { "version": "0.0.1", - "resolved": "https://repo.huaweicloud.com/repository/npm/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + "resolved": "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" }, "convert-source-map": { "version": "1.8.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/convert-source-map/-/convert-source-map-1.8.0.tgz", + "resolved": "https://registry.npmmirror.com/convert-source-map/-/convert-source-map-1.8.0.tgz", "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", "requires": { "safe-buffer": "~5.1.1" } }, "core-js-compat": { - "version": "3.18.2", - "resolved": "https://repo.huaweicloud.com/repository/npm/core-js-compat/-/core-js-compat-3.18.2.tgz", - "integrity": "sha512-25VJYCJtGjZwLguj7d66oiHfmnVw3TMOZ0zV8DyMJp/aeQ3OjR519iOOeck08HMyVVRAqXxafc2Hl+5QstJrsQ==", + "version": "3.21.0", + "resolved": "https://registry.npmmirror.com/core-js-compat/-/core-js-compat-3.21.0.tgz", + "integrity": "sha512-OSXseNPSK2OPJa6GdtkMz/XxeXx8/CJvfhQWTqd6neuUraujcL4jVsjkLQz1OWnax8xVQJnRPe0V2jqNWORA+A==", "requires": { - "browserslist": "^4.17.3", + "browserslist": "^4.19.1", "semver": "7.0.0" }, "dependencies": { "semver": { "version": "7.0.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/semver/-/semver-7.0.0.tgz", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.0.0.tgz", "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==" } } }, "debug": { - "version": "4.3.2", - "resolved": "https://repo.huaweicloud.com/repository/npm/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "version": "4.3.3", + "resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", "requires": { "ms": "2.1.2" } }, "decamelize": { "version": "4.0.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/decamelize/-/decamelize-4.0.0.tgz", + "resolved": "https://registry.npmmirror.com/decamelize/-/decamelize-4.0.0.tgz", "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", "dev": true }, "deep-eql": { "version": "3.0.1", - "resolved": "https://repo.huaweicloud.com/repository/npm/deep-eql/-/deep-eql-3.0.1.tgz", + "resolved": "https://registry.npmmirror.com/deep-eql/-/deep-eql-3.0.1.tgz", "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", "dev": true, "requires": { @@ -1372,12 +5045,12 @@ }, "deep-extend": { "version": "0.6.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/deep-extend/-/deep-extend-0.6.0.tgz", + "resolved": "https://registry.npmmirror.com/deep-extend/-/deep-extend-0.6.0.tgz", "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" }, "define-properties": { "version": "1.1.3", - "resolved": "https://repo.huaweicloud.com/repository/npm/define-properties/-/define-properties-1.1.3.tgz", + "resolved": "https://registry.npmmirror.com/define-properties/-/define-properties-1.1.3.tgz", "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", "requires": { "object-keys": "^1.0.12" @@ -1385,43 +5058,43 @@ }, "diff": { "version": "5.0.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/diff/-/diff-5.0.0.tgz", + "resolved": "https://registry.npmmirror.com/diff/-/diff-5.0.0.tgz", "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", "dev": true }, "electron-to-chromium": { - "version": "1.3.861", - "resolved": "https://repo.huaweicloud.com/repository/npm/electron-to-chromium/-/electron-to-chromium-1.3.861.tgz", - "integrity": "sha512-GZyflmpMnZRdZ1e2yAyvuFwz1MPSVQelwHX4TJZyXypB8NcxdPvPNwy5lOTxnlkrK13EiQzyTPugRSnj6cBgKg==" + "version": "1.4.71", + "resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.71.tgz", + "integrity": "sha512-Hk61vXXKRb2cd3znPE9F+2pLWdIOmP7GjiTj45y6L3W/lO+hSnUSUhq+6lEaERWBdZOHbk2s3YV5c9xVl3boVw==" }, "emoji-regex": { "version": "8.0.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/emoji-regex/-/emoji-regex-8.0.0.tgz", + "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, "escalade": { "version": "3.1.1", - "resolved": "https://repo.huaweicloud.com/repository/npm/escalade/-/escalade-3.1.1.tgz", + "resolved": "https://registry.npmmirror.com/escalade/-/escalade-3.1.1.tgz", "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" }, "escape-string-regexp": { "version": "1.0.5", - "resolved": "https://repo.huaweicloud.com/repository/npm/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" }, "esprima": { "version": "4.0.1", - "resolved": "https://repo.huaweicloud.com/repository/npm/esprima/-/esprima-4.0.1.tgz", + "resolved": "https://registry.npmmirror.com/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" }, "esutils": { "version": "2.0.3", - "resolved": "https://repo.huaweicloud.com/repository/npm/esutils/-/esutils-2.0.3.tgz", + "resolved": "https://registry.npmmirror.com/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" }, "fill-range": { "version": "7.0.1", - "resolved": "https://repo.huaweicloud.com/repository/npm/fill-range/-/fill-range-7.0.1.tgz", + "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dev": true, "requires": { @@ -1430,7 +5103,7 @@ }, "find-replace": { "version": "3.0.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/find-replace/-/find-replace-3.0.0.tgz", + "resolved": "https://registry.npmmirror.com/find-replace/-/find-replace-3.0.0.tgz", "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", "requires": { "array-back": "^3.0.1" @@ -1438,7 +5111,7 @@ }, "find-up": { "version": "5.0.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/find-up/-/find-up-5.0.0.tgz", + "resolved": "https://registry.npmmirror.com/find-up/-/find-up-5.0.0.tgz", "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, "requires": { @@ -1448,47 +5121,47 @@ }, "flat": { "version": "5.0.2", - "resolved": "https://repo.huaweicloud.com/repository/npm/flat/-/flat-5.0.2.tgz", + "resolved": "https://registry.npmmirror.com/flat/-/flat-5.0.2.tgz", "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", "dev": true }, "fs.realpath": { "version": "1.0.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "resolved": "https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", "dev": true }, "fsevents": { "version": "2.3.2", - "resolved": "https://repo.huaweicloud.com/repository/npm/fsevents/-/fsevents-2.3.2.tgz", + "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.2.tgz", "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", "dev": true, "optional": true }, "function-bind": { "version": "1.1.1", - "resolved": "https://repo.huaweicloud.com/repository/npm/function-bind/-/function-bind-1.1.1.tgz", + "resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.1.tgz", "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, "gensync": { "version": "1.0.0-beta.2", - "resolved": "https://repo.huaweicloud.com/repository/npm/gensync/-/gensync-1.0.0-beta.2.tgz", + "resolved": "https://registry.npmmirror.com/gensync/-/gensync-1.0.0-beta.2.tgz", "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==" }, "get-caller-file": { "version": "2.0.5", - "resolved": "https://repo.huaweicloud.com/repository/npm/get-caller-file/-/get-caller-file-2.0.5.tgz", + "resolved": "https://registry.npmmirror.com/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" }, "get-func-name": { "version": "2.0.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", + "resolved": "https://registry.npmmirror.com/get-func-name/-/get-func-name-2.0.0.tgz", + "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==", "dev": true }, "get-intrinsic": { "version": "1.1.1", - "resolved": "https://repo.huaweicloud.com/repository/npm/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "resolved": "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz", "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", "requires": { "function-bind": "^1.1.1", @@ -1498,7 +5171,7 @@ }, "glob": { "version": "7.1.6", - "resolved": "https://repo.huaweicloud.com/repository/npm/glob/-/glob-7.1.6.tgz", + "resolved": "https://registry.npmmirror.com/glob/-/glob-7.1.6.tgz", "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", "dev": true, "requires": { @@ -1512,7 +5185,7 @@ }, "glob-parent": { "version": "5.1.2", - "resolved": "https://repo.huaweicloud.com/repository/npm/glob-parent/-/glob-parent-5.1.2.tgz", + "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "requires": { @@ -1521,23 +5194,23 @@ }, "globals": { "version": "11.12.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/globals/-/globals-11.12.0.tgz", + "resolved": "https://registry.npmmirror.com/globals/-/globals-11.12.0.tgz", "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" }, "graceful-fs": { - "version": "4.2.8", - "resolved": "https://repo.huaweicloud.com/repository/npm/graceful-fs/-/graceful-fs-4.2.8.tgz", - "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==" + "version": "4.2.9", + "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.9.tgz", + "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==" }, "growl": { "version": "1.10.5", - "resolved": "https://repo.huaweicloud.com/repository/npm/growl/-/growl-1.10.5.tgz", + "resolved": "https://registry.npmmirror.com/growl/-/growl-1.10.5.tgz", "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", "dev": true }, "has": { "version": "1.0.3", - "resolved": "https://repo.huaweicloud.com/repository/npm/has/-/has-1.0.3.tgz", + "resolved": "https://registry.npmmirror.com/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "requires": { "function-bind": "^1.1.1" @@ -1545,24 +5218,24 @@ }, "has-flag": { "version": "3.0.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" }, "has-symbols": { "version": "1.0.2", - "resolved": "https://repo.huaweicloud.com/repository/npm/has-symbols/-/has-symbols-1.0.2.tgz", + "resolved": "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.0.2.tgz", "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==" }, "he": { "version": "1.2.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/he/-/he-1.2.0.tgz", + "resolved": "https://registry.npmmirror.com/he/-/he-1.2.0.tgz", "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", "dev": true }, "inflight": { "version": "1.0.6", - "resolved": "https://repo.huaweicloud.com/repository/npm/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "resolved": "https://registry.npmmirror.com/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "dev": true, "requires": { "once": "^1.3.0", @@ -1571,13 +5244,13 @@ }, "inherits": { "version": "2.0.4", - "resolved": "https://repo.huaweicloud.com/repository/npm/inherits/-/inherits-2.0.4.tgz", + "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true }, "is-binary-path": { "version": "2.1.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/is-binary-path/-/is-binary-path-2.1.0.tgz", + "resolved": "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, "requires": { @@ -1585,27 +5258,28 @@ } }, "is-core-module": { - "version": "2.7.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/is-core-module/-/is-core-module-2.7.0.tgz", - "integrity": "sha512-ByY+tjCciCr+9nLryBYcSD50EOGWt95c7tIsKTG1J2ixKKXPvF7Ej3AVd+UfDydAJom3biBGDBALaO79ktwgEQ==", + "version": "2.8.1", + "resolved": "https://registry.npmmirror.com/is-core-module/-/is-core-module-2.8.1.tgz", + "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", "requires": { "has": "^1.0.3" } }, "is-extglob": { "version": "2.1.1", - "resolved": "https://repo.huaweicloud.com/repository/npm/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "resolved": "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true }, "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", + "dev": true }, "is-glob": { "version": "4.0.3", - "resolved": "https://repo.huaweicloud.com/repository/npm/is-glob/-/is-glob-4.0.3.tgz", + "resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, "requires": { @@ -1614,50 +5288,50 @@ }, "is-number": { "version": "7.0.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/is-number/-/is-number-7.0.0.tgz", + "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true }, "is-plain-obj": { "version": "2.1.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "resolved": "https://registry.npmmirror.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz", "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", "dev": true }, "isarray": { "version": "0.0.1", - "resolved": "https://repo.huaweicloud.com/repository/npm/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "resolved": "https://registry.npmmirror.com/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", "dev": true }, "isexe": { "version": "2.0.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "resolved": "https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", "dev": true }, "js-tokens": { "version": "4.0.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/js-tokens/-/js-tokens-4.0.0.tgz", + "resolved": "https://registry.npmmirror.com/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" }, "js-yaml": { - "version": "3.14.1", - "resolved": "https://repo.huaweicloud.com/repository/npm/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/js-yaml/-/js-yaml-4.0.0.tgz", + "integrity": "sha512-pqon0s+4ScYUvX30wxQi3PogGFAlUyH0awepWvwkj4jD4v+ova3RiYw8bmA6x2rDrEaj8i/oWKoRxpVNW+Re8Q==", + "dev": true, "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "argparse": "^2.0.1" } }, "jsesc": { "version": "2.5.2", - "resolved": "https://repo.huaweicloud.com/repository/npm/jsesc/-/jsesc-2.5.2.tgz", + "resolved": "https://registry.npmmirror.com/jsesc/-/jsesc-2.5.2.tgz", "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" }, "json5": { "version": "2.2.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/json5/-/json5-2.2.0.tgz", + "resolved": "https://registry.npmmirror.com/json5/-/json5-2.2.0.tgz", "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", "requires": { "minimist": "^1.2.5" @@ -1665,21 +5339,21 @@ }, "just-extend": { "version": "4.2.1", - "resolved": "https://repo.huaweicloud.com/repository/npm/just-extend/-/just-extend-4.2.1.tgz", + "resolved": "https://registry.npmmirror.com/just-extend/-/just-extend-4.2.1.tgz", "integrity": "sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg==", "dev": true }, "klaw": { "version": "2.1.1", - "resolved": "https://repo.huaweicloud.com/repository/npm/klaw/-/klaw-2.1.1.tgz", - "integrity": "sha1-QrdolHARacyRD9DRnOZ3tfs3ivE=", + "resolved": "https://registry.npmmirror.com/klaw/-/klaw-2.1.1.tgz", + "integrity": "sha512-kuInGWCNc98b1ghOqBJfqPOvAKn9HHgm+SdluR5VNfdA7rs7uNsuXGy7CCqsP6pFKPpUoCH4s9o00GEj9xONHg==", "requires": { "graceful-fs": "^4.1.9" } }, "locate-path": { "version": "6.0.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/locate-path/-/locate-path-6.0.0.tgz", + "resolved": "https://registry.npmmirror.com/locate-path/-/locate-path-6.0.0.tgz", "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, "requires": { @@ -1688,23 +5362,23 @@ }, "lodash.camelcase": { "version": "4.3.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=" + "resolved": "https://registry.npmmirror.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==" }, "lodash.debounce": { "version": "4.0.8", - "resolved": "https://repo.huaweicloud.com/repository/npm/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" + "resolved": "https://registry.npmmirror.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" }, "lodash.get": { "version": "4.4.2", - "resolved": "https://repo.huaweicloud.com/repository/npm/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", + "resolved": "https://registry.npmmirror.com/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", "dev": true }, "log-symbols": { "version": "4.0.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/log-symbols/-/log-symbols-4.0.0.tgz", + "resolved": "https://registry.npmmirror.com/log-symbols/-/log-symbols-4.0.0.tgz", "integrity": "sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==", "dev": true, "requires": { @@ -1713,7 +5387,7 @@ "dependencies": { "ansi-styles": { "version": "4.3.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/ansi-styles/-/ansi-styles-4.3.0.tgz", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { @@ -1722,7 +5396,7 @@ }, "chalk": { "version": "4.1.2", - "resolved": "https://repo.huaweicloud.com/repository/npm/chalk/-/chalk-4.1.2.tgz", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { @@ -1732,7 +5406,7 @@ }, "color-convert": { "version": "2.0.1", - "resolved": "https://repo.huaweicloud.com/repository/npm/color-convert/-/color-convert-2.0.1.tgz", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { @@ -1741,19 +5415,19 @@ }, "color-name": { "version": "1.1.4", - "resolved": "https://repo.huaweicloud.com/repository/npm/color-name/-/color-name-1.1.4.tgz", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "has-flag": { "version": "4.0.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/has-flag/-/has-flag-4.0.0.tgz", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, "supports-color": { "version": "7.2.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/supports-color/-/supports-color-7.2.0.tgz", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { @@ -1762,22 +5436,31 @@ } } }, + "loupe": { + "version": "2.3.4", + "resolved": "https://registry.npmmirror.com/loupe/-/loupe-2.3.4.tgz", + "integrity": "sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ==", + "dev": true, + "requires": { + "get-func-name": "^2.0.0" + } + }, "minimatch": { - "version": "3.0.4", - "resolved": "https://repo.huaweicloud.com/repository/npm/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "requires": { "brace-expansion": "^1.1.7" } }, "minimist": { "version": "1.2.5", - "resolved": "https://repo.huaweicloud.com/repository/npm/minimist/-/minimist-1.2.5.tgz", + "resolved": "https://registry.npmmirror.com/minimist/-/minimist-1.2.5.tgz", "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" }, "mkdirp": { "version": "0.5.5", - "resolved": "https://repo.huaweicloud.com/repository/npm/mkdirp/-/mkdirp-0.5.5.tgz", + "resolved": "https://registry.npmmirror.com/mkdirp/-/mkdirp-0.5.5.tgz", "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", "requires": { "minimist": "^1.2.5" @@ -1785,7 +5468,7 @@ }, "mocha": { "version": "8.4.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/mocha/-/mocha-8.4.0.tgz", + "resolved": "https://registry.npmmirror.com/mocha/-/mocha-8.4.0.tgz", "integrity": "sha512-hJaO0mwDXmZS4ghXsvPVriOhsxQ7ofcpQdm8dE+jISUOKopitvnXFQmpRR7jd2K6VBG6E26gU3IAbXXGIbu4sQ==", "dev": true, "requires": { @@ -1816,15 +5499,9 @@ "yargs-unparser": "2.0.0" }, "dependencies": { - "argparse": { - "version": "2.0.1", - "resolved": "https://repo.huaweicloud.com/repository/npm/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, "debug": { "version": "4.3.1", - "resolved": "https://repo.huaweicloud.com/repository/npm/debug/-/debug-4.3.1.tgz", + "resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.1.tgz", "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", "dev": true, "requires": { @@ -1833,7 +5510,7 @@ "dependencies": { "ms": { "version": "2.1.2", - "resolved": "https://repo.huaweicloud.com/repository/npm/ms/-/ms-2.1.2.tgz", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true } @@ -1841,62 +5518,56 @@ }, "escape-string-regexp": { "version": "4.0.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true }, "has-flag": { "version": "4.0.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/has-flag/-/has-flag-4.0.0.tgz", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, - "js-yaml": { - "version": "4.0.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/js-yaml/-/js-yaml-4.0.0.tgz", - "integrity": "sha512-pqon0s+4ScYUvX30wxQi3PogGFAlUyH0awepWvwkj4jD4v+ova3RiYw8bmA6x2rDrEaj8i/oWKoRxpVNW+Re8Q==", + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { - "argparse": "^2.0.1" + "brace-expansion": "^1.1.7" } }, "ms": { "version": "2.1.3", - "resolved": "https://repo.huaweicloud.com/repository/npm/ms/-/ms-2.1.3.tgz", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true }, "supports-color": { "version": "8.1.1", - "resolved": "https://repo.huaweicloud.com/repository/npm/supports-color/-/supports-color-8.1.1.tgz", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, "requires": { "has-flag": "^4.0.0" } - }, - "yargs-parser": { - "version": "20.2.4", - "resolved": "https://repo.huaweicloud.com/repository/npm/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", - "dev": true } } }, "ms": { "version": "2.1.2", - "resolved": "https://repo.huaweicloud.com/repository/npm/ms/-/ms-2.1.2.tgz", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "nanoid": { "version": "3.1.20", - "resolved": "https://repo.huaweicloud.com/repository/npm/nanoid/-/nanoid-3.1.20.tgz", + "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.1.20.tgz", "integrity": "sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw==", "dev": true }, "nise": { "version": "4.1.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/nise/-/nise-4.1.0.tgz", + "resolved": "https://registry.npmmirror.com/nise/-/nise-4.1.0.tgz", "integrity": "sha512-eQMEmGN/8arp0xsvGoQ+B1qvSkR73B1nWSCh7nOt5neMCtwcQVYQGdzQMhcNscktTsWB54xnlSQFzOAPJD8nXA==", "dev": true, "requires": { @@ -1908,24 +5579,24 @@ } }, "node-releases": { - "version": "1.1.77", - "resolved": "https://repo.huaweicloud.com/repository/npm/node-releases/-/node-releases-1.1.77.tgz", - "integrity": "sha512-rB1DUFUNAN4Gn9keO2K1efO35IDK7yKHCdCaIMvFO7yUYmmZYeDjnGKle26G4rwj+LKRQpjyUUvMkPglwGCYNQ==" + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.2.tgz", + "integrity": "sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==" }, "normalize-path": { "version": "3.0.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/normalize-path/-/normalize-path-3.0.0.tgz", + "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true }, "object-keys": { "version": "1.1.1", - "resolved": "https://repo.huaweicloud.com/repository/npm/object-keys/-/object-keys-1.1.1.tgz", + "resolved": "https://registry.npmmirror.com/object-keys/-/object-keys-1.1.1.tgz", "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" }, "object.assign": { "version": "4.1.2", - "resolved": "https://repo.huaweicloud.com/repository/npm/object.assign/-/object.assign-4.1.2.tgz", + "resolved": "https://registry.npmmirror.com/object.assign/-/object.assign-4.1.2.tgz", "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", "requires": { "call-bind": "^1.0.0", @@ -1936,8 +5607,8 @@ }, "once": { "version": "1.4.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "resolved": "https://registry.npmmirror.com/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, "requires": { "wrappy": "1" @@ -1945,12 +5616,12 @@ }, "os-tmpdir": { "version": "1.0.2", - "resolved": "https://repo.huaweicloud.com/repository/npm/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" + "resolved": "https://registry.npmmirror.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==" }, "p-limit": { "version": "3.1.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/p-limit/-/p-limit-3.1.0.tgz", + "resolved": "https://registry.npmmirror.com/p-limit/-/p-limit-3.1.0.tgz", "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, "requires": { @@ -1959,7 +5630,7 @@ }, "p-locate": { "version": "5.0.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/p-locate/-/p-locate-5.0.0.tgz", + "resolved": "https://registry.npmmirror.com/p-locate/-/p-locate-5.0.0.tgz", "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, "requires": { @@ -1968,24 +5639,24 @@ }, "path-exists": { "version": "4.0.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/path-exists/-/path-exists-4.0.0.tgz", + "resolved": "https://registry.npmmirror.com/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true }, "path-is-absolute": { "version": "1.0.1", - "resolved": "https://repo.huaweicloud.com/repository/npm/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "resolved": "https://registry.npmmirror.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "dev": true }, "path-parse": { "version": "1.0.7", - "resolved": "https://repo.huaweicloud.com/repository/npm/path-parse/-/path-parse-1.0.7.tgz", + "resolved": "https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, "path-to-regexp": { "version": "1.8.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/path-to-regexp/-/path-to-regexp-1.8.0.tgz", + "resolved": "https://registry.npmmirror.com/path-to-regexp/-/path-to-regexp-1.8.0.tgz", "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", "dev": true, "requires": { @@ -1994,24 +5665,24 @@ }, "pathval": { "version": "1.1.1", - "resolved": "https://repo.huaweicloud.com/repository/npm/pathval/-/pathval-1.1.1.tgz", + "resolved": "https://registry.npmmirror.com/pathval/-/pathval-1.1.1.tgz", "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", "dev": true }, "picocolors": { - "version": "0.2.1", - "resolved": "https://repo.huaweicloud.com/repository/npm/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==" + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" }, "picomatch": { - "version": "2.3.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true }, "randombytes": { "version": "2.1.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/randombytes/-/randombytes-2.1.0.tgz", + "resolved": "https://registry.npmmirror.com/randombytes/-/randombytes-2.1.0.tgz", "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "dev": true, "requires": { @@ -2020,7 +5691,7 @@ }, "readdirp": { "version": "3.5.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/readdirp/-/readdirp-3.5.0.tgz", + "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.5.0.tgz", "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", "dev": true, "requires": { @@ -2029,7 +5700,7 @@ }, "recast": { "version": "0.20.5", - "resolved": "https://repo.huaweicloud.com/repository/npm/recast/-/recast-0.20.5.tgz", + "resolved": "https://registry.npmmirror.com/recast/-/recast-0.20.5.tgz", "integrity": "sha512-E5qICoPoNL4yU0H0NoBDntNB0Q5oMSNh9usFctYniLBluTthi3RsQVBXIJNbApOlvSwW/RGxIuokPcAc59J5fQ==", "requires": { "ast-types": "0.14.2", @@ -2040,37 +5711,37 @@ "dependencies": { "source-map": { "version": "0.6.1", - "resolved": "https://repo.huaweicloud.com/repository/npm/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" } } }, "reduce-flatten": { "version": "2.0.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/reduce-flatten/-/reduce-flatten-2.0.0.tgz", + "resolved": "https://registry.npmmirror.com/reduce-flatten/-/reduce-flatten-2.0.0.tgz", "integrity": "sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w==" }, "regenerate": { "version": "1.4.2", - "resolved": "https://repo.huaweicloud.com/repository/npm/regenerate/-/regenerate-1.4.2.tgz", + "resolved": "https://registry.npmmirror.com/regenerate/-/regenerate-1.4.2.tgz", "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" }, "regenerate-unicode-properties": { - "version": "9.0.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/regenerate-unicode-properties/-/regenerate-unicode-properties-9.0.0.tgz", - "integrity": "sha512-3E12UeNSPfjrgwjkR81m5J7Aw/T55Tu7nUyZVQYCKEOs+2dkxEY+DpPtZzO4YruuiPb7NkYLVcyJC4+zCbk5pA==", + "version": "10.0.1", + "resolved": "https://registry.npmmirror.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz", + "integrity": "sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==", "requires": { "regenerate": "^1.4.2" } }, "regenerator-runtime": { "version": "0.13.9", - "resolved": "https://repo.huaweicloud.com/repository/npm/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", + "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" }, "regenerator-transform": { "version": "0.14.5", - "resolved": "https://repo.huaweicloud.com/repository/npm/regenerator-transform/-/regenerator-transform-0.14.5.tgz", + "resolved": "https://registry.npmmirror.com/regenerator-transform/-/regenerator-transform-0.14.5.tgz", "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", "requires": { "@babel/runtime": "^7.8.4" @@ -2078,59 +5749,60 @@ }, "regexpp": { "version": "3.2.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/regexpp/-/regexpp-3.2.0.tgz", + "resolved": "https://registry.npmmirror.com/regexpp/-/regexpp-3.2.0.tgz", "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==" }, "regexpu-core": { - "version": "4.8.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/regexpu-core/-/regexpu-core-4.8.0.tgz", - "integrity": "sha512-1F6bYsoYiz6is+oz70NWur2Vlh9KWtswuRuzJOfeYUrfPX2o8n74AnUVaOGDbUqVGO9fNHu48/pjJO4sNVwsOg==", + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/regexpu-core/-/regexpu-core-5.0.1.tgz", + "integrity": "sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw==", "requires": { "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^9.0.0", - "regjsgen": "^0.5.2", - "regjsparser": "^0.7.0", + "regenerate-unicode-properties": "^10.0.1", + "regjsgen": "^0.6.0", + "regjsparser": "^0.8.2", "unicode-match-property-ecmascript": "^2.0.0", "unicode-match-property-value-ecmascript": "^2.0.0" } }, "regjsgen": { - "version": "0.5.2", - "resolved": "https://repo.huaweicloud.com/repository/npm/regjsgen/-/regjsgen-0.5.2.tgz", - "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==" + "version": "0.6.0", + "resolved": "https://registry.npmmirror.com/regjsgen/-/regjsgen-0.6.0.tgz", + "integrity": "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==" }, "regjsparser": { - "version": "0.7.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/regjsparser/-/regjsparser-0.7.0.tgz", - "integrity": "sha512-A4pcaORqmNMDVwUjWoTzuhwMGpP+NykpfqAsEgI1FSH/EzC7lrN5TMd+kN8YCovX+jMpu8eaqXgXPCa0g8FQNQ==", + "version": "0.8.4", + "resolved": "https://registry.npmmirror.com/regjsparser/-/regjsparser-0.8.4.tgz", + "integrity": "sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==", "requires": { "jsesc": "~0.5.0" }, "dependencies": { "jsesc": { "version": "0.5.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=" + "resolved": "https://registry.npmmirror.com/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==" } } }, "require-directory": { "version": "2.1.1", - "resolved": "https://repo.huaweicloud.com/repository/npm/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + "resolved": "https://registry.npmmirror.com/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==" }, "resolve": { - "version": "1.20.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "version": "1.22.0", + "resolved": "https://registry.npmmirror.com/resolve/-/resolve-1.22.0.tgz", + "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", "requires": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" + "is-core-module": "^2.8.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" } }, "rxjs": { "version": "6.6.7", - "resolved": "https://repo.huaweicloud.com/repository/npm/rxjs/-/rxjs-6.6.7.tgz", + "resolved": "https://registry.npmmirror.com/rxjs/-/rxjs-6.6.7.tgz", "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", "requires": { "tslib": "^1.9.0" @@ -2138,24 +5810,24 @@ "dependencies": { "tslib": { "version": "1.14.1", - "resolved": "https://repo.huaweicloud.com/repository/npm/tslib/-/tslib-1.14.1.tgz", + "resolved": "https://registry.npmmirror.com/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" } } }, "safe-buffer": { "version": "5.1.2", - "resolved": "https://repo.huaweicloud.com/repository/npm/safe-buffer/-/safe-buffer-5.1.2.tgz", + "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, "semver": { "version": "6.3.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/semver/-/semver-6.3.0.tgz", + "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" }, "serialize-javascript": { "version": "5.0.1", - "resolved": "https://repo.huaweicloud.com/repository/npm/serialize-javascript/-/serialize-javascript-5.0.1.tgz", + "resolved": "https://registry.npmmirror.com/serialize-javascript/-/serialize-javascript-5.0.1.tgz", "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==", "dev": true, "requires": { @@ -2164,7 +5836,7 @@ }, "sinon": { "version": "9.2.4", - "resolved": "https://repo.huaweicloud.com/repository/npm/sinon/-/sinon-9.2.4.tgz", + "resolved": "https://registry.npmmirror.com/sinon/-/sinon-9.2.4.tgz", "integrity": "sha512-zljcULZQsJxVra28qIAL6ow1Z9tpattkCTEJR4RBP3TGc00FcttsP5pK284Nas5WjMZU5Yzy3kAIp3B3KRf5Yg==", "dev": true, "requires": { @@ -2178,19 +5850,19 @@ "dependencies": { "diff": { "version": "4.0.2", - "resolved": "https://repo.huaweicloud.com/repository/npm/diff/-/diff-4.0.2.tgz", + "resolved": "https://registry.npmmirror.com/diff/-/diff-4.0.2.tgz", "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", "dev": true }, "has-flag": { "version": "4.0.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/has-flag/-/has-flag-4.0.0.tgz", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, "supports-color": { "version": "7.2.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/supports-color/-/supports-color-7.2.0.tgz", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { @@ -2201,49 +5873,55 @@ }, "source-map": { "version": "0.5.7", - "resolved": "https://repo.huaweicloud.com/repository/npm/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==" }, "sprintf-js": { "version": "1.0.3", - "resolved": "https://repo.huaweicloud.com/repository/npm/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + "resolved": "https://registry.npmmirror.com/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" }, "string-width": { - "version": "4.2.3", - "resolved": "https://repo.huaweicloud.com/repository/npm/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" } }, "strip-ansi": { - "version": "6.0.1", - "resolved": "https://repo.huaweicloud.com/repository/npm/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", + "dev": true, "requires": { - "ansi-regex": "^5.0.1" + "ansi-regex": "^3.0.0" } }, "strip-json-comments": { "version": "3.1.1", - "resolved": "https://repo.huaweicloud.com/repository/npm/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "resolved": "https://registry.npmmirror.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true }, "supports-color": { "version": "5.5.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/supports-color/-/supports-color-5.5.0.tgz", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { "has-flag": "^3.0.0" } }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" + }, "table-layout": { "version": "1.0.2", - "resolved": "https://repo.huaweicloud.com/repository/npm/table-layout/-/table-layout-1.0.2.tgz", + "resolved": "https://registry.npmmirror.com/table-layout/-/table-layout-1.0.2.tgz", "integrity": "sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A==", "requires": { "array-back": "^4.0.1", @@ -2254,33 +5932,52 @@ "dependencies": { "array-back": { "version": "4.0.2", - "resolved": "https://repo.huaweicloud.com/repository/npm/array-back/-/array-back-4.0.2.tgz", + "resolved": "https://registry.npmmirror.com/array-back/-/array-back-4.0.2.tgz", "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==" }, "typical": { "version": "5.2.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/typical/-/typical-5.2.0.tgz", + "resolved": "https://registry.npmmirror.com/typical/-/typical-5.2.0.tgz", "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==" } } }, "test262-stream": { "version": "1.4.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/test262-stream/-/test262-stream-1.4.0.tgz", + "resolved": "https://registry.npmmirror.com/test262-stream/-/test262-stream-1.4.0.tgz", "integrity": "sha512-s364askxqgyWAtIwvYCG5nYT3P32g9ByEt1ML49ubFlPE52GA6fG5ZZGmf4y/YJgKtppRAZZ7YVd9NOsk1oUxA==", "requires": { "js-yaml": "^3.2.1", "klaw": "^2.1.0" + }, + "dependencies": { + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmmirror.com/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmmirror.com/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + } } }, "to-fast-properties": { "version": "2.0.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" + "resolved": "https://registry.npmmirror.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==" }, "to-regex-range": { "version": "5.0.1", - "resolved": "https://repo.huaweicloud.com/repository/npm/to-regex-range/-/to-regex-range-5.0.1.tgz", + "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, "requires": { @@ -2289,7 +5986,7 @@ }, "ts-sinon": { "version": "1.2.1", - "resolved": "https://repo.huaweicloud.com/repository/npm/ts-sinon/-/ts-sinon-1.2.1.tgz", + "resolved": "https://registry.npmmirror.com/ts-sinon/-/ts-sinon-1.2.1.tgz", "integrity": "sha512-p+ZtMR7NfeBS0dGvPGhMrUY/wFdmTlhcyHIzKle32lQucPA2tF/2xO6oz5aYoXsxbrySu0SqcaupM6L+L9Msgg==", "dev": true, "requires": { @@ -2301,7 +5998,7 @@ "dependencies": { "@types/node": { "version": "11.15.54", - "resolved": "https://repo.huaweicloud.com/repository/npm/@types/node/-/node-11.15.54.tgz", + "resolved": "https://registry.npmmirror.com/@types/node/-/node-11.15.54.tgz", "integrity": "sha512-1RWYiq+5UfozGsU6MwJyFX6BtktcT10XRjvcAQmskCtMcW3tPske88lM/nHv7BQG1w9KBXI1zPGuu5PnNCX14g==", "dev": true } @@ -2309,39 +6006,39 @@ }, "tslib": { "version": "2.3.1", - "resolved": "https://repo.huaweicloud.com/repository/npm/tslib/-/tslib-2.3.1.tgz", + "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.3.1.tgz", "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" }, "type-detect": { "version": "4.0.8", - "resolved": "https://repo.huaweicloud.com/repository/npm/type-detect/-/type-detect-4.0.8.tgz", + "resolved": "https://registry.npmmirror.com/type-detect/-/type-detect-4.0.8.tgz", "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", "dev": true }, "typescript": { - "version": "4.4.3", - "resolved": "https://registry.npmmirror.com/typescript/download/typescript-4.4.3.tgz?cache=0&sync_timestamp=1632381565165&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Ftypescript%2Fdownload%2Ftypescript-4.4.3.tgz", - "integrity": "sha1-vcVAfKorEJ79T4L+EwZW+XeikyQ=", + "version": "4.5.5", + "resolved": "https://registry.npmmirror.com/typescript/-/typescript-4.5.5.tgz", + "integrity": "sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA==", "dev": true }, "typical": { "version": "4.0.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/typical/-/typical-4.0.0.tgz", + "resolved": "https://registry.npmmirror.com/typical/-/typical-4.0.0.tgz", "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==" }, "uid2": { "version": "0.0.3", - "resolved": "https://repo.huaweicloud.com/repository/npm/uid2/-/uid2-0.0.3.tgz", - "integrity": "sha1-SDEm4Rd03y9xuLY53NeZw3YWK4I=" + "resolved": "https://registry.npmmirror.com/uid2/-/uid2-0.0.3.tgz", + "integrity": "sha512-5gSP1liv10Gjp8cMEnFd6shzkL/D6W1uhXSFNCxDC+YI8+L8wkCYCbJ7n77Ezb4wE/xzMogecE+DtamEe9PZjg==" }, "unicode-canonical-property-names-ecmascript": { "version": "2.0.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "resolved": "https://registry.npmmirror.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==" }, "unicode-match-property-ecmascript": { "version": "2.0.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "resolved": "https://registry.npmmirror.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", "requires": { "unicode-canonical-property-names-ecmascript": "^2.0.0", @@ -2350,18 +6047,18 @@ }, "unicode-match-property-value-ecmascript": { "version": "2.0.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", + "resolved": "https://registry.npmmirror.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==" }, "unicode-property-aliases-ecmascript": { "version": "2.0.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", + "resolved": "https://registry.npmmirror.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==" }, "unique-temp-dir": { "version": "1.0.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/unique-temp-dir/-/unique-temp-dir-1.0.0.tgz", - "integrity": "sha1-bc6VsmgcoAPuv7MEpBX5y6vMU4U=", + "resolved": "https://registry.npmmirror.com/unique-temp-dir/-/unique-temp-dir-1.0.0.tgz", + "integrity": "sha512-tE68ki2FndoVdPioyiz8mYaJeX3xU/9lk4dml7KlLKEkWLtDGAYeg5LGjE2dMkzB8d6R3HbcKTn/I14nukP2dw==", "requires": { "mkdirp": "^0.5.1", "os-tmpdir": "^1.0.1", @@ -2370,7 +6067,7 @@ }, "which": { "version": "2.0.2", - "resolved": "https://repo.huaweicloud.com/repository/npm/which/-/which-2.0.2.tgz", + "resolved": "https://registry.npmmirror.com/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "requires": { @@ -2379,49 +6076,16 @@ }, "wide-align": { "version": "1.1.3", - "resolved": "https://repo.huaweicloud.com/repository/npm/wide-align/-/wide-align-1.1.3.tgz", + "resolved": "https://registry.npmmirror.com/wide-align/-/wide-align-1.1.3.tgz", "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", "dev": true, "requires": { "string-width": "^1.0.2 || 2" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://repo.huaweicloud.com/repository/npm/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } } }, "wordwrapjs": { "version": "4.0.1", - "resolved": "https://repo.huaweicloud.com/repository/npm/wordwrapjs/-/wordwrapjs-4.0.1.tgz", + "resolved": "https://registry.npmmirror.com/wordwrapjs/-/wordwrapjs-4.0.1.tgz", "integrity": "sha512-kKlNACbvHrkpIw6oPeYDSmdCTu2hdMHoyXLTcUKala++lx5Y+wjJ/e474Jqv5abnVmwxw08DiTuHmw69lJGksA==", "requires": { "reduce-flatten": "^2.0.0", @@ -2430,20 +6094,20 @@ "dependencies": { "typical": { "version": "5.2.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/typical/-/typical-5.2.0.tgz", + "resolved": "https://registry.npmmirror.com/typical/-/typical-5.2.0.tgz", "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==" } } }, "workerpool": { "version": "6.1.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/workerpool/-/workerpool-6.1.0.tgz", + "resolved": "https://registry.npmmirror.com/workerpool/-/workerpool-6.1.0.tgz", "integrity": "sha512-toV7q9rWNYha963Pl/qyeZ6wG+3nnsyvolaNUS8+R5Wtw6qJPTxIlOP1ZSvcGhEJw+l3HMMmtiNo9Gl61G4GVg==", "dev": true }, "wrap-ansi": { "version": "7.0.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "requires": { "ansi-styles": "^4.0.0", @@ -2451,9 +6115,14 @@ "strip-ansi": "^6.0.0" }, "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, "ansi-styles": { "version": "4.3.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/ansi-styles/-/ansi-styles-4.3.0.tgz", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "requires": { "color-convert": "^2.0.1" @@ -2461,7 +6130,7 @@ }, "color-convert": { "version": "2.0.1", - "resolved": "https://repo.huaweicloud.com/repository/npm/color-convert/-/color-convert-2.0.1.tgz", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "requires": { "color-name": "~1.1.4" @@ -2469,25 +6138,48 @@ }, "color-name": { "version": "1.1.4", - "resolved": "https://repo.huaweicloud.com/repository/npm/color-name/-/color-name-1.1.4.tgz", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "requires": { + "ansi-regex": "^5.0.1" + } } } }, "wrappy": { "version": "1.0.2", - "resolved": "https://repo.huaweicloud.com/repository/npm/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "dev": true }, "y18n": { "version": "5.0.8", - "resolved": "https://repo.huaweicloud.com/repository/npm/y18n/-/y18n-5.0.8.tgz", + "resolved": "https://registry.npmmirror.com/y18n/-/y18n-5.0.8.tgz", "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" }, "yargs": { "version": "16.2.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/yargs/-/yargs-16.2.0.tgz", + "resolved": "https://registry.npmmirror.com/yargs/-/yargs-16.2.0.tgz", "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "requires": { "cliui": "^7.0.2", @@ -2497,16 +6189,46 @@ "string-width": "^4.2.0", "y18n": "^5.0.5", "yargs-parser": "^20.2.2" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "requires": { + "ansi-regex": "^5.0.1" + } + } } }, "yargs-parser": { - "version": "20.2.9", - "resolved": "https://repo.huaweicloud.com/repository/npm/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==" + "version": "20.2.4", + "resolved": "https://registry.npmmirror.com/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==" }, "yargs-unparser": { "version": "2.0.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/yargs-unparser/-/yargs-unparser-2.0.0.tgz", + "resolved": "https://registry.npmmirror.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz", "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", "dev": true, "requires": { @@ -2518,7 +6240,7 @@ }, "yocto-queue": { "version": "0.1.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/yocto-queue/-/yocto-queue-0.1.0.tgz", + "resolved": "https://registry.npmmirror.com/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true } diff --git a/ts2panda/src/base/bcGenUtil.ts b/ts2panda/src/base/bcGenUtil.ts index 4f195377993e283eddb3c9dc4ad6dcd08b555bf1..5ca4f660c7badededf8a3c9bbeee25427ccf8c47 100755 --- a/ts2panda/src/base/bcGenUtil.ts +++ b/ts2panda/src/base/bcGenUtil.ts @@ -101,6 +101,7 @@ import { EcmaStclasstoglobalrecord, EcmaStconsttoglobalrecord, EcmaStlettoglobalrecord, + EcmaLdbigint, VReg } from "../irnodes"; @@ -429,4 +430,8 @@ export function stConstToGlobalRecord (name: string) { export function stClassToGlobalRecord (name: string) { return new EcmaStclasstoglobalrecord(name); -} \ No newline at end of file +} + +export function loadAccumulatorBigInt(value: string): IRNode { + return new EcmaLdbigint(value); +} diff --git a/ts2panda/src/compiler.ts b/ts2panda/src/compiler.ts index b323fc7b57b1b4b19bf7d1b31ca0b52fa3ff48bd..be4e0254120f1f82f525b320b92f304f622e311f 100644 --- a/ts2panda/src/compiler.ts +++ b/ts2panda/src/compiler.ts @@ -37,6 +37,7 @@ import { CompilerDriver } from "./compilerDriver"; import { DebugInfo, NodeKind } from "./debuginfo"; import { DiagnosticCode, DiagnosticError } from "./diagnostic"; import { compileArrayLiteralExpression } from "./expression/arrayLiteralExpression"; +import { compileBigIntLiteral } from "./expression/bigIntLiteral"; import { compileCallExpression, getHiddenParameters @@ -778,6 +779,7 @@ export class Compiler { compileNumericLiteral(this.pandaGen, expr); break; case ts.SyntaxKind.BigIntLiteral: // line 35 + compileBigIntLiteral(this.pandaGen, expr); break; case ts.SyntaxKind.StringLiteral: // line 36 compileStringLiteral(this.pandaGen, expr); diff --git a/ts2panda/src/expression/bigIntLiteral.ts b/ts2panda/src/expression/bigIntLiteral.ts new file mode 100644 index 0000000000000000000000000000000000000000..32575be578c2aa02acf57fd40203d27150291e28 --- /dev/null +++ b/ts2panda/src/expression/bigIntLiteral.ts @@ -0,0 +1,24 @@ +/* + * Copyright (c) 2021 Huawei Device Co., Ltd. + * 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 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import * as ts from "typescript"; +import * as jshelpers from "../jshelpers"; +import { PandaGen } from "../pandagen"; + +export function compileBigIntLiteral(pandaGen: PandaGen, lit: ts.BigIntLiteral) { + let text = jshelpers.getTextOfIdentifierOrLiteral(lit); + text = text.substring(0, text.length-1); + pandaGen.loadAccumulatorBigInt(lit, text); +} \ No newline at end of file diff --git a/ts2panda/src/pandagen.ts b/ts2panda/src/pandagen.ts index d7b0bfceb7e66f4b1721e37373cd78d29550fcc6..51a48dc3856c26ddd72b786157e0d5e301e1e96e 100644 --- a/ts2panda/src/pandagen.ts +++ b/ts2panda/src/pandagen.ts @@ -101,7 +101,8 @@ import { throwThrowNotExists, throwUndefinedIfHole, tryLoadGlobalByName, - tryStoreGlobalByName + tryStoreGlobalByName, + loadAccumulatorBigInt } from "./base/bcGenUtil"; import { LiteralBuffer } from "./base/literal"; import { getParamLengthOfFunc } from "./base/util"; @@ -1254,6 +1255,12 @@ export class PandaGen { stClassToGlobalRecord(string_id)); } + loadAccumulatorBigInt(node: ts.Node | NodeKind, str: string) { + this.add( + node, + loadAccumulatorBigInt(str)); + } + private binaryRelation(node: ts.Node, op: BinaryOperator, lhs: VReg) { let falseLabel = new Label(); let endLabel = new Label();